如何在站点之间共享用户控件/功能?

时间:2010-05-25 14:49:36

标签: asp.net telerik shared-libraries episerver

我们有两个asp.net网站(基于episerver) 使用Telerik Asp.net控件。
我们希望在两个站点都提供一些功能 现在,其中一个站点使用webparts / usercontrols,另一个站点使用usercontrols。

有没有办法在这些网站之间分享功能?
我想要的是能够在站点之间共享用户控件。

3 个答案:

答案 0 :(得分:3)

由于你在谈论用户控件我假设你也有.ascx文件是用户控件的一部分,这使得这很棘手。

我想理想的解决方案是将所有内容都移到服务器控件中,这样你就可以引用程序集了,但是如果你从其他使用.ascx文件的控件继承,那么你就有了它们。

处理它的一种方法是使用Visual Studio中的文件链接功能(添加现有文件,单击向下箭头,选择链接选项)以在同一解决方案中的项目之间共享相同的物理文件。这不是理想的,因为你必须确保在部署之前将ascx文件复制到两个站点(之前我已经使用后构建脚本完成了),但是有很多东西仍然非常脆弱。

另一种技术上更复杂的选择,但可能是一种“更好”的处理方式,就是使用Virtual Path Provider来为你完成工作。 Here是一篇文章,讨论如何使用虚拟路径提供程序来完成您想要做的事情。

答案 1 :(得分:2)

启动一个新的类库项目,在两个站点项目中引用该项目,然后将公共控件和代码拉出到库项目中。

答案 2 :(得分:0)

如上所述,您可以将文件放在实时环境中的VPP目录中,这样只需将ASCX文件复制到一个文件夹即可进行双站点代码 - 前端更新。代码隐藏更新需要为两个站点构建和覆盖DLL。

如果您在开发环境中使用SVN,您还可以从其中一个项目设置一个svn:external链接文件夹,这样只在一个存储库中包含代码及其修订历史记录。