VS2010已經(jīng)發(fā)布幾天時間了,一些新的特性特別引人注目,比如:
除去以上特性,創(chuàng)建自定義SQL Rule也有所變化。本文就如何在VS2010中創(chuàng)建SQL Rule進(jìn)行說明 。
1.什么是Visual Studio Database Edition以及特性。
Visual Studio Database Edition(以下簡稱VSDB)是針對典型的數(shù)據(jù)庫開發(fā)任務(wù)而設(shè)計的,可以對原有數(shù)據(jù)庫反向工程,添加表,存儲過程和其他數(shù)據(jù)庫項(xiàng)目,而且有選擇性地將修改部署到目標(biāo)數(shù)據(jù)庫中。他的主要特性有:
1.1模型對比(Schema Compare)
在項(xiàng)目的維護(hù)和升級期間,至少需要維護(hù)產(chǎn)品數(shù)據(jù)庫(正在正式運(yùn)營的數(shù)據(jù)庫)、測試數(shù)據(jù)庫、開發(fā)數(shù)據(jù)庫這三個數(shù)據(jù)庫,那開發(fā)數(shù)據(jù)庫結(jié)構(gòu)變更后,如何同步到其他兩個數(shù)據(jù)庫上呢?模型對比功能可以很好地解決此問題。如果開發(fā)數(shù)據(jù)庫結(jié)構(gòu)變更,可以通過選擇菜單的Data → Schema Compare → Filter中選擇Different Objects, Missing Objects or New Objects來過濾列表。這個過濾可以使我們快速地看到哪些修改需要更新到目標(biāo)數(shù)據(jù)庫中。然后我們可以保存修改腳本到一個文件中,并在T-SQL編輯器或者直接將修改精寫入到目標(biāo)數(shù)據(jù)庫。
1.2數(shù)據(jù)對比(Data Compare)
用來比較兩個數(shù)據(jù)庫的表或者視圖中數(shù)據(jù)是否相同,可進(jìn)行比較的前提是數(shù)據(jù)庫名稱一致、表具有相同的主鍵、唯一索引或唯一約束。比較完后可以對修改保存到目標(biāo)數(shù)據(jù)庫或者腳本。這個特性可以將產(chǎn)品數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入到開發(fā)數(shù)據(jù)庫或者測試數(shù)據(jù)庫,以便于開發(fā)和測試。
1.3數(shù)據(jù)生成計劃(Data Generation Plans)
在項(xiàng)目中,開發(fā)團(tuán)隊(duì)每周至少一次提交版本到測試環(huán)境,測試人員針對新的數(shù)據(jù)結(jié)構(gòu)如何快速生成測試基礎(chǔ)數(shù)據(jù)呢? 數(shù)據(jù)生成計劃會解決此問題。在數(shù)據(jù)生成計劃計劃中,我們要定義生成數(shù)據(jù)的表、每一個表要生成的記錄行數(shù)和要插入數(shù)據(jù)的類型。數(shù)字類型比較容易生成,針對特殊的數(shù)據(jù)比如Email、電話號碼可以通過正則表達(dá)式RegEx完成。
1.4重構(gòu)(Refactor)
主要用來重命名數(shù)據(jù)庫對象,比如數(shù)據(jù)庫名稱,表名稱,視圖名稱。當(dāng)要重命名的對象改變后,對此對象的引用都會相應(yīng)地改變。
2.如何自定義SQL Rule
隨著時代的進(jìn)步及其全球化,企業(yè)業(yè)務(wù)越來越復(fù)雜,造成軟件項(xiàng)目也越來越龐大,軟件開發(fā)再也不是單槍匹馬的時代,靠一兩個人是完成不了任務(wù)的,軟件工廠模式是一個趨勢,軟件工廠生產(chǎn)線是一個方向,軟件的生成就可以像普通的產(chǎn)品一樣,流轉(zhuǎn)過整個生產(chǎn)線后,已經(jīng)定型并被客戶部署上線。龐大的生產(chǎn)線,龐大的隊(duì)伍,各式各樣的編程習(xí)慣,如何保證生產(chǎn)線的效率和軟件產(chǎn)品質(zhì)量,無規(guī)矩不成方圓,代碼編寫規(guī)范是其中很重要的一個規(guī)矩,數(shù)據(jù)庫命名規(guī)范也是代碼編寫規(guī)范里面比較重要的組成部分,VSDB可以很好地解決這個問題,強(qiáng)制要求開發(fā)人員按照數(shù)據(jù)庫規(guī)范來對數(shù)據(jù)庫對象命名。接下來讓我們看看如何解決這個問題。
2.1生成強(qiáng)命名類
調(diào)用命令行程序(路徑=系統(tǒng)盤:Program FilesMicrosoft Visual Studio 8SDKv2.0Bin) sn.exe -k FRIMLEC.text.snk然后把創(chuàng)建好的FRIMLEC.text.snk加入的工程中。設(shè)置參見下圖(選中工程右鍵--Properties--Signning)
提示:使用強(qiáng)名稱對程序集進(jìn)行簽名將向包含程序集清單的文件添加公鑰加密。強(qiáng)名稱簽名幫助驗(yàn)證名稱的唯一性,避免名稱欺騙,并在解析引用時向調(diào)用方提供唯一標(biāo)識。但是,任何信任級別都不會與一個強(qiáng)名稱關(guān)聯(lián)。