<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Refines.Info["Polo Lee"] : ASP.NET</title><link>http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx</link><description>Tags: ASP.NET</description><dc:language>zh-TW</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>ASP.NET 2.0 AJAX 1.0 Source Code 開放下載</title><link>http://blogs.msdn.com/polo_lee/archive/2007/02/02/asp-net-2-0-ajax-1-0-source-code.aspx</link><pubDate>Fri, 02 Feb 2007 06:56:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1579525</guid><dc:creator>polo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/1579525.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=1579525</wfw:commentRss><description>&lt;p&gt;ASP.NET AJAX 元件是免費的, 我想大家都知道, 但如果連 Source&amp;nbsp;Code 都可以開放讓大家參考... 我猜就不是每個人都會知道的.&lt;/p&gt; &lt;p&gt;但 這是實話, ASP.NET 2.0 AJAX 技術堆疊中 有兩個重要的模組, 一部分是 Client Side 的 JavaScript 函式庫, 另一部分則是 Server Side ASP.NET Extension. 目前 微軟透過 &lt;a href="http://www.microsoft.com/resources/sharedsource/licensingbasics/referencelicense.mspx"&gt;Microsoft Reference License (Ms-RL)&lt;/a&gt;&amp;nbsp;授權方式, 把這兩個元件的程式碼公開讓大家學習與研究了&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ef2c1acc-051a-4fe6-ad72-f3bed8623b43&amp;amp;DisplayLang=en"&gt;ASP.NET 2.0 AJAX Extensions 1.0 Source Code&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;最後就是 AJAX Control Tool Kit 部分, 這還用說嗎 ? 這部分本來就是在 CodePlex 上, 也就是說, 你也可以可取得程式碼做為學習的參考&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1579525" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>ASP.NET 網站 為什麼第一次特別慢...</title><link>http://blogs.msdn.com/polo_lee/archive/2007/01/25/asp-net.aspx</link><pubDate>Thu, 25 Jan 2007 08:25:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1526001</guid><dc:creator>polo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/1526001.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=1526001</wfw:commentRss><description>
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;一個朋友和我 抱怨到, 它們公司購買的軟體系統是由 ASP.NET 開發出來的&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;由於他的早起美德, 每天他都會是第一個進到公司 因此他發現 為什麼每一次 系統一開始用 慢的跟狗一樣...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;事實上 ASP.NET 的 Pre-Compiler 模型很重要的概念 !!!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;How to: Precompile ASP.NET Web Sites &lt;o:p/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms227972.aspx"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;http://msdn2.microsoft.com/en-us/library/ms227972.aspx&lt;/span&gt;&lt;/a&gt;&lt;o:p/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;Open source has one interesting tool "Yet another pre-compile tool for ASP.NET web sites"&lt;o:p/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;a href="http://www.codeproject.com/aspnet/ASPdotNETprecompiler.asp"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;http://www.codeproject.com/aspnet/ASPdotNETprecompiler.asp&lt;/span&gt;&lt;/a&gt;&lt;o:p/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;過去我也撰寫了一篇佈署的文章 "Inside ASP.NET 2.0&lt;/span&gt;&lt;/span&gt; &lt;span style="FONT-FAMILY: '新細明體','serif'; mso-ascii-font-family: Calibri; mso-hansi-font-family: 'Courier New'"&gt;佈署論典&lt;/span&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;"&lt;o:p/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;a href="http://www.microsoft.com/taiwan/msdn/columns/li_syue_lin/Inside_ASP.htm"&gt;&lt;span style="FONT-FAMILY: Calibri"&gt;http://www.microsoft.com/taiwan/msdn/columns/li_syue_lin/Inside_ASP.htm&lt;/span&gt;&lt;/a&gt;&lt;o:p/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" xml:lang="EN-US"&gt;&lt;o:p/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;br/&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1526001" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>AJAX, Microsoft ASP.NET AJAX Framework 1.0 RTM 正式發表</title><link>http://blogs.msdn.com/polo_lee/archive/2007/01/24/ajax-microsoft-asp-net-ajax-framework-1-0-rtm.aspx</link><pubDate>Wed, 24 Jan 2007 04:46:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1518653</guid><dc:creator>polo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/1518653.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=1518653</wfw:commentRss><description>&lt;blockquote&gt; &lt;p&gt;&lt;a href="http://ajax.asp.net/default.aspx"&gt;AJAX : The Official Microsoft ASP.NET AJAX Site&lt;/a&gt; &lt;/p&gt; &lt;p&gt;正式推出.&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1518653" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Enterprise .NET Community: Creating a Custom ASP.NET Profile Provider (客製化 ASP.NET 好文章)</title><link>http://blogs.msdn.com/polo_lee/archive/2007/01/10/enterprise-net-community-creating-a-custom-asp-net-profile-provider-asp-net.aspx</link><pubDate>Wed, 10 Jan 2007 04:44:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1441736</guid><dc:creator>polo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/1441736.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=1441736</wfw:commentRss><description>&lt;p&gt;剛收到 The Server Side 的電子報.&lt;/p&gt; &lt;p&gt;這是篇好文章, 還有 Sample. 談到 如何在 ASP.NET 2.0 上設計自己的 Profile Provider.&amp;nbsp; 相當實務上的需求 !&lt;/p&gt; &lt;p&gt;因為對 軟體廠商或企業來說. 你會希望 所有的網站 使用者的 Profile 最終會來自某個後端的 平台 / 資料庫 / 系統 ? 這也牽扯到要怎麼客製化 ~&amp;nbsp;請參考&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.theserverside.net/tt/articles/showarticle.tss?id=CreatingProfileProvider&amp;amp;asrc=EM_NLN_894490&amp;amp;uid=1037179"&gt;Enterprise .NET Community: Creating a Custom ASP.NET Profile Provider&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1441736" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>兩個 Free 的 ASP.NET HTML Editor</title><link>http://blogs.msdn.com/polo_lee/archive/2006/12/28/free-asp-net-html-editor.aspx</link><pubDate>Thu, 28 Dec 2006 05:15:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1371999</guid><dc:creator>polo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/1371999.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=1371999</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/polo_lee/WindowsLiveWriter/FreeASP.NETHTMLEditor_1358A/image01.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="77" src="http://blogs.msdn.com/blogfiles/polo_lee/WindowsLiveWriter/FreeASP.NETHTMLEditor_1358A/image0.png" width="240" border="0"&gt;&lt;/a&gt; &lt;a title="http://freetextbox.com/" href="http://freetextbox.com/"&gt;http://freetextbox.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/polo_lee/WindowsLiveWriter/FreeASP.NETHTMLEditor_1358A/image03.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="57" src="http://blogs.msdn.com/blogfiles/polo_lee/WindowsLiveWriter/FreeASP.NETHTMLEditor_1358A/image02.png" width="240" border="0"&gt;&lt;/a&gt; &lt;a title="http://www.fckeditor.net/" href="http://www.fckeditor.net/"&gt;http://www.fckeditor.net/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;過去兩個架構都是 常用的工具 ~&lt;/p&gt; &lt;p&gt;架構上也各有優缺, 請各自斟酌囉&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1371999" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Fiddler HTTP Debugger - Web 開發小工具</title><link>http://blogs.msdn.com/polo_lee/archive/2006/11/29/fiddler-http-debugger-web.aspx</link><pubDate>Wed, 29 Nov 2006 09:21:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1169819</guid><dc:creator>polo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/1169819.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=1169819</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/polo_lee/WindowsLiveWriter/FiddlerHTTPDebuggerWeb_C9EE/image%7B0%7D%5B2%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="83" src="http://blogs.msdn.com/blogfiles/polo_lee/WindowsLiveWriter/FiddlerHTTPDebuggerWeb_C9EE/image%7B0%7D_thumb.png" width="240" align="left" border="0"&gt;&lt;/a&gt; Fiddler 是 官方都很重視的 小工具.&lt;/p&gt; &lt;p&gt;如果是開發 Web 應用程式, 這類的小工具 可以幫你直接 追蹤 HTTP 封包與內容.&lt;/p&gt; &lt;p&gt;幫助你 測試 調整 架構.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.fiddlertool.com/fiddler/"&gt;Link to Fiddler HTTP Debugger - Fiddler&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;MSDN 上兩篇重量介紹文章&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/IE_IntroFiddler.asp"&gt;Fiddler PowerToy - Part 1: HTTP Debugging&lt;/a&gt;&lt;/li&gt; &lt;li&gt; &lt;h3&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/dnwebgen/IE_Fiddler2.asp"&gt;Fiddler PowerToy - Part 2: HTTP Performance&lt;/a&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1169819" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/polo_lee/archive/tags/.NET+Developing/default.aspx">.NET Developing</category></item><item><title>Microsoft AJAX 進入 Beta 狀態..</title><link>http://blogs.msdn.com/polo_lee/archive/2006/10/22/microsoft-ajax-beta.aspx</link><pubDate>Sun, 22 Oct 2006 16:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:855607</guid><dc:creator>polo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/855607.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=855607</wfw:commentRss><description>&lt;p&gt;終於不是 CTP... excellent&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://ajax.asp.net/Default.aspx?tabid=47"&gt;Link to ASP.NET AJAX Web: The Official Microsoft ASP.NET AJAX Site : ASP.NET AJAX&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=855607" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Continuous Integration (CI) 整合資訊</title><link>http://blogs.msdn.com/polo_lee/archive/2006/09/15/755841.aspx</link><pubDate>Fri, 15 Sep 2006 15:28:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:755841</guid><dc:creator>polo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/755841.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=755841</wfw:commentRss><description>&lt;p&gt;Agile 的 CI 概念在 Team System 架構中， Default 是沒有提供的，原因有很多 但結果是 目前功能上沒有這個選項，&lt;/p&gt; &lt;p&gt;只是 這不代表 Team System 不可能有 CI 流程，事實上 很多 Project Template, even you can find a good sample in MSDN download.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Buck Hodges : 整理了一份很好的 資訊&lt;/p&gt; &lt;p&gt;More continuous integration with Team Build&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/buckh/archive/2006/08/09/more_continuous_integration.aspx"&gt;Link to Buck Hodges : More continuous integration with Team Build&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;------&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.notionsolutions.com"&gt;Notion Solutions, Inc.&lt;/a&gt;&amp;nbsp;也是其中一家 CI 架構整合 Solution.&lt;/p&gt; &lt;p&gt;兩篇 Post 描述了 如何整合 Team Build 與您的 ASP.NET WAP 專案&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://manicprogrammer.com/cs/blogs/heynemann/archive/2006/09/01/61.aspx"&gt;Team Build 101 (Part 1 of 2)&lt;/a&gt; &lt;p&gt;&lt;a href="http://manicprogrammer.com/cs/blogs/heynemann/archive/2006/09/01/62.aspx"&gt;Team Build 101 (Part 2 of 2)&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;如果團隊是在 ASP.NET 專案上開發並且需要 Team Build.. 千萬別錯過 &lt;p&gt;除此之外，先前一篇 我整理的 Post 也別錯過了 &lt;blockquote&gt; &lt;h4&gt;&lt;a href="http://blogs.msdn.com/polo_lee/archive/2006/09/02/736784.aspx"&gt;ASP.NET 結合 Team Build. 相當重要的議題&lt;/a&gt;&lt;/h4&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=755841" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/polo_lee/archive/tags/Build+_2600_amp_3B00_+Deployment/default.aspx">Build &amp;amp; Deployment</category></item><item><title>Inside ASP.NET 2.0 佈署論典</title><link>http://blogs.msdn.com/polo_lee/archive/2006/09/13/deploy-aspnet20-vs2005.aspx</link><pubDate>Wed, 13 Sep 2006 09:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:751703</guid><dc:creator>polo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/751703.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=751703</wfw:commentRss><description>&lt;P&gt;&lt;/P&gt;
&lt;H4&gt;動機：&lt;/H4&gt;
&lt;P&gt;自2005年底，.NET 邁入2.0架構後，我們發現越來越多的先進前輩，動身投入了 ASP.NET 2.0 的網路應用系統中；事實上不論您是否聽過我的研討會或是簡報吹噓，ASP.NET 2.0的確帶來了 ….. (超過兩萬字的最新功能形容… 省略)，但優越性能的背後，實際上也帶來了相對應的學習複雜度。 
&lt;P&gt;我特別喜歡一個長官的說法： 這是一個專業的問題，當然解決方式也是很專業的… 
&lt;P&gt;Cool… Right… 
&lt;P&gt;本文寫作的動機，在針對 ASP.NET 2.0 Compiler Model 與 VS.NET 2005 內建的佈署功能特性。希望在針對這個議題的討論，能讓Architect 或是已經Hands on 在開發的人員，得到一個 架構性的觀點，並且正確的使用工具來輔助您的軟體生活。 
&lt;H4&gt;ASP.NET的On-Demand Compiler架構&lt;/H4&gt;
&lt;P&gt;&lt;IMG height=272 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image002.jpg" width=433&gt; 
&lt;P&gt;圖表 1 
&lt;P&gt;微軟的 ASP.NET 架構，Build In 一個強大的 Compiler 模式，讓網頁在被瀏覽的時間，能夠快速 Compiler 為 組件DLL 被系統調用。這帶來了一個新的彈性架構，讓軟體開發端，不需要把所有的程式資訊事先 Compile 為密閉的DLL組件，甚至能動態的佈署單一網頁與更新。 
&lt;P&gt;但缺點呢? 
&lt;P&gt;在 1.x 版本，明顯的缺點在，系統在第一次被執行時會相對應的緩慢，因為所有的頁面都需要重新被掃描更新到對應的 DLL 組件中。 
&lt;P&gt;另一個更受抱怨的缺點在，一但有單一網頁被異動，系統需要重新早描異動變化，然後更新組件，這對於大型應用網站來說，是一種明顯的 Down Time… ， 金錢損失。 
&lt;P&gt;在 ASP.NET 2.0 的架構中，內定針對了這兩個通病做了大改進，Default 的ASP.NET 網頁架構，加入佈署的設計概念，同時也支援多重DLL對應的模式。要做到佈署，您有幾種選擇，一是透過Command Line 工具 “aspnet_compiler.exe”，一種是透過最佳化的IDE開發工具 Visual Studio 2005，後續的文章將以 VS 2005 為主要討論標地。 
&lt;H4&gt;Visual Studio 2005 內建的ASP.NET佈署模式&lt;/H4&gt;
&lt;P&gt;VS 2005 內建提供了 Copy Web Site 與 Publish Wizard。Copy Web Site 是個Copy Source與Destination版本比對的工具，相單簡易使用，但不是本篇探討的主題，我們關心的是真正的佈署工具 Publish Wizard。 
&lt;P&gt;為了解釋起見，我選了 ASP.NET Starter Kits 的 “Club Web Site Starter Kit” 作為後續範例的樣本，您可以在 &lt;A href="http://www.asp.net/"&gt;http://www.asp.net&lt;/A&gt; 中下載到它。 
&lt;P&gt;Starter Kits 的好處是，這已經是一個完整的案例，平常不用的時候，可以拿來做案例教學，設計學習，要用的時候又可以直接執行，安裝或是佈署，真的是 10 大開放源碼之一啊。 (星爺幽默) 
&lt;H5&gt;前置作業.&lt;/H5&gt;
&lt;P&gt;&lt;IMG height=315 hspace=12 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image004.jpg" width=299 align=left&gt;請您準備一個新的 VS 2005 Web Sites，並且套用 Club Web Site Starter Kit 作為樣板； 
&lt;P&gt;在您的網站中，首先在根目錄中我們建立一個”ATestPage.aspx”，接下來在加入一個子目錄 “MyFolder”，並且在目錄內加入兩個簡單的 FooPage.aspx， 完成以後的專案架構如左圖： 
&lt;P&gt;接下來，在專案節點下案下滑鼠右鍵選擇 “Publish Web Site”, 我們討論的腳本由這裡開始： 
&lt;H5&gt;Updateable 佈署模式&lt;/H5&gt;
&lt;P&gt;&lt;IMG height=121 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image005.gif" width=544 border=0&gt; 
&lt;P&gt;圖表 2 
&lt;P&gt;和ASP.NET1.x的內定腳本相同，ASP.NET 2.0 的執行引擎，允許您的.aspx網頁被即時監控與自動更新，要達到這個功能，VS 2005開發工具支援了Updateable 的佈署功能，讓您的ASP.NET 2.0應用程式，即使在正式上線的環境中，仍可直接改動單一網頁(.aspx/.ascx..)檔案，系統能夠自動更新。 
&lt;P&gt;為什麼採用 Club Web Site Starter Kit ? 
&lt;P&gt;微軟的Club Web Site Starter Kit前端的網頁全部都採用了 Code-Inline 方式撰寫，也就是網頁HTML敘述與對應的Event Handling 源碼，都放在同一個檔案中，這對我後續的說明有幫助。 
&lt;P&gt;我們可以觀察佈署以後的系統： 
&lt;P&gt;&lt;IMG height=208 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image007.jpg" width=553 border=0&gt; 
&lt;P&gt;&lt;IMG height=190 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image009.jpg" width=554 border=0&gt; 
&lt;P&gt;&lt;IMG height=85 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image011.jpg" width=554 border=0&gt; 
&lt;P&gt;所有的 .aspx/ .ascx/ .master … 等 IIS 資源檔案全部會被佈署到環境中，同時所有的 .cs 檔案已經被 compiler 為對應的 .dll 組件檔，.aspx等頁面檔案，仍保持不變。在這個編程佈署的過程中，有個簡單的遊戲規則存在： 
&lt;P&gt;n App_Code 目錄的資料，完整的會被編程到單一的 App_Code.dll 
&lt;P&gt;n Global.asax 檔會被編程到 App_Global.asax.dll 
&lt;P&gt;n .aspx/.ascx /.master 的 code-behind 檔案，將會被按照目錄不同編程到不同的 App_Web_隨機碼.dll 
&lt;P&gt;直接打開 ILDASM 工具來驗證： 
&lt;P&gt;&lt;IMG height=201 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image012.gif" width=478 border=0&gt;&lt;IMG height=214 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image013.gif" width=475 border=0&gt; 
&lt;P&gt;優缺? 
&lt;P&gt;Design 無對錯，只要最適合目前困境的設計就是個好的設計。Updateable的佈署架構，非常適合當系統佈署以後您的組織會需要頻率較高的調整網頁架構。然而 Updateable的佈署架構，因為仿照了過去 ASP.NET 1.x 架構，因此在系統頁面第一次被瀏覽時才會去編程對應的.aspx檔案，因此第一次都是會比較慢的呈現畫面。如果您的考量在不希望Page有Request Time Compiler的動作，那Updateable也許不是您的最佳佈署解。 
&lt;H5&gt;Fixed Naming &amp;amp; Single Page 佈署模式&lt;/H5&gt;
&lt;P&gt;&lt;IMG height=119 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image014.gif" width=537 border=0&gt; 
&lt;P&gt;Fixed naming的佈署架構，在系統佈署之後，你會發現基本的檔案結構和 Updateable幾乎是一樣的，但肚子裡頭可是完全的不同了： 
&lt;P&gt;&lt;IMG height=205 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image016.jpg" width=553 border=0&gt; 
&lt;P&gt;&lt;IMG height=203 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image018.jpg" width=553 border=0&gt; 
&lt;P&gt;&lt;IMG height=55 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image020.jpg" width=553 border=0&gt; 
&lt;P&gt;Fixed Naming 佈署模式基本上會將每一個IIS認得的資源單位獨立編程為單一的.DLL.，同時因為Page等事先會被編程，因此對應的 .ascx檔案根本上就不需要存在於佈署環境中； 
&lt;P&gt;一個遊戲規則依然存在： 
&lt;P&gt;n App_Code 目錄的資料，完整的會被編程到單一的 App_Code.dll 
&lt;P&gt;n Global.asax 檔會被編程到 App_Global.asax.dll 
&lt;P&gt;n .aspx/.ascx /.master 檔案與所屬的code-behind 檔案，將會被編程到各自獨立的 App_Web_隨機碼.dll 
&lt;P&gt;&lt;IMG height=264 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image021.gif" width=454 border=0&gt; 
&lt;P&gt;特點： 
&lt;P&gt;在 Fixed naming 的佈署模式下，您可以任意對某個頁面做版本更新，同時ASP.NET 2.0執行引擎不再監控每個 .aspx/.ascx/… 檔案，不會有 Request Time Compiler情境出現，使用者瀏覽網頁系統，完全不會有第一次瀏覽系統比較慢的情況出現。 
&lt;H5&gt;混合Updateable &amp;amp; Fixed naming 佈署模式&lt;/H5&gt;
&lt;P&gt;&lt;IMG height=118 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image022.gif" width=537 border=0&gt; 
&lt;P&gt;瀏覽致此，您應該不難猜測何謂混合模式了吧 J 
&lt;P&gt;混合模式，簡單來說就是上述兩者佈署模式的特點做了整合，一但您的應用程式採用了這種佈署模式，您的系統將享有”單一.aspx/.ascx/.master的Code-Behind檔案” 單一.Dll的包裝，同時，您的.aspx/.ascx/.master頁面檔享有ASP.NET 2.0引擎監控更新的優勢；當然，因為即時間控下，Request Time Compiler會讓您的系統第一次瀏覽會比較慢。 
&lt;P&gt;我們同樣的做些簡單觀察： 
&lt;P&gt;&lt;IMG height=247 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image024.jpg" width=554 border=0&gt; 
&lt;P&gt;還記得我們特地挑選的 Club Web Starter Kit 嘛，這裡剛好解釋了 我們自行加入的 FooPage等，因為採用了標準的 Code-Behind 架構，因此對應的 .cs 檔案已經被編程到 對應的.DLL組件中，但其他採用 Code-Inline架構編程的頁面，則交由ASP.NET 2.0 執行引擎監控與編程。 
&lt;P&gt;&lt;IMG height=82 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image026.jpg" width=553 border=0&gt; 
&lt;P&gt;&lt;IMG height=196 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image027.gif" width=496 border=0&gt; 
&lt;H5&gt;No Control with All Binary 佈署模式&lt;/H5&gt;
&lt;P&gt;&lt;IMG height=117 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image028.gif" width=536 border=0&gt; 
&lt;P&gt;如果您不打算對 Deployment 的組件做任何考量與思考的話，那麼將所有選項取消以後，您可以得到由VS 2005工具，針對您的站台頁面與設計的架構(相依性等考量)編程出來的純 .DLL 組件。在這個模式下，所有的 .aspx 等頁面檔案，一樣會和Fixed naming架構一樣，事先被 compiler 到 .DLL 組件內；您不能夠控制檔案對應的 .DLL 組件數目甚至名稱。 
&lt;P&gt;請注意，因為您不能控制組件名稱與數目，更新站台等於是要將所有 \bin\ 目錄中的 .dll 全部置換，否則系統會有組件 binding 等問題。 
&lt;P&gt;事實上，我應該說的更直接些，截至目前為止，我還想不出來任何一個觀點在實務上您會套用這種佈署模式 J，當然如果有，請您告知我也讓我成長些 
&lt;P&gt;&lt;IMG height=252 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image030.jpg" width=542 border=0&gt; 
&lt;P&gt;&lt;IMG height=54 src="http://www.refines.info/MyWrittingPlan/msdnblogs/InsideASP.NET2.0_CE9C/clip_image032.jpg" width=553 border=0&gt; 
&lt;H4&gt;另一個選項：Visual Studio 2005 Web Deployment Projects&lt;/H4&gt;
&lt;P&gt;緊接著在 05 年底上市的 VS 2005 工具，微軟在 06 年初附上了另一個佈署您 ASP.NET 專案的選項『Visual Studio 2005 Web Deployment Projects』，這是個 VS Add-In 工具，讓您在 ASP.NET 應用程式的佈署上，有更多的整合選擇方案。 
&lt;P&gt;VS 2005內建的佈署精靈，雖然是經過微軟內部緊密的針對開發人員腳本中，規劃出來的功能工具，然而對於真正的開發應用上，很快的就發現了內建功能在某些情敬上，並不足夠讓人滿足：舉例來說，在內建的佈署規劃中，開發人員無法為編程以後的組件命名；開發人員無法在編程佈署的過程中，針對”Pre-Build” / “Post-Build”做描述規劃，開發人員無法控制佈署後專案對應的IIS虛擬網站應用名稱。對80%的使用者來說，這也許並不重要，但對於20%的人員來說，這簡直是一種難以言喻的遺憾。 
&lt;P&gt;細膩的使用規範，在微軟的官方網站上可以取得 
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx"&gt;http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx&lt;/A&gt; 
&lt;P&gt;圖文並茂的資訊，雖是以英文呈現，但是卻難不倒那些屬於20%的進階使用者。 
&lt;P&gt;對於Visual Studio 2005 Web Deployment Projects細節，小弟認為，因為已經有了詳細的英文說明，再加上前文中對於佈署架構的討論，對於同為軟體設計者的您而言，再次描述只是中文翻譯，浪費資源與汙辱您的智慧了。 
&lt;H4&gt;結論&lt;/H4&gt;
&lt;P&gt;個人的學習經歷中，認為軟體架構師對於軟體成敗是覺對性的重要因素，但軟體架構師對於技術的細膩度卻不必然是100%掌控著，站在這個角度思維，我們就會發現，有些技術細節對於 軟體架構師 是十分重要的；因此 佈署的細節就不能馬忽地待過，這也是本文的重點： 
&lt;P&gt;&lt;B&gt;&lt;U&gt;提供您足夠的細節，讓您的決策與判斷力足夠清晰&lt;/U&gt;&lt;/B&gt;&lt;B&gt;&lt;U&gt;&lt;/U&gt;&lt;/B&gt; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=751703" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>ASP.NET 結合 Team Build. 相當重要的議題</title><link>http://blogs.msdn.com/polo_lee/archive/2006/09/02/736784.aspx</link><pubDate>Sat, 02 Sep 2006 18:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:736784</guid><dc:creator>polo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/polo_lee/comments/736784.aspx</comments><wfw:commentRss>http://blogs.msdn.com/polo_lee/commentrss.aspx?PostID=736784</wfw:commentRss><description>&lt;P&gt;我一直認為, 好的軟體架構師 絕對不是 天上飛的那種&lt;/P&gt;
&lt;P&gt;否則就是定義上的 模糊... 至少 和我的不一樣...&lt;/P&gt;
&lt;P&gt;對於 軟體佈署議題 我一項認為 是非常重要的... &lt;/P&gt;
&lt;P&gt;這裡收集的兩分 文件 剛好 點綴出 ASP.NET 與 Team Build 的結合&lt;/P&gt;
&lt;P&gt;一旦 架構完整, 你的 ASP.NET 系統能夠自動的 建構 並且將最新的 版本&lt;/P&gt;
&lt;P&gt;直接 派送到 你的 測試伺服器中,&amp;nbsp; 是不是很棒呢 ? 至少 是我想要的一種軟體協同運作架構&lt;/P&gt;
&lt;P&gt;第一篇: How do I build a Team Project with shared code?&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.vertigosoftware.com/teamsystem/archive/2006/08/22/3403.aspx"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;http://blogs.vertigosoftware.com/teamsystem/archive/2006/08/22/3403.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;結合了 VS 2005 Post Build Event 與 簡單的客製化 MS Build Script. &lt;/P&gt;
&lt;P&gt;第二篇: Web Application Project in Team Project&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.vertigosoftware.com/teamsystem/archive/2006/08/22/Web_Application_Projects_in_Visual_Studio_2005.aspx"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;http://blogs.vertigosoftware.com/teamsystem/archive/2006/08/22/&lt;br&gt;Web_Application_Projects_in_Visual_Studio_2005.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;WAP 是相容 VS 2003 架構的一個重心, 當然對應到 Team Build 做法上也有不同.. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=736784" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/polo_lee/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/polo_lee/archive/tags/Build+_2600_amp_3B00_+Deployment/default.aspx">Build &amp;amp; Deployment</category></item></channel></rss>