Csla.net4.2.1Sample-Tracker學習(一)

我們知道Csla.net框架的網絡通信是基於WCF技術的,所以我們可以在示例中的項目WCFAppServer中找到二個服務發佈svc文件:

WcfPortal.svc和SlPortal.svc查看WcfPortal.svc中內容爲:
<% @ServiceHost Service="Csla.Server.Hosts.WcfPortal" %>
只這一行,當然,我們通過WCF的知識知道這是一個服務,但這個服務在哪裏定義的呢?如果沒看過《C#企業應用開發藝術-

CSLA.NET框架實戰》這本書或沒看過這個框架的開源代碼,一般是不好找的,當然經驗豐富的開發者可能先在本項目中查找,當然

是沒有這樣的定義了,再會到引用的程序集中查找,當然,這樣你就會發現他定義在CSLA程序集中的Csla.Server.Host命令空間下

,定義如下:
 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
  [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class WcfPortal : IWcfPortal

{
[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
    public WcfResponse Create(CreateRequest request)
[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
    public WcfResponse Fetch(FetchRequest request)
[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
    public WcfResponse Update(UpdateRequest request)
 [OperationBehavior(Impersonation = ImpersonationOption.Allowed)]

}
    public WcfResponse Delete(DeleteRequest request)該服務類有四個成員方法:Create,Delete,Fetch,Update分別實現業務對象的創建,刪除,讀取,更新功能。
當然我們也知道實現的接口IWcfPortal應該是契約定義,進一步轉到源碼後發現就是協約定義。
另一個SVC文件中的內容爲:
<% @ServiceHost Service="Csla.Server.Hosts.Silverlight.WcfPortal" %>
我們也進一步可以知道這個是Csla.net框架專門爲Silverlight實現的服務定義,也定義在Csla.Server.Silverlight命名空間下。

注:
1,Csla.net的統一服務契約在文件Source\Csla\Server\Hosts\IWcfPortal.cs文件中定義。命名空間爲Csla.Server.Hosts
在契約中定義了四個方法:Create,Delete,Fetch,Update,分別實現業務對象的創建,刪除,讀取,更新功能。
2,Csla.net的統一服務實現在文件Source\Csla\Server\Hosts\WcfPortal.cs文件中定義。命名空間爲Csla.Server.Hosts

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