繁体   English   中英

打破asp.net Web应用程序

[英]Breaking up an asp.net web application

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

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

我能想到的可行方法是:

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

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

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

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

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

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

链接1

UC来自数据库

应用程序之间的会话共享的某些链接(我不建议分享会话但仍然如果你想要你可以阅读这篇文章)

ASP .Net论坛

使用State Server

堆栈溢出

如果您正在构建项目,我不确定使用asp.net 2.0是否是个好主意,因为您已经遇到了问题。 在我的项目的某个阶段,我将这些ascx控件移动到单独的“控件库项目”,它只是获取我的html字符串然后我放在网站的某个地方。 就像在aspx页面中使用<%= fControl%>语法一样,我填充了该代码。 不是优雅的解决方案,但让事情变得更容易。 无论如何,我们决定在php中重新实现项目,因为它更便宜并且没有出现这样的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM