Phenix.NET for WebAPI & WF & CSLA,企业级、分布式、符合领域建模的OOP软件快速开发平台

论坛 期权论坛     
选择匿名的用户   2021-6-1 19:22   240   0
<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>    /// &lt;summary&gt;<br>     /// 取从业务对象集合<br>     /// &lt;/summary&gt;<br>     /// &lt;param name&#61;&#34;expression&#34;&gt;条件表达式&lt;/param&gt;<br>     /// &lt;param name&#61;&#34;source&#34;&gt;数据源&lt;/param&gt;<br>     public TDetail GetDetail&lt;TDetail, TDetailBusiness&gt;(Expression&lt;Func&lt;TDetailBusiness, bool&gt;&gt; expression, TDetail source)<br>       where TDetail : BusinessListBase&lt;TDetail, TDetailBusiness&gt;<br>       where TDetailBusiness : BusinessBase&lt;TDetailBusiness&gt;</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 &#61; &#39;aaa&#39; where DP_ID &#61; 33221343543545<br> and not exists (select * from PH_Department where DP_Name &#61; &#39;aaa&#39; and DP_ID &lt;&gt; 33221343543545)</p>
<p>本案例实现了DP_Name不允许重复的业务逻辑。不过业务类中我们无需添加类似逻辑代码,唯一索引验证功能在框架中已默认实现。</p>
<p>    /// &lt;summary&gt;<br>     /// 新增本对象集合之前<br>     /// 在运行持久层的程序域里被调用<br>     /// &lt;/summary&gt;<br>     /// &lt;param name&#61;&#34;transaction&#34;&gt;数据库事务&lt;/param&gt;<br>     /// &lt;param name&#61;&#34;limitingConditions&#34;&gt;限制保存的条件&lt;/param&gt;<br>     protected virtual void OnInsertingSelf(DbTransaction transaction, out Criterions[] limitingConditions)<br>     {<!-- --><br>       limitingConditions &#61; 需要限制保存的条件;<br>     }</p>
<p>    /// &lt;summary&gt;<br>     /// 更新本对象集合之前<br>     /// 在运行持久层的程序域里被调用<br>     /// &lt;/summary&gt;<br>     /// &lt;param name&#61;&#34;transaction&#34;&gt;数据库事务&lt;/param&gt;<br>     /// &lt;param name&#61;&#34;limitingConditions&#34;&gt;限制保存的条件&lt;/param&gt;<br>     protected virtual void OnUpdatingSelf(DbTransaction transaction, out Criterions[] limitingConditions)<br>     {<!-- --><br>       limitingConditions &#61; 需要限制保存的条件;<br>     }</p>
<p>3,当提交时满足限制条件则抛出CheckSaveException异常。如果是通过BarManager提交的,则可以在它的OnSaveFailed(e)事件里处理这个异常,如果不想由BarManager提示的话,则可以将e.Applied&#61;true</p>
<p><br> 2011-12-14升级:<br> BusinessListBase新增功能:可通过GetRecordCount()函数获取指定条件下的记录数:</p>
<p>    /// &lt;summary&gt;<br>     /// 获取记录数量<br>     /// &lt;/summary&gt;<br>     /// &lt;param name&#61;&#34;criteriaExpression&#34;&gt;条件表达式&lt;/param&gt;<br>     public static long GetRecordCount(CriteriaExpression criteriaExpression)<br>  </p>
<p>2011-12-19升级:<br> 类似下面的
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP