<p>Phenix Framework and Teamwork Tools 20190624 下载地址 :</p>
<p><a href="https://blog.csdn.net/">https://download.csdn.net/download/phenixiii/11316834</a></p>
<p> </p>
<p>Phenix Framework and Teamwork Tools 交流群:206648373,可在群文件里下载最新版</p>
<p> </p>
<p> </p>
<p> 在IDE中设计业务类的映射关系演示:<img alt="" class="blockcode" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-eaa2abc19851177b3fdfec9d14743871.gif"></p>
<p> </p>
<p>以下是版本升级日志:</p>
<p>2007-11-09 1,完成 RemotingAgent 组件。为 Client 程序集提供统一的 remoting 参数设置和远程对象代理工厂;<br> 2,完成 Login 组件。为 Client 程序集提供统一的登录界面和用户校验机制,同时,自动进行文件的升级、本地与数据库的对时等功能;<br> 3,初步构建了一个应用服务容器,除了为 Login 等组件提供服务外,可自动加载当前目录下的 Service 程序集;</p>
<p>2008-05-21 1,完成业务组件框架,继承 CSLA 的 BusinessListBase、BusinessBase、ReadOnlyListBase、ReadOnlyBase、CommandBase,支持主从业务对象集;<br> 2,可自动映射和持久化业务对象,支持同一登陆用户的多步长事务;<br> 3,封装 CSLA 的本地和远程调用模式,通过 Login 组件自动切换,方便调试服务端代码;</p>
<p>2008-07-11 业务处理跟踪日志(留痕)引擎;<br> <br> 2008-08-01 数据集动态刷新服务引擎;</p>
<p>2008-08-03 Login 组件,如果用户选择的应用服务器不可登陆,可自动挑选可登陆的应用服务器;</p>
<p>...</p>
<p><br> 2011-10-9升级:<br> BusinessBase取子业务对象集合时,可以从本地的业务对象集合中过滤出来:</p>
<p> /// <summary><br> /// 取从业务对象集合<br> /// </summary><br> /// <param name="expression">条件表达式</param><br> /// <param name="source">数据源</param><br> public TDetail GetDetail<TDetail, TDetailBusiness>(Expression<Func<TDetailBusiness, bool>> expression, TDetail source)<br> where TDetail : BusinessListBase<TDetail, TDetailBusiness><br> where TDetailBusiness : BusinessBase<TDetailBusiness></p>
<p><br> 2011-10-24升级:<br> 排除未注册的业务类,当Fetch时陷入死循环的缺陷。<br> </p>
<p>2011-11-09升级:<br> AddIn工具添加“构建指令类”功能。</p>
<p><br> 2011-11-27升级:<br> 1,框架案例.zip新增Phenix.Windows.dll源码,你可以重新编译支持非v10.1版本的DevExpress<br> 2,新增功能:在业务类的OnInsertingSelf、OnUpdatingSelf中中嵌入了附加的条件语句,可以实现如下效果的提交语句:<br> update PH_Department set DP_Name = 'aaa' where DP_ID = 33221343543545<br> and not exists (select * from PH_Department where DP_Name = 'aaa' and DP_ID <> 33221343543545)</p>
<p>本案例实现了DP_Name不允许重复的业务逻辑。不过业务类中我们无需添加类似逻辑代码,唯一索引验证功能在框架中已默认实现。</p>
<p> /// <summary><br> /// 新增本对象集合之前<br> /// 在运行持久层的程序域里被调用<br> /// </summary><br> /// <param name="transaction">数据库事务</param><br> /// <param name="limitingConditions">限制保存的条件</param><br> protected virtual void OnInsertingSelf(DbTransaction transaction, out Criterions[] limitingConditions)<br> {<!-- --><br> limitingConditions = 需要限制保存的条件;<br> }</p>
<p> /// <summary><br> /// 更新本对象集合之前<br> /// 在运行持久层的程序域里被调用<br> /// </summary><br> /// <param name="transaction">数据库事务</param><br> /// <param name="limitingConditions">限制保存的条件</param><br> protected virtual void OnUpdatingSelf(DbTransaction transaction, out Criterions[] limitingConditions)<br> {<!-- --><br> limitingConditions = 需要限制保存的条件;<br> }</p>
<p>3,当提交时满足限制条件则抛出CheckSaveException异常。如果是通过BarManager提交的,则可以在它的OnSaveFailed(e)事件里处理这个异常,如果不想由BarManager提示的话,则可以将e.Applied=true</p>
<p><br> 2011-12-14升级:<br> BusinessListBase新增功能:可通过GetRecordCount()函数获取指定条件下的记录数:</p>
<p> /// <summary><br> /// 获取记录数量<br> /// </summary><br> /// <param name="criteriaExpression">条件表达式</param><br> public static long GetRecordCount(CriteriaExpression criteriaExpression)<br> </p>
<p>2011-12-19升级:<br> 类似下面的 |
|