打破asp.net Web应用程序

fyj*_*ham 6 c# svn asp.net

希望收集关于如何分割Web应用程序(或者可能是Web应用程序集)的一些观点(项目方面)...基本上整个事情将是一个大型站点,但问题出现是因为它有一个各种模块,每个模块都有自己的开发/发布周期.

出现的问题是,在尝试使会话在站点之间共享并在DLL中嵌入共享资源但将它们保持为一个大项目时,将它们拆分成为一个令人头痛的问题,从源代码控制的角度来看是一场噩梦.

我能想到的可行方法是:

  1. 有一个应用程序和分支像疯狂的每个模块的工作:在基本的风格基础上,这似乎是正确的,但它将是很多分支和合并分支在所有的时间将是一个噩梦......
  2. 使它们成为所有单独的应用程序:缺点是它们共享其母版页和许多自定义控件(在ascx中实现).我知道如何将它们放在DLL中(使用虚拟路径提供程序),但这是一个相当混乱的解决方案.最重要的是在应用程序之间来回传递会话本质上构建一个自制会话解决方案......

我试图找出我能做但失败的另一件事是在某种程度上在csproj中有一个"虚拟文件夹",例如"ModuleA"文件夹实际映射到"../../../ModuleA /树干/".我相信没有使用某种预构建脚本就无法做到这一点,但我希望能在Visual Studio中实际加载一些东西,所以我觉得这个想法是不行的......

有没有人对我应该采取哪种方式有任何建议(无论是上述之一还是我没有考虑过的事情)?想要确保我不会在这里拍摄自己的脚,因为它可能是一个长期项目,有很多未来的增强/维护......

Har*_*boy 3

我已经在我们的一个项目中做到了这一点。我们在开发过程中肯定会遇到某些问题,但为了可维护性,将项目单独放在单独的 dll 中绝对值得

正如您还建议的虚拟路径提供商一样,我有一些相同的链接,这可能会对您有所帮助。另外,为了在两个模块之间传递数据,我们在接口中创建了属性,并为接口创建了单独的项目,并且所有模块都实现了该接口,因此我们可以将值从一个模块传递到另一个模块。

另外,如果您正在构建模块化应用程序,那么它应该彼此独立,但最终取决于您的要求,这始终是可取的。

链接1

来自数据库的 UC

应用程序之间会话共享的某些链接(我不建议共享会话,但如果您愿意,仍然可以阅读本文)

ASP .Net 论坛

使用状态服务器

堆栈溢出