這是Orleans系列文章中的一篇.首篇文章在此html
Grain理想的生命週期應該以下圖所示:git
這就如美國電影中的大反派同樣,死了再復活,死了再復活.固然若是復活的反派沒有記憶,這個電影就真沒勁.如今我要求Grain的復活是有記憶的復活.看我怎麼辦到.github
其中持久化須要用到數據庫,由於只有數據庫才能比較方便的爲之後event sourcing作好準備.sql
這裏只介紹一種,使用sql server做爲持久化設備.爲了能使Grain保存本身的狀態值,咱們須要配置一下Orleans數據庫
在silo端配置中寫入以下配置:比較一下和上文配置的區別.框架
爲了讓使用Orleans提供的存儲中間件,還須要引用ide
並使用如下腳本在數據庫中建立Orleans所須要的表.地址是: https://github.com/dotnet/orleans/blob/master/src/OrleansSQLUtils/CreateOrleansTables_SqlServer.sql函數
這樣我啓動個人basic程序,Orleans就自動鏈接數據庫,並使用數據庫做爲Grain的持久化存儲設備.不過我還須要作一點點工做:server
返回到IGrains項目,我增長一個接口以下圖:htm
相應的,我又修改了Grains項目.如圖
我又修改了client項目
,咱們試試火力.只截取client的截圖.第一次運行應該有一條,而第二次運行應該有兩條
數據庫中查看是有數據的
這個文章就說了一個事,在配置好StorageProvider以後,可使用Orleans提供的函數,存儲或者讀取Grain的狀態值,這個Grain必須擴展自Grain<>.
若是夠細心會發現數據庫中的表有version字段(截圖中沒有截取到),這個正是爲了Eventsourcing作準備的.
通過以上的介紹.這個Orleans框架算是真正的入門了.無論我說的好與很差,對與不對.讀到這裏的人,都應該開始感受,這也許仍然有wcf的影子,軟件嘛都是大同小異,可是最後Orleans的目的遠非如此.爲了日後的文章更好的展開.我以爲有必要再回顧,並深刻的介紹Orleans的概念和原理了.