使用数据库优先 EF ASP.NET MVC 的简单体系结构



Background

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

迄今取得的进展

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

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

我尝试过的网站/项目

  • 夏普架构
  • 洋葱建筑
  • 尼尔德晚餐
  • SiLK项目 (Microsoft)

主要困境

  • 我发现这些项目中最常见的是存储库模式和依赖注入(IoC)。虽然我没有任何反对意见,但我发现很难维护和理解项目。我已经执行了具有 3 层架构的相当大的项目,具有所谓的"紧密耦合"和足够的单元测试来测试项目。我觉得没有这些参与,建筑会更好。
  • 高度重视TDD和DDD
  • 松散耦合的概念很遥远
  • 失去对MVC作为模式的关注,并与其他部分一起主导架构

必需 MVC 项目的简单、易于理解、可维护的体系结构

注意:我从 jimmy Bogard 的 Organizational ASP.NET MVC 解决方案中遇到了这个很好的实现结构。我仍然希望对这个话题有任何建议。

背景

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

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

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

技术栈

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

后端

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

前端

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

测试 - 定稿过程中

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

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

@Steven:非常感谢您的链接,这确实是我解开新网络奥秘的基石。

需要 MVC 的简单、易于理解、可维护的体系结构 项目

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

我必须说Nido框架将为您的要求一针见血。

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

从 NuGet 下载

相关内容

  • 没有找到相关文章

最新更新