场景:为学习目的创建一个应用程序,并试图使其独立于数据库。
我看了很多beerhouse架构,其中每个数据库都有自己的dal,sqlcommands和datareaders的混合体等等。我没有明确的对错,但通常在维护、速度等方面,记住,.net应用程序的架构方面对我来说是很新的,您是倾向于滚动自己的特定类(如beerhouse)还是使用类似于dbproviderfactory(其中已经有很多功能)的类?
使用system.data.common中的泛型类(如dbcommand、dbdatareader)与特定的sqlcommand、sqldatareader类相对应,有什么优缺点吗?
提前谢谢。

最佳答案

据我所知,直接使用dbdatareader更快。但是当你想修改你的用户界面时,它是不可扩展的。(例如,让你的winforms和webforms项目使用相同的dal)。
在我看来,如果你想要更多的灵活性,你可能会表现松散。关键是你(作为开发人员)负责平衡性能与复杂性/可扩展性。例如,假设您正在为公司设计winforms应用程序。您确信公司不会更改其数据提供程序(例如,从SQL Server更改为Oracle)。那么就不需要设计程序来连接到不同的数据提供程序。就像他们说的:吻。(保持简单愚蠢!;页)

关于c# - 独立的DAL设计-特定而通用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4059615/

10-12 23:44