- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DotNet(.Net)下构建高适应性的三层架构,三层架构,c三层架构,.net三层架构,java三层架构,asp.net三层架构,mvc和三层架构的区别,三层架构mvc,bs三层架构,c三层架构实例
DotNet(.Net)下构建高适应性的三层架构
.Net程序员都和我一样,曾经苦苦挣扎于底层架构的搭建,如何一次性简单快速的搭建出足够前台调用的接口便成为一个欲罢不能的想法。参与了若干系统的开发之后,经过头脑风暴,我尝试着构建了一种简单的架构实现过程,在经过一些尝试后最终构建成功,并实施在我的一个解决方案当中了,现将构建方案与大家分享如下。
写了很久的程序,养成一个习惯,就是坚持用尽量少的代码实现尽量多的事情,所以一般能共用的代码,我就写成共用的,这样基本上就减少了不少的代码量。另外,通过一定的抽象过程,本人已经总结出规律,并成功的开发出一个底层代码自动化工具,基本上我尝试了一下,一个有二十六个表的系统,二十分钟内,我就完成了底层(包括存储过程类)的构建,这个过程如果纯手工的话,我觉得效率高也要一两周吧。
(注:下文所有例举的代码都由自动化工具生成)
我的架构中有PetShop的影子,也有Duwamish的痕迹。
Solution中包含六个Project:
1、??????????? BussinessRulesExcel的处理类。
2、??????????? Common
3、??????????? DataAccess
4、??????????? WebPetShop中的表示层,Duwamish的Web层,主要是与用户交互的。许多逻辑上的事情得在这一层的CodeBehind里来写。
5、??????????? WinTestWinForm,用来在构建底层结构的时候,对相关方法进行测试的,一般做项目的时候,应该有这样一个测试工程,养成写好一个方法测试一个方法的习惯,这样到后面写Web层的时候,就不用再返回头来改底层了。
6、??????????? SystemFramework
本文的重点放在Common和DataAccess这两个工程上,当然也会包括存储过程部分。我们拿一个表作例子来讲:
1、Table结构:
Table:Product_Info PK:ProductID Index:none Field Name Type Length Null Default Description ProductID Int 4 N (‘’) 产品ID SerialNumber Nvarchar 50 N (‘’) 产品序列号 Price Decimal 4 N 0 价格 Author Nvarchar 50 作者 AuthorWebSite Nvarchar 100 作者网站 TypeID Int 4 N 0 产品类型ID OperationSystem Int 4 N 0 支持的平台系统 ReleaseDate Datetime 8 N GetDate 发布时间 HitCount Int 4 N 0 点击数 Description Ntext 16 产品描述 AddTime Datetime 8 添加时间 这个表比较有代表性,字段类型基本上含概了我们经常使用的几种数据类型:Int、Nvarchar、Decimal、DateTime、Ntext,我比较喜欢带N的数据类型,这样是有利于多语言方面的扩展,语言切换不会有问题。另外对数据表有一个特殊的要求,就是不管怎么样都要加上一个自增长的栏位,否则会产生N多代码,而且添加一个自增长的栏位不影响系统,我只把数据库当成存储数据的地方,不加任何逻辑,逻辑由程序员在开发过程中用程序控制。
2、数据实体类
数据实体类命名与数据表名一致(Product_Info.cs)包含两部分,私有成员和公共属性(两者一一对应)。但会跟数据类型不同而有不同的对应关系:
数字型和时间型的一个字段对应三个公共属性,分别为字段本身、字段的极小值和字段的极大值,后两者主要为了检索设置的。如果是不是上面的两种类型,都归为字符型,字符型除了自身外,会多一个用来模糊搜索的属性。除了上面的所有,还会有一个属性ReturnCount,控制返回数据的条数。
另外私有成员都必须赋初值,规律是数字型的都赋-1,字符型的赋null,日期型的为1900-1-1,这一点非常重要,后面是要根据这个初始值来对参数进行动态构建的。
举例:
ProductID栏位会对应三个属性:
牋牋牋牋?**////?summary对参数进行动牋牋牋牋?//燩ublic燗ttribute:ProductID小值和字段的极牋牋牋牋?//?/summarybute:P牋牋牋牋爌ublic爄nt燩roductIDProduct牋牋牋牋?ubli{牋牋牋牋牋牋牋get爄nt燩rod{return爉_ProductID;}D牋牋牋牋牋牋牋setroductI{m_ProductID=value;}
您可能关注的文档
最近下载
- 2025华南农业大学教师招聘考试试题.docx VIP
- B737-NG快速检查单 2016_03_31整体版.pdf VIP
- 中国血管性认知障碍诊治指南(2024版)解读.pptx
- cs.ananas.chaoxing.comdownload55accda5e4b04cd76d.ppt VIP
- 农业植物病理学题库.docx VIP
- 扬州大学线性代数§1.1排列与逆序详解.ppt VIP
- 2025年平顶山鲁山县部分机关及所属事业单位选调工作人员60名笔试备考试题及答案解析.docx VIP
- 党支部工作条例试卷.pptx VIP
- 220kV永福变电站110kV梅花站对侧GIS扩建间隔一二次设备安装施工方案1.pdf VIP
- 2024华南农业大学教师招聘考试笔试试题.docx VIP
文档评论(0)