应该如何访问数据。 工作实践

我是新手C#开发人员。 当我刚刚开始学习编程时,变得非常简单,你会发现问题,你开发解决方案,测试它并且工作,这很简单。

然后,您会发现设计模式和整个抽象事物,并且您将开始花更多时间在代码上,而不会产生任何结果,并且始终努力保护代码免受未来可能的更改影响。 更省时间的结果。

对于无聊的介绍感到抱歉,但我只是想表明我现在有多沮丧。 有很多由微软自己提供的数据访问技术,甚至是第三方公司提供的大量技术。

我没有团队领导或邻居超级熟练的程序员朋友,所以我必须征求你的意见。

您如何在用C#编写的真实应用程序中实现数据访问?


从整体角度来看,我总是隐藏和数据访问接口背后的实现细节,如下所示:

public interface IRepository<T> { /*...*/ }

.NET框架提供了很多不同的访问数据的方式,所以我可以理解你很困惑。 但是,目前,访问关系数据库只有两种或三种合理选择:

  • NHibernate的
  • 实体框架
  • (像IDataReader这样的低级API可能仍然会在有限的情况下发挥作用)

  • 如果没有看到它在现实世界应用程序中提供的好处,通常很难看到抽象的好处。 我可以给出的最佳建议是阅读SOLID原则,然后在编写应用程序时尝试考虑客户端可能会找到你的方式,并说“现在我需要它来做到这一点”,这可能是功能的微妙变化,或者一个重大变化。 想想这会如何影响你的代码,以及你需要做多少次改变。 一旦你做出这些改变,你会如何确信自己没有破坏别的东西?

    另一个想法是下载其中一个示例应用程序。 我最喜欢的一个就是Codeplex提供的Data Access Platform样例。 试着研究这段代码,看看抽象和模式实现如何最大限度地减少总体代码对时间的影响。

    底线是学习编程语言很容易,但了解如何构建强大的解决方案需要时间。 坚持下去,因为当你最终对软件架构有一个很好的理解时,这是非常有价值的。


    DAL需要考虑的几点:(注:非常有见地,但这个问题的答案必须是)

  • 存储库后面封装逻辑
  • 使用基于接口的编码
  • 使用依赖注入
  • 使用NHibernate / Entity Framework 4.0等成熟的ORM(但知道何时使用SPROC进行数据库密集型工作)
  • 使用工作单元模式
  • 通过使用参数化查询(或LINQ-Entites,如上所述)防止SQL注入攻击
  • 链接地址: http://www.djcxy.com/p/48597.html

    上一篇: How should data be accessed. The working practic

    下一篇: Topological Sort with Grouping