在使用外掛工具 SANSCASTLE時,
無法編譯出網站專案的 XML,而引發的後續討論及相關有用網頁資訊連結
Web Site Project vs Web Application Project
網友saintchou問了一個問題,他的VS2005 SP1網站發行功能選項跟KB-ASP.NET 2.0 網站部署的變革一文所說的不同(該文留言中有選項畫面圖檔連結),有了圖,答案揭曉: saintchou使用的Web Application Project,與文中討論部署有點棘手的Web Site Project是兩種不同專案類型,發佈網站的選項因此不同。
為什麼Visual Studio中會冒出兩種網站專案類型? 這問題還挺有趣的,且扯到一點歷史,索性再做點補充。
詳細的故事源由在KB-ASP.NET 2.0 網站部署的變革、文章-ASP.NET 2.0專案部署問題研究兩篇文章裡提到蠻多的,這裡再強調一下如何在Visual Studio 2005 SP1/Visual Studio 2008里建立及區別Web Site Project與Web Applicatoin Project。
VS2005 在一開始時只有Web Site Project模式(Code-Beside),雖然它有架構簡化、修改更新簡便等特性,但不少開發者適應不良,還是懷念ASP.NET 1.1那種需要先Build DLL才能執行的模式,於是微軟先推出了需要額外安裝的Web Application Project套件,讓開發者可以在VS2005中繼續用ASP.NET 1.1的方式寫網站。等到VS2005 SP1推出時,便將Web Application Project功能改為內建,但對於來不及參與這段過去的人來說,Visual Studio 2005里"斯斯網站有兩種"變成一件奧妙的事。(Visual Studio 2008里也同時支援這兩種網站專案)
Web Site Project的建立與開啟方式與Web Application Project不同,Web Site Project要由File/New/Web Site來新增,Web Application Project則是要由File/New/Project,再選擇ASP.NET Web Application專案類型(畫面範例看這裡)。
兩種Web Model要挑哪一種各憑所好(MSDN裡有份二者的比較,還包含了特性對照表,可以做為參考),開發時明確知道你採用的是哪一種專案類型即可。
PS: 我個人偏好Web Site模式,在測試開發階段只要改.cs就可以直接看結果,只要Copy檔案就能執行的特性也很方便;至於要部署到正式環境時,則可借助Web Deployment Project將程式碼預先編譯成DLL,避免原始程式碼外洩的疑慮。
--------------------------------
相關連結概觀:將 Visual Studio 網站和專案轉換為 Visual Studio 2008
[ASP.NET]Deployment Project的使用
最後做法: