首頁‎ > ‎電子期刊‎ > ‎2005 年 第 10 期‎ > ‎

中學校園軟體工程流程與文件一例(四)


摘要

  • 文章編號:20050705
  • 投稿日期:2005/06/25
  • 作者:林恩正
  • 備註:


網頁與網站是應用範圍最廣泛的網路應用之一,好的網站會給提供使用者舒服的操作環境、良好的互動、與豐富的資料。設計出有強大的功能、簡單的操作介面就成了設計者發揮創意、巧思與技術的地方。


在網站的背後除了要有良好的設計外,還有一個很重要使得網站可以一直維持在良好狀態下的部分:維護。設計只是一時,維護卻是長久的。事實上,維護的人並不一定會與設計的人有相同的設計風格,也不見得會有相當的技術能力,那麼要如何來維護網站呢?


在設計的同時,維護也會是設計者考量的部分,也有可能在網站外還有一套系統是來協助部分的維護工作的,比如說更換網頁上的圖案、廣告,更新網站的資料…等 等的。所以我們發現,一個網頁上,通常都擁有多個區塊,如選單、標題、導覽等等,是由許多個小網頁所組成的。除了方便維護外,這樣的作法對程式的設計也是 有正面的意義的,在程式的設計中,常會使用到一個”元件”的概念,一個元件可能會被好幾個網頁使用,難道每個網頁都要重新寫一次嗎?如果要修改,豈不是每 個網頁都要修改嗎?


這就是元件的用途,只要把這個元件加到需要的網頁中,那麼每個網頁都會有這個元件而不用重複的開發,需要修改時也只要修改此元件,那麼每一個網頁就都會跟著改變了。


以往會使用例如框架頁的方式,將各個小的網頁結合成一個完整的頁面,但發現在分割成框架頁後,是在一個畫面上有很多個小部分獨立運作的,而不是真的就變成 一個網頁,所以並不是很好的方式。到了ASP.NET,有了User Control(使用者控制項) 這樣的技術,將元件寫成User Control,在同一個頁面中直接就把許多的User Control加入其中,效果就好了很多,使用上也相當方便。


到了ASP.NET 2.0版本,除了User Control外,多了一個新的技術:Web Parts。 Web Parts 除了是一種元件外,最利害的是使用者可以有選擇的權力,選擇要不要顯示、要不要縮到最小等等的個人化功能,就好像word的工具列,有這麼多的工具列,一般使用卻是把它關閉起來,有需要才顯示,讓版面更清爽。

在ASP.NET 2.0 的Web Part 設計概念中,Zone 是Web Part 的容器控件,一個Zone 可以存放一個以上的Web Part,但Web Part 並不繫結於某一個特定的Zone 上,訪問者可以自由的將某一個Web Part 遷移到另一個Zone 中。


對一般的開發者來說,WebPartZone 可能是最先接觸到的Zone,在其中可以包含任何控件或是使用者自行撰寫的Web Part,因為一般的ASP.NET 控件不能能直接放入Zone中,所以WebPartZone 會將每個控件包裝成一個GenericWebPart 控件再放入Zone 中。

每個擁有Web Part 控件的網頁中必須放入一個WebPartManager 元件,其功能是用於管裡該網頁中的所有Web Part 控件,請拖放一個WebPartManager 與兩個WebPartZone 至網頁上,接著在WebPartZone1 控件中放入一個Panel 控件,於其中再放入TextBox 及Button兩個控件,最後在WebPartZone2 中放入一個Button 控件,如圖1 所示。不需撰寫任何程式碼,直接啟動程式後就能看到這個網頁,如圖2。

圖一

圖二


接著請按下Untitled[2]的Minimize 連結,讀者們會看到該Web Part 縮小,接著關閉這個網頁再重新啟動,神奇的事發生了,Untitled[2]仍然是處於縮小的狀態,這就是先前所提的個人化功能之一,當訪問者將某個 Web Part 關閉後,於下次訪問這個網頁時,該Web Part 就不會顯示,WebPartManager 會為訪問者儲存Web Part 的設定資訊,設計師們一行程式都不必寫。

除了WebPartZone外,還有CatalogZone與EditorZone以及ConnectionZone三個Zone類 別,CatalogZone 的主要功能是讓訪問者調整網頁上Web Part 的顯示與否,而EditorZone的任務則是允許訪問者自訂某個Web Part的細部設定,如能不能關閉、標題、大小等設定。ConnectionZone則是提供每個Web Part 彼此間交換資料的通道,例如一個Web Part 顯示訂單,另一個Web Part 顯示某筆訂單明細,在這種情況下兩個Web Part 就必須共享某些資料,例如目前被選取的訂單等資訊。

Web Part的技術,給使用者與設計者帶來了不同於以往的彈性,設計者可以設計一個網頁同時能夠讓許多不同身份的使用者得到合適的頁面,使用者也可以依自己喜好來設計屬於自己專屬的頁面。最重要的是,這是相當容易達成的。

Comments