展会信息港展会大全

EES框架BLL层代码组织与介绍 编程开发
来源:互联网   发布日期:2016-01-27 15:29:55   浏览:2132次  

导读:BLL层,我个人感觉是与通用的NH IB OR映射差异比较大的地方,处于承上启下的位置。 承上:可以与数据库打交道,起到了DAL的作用。 启下:可以与BP层 Stub层 或客户端直接打交道,作为其服务层。public c ...

BLL层,我个人感觉是与通用的NH/IB OR映射差异比较大的地方,处于承上启下的位置。

承上:可以与数据库打交道,起到了DAL的作用。

启下:可以与BP层/Stub层/或客户端直接打交道,作为其服务层。

publicclassUserImp<T>:BLService<T>

whereT:EESObject,new()

{

[Operation(ScopeOption.Disabled)]

publicvirtualTFindById(Stringcode)

{

returnbase.FindId(code);

}

[Operation(ScopeOption.Disabled)]

publicvirtualDataCollection<T>FindByName(stringname)

{

Whereclause=newWhere();

clause.Add("Name",name);

returnbase.Find(clause);

}

[Action("保存","保存")]

[Operation(ScopeOption.Required)]

publicoverrideTSave(Tt)

{

returnbase.Save(t);

}

}

BLService<T> 为业务层的基类,主要提供增删改查的功能。默认状态下,基类的服务是不公开的,需要在此类里面公开。

Operation为事务自定义属性,通常在此处添加,也可以在配置文件里添加。

查询,也是此OR的一个特色,对于客户端和服务端的处理雷同,但不相同,服务器端可以使用 WhereEx ,支持拼接字符串和其他等特殊处理。在处理自定义查询的时候非常方便。

Action自定义属性,为动作标注,在生成Controller的时候,会自动生成。

[EESBO("User")]

publicclassUserService:UserImp<User>

{

[Operation(ScopeOption.Required)]

publicvirtualEESContextLogin(stringuserId,stringsalt)

{

}

[Operation(ScopeOption.Required)]

[Action("密码复位")]

publicvirtualUserResetPwd(Useruser)

{

}

}

UserService 为常用编码的类,UserImp主要为自动生成的类,业务逻辑通常放在UserService类里面。

EESBO自定义属性标注此类为服务类,在生成代理/服务配置的时候,会自动生成配置文件和代理类。

其他的与UserImp类似。

一直在考虑,是不是要把Linq加入进去,没有决定下来。

公开的类必须添加 virtual ,使用的时候,可以用:ProxyFactory.getProxy<UserService>() 或Factory.New<UserService>,通常在服务器端用 Factory.New<UserService>()方式,在客户端用 ProxyFactory.getProxy<UserService>() 方式调用。

示例代码:

main()

{

EES.Common.Config.Configuration.Root=;

Useruser=Factory.New<User>();

user.Code= 123456 ;

UserServicesrv=Factory.New<UserService>();

srv.Save(user);

}

此处没有太多的处理加载的地方,系统会自动处理配置文件的加载,基于声明式事务的处理,对于多数据源和层次操作,则会一层一层的处理。

如果需要通过http进行远程调用,服务器端的UserService不需要作任何的改变,只需要加入到IIS里面,并添加些配置文件,则可通过http 实现远程RPC调用,客户端代码不需要作改变,也是更改一下,添加一个自动生成的代理类则可。

赞助本站

人工智能实验室

相关热词: EES 框架 BLL

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港