2011年2月15日 星期二

2-4 Visual Studio 2010不可忽略的新功能與改變

        不要輕易錯過這章節!
        以往在寫程式的時候,常常發現一個狀況,一直在做的某一個常常做的動作,突然有一天,發現,咦?怎麼原來隔壁同事不是這麼做的!?哇~別人怎麼只需要30秒?

        特別是過去一直使用Visual Studio的開發人員,很多時候我們以為每天在用的開發工具已經很熟了,卻沒發現其實功能已經增強了很多,所以,在VS2005改版不少的情況下,稍微翻翻本節吧,或許你會有想不到的收穫。

備註:
本章的內容將持續更新,會同時包含VS2005-VS2010的新功能,請持續關注。

2-4-1 拖曳或點選出一個控制項
        然後按下F5執行,第一次執行的時候,開發環境可能會出現底下的畫面,由於我們需要偵錯的功能,因此直接按下確定:

        由於預設的模式改為FlowLayout,因此整個網頁的設計建議您使用表格來切割,這部分我們會在後面來介紹,第一張建立出來的網頁就是Default.aspx(預設),您可以輕易的將一個控制項安置到頁面上:
        過去在VS2003之中,在『原始檔編輯模式』底下,您無法將控制項拖曳到頁面上,但是在VS2005環境中,無論您在『原始檔編輯模式』底下,或是『設計模式』底下,可以拖曳工具箱中的控制項到頁面上。

        由於拖曳的時候,工具箱會擋住頁面,因此您很難將控制項拖曳到適當位置,若您不太習慣這個方式,有一個小技巧可以參考,您先將游標放在您要插入控制項的HTML位置,然後點選工具箱的控制項,Double-Click即可。
另外一個值得一提的部分,ASP.NET 2.0之後的控制項增加非常多,共區分為八類:

類別
功能
標準控制項
ASP.NET 1.1功能相同的控制項
資料
新增的資料繫結控制項
驗證
ASP.NET 1.1功能接近的驗證控制項
巡覽
新增的選單、網頁導覽、和期待已久的TreeView控制項
登入
全新的登入機制控制項
WebParts
全新的WebParts控制項
HTML
基礎的HTML控制項(1.1稱為『控制項』,現在稱為『片段』)
Crystal Reports
Crystal Reports有關的Web 控制項
        在本書後面的章節,將會為您慢慢討論這些新功能。

我們依照一樣的方式,拖曳出一個按鈕,放在TextBox之後:
        我們對照一下,上圖是『設計模式』和『原始檔模式』的比較,過去在ASP.NET 1.1的時代,預設是『設計模式』,而現在在ASP.NET 2.0後的時代,則預設為『原始檔模式』,儘管您依舊可以在兩種模式中切換,但是建議過去APS.NET 1.1的開發人員,可以開始逐漸習慣原始檔模式。
變成原始檔模式???
為什麼從預設的設計模式變成原始檔模式?有很多Web開發人員其實是習慣編輯HTML語法的,再加上Client端的JavaScript程式碼也是Web應用程式中很重要的部分,因此切換回原始檔編輯模式對於開發人員來說應該較為有利。此外,在VS2005中,原始檔編輯模式的標記(tag)編輯比起過去要好用很多,例如您點選某一個標記,會自動加粗顯示這個標記的頭尾(<asp:xxxx>…</asp:xxx>),您也可以直接把工具箱的物件拖曳到原始檔編輯模式中,將會直接以HTML方式呈現,這些都讓FlowLayout和原始檔(HTML)編輯模式的親和力大增。
不僅如此,在VS2010當中您可以選擇分割(Split)模式,同時檢視原始檔與HTML碼,相當的方便。

