如何构建ASP.NET项目以供重用

时间:2010-11-20 14:56:01

标签: c# asp.net project-layout

我正在设计一个Web应用程序,该应用程序将具有多个可安装模块,这些模块提供不同的功能。这里有很多常见的东西,我有3个C#类库,我知道这些库很容易在不同的项目中使用。

我坚持的是实际的网站本身。理想情况下,我想制作一个可以在多个项目中重复使用的ASP.NET 页面库,但我知道这是不可能的。

你们如何构建网站项目,以便可以在多个项目中重复使用页面?到目前为止,我提出的唯一解决方案是在SVN中创建一个存储库,并在主项目的svn:externals属性中引用它。这允许我将页面添加到所有网站共有的目录,我知道我将能够使用它来检查其他项目。但是,我觉得这有点笨拙,在创建新项目时会产生问题(创建新解决方案需要采取一些步骤,确保正确的外部设备到位)。

有更好的解决方案吗?想要跨多个客户端项目共享通用ASPX文件的最佳方法是什么?你如何管理针对他们的变化?

提前致谢!

编辑:

非常感谢大卫的回应。我已经对此有了更多的想法,并认为我列出了一些更具体的想法/关注点。首先,关于项目的更多信息。首先,它是一个CMS。但是,我们也有客户需要CRM,而且也有客户既不需要也不想从头开始想要一个完整的定制系统。

在上面的原始帖子中,我谈到了使用cms来获得主根的子目录(例如svn:externals),以便在多个项目中轻松重新共享网页。我开始认为这是实现这一目标的唯一方法。困扰我的一件事是客户的网址是:

http://www.shotgunanddribble.com/cms/content.aspx

但是,我想我可以使用Application_BeginRequest根据客户端网站的配置重写它们来缓解可怕的网址。例如,如果客户只是CMS,我可以将其顶级域重写为/cms/。如果他们是CRM,也一样。如果他们俩都是:

http://www.shotgunanddribble.com/ - > /cms/

http://crm.shotgunanddribble.com/ - > /crm/

使用这些重写是否有任何不足之处?我认为,除非其他人有任何神奇的想法,svn:externals是我唯一的希望。

1 个答案:

答案 0 :(得分:1)

实际代码很容易放入其他程序集并继承,但ASPX文件绝对是一个不同的故事。公共用户控件库如何包含大部分显示内容,每个项目都有自己的页面,这些页面大多只是框架用户控件?我从来没有尝试过,所以可能会有一些我现在没想到的“陷阱”。