Csla.net4.2.1Sample-Tracker学习(一)

来源:互联网 发布:坐标计算软件 编辑:程序博客网 时间:2024/05/17 09:31

我们知道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

原创粉丝点击