11.一些思考
(1)分层不一定都分为不同的Project,也可以是分为不同的目录(如MVC中的Controllers和Models目录),甚至统一的后缀也是一种分层的方法(如10中划分输入验证层时使用.validater.cs后缀),分层是逻辑概念,不需要与物理概念严格对应。
(2)使用partial关键词将一个较大类划分为几个较小的分部类,是降低代码耦合度,提高代码规整度的有效方式。
(3)多数据库切换不是常见的需求,一般的项目中用不到,所以不要轻易就使用,避免过度设计。
(4)我总感觉BLL层是一种鸡肋,或许我一直没有遇到“复杂的大型的”项目?特别有了EF(实体框架)技术之后,我一般把EF做为一层,然后就是界面层了,即直接调用EF自动生成的代码。
(5)有了EF之后,我感觉就没有必要使用LinqToSQL了,当然也没有必要使用原始的ADO.NET了。不过ADO.NET在处理一些小型的数据库时还是很有用的,比如:foxpro,access,excel等。
(6)众多的DAO类应该是可以再进行抽象的,即将它们的共性抽象为所谓的层超类,在C#中可以采用泛型实现,如DAO<T>,其中T代表一个实体类。这样,在DAO<T>中实现共性的增删改查方法,具体的DAO类可以继承自DAO<YourEntityClass>,并扩展一些自己需要的方法。
【完】
分类:
.NET数据库编程求索之路
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库