场景:为学习目的创建应用程序,并尝试使其与数据库无关。
我已经看了很多啤酒屋架构,每个数据库都有自己的dal,混合了SqlCommands和DataReaders等等。我不是没有明确的对错,但通常在维护,速度等等方面请注意.net应用程序的架构方面对我来说是一个新手,您是否倾向于使用像啤酒屋这样的自己的特定类,或者使用像dbProviderFactory那样已经有很多功能的东西?
使用System.Data.Common中的泛型类(例如DbCommand,DbDataReader,与特定的SqlCommand,SqlDataReader类等相反)是否有任何优缺点。
提前致谢。
答案 0 :(得分:1)
据我所知,直接使用DbDataReader更快。但是当您想要修改UI时,它是不可扩展的。 (例如,让您的Winforms和Webforms项目使用相同的DAL)。
在我看来如果你想要更多的灵活性,你可能会失去性能。关键是你(作为开发人员)负责平衡性能与复杂性/可扩展性。例如,假设您正在为公司设计winforms应用程序。您确定该公司不会更改其数据提供程序(例如,从SQL Server更改为Oracle)。然后,您无需将程序设计为能够连接到不同的数据提供程序。正如他们所说:亲吻。 (保持简单愚蠢!; p)