Asp.net學習筆記篇四(讀PetShop4)

  初次看到.Net版本的PetShop源代碼,很驚訝,因爲發現它的架構和Java裏面常用的分層架構一模一樣。後來才知道.Net PetShop就是仿照Java裏面的PetStore.難怪看起來這麼熟悉了.
  都是三層架構:表示層,業務層,數據訪問層;都有和數據表映射的貧血Model對象;面向抽象編程思想是一致的,業務層和數據訪問層都抽象出了一個接口.PetShop裏面使用抽象工廠模式和反射機制來生成對象,這裏如果使用類似Spring的依賴注入框架就更方便了.
  1 .Net事務
  PetShop有四個數據庫,它使用TransactionScope來控制全局事務.和常用用法一樣,事務控制也是用在業務層中.用起來還是很方便的.
  public void Insert(PetShop.Model.OrderInfo order) {
         using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) {//創建事務
                dal.Insert(order);//Order數據庫
                Inventory inventory = new Inventory();
                inventory.TakeStock(order.LineItems);//Inventory數據庫
                ts.Complete(); //提交事務
          }
  }
  TransactionScope構造函數中使用了枚舉TransactionScopeOption,它定義了事務的傳播屬性,它有三個值:
  Required         要求有事務,不存在則新建  這個是缺省值
  RequiresNew  總是新建事務
  Suppress        環境事務上下文在創建範圍時被取消,範圍中的所有操作都在無環境事務上下文的情況下完成.(不管事務是否存在,都不參與事務)

   J2EE中事務的傳播屬性被分成了六個值,見Java中的事務小結一文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章