2008-09-23 46 views
2

我有一个变得相当大的Web应用程序。我想将它分成更小的更合理的项目,但较小的项目仍然需要访问主项目的app_code中的一些类。有什么好方法可以实现这个目标?将Web应用程序分离为多个项目

回答

2

如果您只是在寻找一种组织文件的方式,那么您可以为每个子项目创建一个文件夹。通过这种方式,您将能够获得app_code的内容,并以很少的返工保持一定程度的分离。

如果您正在寻找最佳方式来完成此任务,那么重构您的代码以使基于app_code文件夹中可重复使用的内容具有共同的类库以及引用该库的多个独立项目即可。

您可能会遇到以这种方式重构代码的问题,包括无法直接引用配置文件或用户信息。您现在正从Web站点转到Web应用程序范例。

http://www.codersbarn.com/post/2008/06/ASPNET-Web-Site-versus-Web-Application-Project.aspx

6

添加一个带有公共类的类库项目,并为每个新项目添加对该项目的引用。

所以你有以下解决方案布局

/webapp1 
    /default.aspx 
    /.... 
/webapp2 
    /default.aspx 
    /.... 
/lib 
    /Utils.cs 
2

提取从app_code您的普通代码是由其他每个项目引用的类库。

0

在CVS & Subversion中,你可以设置我认为被称为“别名”(或者也许它是“模块”)。无论如何,你可以使用它们来检出你的源代码控制树的一部分。例如,您可以创建一个名为“views”的别名,用于检出所有HTML,JavaScript和css,但不包含您的php/java/.NET。

1

我喜欢3层创建数据访问项目的方法,这是一个单独的业务项目,然后使用您现有的站点代码作为表示层,所有这些都在同一个解决方案文件中。

您这样做,就像我之前所说的海报,通过在您现有的解决方案中创建类库项目,并将您的App_Code类移动到适当的层,然后引用业务项目中的数据访问项目,以及web项目。

这将需要一些时间来移动这一切,让你设定该位并重新连接,一旦你移动,以确保件预留充足的时间进行测试和重构。

0

这里是什么我我的项目中做一个例子。
基本思想是将所有通用文件与htdoc分开,以便客户端不能直接访问和共享。

目录结构:目录对所有项目
public_html
唯一的htdocs目录。
只存储这应该是由客户端直接访问文件,要求application和其他脚本即JS,CSS,图像,索引脚本

core
核心类/功能。换句话说就是框架。使用

application
存储文件生成由public_html/index脚本+普通类要求所有项目

config
配置对所有项目,按项目分开分开

templates
模板文件单独的页面所有其他文件


public_html/index脚本将用于所有项目上的所有域/子域,并根据请求的URL负载的正确页面...

0

一个有些简单的方法是,把代码在App_Code文件夹到它自己的组件。唯一可能遇到的问题是,如果app_code文件夹中的代码与您网页上的元素没有分离(这通常总是一个坏主意,因为它表示您的课程内聚力差)。

将代码放入单独的程序集后,可以在升级应用程序时将其部署到任意数量的服务器。

相关问题