最近要給公司的電子商務網站添加個圈子的功能.網站功能本來就包含有新聞發布,會員管理,商品購物,後台管理等,現在又要再加上圈子的功能,網站項目越來越複
雜,每次編譯產生的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 應用程式分解為多個較小項目也有很多優點,不知道各位達人平時如何解決的?
如果大家覺得放在首頁不合適的話,我也會移開.