如何为网站项目添加子项目

     最近要给公司的电子商务网站添加个圈子的功能.网站功能本来就包含有新闻发布,会员管理,商品购物,后台管理等,现在又要再加上圈子的功能,网站项目越来越复
杂,每次编译生成的dll超过100k.这样每次修改任何一个功能中的任何一个小问题都要上传整个dll,并导致整个website的首次访问的重新编译.
     之前也曾经想过,这些功能根据不同处于项目中的不同文件夹内,比如会员的会在member,后台管理的会在admin文件夹,新闻的会在news文件夹.这样的话如果vs支持按不同文件夹生成不同dll,那我每次修改不同功能的不同文件只要上传对应的dll就可以了,不再需要上传整个website的dll.
     不过想法是美好的,事实是残酷的.vs并不支持这样的功能.所以在功能直接交互和文件共享并不多的功能上,我采取了重新建立一个projects的方法,比如把后台管理剥离出来,新建一个admin的website,这个新的projects放在website的根目录下,然后修改文件编译生成dll后的目录为..\bin并且删除项目中的web.config.编译后访问,呵呵,真的可以访问了,并且达到了拆分项目的要求.倒是并不完美,还有手动修改很多设置,并且这2个项目中不能共享相同的master,和usercontrol,甚至是图片,js等,如果直接使用相对路径,那么视图模式下将不能正常显示,如果vs直接提供新建子项目的功能并能解决共享这些文件,该有多好啊.
     于是通过Google,找到一篇文章http://blogs.msdn.com/webdevtools/archive/2006/07/01/652986.aspx,Creating sub-projects in IIS with Web Application Projects,不幸的是文中提到的“Web Application Projects” add-in,我Download了,but can't install!
     虽然这样的应用程序我们无法制作,但是我们可以按照他的思路自己修改配置啊.
     发现他的方法,跟一开始我的做法是很类似的,不过他可以共享master和user control,为什么我的不能呢?
     仔细翻看了一下,发现原来他在子项目中创建了虚拟目录比如 http://localhost/group,所以之前使用~/Group.Master,只能访问本项目中的master,而现在则可以访问根目录中的master了,试试usercontrol,也可以了,呵呵,原理奥妙都在这个虚拟目录中呀.
     不过最后,还是觉得这样的方式不是很舒服,不知道大家有没什么好的办法,我在这里抛下砖.

      本来想发在新手区的,但是我觉得这个应该是大部分程序员都会遇到的问题,把Web 应用程序分解为多个较小项目也有很多优点,不知道各位达人平时如何解决的?
如果大家觉得放在首页不合适的话,我也会移开.

posted on 2008-06-25 11:25 隨風.NET 阅读(1991) 评论(20)  编辑 收藏 网摘

评论

#1楼 2008-06-25 11:33 copy123[未注册用户]

不要用xxx.aspx.cs文件就完了...   回复  引用    

#2楼 2008-06-25 11:46 iceeric[未注册用户]

怎么感觉把简单的事情想复杂了   回复  引用    

#3楼 2008-06-25 11:47 江水滔滔      

我也是那么做的。
不知道会不会出现命名空间的问题。

以后出现问题,请楼主多发表点文章
  回复  引用  查看    

#4楼 2008-06-25 11:48 hellofox2000[未注册用户]

也是可以试着 添加链接项目,文件   回复  引用    

#5楼 2008-06-25 12:02 skyweo      

我是直接分成N个子网站,分别用子域名,这样就互不干扰了,不过需要实现会话共享   回复  引用  查看    

#6楼 2008-06-25 12:42 Jeffrey Zhao      

dell超过100k是很正常的吧……   回复  引用  查看    

#7楼[楼主] 2008-06-25 12:47 隨風.NET      

@Jeffrey Zhao
是的 不过每次ftp的时候要是遇到网速过慢就麻烦了
  回复  引用  查看    

#8楼 2008-06-25 13:01 金色海洋(jyk)      

可以分成多个项目,比如后台管理一个项目,

前台页面一个项目,如果网站比较大的话,也可以分成多个项目。

公用的地方可以做一个单独的项目,然后编译成dll文件,在其他的项目里引用。

上传,建立一个站点,把多个项目的 dll都上传到 网站的 bin目录下面,其他的 .aspx 文件也都传到同一个网站里面(当然要按照文件夹的结构上传),这样就可以一起访问了。

master的还没有用过,不知道要怎么共享。
  回复  引用  查看    

#9楼 2008-06-25 13:29 Jeffrey Zhao      

@隨風.NET
zip包咯
  回复  引用  查看    

#10楼 2008-06-25 13:36 TomYu      

用web application啊   回复  引用  查看    

#11楼 2008-06-25 13:46 Jon.Xiang      

关注,公司网站要改版,我们的网站每天都会有改动.一直为这个事情头疼.期待正解.   回复  引用  查看    

#12楼 2008-06-25 13:51 sickboy[未注册用户]

<a href="#top">M</a>   回复  引用    

#13楼 2008-06-25 13:59 冰泉      

你可以先装vs2005 sp1补丁,然后就可以建web appclication了   回复  引用  查看    

#14楼 2008-06-25 14:02 沙加      

可以把比如admin 的后台类单独放一个工程里面~~不过缺点就是需要在后台代码里面手动申请页面上的控件,好象也没有太大的关系吧~~   回复  引用  查看    

#15楼[楼主] 2008-06-25 14:03 隨風.NET      

@冰泉
以前用的vs2005sp1 现在都用vs2008了
  回复  引用  查看    

#16楼[楼主] 2008-06-25 14:04 隨風.NET      

@TomYu
用的是web application啊
  回复  引用  查看    

#17楼 2008-06-25 14:06 waitu      

1 有这种拆分需求的项目,还是不要使用master之类的控件了。。
2 可以为子项目建立单独的解决方案。各个子解决方案的配置文件都必须一样。配置的时候在合并到一起。
3 公用方法建立当度的项目,所有的子解决方案都可以调用。

这样的网站结构:
/
--bin
--/blog/
--/bbs/
--/.../
--config.xml
  回复  引用  查看    

#18楼 2008-06-25 16:02 JerryChou      

可以参考宝玉的openlab   回复  引用  查看    

#19楼 2008-06-25 20:21 无常      

dotText就是这么干的~   回复  引用  查看    

#20楼 2008-06-26 02:44 初效过滤器[未注册用户]

主项目与子项目。*   回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1229462




相关文章:

相关链接:

导航

公告

希望自己能静心写点blog,很多内容来自与互联网,如果没有添加来源,可能是忘记了,还请谅解
<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

统计

与我联系

搜索

 

常用链接

留言簿

我管理的小组

我参与的团队

随笔分类(6)

随笔档案(37)

links

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜

60天内阅读排行