c# - 设计 .Net 框架应用程序的技巧

标签 c# wpf silverlight

在构建、设计和实现 .net Framework 应用程序时,您能否提供一些提示/指南,并满足以下要求:

  1. 这将是一个分析工具,可以从文件、sql 数据库和多维数据集中检索数据。所以数据层应该能够处理。中间件应该完全独立于其他层,因此可能需要一个 IoC 容器(您会推荐哪个)
  2. 会部署在本地内网
  3. future 可能是 WPF 应用程序或 Silverlight(目前,我专注于 Silverlight,但关键是它会改变)
  4. 将来应该很容易定制和改进它,而无需更改太多代码,因为该框架将为许多客户部署
  5. 我需要一种方法来存储配置信息,应用程序将在应用程序加载事件中获取这些信息以设置其外观。

我有两个月的时间来实现它并寻找尽可能多的提示。

最佳答案

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/

相关文章:

c# - 在 .NET Core 中获取类的公共(public)属性

c# - 如何在超时发生后处理 NotifyIcon (C#)

c# - ASP.NET 核心 2.1 : Navigating back to a page after an HTTP POST fails validation displays a browser error

c# - cmake build x64 使用安装的任何 visual studio 版本

c# - 如何将信息从 ThreadPool.QueueUserWorkItem 传递回 UI 线程?

Silverlight 4.0 PDF 查看器

wpf - 丰富的 GUI OS X 框架?

c# - WPF框架如何处理MVVM中属性的循环更新?

silverlight - 当图像是 xaml 中的数据绑定(bind)时清除图像缓存(释放内存)

c# - ListPicker 数据绑定(bind)和 INotifyPropertyChanged