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

时间:2010-11-01 09:36:45

标签: c# database visual-studio

我是新手C#开发者。当我刚刚开始学习编程时,很简单,你会看到问题,你开发解决方案,测试它并且它工作正常。

然后你会发现设计模式和整个抽象的东西,你开始花更多的时间在没有结果的代码上,总是很累,以保护代码在将来不会发生变化。更多的时间结果。

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

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

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

如果没有看到它在实际应用程序中提供的好处,通常很难看到抽象的好处。我可以给出的最好的建议是阅读SOLID原则,然后在编写应用程序时尝试并思考客户可能会遇到的方式并说“现在我需要它来执行此操作”,这可能是对功能的微妙更改或一个重大变化。想一想这会如何影响您的代码以及您需要进行这些更改的位置。一旦你做出这些改变,你有多自信,你没有打破其他东西?

另一个想法是下载其中一个示例应用程序。我最喜欢的一个是Codeplex上提供的Data Access Platform sample。尝试使用此代码,看看抽象和模式实现如何在变更时最小化对代码的影响。

最重要的是,学习编程语言很容易,但了解如何使用它构建强大的解决方案需要时间。坚持下去,因为当你最终对软件架构有了很好的理解时,它会带来极大的回报。

答案 2 :(得分:1)

DAL要考虑的一些要点:(注意:非常自以为是,但必须回答这个问题)

  • 存储库
  • 后面封装逻辑
  • 使用基于接口的编码
  • 使用依赖注入
  • 使用像NHibernate / Entity Framework 4.0这样的成熟ORM(但知道何时使用SPROC进行数据库密集型工作)
  • 使用工作单元模式
  • 使用参数化查询(或LINQ-Entites,如上所述)防止 SQL注入攻击