如果在設計模式當中,要撰寫控制項的事件很簡單,在控制項上面Double-Click就可以了:
        您會發現自動切換到Code Filedeault.aspx.vb』,在ASP.NET 2.0,網頁內容和程式碼切開,程式碼檔案在2.0叫做『Code File』,是網頁名稱xxxx.aspx加上.vb
        Code File的架構是ASP.NET 2.0的新名詞,這部分我們在後面介紹ASP.NET 2.0Web Form架構時詳細介紹,該章節也包含ASP.NET 2.0所提供的新型態程式碼後置模式(Code-Behind)的詳細討論,我們在這邊先看程式碼的撰寫。

我們在『Code File』中,會發現VS2005自動為我們加入:

我們撰寫底下程式碼:

0000:    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
0001:        '讀取系統時間,顯示到TextBox...
0002:        Me.TextBox1.Text = My.Computer.Clock.LocalTime
0003:    End Sub

        然後按下F5執行,第一次執行的時候,開發環境可能會出現底下的畫面,由於我們需要偵錯的功能,因此直接按下確定:

這個動作將會修改Web.Config中的『compilation』段:

   <system.web>
             <!--
            設定 compilation debug="true" 會將偵錯符號插入編譯過的頁面。因為這樣會
            影響效能,所以只有在開發期間才能將這個值設定為 true
            Visual Basic 選項:
            設定 strict="true" 會不允許所有可能發生資料遺失的資料型別進行轉換。
            設定 explicit="true" 會強制宣告各項變數。
        -->
                     <compilation debug="true" strict="false" explicit="true"/>


ASP.NET 2.0的偵錯模式中,也提供了相當多的更新,讓開發變得更為輕鬆。

說明:
上面這樣的設定會將整個網站進入偵錯模式,如果您只需要針對單一的網頁進行偵錯,可以在網頁的HTML碼上加入:
<%@ Page Debug="true" .>

2-4-3 虛擬IIS伺服器

接著你會發現,畫面右下角出現一個模擬IIS伺服器的圖示,並且網頁也已經可以執行:
        是的,在VS2010(VWD)中,您不再需要以IIS作為開發時的測試環境,您可以在僅安裝有VS2010的環境中,以『檔案系統』作為專案的儲存模式,而當您以『檔案系統』作為專案的儲存模式時,在測試的時候,就完全不需要IIS的存在,僅需要直接按下執行,或是透過方案總管瀏覽該網頁即可。

        VS2010會自動幫您建立一個虛擬的IIS,稱之為『ASP.NET程式開發伺服器』。

2-4-4 SmartTag

現在在ASP.NET 2.0中,你大概無法忽略SmartTag了,過去在ASP.NET 1.1時代,在操作控制項的時候,並沒有這項功能,當時,我們點選控制項,按下滑鼠右鍵,在選單中會有一些常見的功能:
        可能你很少這樣用,但是在VS2005,新增的很多控制項,如果你不用SmartTag真的是很難操作:

        SmartTag當中,會有該控制項常用的功能、屬性、和設定,可以方便開發人員對控制項進行處理。

        特別是幾個View控制項家族(GridViewListViewFormView…)因為有複雜的資料繫結功能,加上樣板(template)功能,所以您不使用SmartTag會寸步難行。

2-4-5 IntelliSense

        IntelliSense是在VS2003就有的功能,在VS2005將其功能更大的擴充,整個機制包含四項主要功能:
