【问题标题】:Architecture Suggestions/Recommendations for a Web Application with Sub-Apps [closed]具有子应用程序的 Web 应用程序的架构建议/建议 [关闭]
【发布时间】:2011-06-10 18:58:27
【问题描述】:

我开始为大型 Web 应用程序规划架构,我想就从哪里开始以及使用哪些技术和/或框架获得建议和/或建议。

该应用程序将是一个基于 Intranet 的网站,使用 Windows 身份验证、在 IIS 上运行并使用 SQL Server 和 ASP.NET。它需要构建为一个主/shell 应用程序,其中包含基于某些配置设置“可插入”的子应用程序。

主应用程序或外壳应用程序是提供整体用户界面结构——页眉/页脚、为每个可用子应用程序动态构建的选项卡,以及当用户单击子应用程序时将加载的内容区域子应用程序的选项卡。因此,在主/外壳应用程序启动时,将从数据库中查询配置信息,并且根据用户和可用的子应用程序,主或外壳应用程序将动态构建选项卡(或按钮或其他东西)作为访问每个单独应用程序的一种方式。启动时,内容区域将填充“主页”子应用程序。但是,单击子应用选项卡将导致内容区域填充与该选项卡对应的子应用。

例如,我们将有一个报告应用程序、一个显示应用程序,可能还有其他几个不同的应用程序。在主/外壳应用程序启动时,在确定用户是谁后,主应用程序将查询数据库以确定用户可以使用哪些子应用程序并构建 UI。然后,用户可以在可用的子应用程序之间导航并在每个子应用程序中完成他们的工作。

最后,整个应用程序和所有子应用程序需要进行分层设计,具有表示层、服务层、业务层和数据访问层,以及诸如日志记录、异常处理等横切对象。

无论如何,我的问题围绕着从哪里开始计划类似这个应用程序的东西。

哪些技术/框架最适合为此应用程序开发解决方案? MVC? MVP?世界儿童基金会?英孚?休眠?企业图书馆?存储库模式?其他????我知道所有这些技术/框架的用途不同,但是知道要关注哪些技术/框架有点让人不知所措。 哪些是解决方案的最佳选择?对于端到端设计,哪些可以很好地协同工作? 如何为这样的事情构建 VS 项目?

谢谢!

【问题讨论】:

  • 也许从一些小项目开始,了解每种技术的优缺点会是一个好的开始?
  • 这就像那个打电话给体育脱口秀的人说,我有一个很短的问题,“棒球,你打得怎么样?”我认为这个问题太大了,无法在这里很好地回答,如果我可以投票结束,我会的。不是因为我认为这没有价值,只是因为这不是您所要求的论坛。
  • @Stephanie Page 你不认为作者在问一些像what technologies/patterns should I remember when I starting large ASP.Net-based web-project 这样的清单吗?几年前,我的团队开始了一个项目,他们错过了 IoC 这样的伟大事物。后来,当他们开始用自动化测试覆盖代码时,这个错误非常痛苦。如果他们在开始之前有一些best-practices 清单,那么这个错误就永远不会发生。

标签: asp.net-mvc model-view-controller architecture frameworks mvp


【解决方案1】:

我相信ASP.Net MVC是此类项目最好的基础框架。它非常灵活且可定制,因此您可以在 ASP.Net MVC 的顶部为您的应用程序构建自己的高级框架。

另外我想推荐你使用MEF 来注册可插拔的子应用程序——它绝对是.Net 中最好的扩展框架。

请记住使用IoC/Dependency Injection containers 以使您的解决方案组件尽可能相互独立。我最喜欢的是Structure Map 和Autofac,但这取决于项目和架构,所以你需要阅读一些评论,网上有很多。

我无法告诉您哪种 ORM 框架最适合您的解决方案。此外,我相信它应该位于数据访问层,并且不会影响应用程序的其他层。最好在顶层使用 DTO (Data-Transfer-Object) 以使您的业务逻辑/UI 完全独立于 DAL。

此外,在主主机应用程序中实现一些通用服务层(如身份验证、日志记录等)并使其对每个扩展应用程序都通用是一个不错的主意。顺便说一句,对于日志记录,我通常使用log4net。

【讨论】:

  • 感谢梅斯的信息!这是很多很好的信息。我很感激。
猜你喜欢
  • 2012-03-15
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 2012-08-08
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多