我正在设计一个 Web 应用程序,该应用程序将具有多个提供不同功能的可安装模块。这里有很多常见的东西,我有 3 个 C# 类库,我知道它们很容易在不同的项目中使用。
我坚持的一点是实际的网站本身。理想情况下,我想制作一个可以在多个项目中重复使用的 ASP.NET页面库,但我知道这是不可能的。
你们如何构建您的网站项目,以便页面可以在多个项目中重复使用?到目前为止,我想出的唯一解决方案是在 SVN 中创建一个存储库,并在svn:externals
主项目的属性中引用它。这允许我将页面添加到所有网站通用的目录中,并且我知道我将能够使用它来将它们检出到其他项目中。但是,我觉得这有点笨拙,并且会在创建新项目时引起问题(创建新解决方案需要许多步骤,以确保正确的外部设置到位)。
有更好的解决方案吗?当您想跨多个客户端项目共享通用 ASPX 文件时,最好的方法是什么?您如何管理针对它们的更改?
提前致谢!
编辑:
非常感谢大卫的回应。我对此进行了更多思考,并认为我会列出一些更具体的想法/担忧。首先,关于项目的更多信息。首先,它是一个CMS。但是,我们也有需要 CRM 的客户,也有一些客户既不想要,又想要从头开始的整个定制系统。
在我上面的原始帖子中,我谈到了主根目录(例如,cms
)的子目录,svn:externals
用于允许跨多个项目轻松重新共享网页。我开始认为这是做到这一点的唯一方法。困扰我的一件事是,如果客户的网址是:
http://www.shotgunanddribble.com/cms/content.aspx
但是,我认为我可以Application_BeginRequest
通过根据客户端站点的配置重写它们来减轻可怕的 url。例如,如果客户只是一个 CMS,我可以将他们的顶级域重写为/cms/
. 如果他们是 CRM,也一样。如果他们都是:
http://www.shotgunanddribble.com/
->/cms/
http://crm.shotgunanddribble.com/
->/crm/
使用这些类型的重写有什么缺点吗?我认为,除非其他人有任何神奇的想法,否则这svn:externals
是我唯一的希望。