【问题标题】:Splitting / Modularizing Large ASP.NET Web Application Projects拆分/模块化大型 ASP.NET Web 应用程序项目
【发布时间】:2010-09-27 18:23:32
【问题描述】:

我们公司有一个相当大的 ASP.NET Web 应用程序。该应用程序已被分解为不同的业务功能“区域”。我正在寻找一些可以用来将此 Web 应用程序拆分为单独的可构建/可版本化模块的策略。

主要目标是:

使我们能够部署仅具有选定功能区域的 Web 应用程序。

我将父 Web 应用程序设想为一个“外壳”,它可以托管“插件”,这些“插件”可以将自己注册为父 Web 应用程序导航层次结构上的菜单项。父 Web 应用程序将包含插件使用的母版页、样式表和常用控件。

您对实现这样的事情有哪些想法?

【问题讨论】:

    标签: asp.net web-applications


    【解决方案1】:

    我会做子网络项目。每个网站都是父网站的子项目。您可以编写一个 HttpModule 来检查某些数据存储以查看该客户是否有权访问该站点(模块)并以这种方式拒绝访问。 Scott Guthrie 有一篇关于如何设置子 Web 项目的好帖子 here。

    【讨论】:

      【解决方案2】:

      一个简单的方法是简单地使用站点地图。您可以分离您的 aspx 文件并编译您想要的所有不同的 dll。 SiteMap 是完全独立的,可以根据您的需要进行配置,包括您想要的任何模块,以及您想要的任何权限。没有真正需要任何代码模块向其他代码模块注册自己。这是 ASP.NET,每个请求都是独立的,可以从任何 aspx 入口点开始。就您的页面而言,启用跨模块功能就像在另一个模块中提供指向页面的链接一样简单。 SiteMap 可以轻松完成这项工作。

      【讨论】:

      • 我想他想根据许可协议以及客户是否为它们付费来限制对其他模块的访问。
      • 即使是打包软件,它仍然可以工作。单个模块由 ASPX 文件和一个 dll 组成。如果您在给定系统上仅安装了 N 个可能模块中的 2 个,则可以自定义 SiteMap 以不包含未包含的模块,或者每个模块具有唯一权限。
      猜你喜欢
      • 2011-10-04
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 2011-03-27
      • 2013-08-15
      • 1970-01-01
      相关资源
      最近更新 更多