我有一个变得相当大的Web应用程序。我想将它分成更小的更合理的项目,但较小的项目仍然需要访问主项目的app_code中的一些类。有什么好方法可以实现这个目标?将Web应用程序分离为多个项目
回答
如果您只是在寻找一种组织文件的方式,那么您可以为每个子项目创建一个文件夹。通过这种方式,您将能够获得app_code
的内容,并以很少的返工保持一定程度的分离。
如果您正在寻找最佳方式来完成此任务,那么重构您的代码以使基于app_code
文件夹中可重复使用的内容具有共同的类库以及引用该库的多个独立项目即可。
您可能会遇到以这种方式重构代码的问题,包括无法直接引用配置文件或用户信息。您现在正从Web站点转到Web应用程序范例。
http://www.codersbarn.com/post/2008/06/ASPNET-Web-Site-versus-Web-Application-Project.aspx
添加一个带有公共类的类库项目,并为每个新项目添加对该项目的引用。
所以你有以下解决方案布局
/webapp1
/default.aspx
/....
/webapp2
/default.aspx
/....
/lib
/Utils.cs
提取从app_code
您的普通代码是由其他每个项目引用的类库。
在CVS & Subversion中,你可以设置我认为被称为“别名”(或者也许它是“模块”)。无论如何,你可以使用它们来检出你的源代码控制树的一部分。例如,您可以创建一个名为“views”的别名,用于检出所有HTML,JavaScript和css,但不包含您的php/java/.NET。
我喜欢3层创建数据访问项目的方法,这是一个单独的业务项目,然后使用您现有的站点代码作为表示层,所有这些都在同一个解决方案文件中。
您这样做,就像我之前所说的海报,通过在您现有的解决方案中创建类库项目,并将您的App_Code类移动到适当的层,然后引用业务项目中的数据访问项目,以及web项目。
这将需要一些时间来移动这一切,让你设定该位并重新连接,一旦你移动,以确保件预留充足的时间进行测试和重构。
这里是什么我我的项目中做一个例子。
基本思想是将所有通用文件与htdoc分开,以便客户端不能直接访问和共享。
目录结构:目录对所有项目
public_html
唯一的htdocs目录。
只存储这应该是由客户端直接访问文件,要求application
和其他脚本即JS,CSS,图像,索引脚本
core
核心类/功能。换句话说就是框架。使用
application
存储文件生成由public_html/index
脚本+普通类要求所有项目
config
配置对所有项目,按项目分开分开
templates
模板文件单独的页面所有其他文件
的public_html/index
脚本将用于所有项目上的所有域/子域,并根据请求的URL负载的正确页面...
一个有些简单的方法是,把代码在App_Code文件夹到它自己的组件。唯一可能遇到的问题是,如果app_code文件夹中的代码与您网页上的元素没有分离(这通常总是一个坏主意,因为它表示您的课程内聚力差)。
将代码放入单独的程序集后,可以在升级应用程序时将其部署到任意数量的服务器。
- 1. 拆分Web应用程序项目到多个项目
- 2. 将GWT平台应用程序拆分为多个项目
- 3. 将单个Web应用程序项目作为标准.NET Web应用程序项目和Azure Web角色
- 4. 将Ant Web应用程序项目转换为Maven项目
- 5. 将网站项目转换为Web应用程序项目
- 6. Eclipse Java实用程序项目和多个Web应用程序
- 7. Maven EAR项目分布为多个应用程序服务器?
- 8. 一个IIS应用程序中的多个Web/WCF项目
- 9. 多个Silverlight项目在一个Web应用程序中
- 10. 每个Web应用程序项目多个Global.asax文件
- 11. 将AJAX响应分离为多个Div
- 12. 春季启动项目中的多个Web应用程序
- 13. 将项目更改为Web应用程序
- 14. 将Web应用程序项目转换为单独的DLL
- 15. 阻止VS2012将我的项目转换为Web应用程序
- 16. 将EJB项目更改为Web应用程序
- 17. 可以将Scala项目编译为Web应用程序
- 18. 离线Web应用程序
- 19. 将网站项目转换为Web应用程序项目的错误
- 20. Visual Studio 2010:将网站项目转换为Web应用程序项目?
- 21. 如何将Web应用程序项目转换为类库项目
- 22. Web部署项目的工具和Web应用程序项目
- 23. “新的Web应用程序项目”与“动态Web项目”
- 24. 在NetBeans中,如何将“Java应用程序”项目转换为“Web应用程序”项目?
- 25. 一个web应用程序项目的aspx文件不能用于其他web应用程序项目
- 26. 为两个客户端开发Java Web应用程序项目
- 27. 在Spring应用程序中将服务层与Web层分离
- 28. 将多个项目集成到一个应用程序
- 29. Web应用程序项目和App_GlobalResources
- 30. 初学者项目(Web应用程序)