Google [站内搜索]

分类: Web编程预览模式: 普通 | 列表

分类站数据库结构设计

在分类站中,首先是分类多,这个数据库结构还是比较好设计的,难在各分类的属性不一样,例如房产和招聘分类拥有属性就完全不一样,这个数据库结构设计就比较难了,以前也有想过,但终究没有一个好的解决方案。

阿里软件OPEN API文档中提供了淘宝数据库各表的结构,研究了下,淘宝非常好的解决了上边的问题,下边是各表的主要结构:

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3800

Effective C# 原则11:选择foreach循环

C#的foreach语句是从do,while,或者for循环语句变化而来的,它相对要好一些,它可以为你的任何集合产生最好的迭代代码。它的定义依懒于.Net框架里的集合接口,并且编译器会为实际的集合生成最好的代码。当你在集合上做迭代时,可用使用foreach来取代其它的循环结构。检查下面的三个循环:

int [] foo = new int[100];

// Loop 1:

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4086
在用 ASP.Net 开发页面的时候,我们常常通过 System.Web.HttpUtility.UrlEncode 和 UrlDecode 在页面间通过 URL 传递参数,成对的使用 Encode 和 Decode 是没有问题的。

但是,我们在编写文件下载的页面的时候,常常用如下方法来指定下载的文件的名称:

Response.AddHeader("Content-Disposition","attachment; filename="

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7037
Close() and Dispose() are basically the same thing on an ADO.NET connection
object for providers shipped by Microsoft, and typically for 3rd party
providers as well (haven't seen one that does it differently, but you never
know :). The only difference is that Dispose also clears the connection
string. Calling only 1 of them is enough - whichever you prefer or applies

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3741

SWFUpload+.NET(C#)使用示例

Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7148

[C#]当函数重载碰上params

几天前无意中写了这么两个函数:

string Test(string name, params string[] args);
string Test(string name, string str, params string[] args);

今天看了就有这么一个疑问:当传两个string类型参数时哪个函数会被调用?用事实说话吧:

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3696

.NET中使用Newtonsoft.Json进行序列化

.NET学生类Student:

class Student
{
    //姓名

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 8152

Effective C# 原则10: 明白GetHashCode()的缺陷

这是本书中唯一一个被一整个函数占用的原则,你应该避免写这样的函数。GetHashCode()仅在一种情况下使用:那就是对象被用于基于散列的集合的关键词,如经典的HashTable或者Dictionary容器。这很不错,由于在基类上实现的GetHashCode()存在大量的问题。对于引用类型,它可以工作,但高效不高;对于值类型,基类的实现经常出错。这更糟糕。你自己完全可以写一个即高效又正确的GetHashCode()。没有那个单一的函数比GetHashCode()讨论的更多,且令人困惑。往下看,为你解释困惑。

如果你定义了一个类型,而且你决不准备把它用于某个容器的关键词,那就没什么事了。像窗体控件,网页控件,或者数据库链接这样的类型是不怎像要做为某个任何的关键词的。在这些情况下,什么都不用做了。所有的引用类型都会得到一个正确的散列值,即使这样效率很糟糕。值类型应该是恒定的(参见原则7),这种情况下,默认的实现总是工作的,尽管这样的效率也是很糟糕的。在大多数情况下,你最好完全避免在类型的实例上使用GetHashCode()。

然而,在某天你创建了一个要做为HashTable的关键词来使用的类型,那么你就须要重写你自己的GetHashCode()的实现了。继续看,基于散列(算法)的集合用散列值来优化查找。每一个对象产生一个整型的散列值,而该对象就存储在基于这个散列值的“桶”中。为了查找某个对象,你通过它的散列值来找到这个(存储了实际对象的)“桶”。在.Net里,每一对象都有一个散列值,它是由System.Object.GetHashCode()断定的。任何对GetHashCode()的重写都必须遵守下面的三个规则:

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5187
以前曾经动笔写过一片《字符串比较方法的性能对比》的文章,很多朋友提出了非常好的意见和建议。碰巧最近看到好多人在这样比较字符串

if (string.Compare(keyState, "M", true, CultureInfo.InvariantCulture) == 0) {

似乎很有意思,大家都喜欢另辟蹊径的使用字符串比较,为了较为客观的反应各种字符串比较的优势,我特地做了一个本地测试,分别区分字符串长度一致以及长度不一致的情况,另外每种情况下还对字符串的比较方式上使用4种不同方法:
1、使用地球人都知道的“==”比较运算符

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3366

两种不同字符串比较方法的性能对比

最近比较关注C#书写出来的代码性能问题,越研究就越觉得很有意思。
在日常的编程过程总,由于编程需要,我们经常会比较两个字符串是否相等,然后再做相应的处理。代码书写起来是觉得很爽,不是吗?if (a==b) then ……else……但是有没有更快的方式呢?为此查阅了一些资料了MSDN文档。当我们调用 a==b的时候,通过IL代码可以看到内部实际上调用了String.Equals(string,string)这个方法

IL_0021:  call       bool [mscorlib]System.String::op_Equality(string,string)
IL_0026:  stloc.s    re

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3069