关于CSLA的问题2

非常感谢phenixIII关于CSLA详细的回复!

数据绑定的确很棒, 大大减少了界面的代码量。

服务器和客户端之间的通讯,CSLA利用"数据门户"进行了封装,达到了透明化,并通过配置可以动态更改,这一点确实做得也不错。

我还是有些问题,下面我举一个例子,假设我要添加一个User, 并且记录操作日志, 以前的分布式程序(采用WebService)大约是这样的.

    public class UserManagerService : WebService

    {

        public void AddUser(User user, int operatorId)

        {

            using (TransactionScope ts = new TransactionScope())

            {

                //做添加用户的具体事情

                DbHeper.Insert(user);



                //记录操作日志

                Log.Add("添加用户" + user.Name, operatorId);



                ts.Complete();

            }

        }



        public User[] GetUserList()

        {

            //...

        }

    }

 客户端调用是这样的:

User user = new User(); 

user.Id = GetId(); 

user.Name = txtName.Text; 

//... 

UserManagerService service = new UserManagerService(); 

service.AddUser(user, GetCurrentOperatorId());

采用CSLA,大致是这样

public class User : BusinessBase<User>

{    

      //工厂方法    

      public static User NewUser()    

      {    

      }

     public static void SaveUser(User user, int operatorId)    

     {        

             user.Save();

             Log.Add("添加用户" + user.Name, operatorId);    

    }

}

请问,事务控制的代码放在哪里? 不能放在工厂方法里,因为工厂方法SaveUser是在客户端进程中执行的. 我觉得CSLA中, 客户端和服务器之间的接口不够明确, 不象一般的分布式程序,把界面和服务器之间的接口专门作为服务的形式提供出来, 在服务层中就可以进行事务的控制,还可以做一些别的操作.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
CSLA .NET是一个.NET软件开发框架,帮助开发者“为Windows、Web、面向服务和工作流等应用构建强大和可维护的业务逻辑层”。 CSLA是Component-based, Scalable, Logical Architecture的简写,CSLA . NET是Rockford Lhotka基于.Net设计的一套N-tier分布式框架。 框架软件许可协议: 你可以将本软件用于任何非商业目的,包括与之派生出的工作。你也可以将本软件用于任何商业目的,但是你不能将本软件全部或部分地用于创建一个商业的框架产品。...... 协议非常像BSD,不禁止商业使用。但是不能直接拿这个框架去卖钱。 .NET应用架构开发经典,揭示CSAL.NET框架的设计权衡,从实践中精通面向对象技术。   CSLA,NET是目前,NET平台上最广泛使用的开发框架之一。使用这一框架,开发人员不必过于关心底层细节,而可以集中精力考虑业务逻辑和应用设计。《C#企业应用开发艺术:CSLA.NET框架开发实战》展现了设计和创建CSLA,NET框架的整个思考过程。   围绕这一框架,作者讲述了怎样用面向对象的思想来搭建,NET应用程序的架构。设计和开发,NET应用,重点介绍如何创建专注于业务的对象,使其适应于各种分布式环境;如何使用它们来搭建基于WPF、Web窗体、WCF、Windows窗体、WF的应用程序。书中还以一个包含多个接口的实例应用,教会读者怎样用好这一框架。无论你在开发中是否采用这一框架。都能从《C#企业应用开发艺术:CSLA.NET框架开发实战》受益匪浅。
CSLA.NET是一个在分布式环境下只通过修改配置文件就可以实现N层部署的框架. 它致力于构建丰富,强大而灵活的业务层,包含了验证,权限,数据门户等标准化的解决方案,使你的业务对象更加标准和灵活.它提出了移动对象(Mobile Object) 的概念,使业务对象在不同的服务器上物理性的移动.但它并不失灵活性,其数据门户对ADO.NET,LINQ, ADO.NET Entity Framework,Nhibernate等都能够支持.CSLA.NET还支持在业务对象上构建WPF、ASP.NET(Web Forms、AJAX和 MVC)和Windows Forms,WCF service,Windows Workflow,web Services,Silverlight等用户接口.      CSLA.NET开始于2001年,已经有8年时间了.现在已经被使 用在很多项目中.最新发布的3.6版本包括CSLA.NET  for Windows和CSLA.NET for Silverlight两个版本.其中CSLA.NET for Silverlight对Silverlight2.0提供了无缝支持.      CSLA.NET提供核心功能:         完全支持数据绑定(WPF,Silverlight,Windows Form和Web Form)      对象状态追踪(对象是否为新增、修改、标记为删除,等等。)    标准化业务和验证规则处理 在对象和属性层级的标准化授权 整合及简化,标准的.NET身份验证模型  撤销(Undo)功能,用来支持实作取消按钮,和复杂分层的用户接口(UI)     标准化集成与数据存取层或ORM 加强对于业务对象的LINQ查询支持 许多的一般生产力(productivity)功能,可用于很多的企业应用程序方案中 异步数据存取,和异步验证规则   支持的平台有:Microsoft .NET 1.x through 4.5.1Windows Runtime (WinRT for Windows 8.1)Windows Runtime (WinRT for Windows Phone 8.1)Windows Phone 8 (Silverlight)Silverlight 5Android (using the Xamarin tools)iOS (using the Xamarin tools)Linux and OSX (using mono) 标签:.net开发框架
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值