将Web应用程序分成多个项目

时间:2008-09-23 14:20:22

标签: asp.net

我的网络应用程序变得越来越大。我想将它分成更小的更逻辑的项目,但较小的项目仍然需要访问主项目的app_code中的一些类。有什么好方法可以实现这个目标?

7 个答案:

答案 0 :(得分:6)

使用公共类添加类库项目,并将此项目的引用添加到每个新项目中。

因此,您将拥有以下解决方案布局

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

答案 1 :(得分:2)

将您的公共代码从app_code提取到一个类库中,该类库由您的其他每个项目引用。

答案 2 :(得分:2)

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

如果您正在寻找最佳方法,那么重构您的代码以根据app_code文件夹中可重用的内容创建一个公共类库,以及引用该库的多个独立项目去吧。

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

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

答案 3 :(得分:1)

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

你这样做,就像我之前提到的海报一样,在现有解决方案中创建类库项目,将App_Code类移动到适当的层,然后引用业务项目中的数据访问项目,以及Web中的业务项目项目

移动它需要一些时间,并且一旦移动就会重新连接点零件,所以请确保留出足够的时间进行测试和重构。

答案 4 :(得分:0)

在CVS& Subversion,你可以设置我认为被称为“别名”(或者它可能是“模块”)的东西。无论如何,您可以使用它们来检查源控制树的部分。例如,你可以创建一个名为“views”的别名来检查你的所有HTML,javascript和css,但没有你的php / java / .NET。

答案 5 :(得分:0)

以下是我在项目中所做工作的一个例子 基本思路是将所有公共文件与htdoc分开,这样客户端就无法直接访问它们并且可以共享它们。

目录结构:
public_html
所有项目中唯一的htdocs目录。
仅存储应由客户端直接访问的文件,即js,css,images,index script

core
application和其他脚本所需的核心类/函数。换句话说,框架。

application
存储用于生成public_html/index脚本所需的单独页面的文件+所有项目共有的类

config
所有项目的配置,由项目分隔

templates
模板文件与所有其他文件分开


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

答案 6 :(得分:0)

一种简单的方法是将app_code文件夹中的代码分组到自己的程序集中。您可能遇到的唯一问题是,您的app_code文件夹中的代码是否与您页面上的元素分离(这通常总是一个坏主意,因为它表示您的类中的内聚性差)。

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