我正计划重写一个我以前参与过的当前系统。我这样做是一种学习练习。下面是对旧系统的描述、新系统的基本架构、我想要遵循的一些最佳实践、我想要实现的目标以及我的问题。
让我解释一下旧系统:
1. SQL Server 数据库(未规范化)
2. Palm 应用程序(将数据输入数据库)
3. Web 服务 1(Palm 应用程序将数据发送到数据库)
4. Web 应用程序(将数据输入数据库)将数据输入数据库) - 我创建了这个
5. Web 服务 2(Web 应用程序 1 将数据发送到数据库) - 我创建了这个
6. 网站(直接到 CRUD 数据并打印报告)
让我解释一下我对新系统的架构概念:
1. UI Web 应用解决方案 - 替换旧网站。
2. UI Web 应用解决方案 - 替代旧的 Web 应用和 Palm 应用。
3. Web 服务解决方案(使用 WCF) - 替换旧的 Web 服务 1 和 Web 服务 2。
4.业务对象解决方案 - 业务对象、对数据访问解决方案的代码调用和对业务逻辑解决方案的代码调用将放置在这里。
5.业务逻辑解决方案——业务规则会放在这里。
6.数据访问解决方案 - 将数据输入/输出数据库的代码将放置在这里。
7.数据传输对象解决方案 - 用于传输信息如下:
7.1。 与 Web 服务解决方案之间的 UI 解决方案。
7.2. 到/从业务对象解决方案的 Web 服务解决方案。
7.3. 到/从数据访问解决方案的业务对象解决方案。
让我解释一下我对新系统的最佳实践概念:
1. Web 服务解决方案的单元测试。
2.业务对象解决方案的单元测试。
3.业务逻辑的单元测试。
4.数据访问解决方案的单元测试。
5.单一职责原则
6.打开/关闭原则
7.里氏替换原则
8.接口隔离原则
9.依赖倒置原则
新的系统目标
我希望我能够生成干净的代码,其中包含单元测试和围绕整个系统的集成测试,同时学习设计模式、WCF、TDD、Rhino Mocks、Expression Blend 3、Visual Studio 2010 和 TFS 2010. 我也想用这个系统作为未来学习新语言的参考,比如 Rails。
问题
1.根据我的说明,有人对我的架构有疑问吗?有更好的想法吗?
2.是否有一些我应该遵循但未列出的最佳实践?
3.我列出了哪些不应该遵循的最佳实践?
谢谢你的时间!