1

背景

我来自 ASP.NET 背景的 3 层架构。我直接在图层上使用了单元测试,从未尝试过模拟图层。所有应用程序都是使用 EF Database First 开发的,单独的 POCO 和基础设施项目处理应用程序的管道工作。开发的应用程序是中小型的。

迄今为止的进展

自从我开始学习 ASP.NET MVC 以来,第一个问题是如何为解决方案创建层。在过去的 15 天里,我正在学习和寻找好的架构,以便在这个和未来的 MVC 项目中学习和遵循。我经历了以下架构模式/站点,发现它们对我自己来说太复杂了。一些主要问题

  • 继承项目的复杂性,这使得新程序员难以使用
  • 锐利的学习曲线
  • 每一层都有太多的单元测试来测试冗余行为(次要)
  • 开发过程中编译相对较慢

我尝试过的网站/项目

  • 夏普架构
  • 洋葱架构
  • 临近晚餐
  • 丝绸项目(微软)

主要困境

  • 我发现这些项目中最常见的是存储库模式和依赖注入(IoC)。虽然我没有反对它,但我发现很难维护和理解项目。我已经执行了具有 3 层架构的相当大的项目,具有所谓的“紧密耦合”和足够的单元测试来测试项目。我觉得如果不涉及这些,建筑会更好。
  • 非常重视 TDD 和 DDD
  • 松耦合的概念很牵强
  • 不再关注 MVC 作为模式,而与其他部分一起主导架构

要求MVC 项目的简单、易于理解、可维护的架构

注意:我从 jimmy bogard 的组织 ASP.NET MVC 解决方案中发现了这个很好的实现结构。我仍然会感谢有关此主题的任何建议。

4

2 回答 2

0

背景

经过这么多的回顾和展望后,我决定在我的 ASP.NET MVC WebAPI 项目中使用 Onion Architecture。

在本课程中,我发现自己在努力跟上新的开发方法和框架。事实上,无论谁在寻找基于三层结构或类似现有结构的新应用程序,都需要“放手”并拥抱新的基础。TDD 和 BDD 等新的开发理念的进步是巨大的,而且很有帮助。

Web 和支持的技术与我所知道的不同。事实是 MVC 和 MVC WebAPI 的发展是因为现有的 Web 窗体框架无法跟上新的发展。

技术栈

忘记和学习需要时间和耐心。但最终我发现自己处于一个新的水平,并随着主流发展的潮流而发展。以下是我采用的最终技术堆栈(排名不分先后)。

后端

  • ASP.net MVC WebPI
  • 洋葱架构
  • EF 数据库优先(因为它适合我的项目)
  • 通用存储库

前端

  • Bootstrap UI(作为 UI 设计框架并跳过了 jQuery UI)
  • Typescript(用于强类型的 JavaScript,所以项目中没有直接的 JS)
  • AngularJS(作为前端 MVC)
  • LESS CSS(用于健壮和可维护的 CSS,因此项目中没有直接的 CSS)
  • Breeze.js(用于模型绑定和更改跟踪)

测试 - 正在完成

除了上面我已经使用并创建了一堆 T4 模板来处理冗余任务。我建议自己掌握它。它大大减少了开发时间。我仍在考虑一些工具、项目和测试。完成后,我将发布它的最终堆栈。

上面的堆栈可能看起来很全面,但我发现自己有必要构建高度可维护和响应式的 Web 应用程序。正如我之前提到的,这需要时间,但一旦你熟悉了它,它就会变得有意义。注意:总而言之,AngularJS 的学习曲线非常陡峭,你会发现自己在决定使用它时来回走动。但坚持下去,值得。

@Steven:非常感谢您的链接,这真的是我解开新网络之谜的基石。

于 2014-01-13T09:39:06.057 回答
0

要求 MVC 项目的简单、易于理解、可维护的架构

NidoFramework。这正是您正在寻找的。它是免费、简单、设计良好的代码框架,具有良好的架构模式。

我必须说Nido 框架会满足您的要求。

链接:https ://nidoframework.codeplex.com

NuGet下载

于 2013-11-29T02:53:04.077 回答