基于单个基础项目对c#.net项目进行分段的最佳实践是什么?

时间:2010-05-13 14:26:02

标签: c# asp.net visual-studio-2008

老实说,如果不进行描述,我无法更好地说出我的问题。

  • 我有一个基础项目(包括所有荣耀,dll,资源等),这是一个CMS。
  • 我需要将此项目用作其他自定义烘焙项目的基础。
  • 此基础项目将在所有自定义烘焙项目中进行维护和更新。
  • 我使用subversion(Collabnet和Tortise SVN)

我有两个问题:

1 - 我可以使用subversion在其他项目中共享基础项目

我的意思是我可以将基础项目“签出”到另一个“签出”项目中并同时更新和提交seperatley。因此,为了绘制图片,假设我正在开发一个自定义项目,我以某种方式修改核心/基础项目(我知道这将适合其他项目)然后我可以提交这些更改和当我更新其他“已检出”资源中的基础项目时,它会拉动更改吗?简而言之,每当我对每个单独的项目进行更改时,我都不希望手动部署更新的核心文件。

2 - 如果我创建一个自定义文件(让我们说一个webcontrol或aspx页面等),我可以从基础项目中编译seperatley

另一个棘手的解释。当我发布我的Web应用程序时,它会根据附加到它的项目的名称空间创建DLL。所以我可能有许多DLL,包括“网站”命名空间DLL,它可能只是网站。我希望能够创建一个单独的自定义控件,它不会编译到这些DLL中,因为自定义文件不应该依赖于那些DLLS来运行。为CustomFiles.ProjectName等文件设置单独的命名空间是否这么简单?

将整个想法想象为向.NET项目添加模块,我不希望任何核心DLL中的模块代码,但我确实需要模块才能访问核心dll。

(核心项目不需要访问模块代码,因为它应该只是理论上的一种方式,但我认为如果不使用JSON / SOAP或类似的东西,它可能是不可能的,也许我错了。)

我想创建一个类似于Joomla / Wordpress的可插拔环境,因为PHP通常不需要先编译我看到这就是为什么所有这些都可能/容易的原因。这个想法是允许可插入的主题,模块等等。

(我没有尝试过在编译/发布后简单地添加.NET主题,但我认为这是可能的吗?或者编译器是否需要引用文件中的项目?)


更新(16/05/2010):

我在Experts-Exchange上针对问题2发布了一个类似的问题。我不想在这里发布所有这些信息,因为它太乱了,但它更详细地解释了问题2.

2 个答案:

答案 0 :(得分:1)

对于第一个问题,您想要使用svn externals。更多细节可以在这里找到:http://svnbook.red-bean.com/en/1.0/ch07s03.html

对于第二个问题,您需要创建一个单独的程序集,最简单的方法是在解决方案中创建一个新项目。你不能让一个项目发出2个dll(我知道)

答案 1 :(得分:1)

关于你的第一个问题:

如果基础项目是库,那么没有什么能阻止您在SVN上创建以下目录结构:

  • 基础项目
  • 酷项目nr 1
  • 酷项目nr 2

所有基于基础项目构建的项目都将包含相对参考,然后每个人都可以查看他的酷项目X 基础项目,为他们工作。 基础项目的签入更改将允许其他人通过更新基础项目图像来查看它们。 Advantage :只需要一个SVN中继。

关于你的第二个问题:

我尽我所能,但我无法理解你在问什么:)。