再见西城 发表于 2015-1-16 23:38:21

ASP教程之几个开源项目实体层完成体例对照

ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!对照|项目本文首发于博客园几个开源项目实体层完成体例对照
比来在看duwamish7,asp.netforums,dottext几个优异的开源(微软官方)的项目
因我今朝所处的手艺程度的阶段的缘故原由,我看这些项目程序,加倍存眷的是详细的完成
次之才是架构
我起首存眷的是这个三个项目标实体层的完成体例,上面用复杂的代码来对照几个项目
的分歧完成体例,尔后会做一些复杂对照,限于团体程度无限,不克不及做深切的剖析,还
请列位年夜虾点评一二!

完成代码:
一,asp.netforums:
实体类的完成:

publicclassUser
{
privatestring_userName=string.Empty;
privatestring_userPassword=string.Empty;

publicstringUserName
{
get{return_userName;}
set{_userName=value;}
}

publicstringUserPassword
{
get{return_userPassword;}
set{_userPassword=value;}
}
}
汇合类的完成:
publicclassUserCollection:ArrayList
{
publicUserCollectionOfArrayList():base(){}
publicUserCollectionOfArrayList(ICollectionc):base(c){}
}
二,dottext:
实体类的完成:基础同上,次要不同在于汇合类的完成上
汇合类的完成:
publicclassUserCollection:CollectionBase
{
publicintAdd(Uservalue)
{
returnthis.List.Add(value);
}

publicboolContains(Uservalue)
{
returnthis.List.Contains(value);
}

publicintIndexOf(Uservalue)
{
returnthis.List.IndexOf(value);
}

publicvoidInsert(intindex,Uservalue)
{
List.Insert(index,value);
}

publicvoidRemove(Uservalue)
{
List.Remove(value);
}

//publicnewKeyWordCollectionEnumeratorGetEnumerator()
//{
//returnnewKeyWordCollectionEnumerator(this);
//}
//
//publicclassKeyWordCollectionEnumerator:IEnumerator
//{
////这个类是用来迭代类汇合用,好比必要利用foreach遍历汇合时必要完成此接口,在此处省列
////详细完成能够参考dottext的完成体例
//}
}
三,duwamish7
这个项目是微软官方公布的,以是实体层的完成都是利用微软所推耸的ADO.NET手艺
实体类和汇合类是在一块完成的:
publicclassUserCollection:DataSet
{
publicUserCollectionOfDataSet()
{
this.BuildDataTables();
}

privatevoidBuildDataTables()
{
DataTabletable=newDataTable("UserCollection");
DataColumnCollectioncolumns=table.Columns;

columns.Add("UserName",typeof(System.String));
columns.Add("UserPassword",typeof(System.String));

this.Tables.Add(table);
}
}
复杂剖析:
一,asp.netforums实体类没有甚么好说的,次要是汇合类是经由过程承继ArrayList来完成
汇合类,这类完成办法是最复杂快速,但在功能会有一些丧失,由于在利用该汇合的时分,
必要不休的举行装箱(boxing)和拆箱(unboxing)的操纵;

二,dottext实体类和asp.netforums基础上是一样的,但汇合类是经由过程完成CollectionBase
来到达的,完成起来对照庞大和必要更多的代码量,但实在现的汇合类是强范例的工具
在利用的时分其实不必要举行装箱(boxing)和拆箱(unboxing)的操纵,以是在功能上比
asp.netforums的完成体例优

三,duwamish7是利用范例化的DataSet来完成实体层,一般利用DataSet是很耗资本,
一样平常以为,小数据量的时分利用Collection会功能较优,年夜数据量利用DataSet功能较
优,可是良多时分,我们在做使用程序的时分,都是从数据库读取数据,一样平常城市在
存储过程当中举行分页查询,只拔取部分数据,能够说是小数据量了,假如仅仅从功能的
角度来做选择,团体偏向是范例化的DataSet不是最好的选择

</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。

老尸 发表于 2015-1-20 10:48:47

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

兰色精灵 发表于 2015-1-27 23:17:37

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

因胸联盟 发表于 2015-2-5 11:06:25

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

仓酷云 发表于 2015-2-11 10:25:54

那么,ASP.Net有哪些改进呢?

金色的骷髅 发表于 2015-3-2 10:41:22

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

精灵巫婆 发表于 2015-3-11 03:17:03

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

柔情似水 发表于 2015-3-17 19:10:47

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write

再见西城 发表于 2015-3-24 21:25:46

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
页: [1]
查看完整版本: ASP教程之几个开源项目实体层完成体例对照