作者:鄒嘉明 / 臺灣大學計算機及資訊網路中心程式設計組資訊工程師
Silverlight 是一種微軟推出用來嵌入網頁的工具,類似於Flash相同的解決方案用來在瀏覽器上面跑的應用程式,它是在這樣的需求下用來取代Ajax的新一代產物,所以除了跑在微軟本身的IE之外,它也可以用在Firefox、Safari等瀏覽器上。如果您有興趣進一步的去了解它,那對您將來的架構規劃可能多少會有一些幫助。
前言
如果您是Java領域的專家,那您對MVC Design Pattern 架構的資料的存取方式應該不陌生。MVC是一個可保持系統架構清晰、具高延展性、可抽換性的開發架構,以降低維護成本提高重用性。就微軟.NET 2.0(含) 之前的存取架構來說,幾乎是一致的,但是到了.NET 3.5之後差異就比較明顯了,多了一些關鍵的開發架構,例如LINQ、ORM、MVC,這些concept在其他陣營其實也都有,只是它們多屬open source的產品,比較缺少特定開發環境的整合,以至於各家廠商所開發出的系統在架構上略有不同,不像微軟的產品有一個整合共通的架構而且更容易使用,並可以讓不同廠商所開發出來的系統在同樣的framework上運作。
Silverlight 在.NET3.5的遠端資料存取
Silverlight在.NET3.5上有清楚的展示層、服務層、AP層、DB層觀念。事實上.NET3.5所有的商業邏輯、資料處理都是放在WCF (或是Web Service) 所呼叫的 Business Object 中。當我們在撰寫 LINQ to SQL時,通常會利用 Visual Studio 2010 內建的 LINQ to SQL DBML Designer,好讓我們透過視覺化的介面將資料庫表格、檢視表或預儲程序從 Server Explorer 拖曳到設計視窗中,再利用LINQ to SQL去讀取該dbml檔。
利用Server Explorer從資料庫拖曳產生一個表格到emp.dbml檔
再利用LINQ to SQL去讀取該emp.dbml
.NET3.5可以讓我們透過 LINQ to SQL 去讀取資料,進而直接對資料庫進行呼叫並取得一個回傳的List,也就是所謂的Business Object。這個功能其實是類似Java的Hibernate,透過ORM ( Object-relational mapping ) 快速的與資料庫的員工資料建立關連以便進行查詢,進而提升存取速度。
Silverlight 與雲端服務結合
就微軟的雲端服務(WCF或是Web Service)來說,開發者可以將寫好的雲端程式丟到微軟所提供的Windows Azure服務上執行,使用者只需透過這個服務來使用已寫好的程式,而開發者就不需要有自己的設備,一切都在雲端上。雲端服務的興起也將帶動企業對豐富性網頁應用(RIA)的需求,透過豐富性網頁應用框架內建的使用者介面元件等工具,開發人員將不用再花許多時間進行程式編碼工作,可直接以拖拉等方式客製化使用者介面(UI) ,而這正是Silverlight目前所扮演的角色。
(圖片來源:http://imleo.wordpress.com/2008/10/28/windows-azure--微軟的雲端服務/)
結論
微軟Silverlight是一個跨流覽器、跨客戶平臺的技術,能夠設計、開發和發佈有多媒體體驗與富交互(RIA, Rich Interface Application)的網路交互程式。因為Silverlight提供了一個強大的平台,能夠開發出具有專業圖形、音頻和視頻的Web應用程式,增強了用戶體驗,所以 Silverlight 在吸引了設計人員和開發人員的同時,還提供了強大的工具來提高他們的工作效率,進而創建一種快速且具有高藝術性的應用程式
參考資料
1. http://studyhost.blogspot.com/2009/02/silverlight.html?showComment=1234634880000
2. http://www.ithome.com.tw/itadm/article.php?c=50575
3. http://imleo.wordpress.com/2008/10/28/windows-azure (微軟的雲端服務)
4. http://3c.msn.com.tw/View.aspx?ArticleID=37725