2011-02-22 41 views
1

我的一些客户离开了我们的内部网络,我将要向互联网公布一些报告。这意味着我将拥有2个独立的站点,其中一个具有管理功能并在我们的Intranet上进行报告,另一个则只有暴露于互联网的报告。ASP.Net网站,我公开外部功能如何限制重复代码?

我将复制的页面非常简单。 Asp图表控件与其他几个字段用于选择时间跨度,报表大小,相关过滤器等。

什么是一些方法来减少2个几乎相同的ASP .Net网站中的重复代码量?

将UserControls编译为库?资源文件中的CSS文件?把app_code放在别的地方? 如果可能的话,我会怎么做?

我的网站将位于完全不同的网络服务器上,并将共享相同的SQL Server 2005数据库。

+0

如果您要创建两个单独的网站,为什么还要限制代码重复?您没有将这两个站点从代码的同一副本上运行,对吗? – Oded 2011-02-22 22:16:57

+0

你可以使用相同的代码库并安装两次吗? – Greg 2011-02-22 22:17:27

+0

@Oded将有共享功能,对一个报告的更改必须镜像到另一个。我从维护的角度来看待这个问题。 – 2011-02-22 22:20:06

回答

0

我想你已经回答了你的问题。将一些共享逻辑移入单独的类库,您可以在多个站点上重新使用它们。尽可能避免App_Code,它是ASP.NET的一个特殊功能,它可以将特定文件夹动态编译到其自己的程序集中。如果您共享App_Code,则意味着网站之间的代码重复。

拥有共享代码库极大地提高了可维护性和可测试性。

0

假设你想删除整个页面,而不是页面的一部分,你可能可以把它作为一个web.config问题处理,只需要两次安装。

举例来说,如果你有一个管理员文件夹,并放置在管理文件夹内的web.config文件,如:

<?xml version="1.0" encoding="utf-8"?> 

<configuration> 
    <system.web> 
     <authorization> 
      <deny users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 

它会否认管理员文件夹中获得的一切所有用户(我认为)。你可以在你的主web.config中使用<location>元素,但这有些乏味。