[心得] MSSQL Server 2008 - 程式開發 研討會心得

摘要:MSSQL Server 2008 - 程式開發 研討會心得

2008/8/15
今天到MS去聽SQL SERVER 2008程式開發的新觀點,感覺與SQL SERVER 2005有不同的跳脫,提供了更多的新事物。
包括:Data Services、Change Tracking、空間資料存取、LINQ、ADO.NET Entity等,才發現好久沒有仔細搞搞SQL Sserver了。
以下就把今天聽到一些我有興趣的部分提供給大家知道,另外也有一些是有underline的部分是我自己目前想到的疑問:
 
Data Sercies
提供直接使用熟悉的HTTP技術,透過POST、GET的方式來完成CRUD的操作,這個方式提供Silverlight目前很方便的使用,
主要因為Silverlight目前會從Database中操作的部分都不逃出這四大項目,因此也提供簡單的作法讓開發人員能方便的完成。
這個跟另外在研究Flex的部分也有相似的部分,Flex也有提供HTTPServices的方法讓開發人員可以直接來取得所需要的資訊,
另外,Flex在HttpServices的部分也提供整合ASP.NET、PHP、JSP等熟悉的Server-Side的技術。
至於直接透過HttpServices與Web Services的運用有那些差異,我想這個也是值得好好研究的部分。
 
Change Tracking
這個是MSSQL 2008針對與多部devices之間資料同步的處理。過去透過MSSQL 2005如果要做同步時資料衝突的處理,可能會直
接在Table上建立二個欄位來紀綠修改前與修改後的時間點,再建立一個Trigger的方式在比對同一個Table與Devices之間Table的
差異,再來決定是誰要被修改的部分。到了MSSQL 2008與VS 2008 SP1時,透過VS 2008 SP1你可以建立一個local cache的方式,
在Device上存放一個我們熟悉的小型SQL CE,目前大部分的Devices,例如:HTC手機、ASUS的pda或pda手機等都有內鍵SQL CE,
SQL CE本身也不大,大於在2MB左右,它可以暫存或擷取住我們目前修改的資料,接著在透過Local Cache自動幫我們建立change
tracking的機制,讓開發人員可以直接使用進行與MSSQL內資料的比對。底下有change tracking的一些範例:
http://byronhu.spaces.live.com/Blog/cns!BF14192BD27975CB!594.entry。另外,目前像Google Gears、Adobe Air他們也有在做這些離
線非同步存取的方式,到有連線時再進行同步處理的比對也有一些應用,不過我想目前用的最理想的應該是在我們熟悉的Outlook吧。
不過,如果Devices多的話,同時多人對這個Table做修改時的比對方式,我想也是可以查查相關msdn的部分
 
空間資訊存取
MSSQL 2008增加了空間資訊存取的能力,讓開發人員可以把一些經度、緯度或xyz這種資訊放入在Database之中,並且提供建立
搜尋最佳化的效能處理,另外也可以結合Virtual Earth SDK來將存於DB中的地理資訊透過.NET程式將其顯示出來,不過如果您要
做的是台灣的地圖也許可以使用:URMAP、GoogleMAP會來的比較清楚一些,因為目前Virtual Earth沒有中文化,相當可惜。
不過我想這些空間資訊存取對於GIS地理資訊系統的開發人員會比較需要,但是MSSQL 2008目前只有提供到二維度的處理,所以
仍然有很多可以增加的部分。
 
LINQ
LINQ在.NET Framework 3.0、3.5出來的時候也被談了很多,我一開始對於LINQ的東西也是一知半解,前幾篇文章也有對於LINQ的
運用去引用了一篇國外的文章來進行說明與練習。其實簡單的來看,LINQ是把Table物件化了,當然也許這樣說不太對,不過LINQ
確實是幫我們改掉一些對於T-SQL、XSLT等複雜語法的使用透過直覺式的寫法把查詢指定撰寫完畢,另外,LINQ也提出:
LINQ to SQL與LINQ to Entities,前者是對於SQL Server資料庫的存取,後者是提供更豐富的抽象,來解決一些需要大量彈性的問題
例如:OR Mapping。LINQ to SQL 主要是把SQL Server資料庫內物件1對1的方式對應到Class上,因此在使用前會在vs2008上建立一個
對應的xml檔,那為何需LINQ To SQL,我覺得可以參考:http://www.kangting.tw/2008/01/linq-to-sql-sql-like.html。這篇寫的也蠻不錯的。
另外再提供原廠的MSDN,大家有興趣也可以玩玩,我也剛拿到一本LINQ的書,我玩出心得會再繼續上來提供我的經驗。
 
ASP.NET Entity Framework
這個是我第一次聽到的Framework,它主要做的工作,是把應用程式模型與儲存定義做一個分開的動作,讓程式與資料儲存可以互相獨立,
這樣一來,如果我那天DB的欄位修改了,也不會需要把我整個程式做完全的修改,提供相當有彈性的對應方式。舉例來說:
應用程式端的部分就可以根據不同的需求建立所使用的LINQ to Entity或LINQ to Dataset,接著在透過ADO.NET建構於原始DB之上,再提供
對於的Entity或DataSet來進行資料的儲存。這個部分ADO.NET也有提供Data Services的功能,大概的概念就加同上述所提的這邊就沒有在多提。
 
以下有提供一些我覺得還不錯的References,有興趣的都可以去瀏覽看看。.NET的速度、VS2008、MSSQL2008、Windows Server 2008,
這個2008年,多了好多新的東西,今天又收到RSS,MS也提出自己的Live Mesh,看來雲端計算的發展,又有另一個分支出現,
感覺都很有興趣。
 
References: