2013年8月29日

Visual Studio - 內建的todo list

這個是最近看到MSDN的一個功能,我覺得還滿有趣的,就把他在這邊紀錄一下。

我們寫Code的時候,常常會遇到一些狀況,並且寫在註解裡面,例如,要修正這個bug,這個問題還沒解決,或是這邊未來要重構,那我們可能會寫誠如下的註解。

image

但今天好玩的是,如果我們在註解前面加上todo,也就是key成//todo xxxxx,那其實Visual Studio會自動幫我們做整理與紀錄,如下圖,我們要在工作清單那邊,改成註解,就可以看到我們在Code裡面打的東西了… ( 找不到工作清單的朋友們,可以到上面Menu的檢視底下,就可以看到工作清單 )

image

這樣就結束了嗎??no,其實除了todo外還有很多東西可以用,我們可以從選項裡的工作清單發現,其實還有HACK、UNDONE可以註解;當然,也可以自己新增,但自己新增的東西,並不會同步到團隊的喔

image

基本上就是這樣,小小的一個功能,但其實還不錯用~~

參考資料

2013年8月26日

Windows Azure - Virtual Network

其實Virtual Network很早就出現在Windows Azure的家族裡面,但是小弟一直處於兵荒馬亂的情況下,實在撥不出一些時間來好好的玩一玩與紀錄 ( 迷之聲 : 是在打電動吧!? ),而稱著這段時間,在看一些SQL Server in Virtual Machine的資料的時候,就順便也把Virtual Network給k一下了。

Virtual Network,可以說是一個重要的服務,為什麼!?,因為天與地就是靠他來聯繫,來達到混合雲的架構;其實說到這,大家應該就能體會到,( 其實看到名稱應該就可以聯想到了吧0 0.. )。是的,Virtual Network就是建築出一個虛擬的網路,來讓天與地都能加入此網路,形成一個獨立且安全的網段!!!當然,這個服務基本上是和Virtual Machine最緊密的整合( 因為都叫做Virtual!?,好啦,我知道很冷… ),我們可以透過此服務,讓我們在Azure上的VM,和本地端的Server整合起來,就像區往依樣!!

ok~說了那麼多,我們還是來實作看看吧,喔,對了,今天這個實作,基本上還不會有整合的例子,這邊只是純粹的在教大家設定喔!!另外,這篇的基礎主要來自於這邊,有興趣的也可以參考原文

好的,首先,一開始,我們就直接進入管理介面,建立一個Virtual Network吧。

image

接下來,就是看圖說故事了,我們要輸入名稱,然後要選擇"同質群組";是的,Virtual Network一定要建立一個同質群組( 或是選擇以前建立好的 );那甚麼是同質群組!?,簡單的說,就是告訴Azure,你的這些服務都是相關的,例如Cloud Service和SQL Database都是同一個群組,那Azure在建立的時候,就會讓他們當好鄰居,這樣在互相溝通的時候,就會有比較大的效益,不會有牛郎織女的情況喔!!

那下圖是第一次建立的情況,假設沒有設定過同質群組,那就需要補上地區和同質群組的名稱。

image

接下來,就是選擇DNS伺服器和VPN連線能力,基本上這邊我們都先不用Key,因為這是最簡單到不行的一個範例…,但DNS伺服器是拿來做甚麼的呢??,DNS Server是用來解析,原則上,如果沒有輸入,那Azure會自動幫我們配好DNS Server,來做名稱的解析,但這也僅限於Azure上而已,畢竟我們回過頭來想想,Azure也沒地方可以讓我們輸入新的名稱解析…,所以如果有需要自己控制,或是需要解析本地端的情況,就需要自己處理DNS Server了。

接下來是點對站和站對站的部分,因為這次我們不會做,所以也不用勾,基本上,這部分就是在處理與本地端的連線,未來會再補上這邊的教學。

image

接下來,就是定義這個Virtual Network的網路位置,老實說,現在的介面比之前的友善太多了,連IT白癡的小弟,都看得懂了0 0..,這邊你可以設定往段,不過只能設定私有的喔;我們可以從起始IP那邊設定,並且從CIDR那邊選擇要多少個數量,像小弟就是設定192.168.0.0開始,然後預計使用256個IP位置,所以系統就自動貼心地幫忙算出可用的範圍為192.168.0.0~192.168.0.255( 超佛心的啦!! )。

而當我們自定義好區段後,我們還可以再去做切割,分成好幾個子網段,而小弟這邊,就直接切一個就好了,所以子網路那邊就不動作,但有需要的人,可以再加入子網路,就可以在192.168.0.0~192.168.0.255之間在去做切割喔!!

image

按下去後,Virtual Network就建立好了~~ ( 超簡單的啦!! )

image

接下來,我們要創建一個新的VM,然後加入這個網段;當然過程中,其實沒有甚麼需要特別注意的,不過如果留心的話,會發現,如果我們建立好Virtual Network後,再建立VM,就會出現如下圖的選項;是的,我們可以從這邊選擇我們剛剛創建好的Virtual Network和子網路區段。

image

其他的建立VM的步驟,小弟就不多提了,因為都一樣。當建立完之後,從網路資訊那邊,就可以發現,已經是我們剛剛設定的192.168.0.0的區段了。

image

就這樣,第一步的體驗,就是那麼的簡單喔!!

參考資料

2013年8月23日

Windows Azure - SQL Database Data Sync

Windows Azure上,除了一般的SQL Database服務、VM服務外,還有一個非常強大的服務,那就是Data Sync,Data Sync如名子所述,就是資料同步的利器,除了可以將Local的資料同步到Azure的SQL Database外,還可以把Azure的SQL Database當作中繼點,散布到其他台的db去,如MSDN提供的下圖,我們可以看到整個架構圖,透過Data Sync,可以當作中樞,來同步所有的db。

image

那到底怎麼做呢?現在,我們就來試驗看看。首先,我們要先在Windows Azure的管理介面,選擇加入同步。

image

然後我們要先選擇"新的同步代理程式",來建立一個新的同步代理程式,這樣才能把讓Local端的機器,和Azure註冊。

image

按下去後,在設定完同步代理程式之前,我們需要先在Local端安裝同步代理程式,這樣才有人會自動地去同步這些東西。

image

目前也只有英文版可以用。

image

選擇這個來下載。

image

另外,我們可以從下載頁面,打開System Requirements看到一些要注意的事項,目前同步代理程式需要安裝SQL Server 2012 CLR Types x86和SQL Server 2012 Hared Management Objects x86的英文版( 中文版或是太新版本都不行…因為在Preview嘛… ),所以如果之前已經有安裝了,要先移除,可以參考我好友Terry的這篇文章;如果還沒裝,就去下面那兩個網址下載吧。

image

接下來,就進入安裝的步驟。

image

如果沒安裝那兩樣,就會跳出警告,而且目前裝了最新版或是中文版,一樣不行,所以請乖乖地使用英文版。

image

最後,官方也提出一個警告如下

  • Be sure that this Windows Service account has permissions to connect to all the on-premises databases you want to register with the agent.
  • Be sure that the service account has network access through network proxy and firewall.
  • If you have a network proxy ensure that the service account can connect to SQL Data Sync (Preview) service through the proxy.

To later change to a different service account you must uninstall the current client agent than install a new client agent under the new service account.

大致上的意思是說,如果要確保能連線到Database,你必須註冊,此外,也請確保此服務帳號,可以通過與訪問,而比較重要的是,如果要改變服務帳號,那必須把程式移除後在重裝;另外,當此代理程式和Azure上對應過後就不能改了喔,如果要改,也必須要先把程式移除掉。

接下來這邊,輸入服務的帳號與密碼,小弟就直接用自己的帳號了,如果是架設在正式的Server環境,就又特別注意權限了。

image

經過超長的設定與安裝,我們終於可以回到Windows Azure下,繼續設定。

image

設定完成後,我們要取得金鑰,可以按下產生,產生金鑰。

image

接下來,我們打開剛剛裝好的Microsoft SQL Data Sync Agent程式,並且輸入剛剛給的金鑰;在一次的提醒,此代理程式,金鑰輸入進去後,如果未來要改,就必須把程式移除後重裝喔。

image

接下來,選擇要註冊的DB,也就是Local的哪一個db要準備加入群組。

image

到這邊,代理程式就準備好了。

image

接下來,我們準備好代理程式後,我們要使建立一個同步群組。

image

這邊,我們開始建立一個同步群組。

image

接下來,我們要決定哪一台當作中樞,也就是資料的集散地,基本上,所有群組的資料,都會先到中樞,然後再去做散發。

image

接下來,加入要參考的資料庫,也就是說,中樞的db要散發給誰。

image

完成之後,我們可以看到,其實目前還未就緒,因為我們還沒決定要同步那些東西。

image

接下來,我們來到同不規則的地方,點選定義同步規則。

image

這邊,我們就可以則到Local端,剛剛用Microsoft SQL Data Sync Agent註冊的DB了。

image

然後就可以挑選,要同步那些Table。

image

決定之後,就可以存檔,並且同步。

image

我們可以從記錄這邊看到經過。

image

最後,如果想要讓他自動同步處理的話,我們就從設定這邊做調整,只要開啟,並且設定頻率,未來就會自動同步了!!

image

這樣就完成了Sync的機制,很簡單吧

後記

透過Sync的機制,大幅度的強化了SQL Database的可用性,我們可以透過Sync,來讓SQL Database只處理Read的部分,來讓讀寫分流,也可以透過Sync來讓全球各地的資料庫同步化,這些如果是以前,都必須花費很長的時間設定與測試,而現在只要透過SQL Sync,就可以輕易地做到了。

參考資料

2013年8月22日

Windows Azure - 使用SQL Server的DAC來輸出資料到Azure的Blob

隨著時代的進步,Windows Azure的發展,現在Windows Azure和SQL Server的結合越來越緊密,而今天,我們就來看看,透過DAC的機制,來將SQL Server的資料,輸出一份到Azure的Blob,並且在從Azure的Blog佈署回SQL Server。

但在開始之前,或許大家對於DAC比較不熟,DAC主要是用來封裝資料庫的結構,至於為什麼要這樣呢?因為在正式的環境裡面,一般的開發人員不太可能會碰到正式的DB,而開發人員使用的是測試的DB,正常的情況下,通常是在Local開發,然後在佈署到測試db,但最終怎樣把修改過的結構給DBA呢??結論就是使用DAC,然後DBA拿到封裝包後,在去正式機上佈署。

而DAC通常有兩種封裝,一種是dacpac和bacpac,dacpac代表的是指封裝結構,而dacpac則會一起封裝資料,這邊使用的會是bacpac,這點大家也要注意一下。

從本地資料庫將資料輸出到Azure的Blob備份

在開始前,我們要先在Windows Azure那邊,建立一個新的Blob。

image

建立完成後,我們要進入那個Blob,然後建立新的容器;這邊的存取請選擇私用,表示只有此帳號的人可以讀取,才不會資料庫的東西被別人偷走。

image

容器建立完成後,就可以回到SSMS裡面,而要使用這個功能很簡單,我們只要在想要輸出的資料庫這邊,按下滑鼠右鍵,就可以看到選項如下。

image

接下來,我們可以看到這個簡介,我們可以看到,此精靈會幫我們匯出BACPAC ( 也就是包含資料 )。

image

接下來,我們要選擇連接,連線Azure的Blob

image

按下去後,會出現一個連接至Windows Azure儲存體的視窗,我們必須回到Windows Azure的Blob取得相關資料;回到Blob的儀表版,下面有一個管理存取金鑰,點下去後,就可得到我們想要的資訊,並且填入到SSMS的對話框中。

image

如果無誤的話,就可以取得到容器,這邊小弟的容器是亂打的test123。

image

最後,他會讓我們確認資訊,無誤後,就可以按下完成,開始匯出到Azure的Blob。

image

在處理的過程。

image

當完成後,我們回到Windows Azure的Blob看看,就可以發現到已經傳上去了。( 這邊有兩筆,是因為小弟測試了兩次。 )

image

這樣就完成了資料的備份。

從Azure Blob將資料匯入進來

接下來,我們要把剛剛的資料,匯入回本地的資料庫,這次我們選擇匯入資料層應用程式。

image

可以從這邊看到,我們還是利用BACPAC檔案來進行處理。

image

這邊的作法其實也都是一樣,所以就不多加解釋了喔~~

image

然後可以選擇新的資料庫名稱。

image

一樣有一些確認的資訊。

image

接下來,就開始處理了。

image

完成之後,就可以發現,我們新的資料庫已經匯入進來了,而且連資料也可以保留喔!!

image

到這邊,就算完成了。

後記

現在的東西,和Windows Azure的整合越來越緊密,除了從本地的DB可以透過DAC來將資料往上拋外,可想當然爾,Azure VM裡面的DB當然也是沒問題的,但更讓人震驚的是,Azure SQL Database也可以簡單的輸入與輸出資料到Blob,也讓整個應用更加的串接起來,更加的廣闊了。最後,如果想要手動輸入T-SQL來做的朋友們,也可以參考我好友Terry的連結喔!!~

參考資料