在构建,设计和实现.net框架应用程序时,请您提供一些提示/指南,并满足以下要求:
我有两个月的时间来实施它并寻找尽可能多的提示。
答案 0 :(得分:5)
将您的应用程序分解为几个使用IoC(接口+实现)的程序集:
然后我再创建三个:
数据存储库将引用所有三个并使用它们来提供必要的数据。
如果配置变得非常复杂并且具有很多功能,那么您应该将它放在一个单独的程序集中,并通过业务服务程序集引用它。
既然你提到了时间,我想你很难抓住你的截止日期。当使用MVVM(我建议使用)时,我也建议你不要使用完整的PRISM(来自P& P的a.k.a.复合应用指南),而是使用MVVM Light Toolkit。你需要更少的时间来加入这个行列。
在适当的地方,我建议你充分发挥T4的潜力。我用它来导入存储过程调用,以避免在调用存储过程(和使用它们的参数)时使用魔术字符串。也请查看my blog post。
请勿使用SqlConnection
/ SqlConnection
功能等内容编写自己的数据访问代码。今天有许多数据访问层库/技术可以使用,而不是重新发明轮子。如果你知道nHibernate,那就用它吧。如果你知道EF,那就用它吧。如果您知道其他任何事情,请使用它。任何能够为您提供/生成尽可能多的代码的东西,已经过测试和调试。
所以这一切归结为:
a.k.a。 不要重复和你不需要它 =不要过度设计你的代码。
他们应该根据需要开发,而不是更多! TDD隐含地通过red =>提供此过程。绿色=>重构步骤。
答案 1 :(得分:2)
我建议使用MVVM和测试驱动开发。 MVVM将为您提供前端和中间件之间的良好分离,TDD将有助于控制任何重要的应用程序开发带来的混乱。
答案 2 :(得分:2)
查看Microsoft的模式和实践小组中的Composite Application Guidance,它可能与您正在做的完全不符,但会给您一些好主意。
答案 3 :(得分:1)
从架构的角度来看,我强烈建议您查看Microsoft Application Architecture Guide。由于您已经在使用Microsoft技术堆栈,因此我会考虑将Microsoft Unity用于IoC。您表示您的表示层可能使用WPF或Silverlight,因此请查看使用Windows Communication Foundation,因为在涉及与数据层的通信时,您将在Silverlight中受到一定限制。