Ø   列出成員:
當您在程式碼編輯模式時,可以針對物件列出所有成員:
Ø   參數資訊:
您使用一個方法或是函式,可以按下『(』,將會列出需要輸入的參數,以及參數的資訊。
  Ø   快速諮詢:
             當您撰寫程式的時候,將游標移動到成員的上方,會自動出現該成員的說明文字:
  Ø   自動完成文字
             當您在撰寫程式時,只要您輸入了足夠的字元,可以清楚識別詞彙,IntelliSense可以自動完成變數、命令或函式名稱的其餘部分。
        更值得慶幸的是,整個IntelliSense都在HTML編輯模式被支援,也就是說,過去在VS2003裡面編輯HTML的痛苦經驗,在VS2005將會被大幅的改進:


2-4-6 方案總管的改變

VS2005中,畫面的右方是方案專案,方案總管較以前(VS2003)有許多的不同:
        首先,你會看到多了一個App_Data資料夾,如果您在Add_Data資料夾上.,點選滑鼠右鍵,按下加入新項目,您會看到如上圖的視窗,ASP.NET 2.0將程式中會用到的外部資源,整理到App_Data資料夾中。(最重要的是,可以加入一個SQL Server 2005 Express資料庫)
        在ASP.NET 2.0中,有許多以『App_』開頭的特殊資料夾,我們後面會介紹這些資料夾的功能。
        在方案總管中,多了一個按鈕,點選之後會出現『ASP.NET應用程式組態』,這個功能我們會在後面的章節時常看到,這個功能與登入控制項與會員管理機制有很密切的關係,並且可以設定應用程式的組態(我們在後面會詳細介紹)


        另外複製網站的功能,則方便我們將網站部署或是複製到另一個FTP, Web Site, 或是檔案結構(這部分在討論『部署』的章節會詳細介紹)

2-4-7 插入表格

        在過去,VS2003HTML編輯模式的使用令人詬病,從VS2002(Visual Studio.NET)開始,整個環境就被認為根本不是設計給網頁編輯人員用的(其實到現在筆者還是這麼覺得),因此開發人員(程式設計師)可能會覺得不錯,但是美編或是網頁設計人員,如果用Visual Studio.NET來設計網頁,肯定會抱怨不斷。

        但是,至少微軟是個懂得改進的團隊,因此,VS2005依舊對這個部分有些許調整,當您再設計模式時,可以按下『配置→插入表格』時,會出現底下的畫面:
        除了有範本可供您選擇,當然您也可以自行定義表格,包含設定表格的屬性和相關資料,比起過去的介面算是有點長進。

說明:
這個表格的功能,倒是對我們設計MasterPage方便不少,當您要切格頁面的時候,特別是設計MasterPage,可以直接用插入表格的功能,選取範本來選擇頁面的切格方式,您可以參考MasterPage章節,來了解相關的功能。

2-4-8 插入圖層(GridLayout不見了?)

        如果您是VS2003的愛用者,一定會發現一個重大改變,就是GridLayout不見了,在VS2005裡面,預設的模式FlowLayout,而過去GridLayout的編輯模式已經取消。

        因此有幾個方式可以取代過去GridLayout的功能,其中一個就是插入圖層:
        您可以在頁面上插入一個圖層,然後在圖層裡面加入控制項,透過圖層來搬移拖曳控制項,效果如同過去的GridLayout
在管理上也比過去整個頁面都是GridLayout搞出來的混亂的HTML碼來的乾淨方便多了。

說明:
倒是您如果堅持要回到過去GridLayout模式,則可以在選單中點選『配置→位置→自動定位選項』,您熟悉的GridLayout又會出現了。

2-4-9 設定絕對位置

        另外一個方式,當然是過去也支援的『樣式』設定,您依舊可以透過樣式來設定控制項的絕對位置,也可以用這個方式來彌補『消失了的GridLayout』的功能:


2-4-10 選取HTML標記

        這是一個在VS2005裡面的編輯模式底下的重要功能,過去Visual Studio環境裡面的HTML編輯一直很煩人,成對的HTML標記在複雜的頁面上顯示得一團混亂,找不出對應的標記也不知從何著手,現在,讓VS2005為您解決這個問題:
        您可以在設計模式,點選某個控制項,或是點選頁面底部的標記標籤,您可以選擇選取標記或是選取標記內容:
        當您標記之後,切換到HTML編輯模式,則會看到該HTML Tag已經被黑色的字框起來了,方便您編輯或調整。

        而您在HTML編輯模式中,不管用滑鼠點選哪個標記,都會以一組的方式來呈現:
        這對習慣編輯HTML的開發人員來說,是相當方便的功能。


沒有留言:

張貼留言