在构建、设计和实现 .net Framework 应用程序时,您能否提供一些提示/指南,并满足以下要求:
- 这将是一个分析工具,可以从文件、sql 数据库和多维数据集中检索数据。所以数据层应该能够处理。中间件应该完全独立于其他层,因此可能需要一个 IoC 容器(您会推荐哪个)
- 会部署在本地内网
- future 可能是 WPF 应用程序或 Silverlight(目前,我专注于 Silverlight,但关键是它会改变)
- 将来应该很容易定制和改进它,而无需更改太多代码,因为该框架将为许多客户部署
- 我需要一种方法来存储配置信息,应用程序将在应用程序加载事件中获取这些信息以设置其外观。
我有两个月的时间来实现它并寻找尽可能多的提示。
最佳答案
SoC 入门
将您的应用程序分成几个使用 IoC 的程序集(接口(interface) + 实现):
- 应用程序模型组件 - 所有其他组件都将引用这个组件,因为这些类将用于相互通信 - 它们大多只是 POCO
- 演示程序集 - 引用应用程序模型和业务服务 - 这一个是 WPF 或 Silverlight,无论如何使用 MVVM 让您的测试生活更轻松
- 业务服务组件 - 引用应用程序模型和数据存储库组件
- 数据存储库 - 这些定义了实际从商店获取数据的存储库
然后我再创建三个:
- 文件数据提供者
- 数据库提供者
- 多维数据集提供商
数据存储库将引用所有这三个并使用它们来提供必要的数据。
如果配置变得非常复杂且具有很多功能,那么您也应该将它放在一个单独的程序集中,并由业务服务程序集引用它。
使用哪个MVVM库
既然你提到了时间,我想你会很难 catch 最后期限。使用 MVVM(我建议使用)时,我还建议您不要使用完整的 PRISM(也就是来自 P&P 的 Composite Application Guidance),而是使用 MVVM Light Toolkit .加入潮流将花费您更少的时间。
代码生成
在适当的地方,我建议您充分利用 T4。我用它来导入 存储过程调用,以避免在调用存储过程(和使用它们的参数)时使用魔法字符串。检查my blog post关于它。
DAL技术/库
不要使用诸如 SqlConnection
/SqlConnection
功能编写自己的数据访问代码。今天有许多数据访问层库/技术,您可以使用而不是重新发明轮子。如果您知道 nHibernate,那么就使用它。如果您了解 EF,请使用它。如果您知道任何其他信息,请使用它。任何可以为您提供/生成尽可能多的已经过测试和调试的代码。
所以这一切归结为:
干+亚格尼
又名不要重复自己 并且你不会需要它 = 不要过度设计你的代码。
敏捷开发人员应该是懒惰的
他们应该根据需要进行开发,而不是更多! TDD 通过红色 => 绿色 => 重构步骤隐式提供了这个过程。
关于c# - 设计 .Net 框架应用程序的技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4336214/