- 博客(27)
- 收藏
- 关注
转载 Visual Studio 核心代码模型(Addin+CodeModel)使用心得 .
我们知道Visual Studio 2010的UML设计功能已经可以做到正向工程了,但是这些生成的代码都是空架子,还得经过手工处理填充上业务逻辑代码,如果系统是基于某个具体技术框架进行开发的话,还必须加上这些技术框架的特性代码。比如: /// /// 布尔值选项 /// [Serializable] public enum BooleanOption {
2012-01-14 10:22:28
588
转载 软件过程框架实践
软件过程框架实践 目 录 1 前言... 41.1 背景... 41.2 从实践中来到实践中去... 41.3 开发辅助工具选型策略... 41.4 迭代开发模式策略... 41.5 快速发布与迭代策略... 51.6 快
2012-01-14 10:19:49
907
转载 CSLA如何动态控制权限的问题 .
答复“对CSLA很感兴趣,但觉得它的权限管理(操作权限和字段权限)那块很难做到动态配置,想知道你们是怎么做的,希望可以交流一下。。。”: 此处的操作权限,可归为业务对象的public过程的控制;而字段权限,可归为业务对象的public属性的控制,属性将字段进行了封装。首先不是很清楚你所谓的动态配置是指达到什么程度,如果相对静态配置而言是指CSLA作者的那本书里所提供的写法的话,那确实是
2012-01-14 10:17:42
554
转载 Phenix应用系统安装部署方法 .
1,CSLA框架文件部署位置: 文件名 客户端 服务端Csla.dll 是 是 2, Phenix框架文件部署位置: 文件名 客户端 服务端Phenix.Core.dll 是
2012-01-14 10:13:48
764
转载 数据映射字段业务规则:FieldRuleAttribute
using System;namespace Phenix.Core.Mapping{ /// /// "数据映射字段业务规则"标签 /// [Serializable()] [AttributeUsage(AttributeTargets.Field)] public sealed class FieldRuleAttribute : Attrib
2012-01-14 10:12:09
682
转载 接口问题
最近有个争论,就是视图到底怎么写才更有可扩展性?有两种写法:1,select 。。。,GetName(CD) name from AA;语句中GetName是一个带返回值的存储过程2,select 。。。,BB.name name from AA join BB。。。;其中一方认为第一种写法更具可扩展性?!我们来分析下。首先排除掉物理部署上的可扩展性问题,也就是说到底是采取
2012-01-14 10:10:36
263
转载 配置还是代码 .
首先承认一点,配置其实也就是代码的一个变种,为什么要配置,主要还是从效率上来考虑的。当然,反过来,如果配置系统的开发和使用比直接利用代码开发来的复杂和效率低下,那直接用代码得了。比如主界面上菜单的权限管理,每个菜单项必须和登录的用户所拥有的权限进行挂钩,那么:1,普通做法,必须在主程序启动的时候,根据登陆用户的角色,对菜单项逐项其"可用、可显"属性进行赋值,如果不采取任何技巧的话,代码一大
2012-01-14 10:03:51
315
转载 总结一下BusinessListBase都做了哪些功能 .
/// /// 业务集合基类 /// /// 请继承Initialize()函数编写对象初始化代码 /// /// 调用Save()函数将根据TBusiness上的MapperClassAttribute、MapperFieldAttribute标注自动提交数据(包括所有的子业务对象集合) /// /// 支持同一UserPrincipal的事务控
2012-01-14 10:02:54
407
转载 总结一下BusinessBase都含有哪些功能
/// /// 业务基类 /// /// 请继承Initialize函数编写对象初始化代码 /// /// 当BusinessBase本身又包含一个以上的BusinessListBase时(通过GetDetail函数), 本业务对象为主业务对象, 本业务对象所在的集合为主业务对象集合 /// 如需自动下载、删除子业务对象集合,请在子业务类的外键字段上打上标
2012-01-14 10:01:56
517
转载 魔术拆穿了,其实很简单
最近微软团队碰到一个不大不小的难题,搞了1个月也没解决掉,最后甚至打算提交给上海微软开Case来解决。问题症结是:微软团队为我们开发一个StandardControl控件,组合了多个控件和组件,包括第三方的DevExpress,然而,当在工程的窗体中拖进StandardControl、编辑窗体控件属性、重新打开窗体,然后在调试(按F5)状态下,程序运行的好好,但IDE中这个窗体却不见了,而当退
2012-01-14 09:59:55
1246
转载 分布式时间戳
Phenix框架已支持分布式时间戳,开发人员仅需在业务实体类中定义: 。。。 [Phenix.Core.DataMapperClass("PH_User", UseTimeStamp = true)] public class User : BusinessBase { 。。。 }即可自动实现分布式乐观锁并发校验机制。 当业务系统运行
2012-01-14 09:57:51
617
转载 技术平台研发目标 .
1逻辑架构从C/S/S物理架构角度观察这些逻辑层,业务过程层上的“数据校验逻辑”、“数据权限逻辑”按照即时响应原则是放在客户端的,业务实体是在客户端、服务端之间移动的(变换形式、远程传递、保真重现),数据访问层一定是部署在服务端的。2 数据传递在设计分布式应用程序时需要确定如何访问和表示与该应用程序相关联的业务数据。2.1 前有几种模式供选择: XML。使用
2012-01-14 09:56:38
470
转载 动态刷新机制的业务对象
制作动态刷新引擎的动机,是为了解决业务系统中,业务组件要时刻根据数据源数据的变化而改变自己行为模式、表现形式的需求而设计的。通过动态刷新引擎,业务组件无需时刻监视数据源数据的变化,而是通过动态刷新引擎主动推送数据来得到最新的、感兴趣的数据及其变化。1,标记数据源仅需在发布动态数据的业务类(继承Phenix.BusinessBase)上标记:[Phenix.Core.Permanen
2012-01-14 09:53:14
313
转载 CSLA的权限控制如何整合到框架中
CSLA对类的属性读写控制做的很到位。首先在BusinessBase继承的类中继承AddAuthorizationRules函数: protected override void AddAuthorizationRules() { ... AuthorizationRules.AllowWrite(PasswordProperty, UserPrinc
2012-01-14 09:52:27
610
转载 3层架构
以下是转帖,翻译了Rockford Lhotka在04年写的一片文章: 众所周知的,一个典型的应用程序有界面层、业务层和数据层。在我的大部分作品中,我使用的是4层模型:界面、业务、数据访问、数据存储层(UI, business, data access and data storage).在这个案例中,数据存储层确实与传统3层结构中的相同。 原著: http://www.the
2012-01-14 09:51:11
430
转载 持久化日志引擎 .
用了几天的时间,完成了基于分布式组件的持久化日志功能,可在应用系统的工作站和中间件的代码中使用同样的语句来记录日志信息,而不用关心底层代码是如何运作的。这个日志功能作为独立组件,已整合到CSLA的框架当中,可根据需要自动记录业务对象的更新数据,达到留痕的目的,基于此功能可实现操作者的审计功能。比如在提交Update代码中嵌入了: PermanentLogHub.SaveExe
2012-01-14 09:49:32
390
转载 一个基于封装CSLA框架后,设计业务类的例子:User .
/// /// 用户 /// [Serializable()] [Phenix.Core.Data.MapperClass("PH_User", CheckDirtyOnUpdate = true)] [Phenix.Core.Log.PermanentExecuteActionLog(Phenix.Core.Log.PermanentExecuteAction.
2012-01-14 09:48:23
347
转载 一个基于封装CSLA框架后,设计业务类的例子:users .
/// /// 用户集 /// [Serializable()] [Phenix.Core.Data.Transactional(Phenix.Core.Data.TransactionOption.Completed)] public class Users : Phenix.Business.BusinessListBase { #region
2012-01-14 09:47:05
256
转载 答haoyuhai问 .
我初期接触CSLA时也有象你一样的感觉,不过深入下去研究,发觉优点还是大于缺点的,毕竟到现在为止,还没有遇上十全十美的框架。1。csla将业务逻辑层和UI层紧藕合在一起,在设计业务类时,必须要考虑界面的情形,这种依赖关系应该是有问题的。CSLA的业务类,我用下来没发觉和UI有太多的纠葛,他是通过IBindingList提供UI层的数据绑定。不知道你说的依赖关系,是不是指业务类中对数
2012-01-10 18:04:29
292
转载 技术平台研发目标 .
1 逻辑架构从C/S/S物理架构角度观察这些逻辑层,业务过程层上的“数据校验逻辑”、“数据权限逻辑”按照即时响应原则是放在客户端的,业务实体是在客户端、服务端之间移动的(变换形式、远程传递、保真重现),数据访问层一定是部署在服务端的。2 数据传递在设计分布式应用程序时需要确定如何访问和表示与该应用程序相关联的业务数据。2.1 目前有几种模式供选择:l XML。使
2012-01-10 18:00:49
813
转载 动态刷新机制的业务对象
制作动态刷新引擎的动机,是为了解决业务系统中,业务组件要时刻根据数据源数据的变化而改变自己行为模式、表现形式的需求而设计的。通过动态刷新引擎,业务组件无需时刻监视数据源数据的变化,而是通过动态刷新引擎主动推送数据来得到最新的、感兴趣的数据及其变化。1,标记数据源仅需在发布动态数据的业务类(继承Phenix.BusinessBase)上标记:[Phenix.Core.Permanen
2012-01-10 17:58:07
477
转载 CSLA的事务控制 .
这个是为了解决:当多个根对象依次提交数据,通过“数据门户”在应用服务器上进行数据库UID操作时,如何保证在同一个事务当中。下面是CommandBase中的代码,BusinessListBase中的代码类似。using System;using System.Data.Common;using Phenix.Core; namespace Phenix{ ///
2012-01-10 17:56:31
363
转载 数据库的死锁问题在设计期就可以避免 .
前几天偶尔与一位数据库工程师谈起数据库的死锁(deadlock)问题。根据以往的经验,我一直认为: 1.MSSQL、DB2、Oracle之类的现代DBMS或者中间件可以帮助我们自动解决绝大部分死锁,其余一部分难以处理的死锁则由DBA在数据库控制端手工处理。就应用程序而言,不需要在源代码级过多考虑地考虑死锁问题。 2.死锁的发生对系统的性能和吞吐量有着明显的影响,但只要存
2012-01-10 17:53:19
408
转载 一套较完整的技术框架 .
1 引言1.1 前言本文将基于目前现有的软件开发架构(以下简称‘架构’)(Packer for Delphi),同时如何合理地引进新技术等问题,进行系统地分析和研究,以指导新架构的研发。1.2 研发依据1.2.1 公司发展1.2.2 开发方式1.2.3 技术升级1.2
2012-01-10 17:49:39
997
转载 分层与接口
最近浏览了一些网上对分层 、接口等概念的讨论。想想这个问题也是我所接触到的一些团队,他们所一直困扰的问题,我觉得有必要整理一下思路。这里所说的分层,是逻辑上的概念,和物理分层不搭界,也就是说,如果你的程序不做分布式,按照分层的设计思路,你也应该在你的代码级别上体现出逻辑分层的思想。在CSLA里,一个业务对象自身就包含了持久层和逻辑层(CSLA里要细分层次的话,数下来蛮多的:UI、UI与
2012-01-10 17:47:18
340
转载 关注使用者,则一切将水到渠成 .
标题引用了我一个MSN好友的标签,这位朋友看了可别找我要版税哦。这个话题,是有感而发。做产品,我们必须时时问问自己这样一个问题,想想我们做的东西到底是为了什么。是产品,必然是给用户使用的,如果得不到使用者的认可,即使自己珍爱有加,那最多是给自己把玩的玩具而已。那么,使用者到底想要的是什么?我看最根本的是减轻自己的劳动,让自己做更有意义的事情。作为技术框架的开发来说,也同样如此。
2012-01-10 17:45:31
260
转载 ROCKFORD LHOTKA的CSLA.NET,你用了吗? .
在现代的项目开发过程中,由于客户自身业务需求的快速变化而带来的对于软件需求上的变化越来越频繁。项目经理们所要面对的局面经常是固定的预算,固定的上线日期,加上频繁变化的需求这样的组合。这对于每一个精细业务定制软件的开发团队来说都是一个永恒的难题。当然从项目管理的角度我们需要通过客户管理和需求控制来避免这种情况的发生;但是另一方面,开发团队需要一套业务级别的实用软件框架来避免在客户需求发生变化的时候花
2012-01-10 17:43:44
337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人