Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 分解asp.net web应用程序_C#_Asp.net_Svn - Fatal编程技术网

C# 分解asp.net web应用程序

C# 分解asp.net web应用程序,c#,asp.net,svn,C#,Asp.net,Svn,正在收集有关如何拆分web应用程序(或可能的web应用程序集)的一些视图(项目方面)。。。基本上,整个站点都是一个大型站点,但是问题出现了,因为它有各种各样的模块,每个模块都有自己的开发/发布周期 出现的问题是,试图在站点之间共享会话并在DLL中嵌入共享资源,将它们拆分成一个令人头痛的问题,但从源代码管理的角度来看,将它们作为一个大项目是一场噩梦 我能想到的可能方法是: 每个模块上都有一个应用程序和一个疯狂的分支:从基本风格上看,这似乎是对的,但会有很多分支,而一直将分支合并回来将是一场噩梦 使

正在收集有关如何拆分web应用程序(或可能的web应用程序集)的一些视图(项目方面)。。。基本上,整个站点都是一个大型站点,但是问题出现了,因为它有各种各样的模块,每个模块都有自己的开发/发布周期

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

我能想到的可能方法是:

  • 每个模块上都有一个应用程序和一个疯狂的分支:从基本风格上看,这似乎是对的,但会有很多分支,而一直将分支合并回来将是一场噩梦
  • 使它们都是独立的应用程序:缺点是它们都共享母版页和许多自定义控件(在ascx中实现)。我知道如何将它们放入DLL(使用虚拟路径提供程序),但这是一个相当混乱的解决方案。最重要的是在应用程序之间来回传递会话,基本上构建了一个自制会话解决方案
  • 另一件事我试图找出我是否可以做但失败了,就是在csproj中以某种方式有一个“虚拟文件夹”,例如“ModuleA”文件夹实际上映射到“../../../../ModuleA/Trunk/”。我相对确信,如果不使用某种预构建脚本,这是不可能做到的,但我希望能够在Visual Studio中正确加载一些东西,所以我认为这个想法是不可行的


    有没有人对我应该怎么做有什么建议(不管是上面提到的还是我没有考虑过的)?希望确保我不会在这里开枪打死自己,因为这可能是一个长期项目,未来会有很多增强/维护…

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

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

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

    此外,如果您正在构建模块化应用程序,那么它应该相互独立,但最终取决于您的需求,这是明智的

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


    嘿,我已经让ascx从dll正常运行(唯一奇怪的是ascx的源路径,但即使这样也没问题)。此外,我们正在使用asp.net 3.5,这几乎是一成不变的,因为作为一家公司,这是人们所知道的,并且为这个项目对整个公司进行再培训并不完全可行。你的观点似乎与我在试图解决如何将其全部规划出来时得出的结论基本一致。我同意,直接共享这些链接中描述的会话是一种肮脏的黑客行为——以至于我会在实现这些解决方案之前编写自己的会话控制器。就模块模块化程度而言,每个模块与任何其他模块都是100%独立的,但它们与运行在webroot中的中心应用程序(基本上只是模块所绑定的框架)有着本质上的联系.PS:我现在还不打算接受这一点-我想再给它一点时间看看是否有人有其他的观点/方法。如果一两天内没有其他人插话,我很可能会接受这一点。