posts - 78,comments - 344,trackbacks - 13
  前面已经说到,CAB框架中除了提供了强大的支持功能,如依赖注入,事件机制,界面组合显示,还有一个专门封装业务逻辑的WorkItem。企业应用系统其实主要就是企业业务的自动化实现,一个应用框架提供的支持功能都只是为了更好地为业务服务。下面就来看看CAB中的WorkItem是如何封装业务用例的。

首先看看WorkItem都包含哪些元素?

WorkItem的属性列表中我们可以看出,WorkItem中支持命令和事件,同时WorkItem可以嵌套,通过Parent进行关联,通过RootWorkItem可以获取顶层WorkItem,开发人员可以利用这一特性来组织自己业务用例和划分业务用例的粒度。WorkItem中使用State来共享信息,在同一个WorkItem容器中的对象可以共享访问这个信息。 WorkItem容器中的对象对其中的Service都可以访问。

WorkItem通过调用Run方法进行启动,调用这个方法的时候会调用他的OnRunStarted方法,一般我们自定义了一个WorkItem,如果有需要可以重载其OnRunStarted方法来自定义其启动逻辑。Run方法调用后会触发RunStarted事件。

一般我们会借助WorkItem提供的特性,采用MVC的模式进行业务用例的封装。使用SmartPart作为用户交互的UI显示部分(View),创建一个控制类来进行业务逻辑的封装(Controller),然后将业务数据存放于内存实体中(Model)。用户界面和内存实体采用绑定的方式关联起来。



这就是典型的MVC模式的应用,我们来看看他的初始化和用户交互过程中的操作是如何进行的?

 

初始化:

 

1,应用系统加载WorkItem,WorkItem将用户界面在WorkSpace中进行显示
    2,用户界面加载,调用控制逻辑进行初始数据的处理和获取
    3,控制逻辑获取初始数据
    4,控制逻辑将数据存放于内存实体中
    5,控制逻辑将数据与用户界面进行绑定,界面会自动根据绑定的数据源进行初始化显示

用户交互:


 

1,用户操作用户界面,调用相应控制逻辑
      2,控制逻辑进行业务处理,进行相关服务或数据库访问
      3,控制逻辑修改内存实体中的数据
      4,由于数据与界面绑定,数据的变化直接反应到界面显示。

posted @ 2008-02-19 22:21 米小波 阅读(164) | 评论 (0)编辑
 

通过前面的介绍我们可以知道在静态Main方法中执行继承自FormShellApplication的对象实例可以进行很多框架的初始化工作,如加载模块,加载服务等。从FormShellApplication的类型定义中:

public abstract class FormShellApplication<TWorkItem,TShell> : WindowsFormsApplication<TWorkItem,TShell> where TWorkItem : WorkItem where TShell : Form

可以看到,需要两个类型参数,一个是WorkItem,一个是FormFormShellApplication在进行初始化工作的时候会对这两个类型进行实例化。并且会将Form类型的实例 Show出来。这里的Form类型的实例即是我们应用程序的主界面。

主界面将是用户与系统的主要交互区域。他将做为一个容器,承载其他的业务界面。

CAB中提供了WorkSpace组件,他作为用户控件和SmartPart控件的显示容器,可以以各种各样的统一的显示方式呈现业务界面。也就是说WorkSpace可以以不同的风格呈现其中的用户控件。WorkSpace支持显示,隐藏,激活和关闭其中的用户控件。当然,CAB目前提供了几种默认的显示风格,接下来我们将一个一个介绍,如果开发人员觉得这些显示风格还不够用,当然也可以自己进行扩展。

所有类型的WorkSpace都是实现了接口IWorkSpace的。

目前CAB提供的WorkSpace有:

WindowWorkspace

MdiWorkspace

TabWorkspace

DeckWorkspace

ZoneWorkspace

下面就来说说每种WorkSpace的特点:

1, WindowWorkSpace

WorkSpace能将你需要在其中显示的用户控件在一个WinForm中显示出来,我们可以通过和该WorkSpace对应的WindowSmartPartInfo来设置用户控件的显示属性,如标题信息,是否是模式窗口等。


2, MdiWorkspace

WorkSpace是在WindowWorkSpace的基础上发展而来的,他同样将一个用户控件在单独的Form中进行显示,并且,他还将以MDI的形式显示和管理其子窗体。对应用户控件的显示信息的设置是通过设置smartPartInfo,然后作为参数传入WorkSpaceShow方法。


3, TabWorkspace

WorkSpace能将你需要在其中显示的用户控件以Tab页的形式显示出来,我们可以通过和该WorkSpace对应的TabSmartPartInfo来设置用户控件的显示属性,如标题信息。


4, DeckWorkspace

WorkSpace将以类似于重叠的卡片的形式来显示用户控件,当前激活的界面将在卡片的最上方。卡片的数序是由Workspace进行管理。没有和该WorkSpace对应的SmartPartinfo.

5, ZoneWorkspace

WorkSpace将以平铺的方式显示用户控件,比如类似OutLook的界面,可以将一个界面划分成多个Zone,每个Zone都是作为呈现用户控件的一个容器。同样的,我们可以通过设置ZoneSmartPartInfo来设置用户控件在WorkSpace中的显示属性。

posted @ 2008-01-27 14:20 米小波 阅读(190) | 评论 (2)编辑
 

现在我们来看看基于CAB的应用程序中非常重要的一个类。这个类可以认为是一个CAB应用的启动点。他就是FormShellApplication

FormShellApplication的继承关系如下:


该类需要传入两个类型参数,一个是继承自
WorkItem的类(如果不需要通过重载WorkItemOnRunStarted方法来实现更多处理,这里可以直接使用WorkItem,一个是继承自Form的窗体。

public class Program:FormShellApplication<MyWorkItem,ShellForm>

通常我们在Main方法中调用其Run方法,执行Run方法会初始化许多应用程序信息。可以通过override来重写或增加FormShellApplication的方法处理。

FormShellApplication的初始化包括(可以通过子类重载FormShellApplication的相关方法来判断其执行顺序)以下步骤:

1. RegisterUnhandledExceptionHandler

2. 创建 Build strategies

3. 创建顶级 WorkItem

4. 创建和初始化 Visualizer

5. 添加 services

6.创建Shell

CAB提供的标准服务如下,开发人员可以在此基础上进行扩展:

ü SimpleWorkItemActivationService

ü FileCatalogModuleEnumerator

ü WindowsPrincipalAuthenticationService

ü ModuleLoaderService

ü DataProtectionCryptographyService

ü TraceSourceCatalogService

ü CommandAdapterMapService

ü WorkItemExtensionService

ü WorkItemTypeCatalogService

ü ControlActivationService

执行了FormShellApplication的子类的Run方法,一个CAB应用程序就算是启动了。随后就是根据自己的需要来执行WorkItem了。

posted @ 2008-01-25 23:44 米小波 阅读(172) | 评论 (0)编辑

2007年IT薪资调查 IT人更关注职业前途

   网上突然发现这篇文章,觉得对从事IT行业的人来说具有一定的指导作用,所以就转载过来,出处不详。

   “2007年IT薪资调查”,并于7月发布《2007年IT薪资调查白皮书》。这是一项完全基于雇员自愿提供薪酬信息的在线调查,超过3,000名IT从业人员参与了这项调查,提供了他们的月薪、奖金、福利等信息。但本IT薪资调查并不是一项仅仅局限于收入水平的研究,调查数据的定量分析和定性采访也显示,对于IT从业人员来说,薪酬并不是他们职业发展的真正症结所在,无论是管理人员,还是普通IT员工,他们的目光都已经超越了薪酬,看到了更远处……
信息技术职业显然仍是赚钱的理想选择,热门高级岗位的普通员工月薪也能达到万元以上,而高级管理人员享受百万年薪的大有人在。“钱”景不错的IT人更关注职业的发展前途。
    IT业是一个勇敢者的游戏,对于享受着高薪的IT管理人员而言,职业风险和压力时刻存在,如何化解和克服是他们必须面对和解决的问题。这需要一些技巧,更重要的是基于对行业发展的判断和自身职业的规划。
如果行业也有性别,IT显然是个男性。成为管理人员的铿锵玫瑰,女性要承受更多的压力,承担更多的责任,需要更多地努力去平衡工作和生活。和男性相比,她们更可能面临职业天花板,但这不等于说女性就毫无优势可言。
对于管理人员来说,为企业吸引到优秀人才,培养并保留人才是他们面临的另一大挑战。表面上看,目前的IT人才市场供求两旺,而事实上却存在着结构性的矛盾。对于普通IT人员来说,面对优厚的薪水福利,首先要问问自己是不是合格了;而对于优秀的人才,“薪”愁易解,人才难留,企业和管理者更应该考虑,什么才是他们最想要的。

IT管理层:高薪与高压
   “前途是光明的,道路是曲折的。”薪酬之外,IT管理人员更关心自己的职业发展前景。
    我当然会关注有没有更好的工作机会。”Y先生是一家互联网公司的技术经理,这是他工作5年以来的第四份工作,现在他开始考虑是否要自己创业了。《信息周刊》“2007年IT薪资调查”的数据显示,高达80%参与调查的管理人员与Y先生一样,一边上班,一边寻找跳槽的机会。这一略显惊人的数字与薪酬福利、工作压力和对职业前景的不确定都不无关系。

高薪是原动力
   “薪酬福利对我来说并不是最重要的。这个舞台的发展空间才是我关注的。”相同的意思以类似的方式从不同的IT管理人员口中说出。但雇主最好不要把此话太当真了,对于这80%有“寻找新的工作机会”意向的管理人员而言,寻找更高的报酬高居跳槽原因榜首。
    调查显示,IT管理人员今年的基本月薪平均为每月7,123元,较去年的每月7,004元上涨了1.7个百分点;今年的预期奖金和其他现金收入相比去年有了明显增加,从每月6,438元增加到了每月7,323元,每月平均总收入较去年预期增长了7.5%。
    调查结果与专业人士的预期相符。北京外企太和企业管理顾问有限公司(下称“外企太和公司”)为许多大型企业提供人力资源咨询服务,该公司研发部负责人金可冶预计,2007年IT相关领域从业人员的薪酬涨幅将在8%左右。他认为,互联网泡沫破灭之后,经过近几年的调整,整个行业正在复苏,投资者的信心也开始恢复,IT人员的薪酬提高在情理之中。
    调查显示,个人表现、阶段性项目完成和公司分红构成了除基本工资以外直接现金收入的三大主要来源。而股票期权在互联网泡沫破灭后似乎身价下跌,失宠于公司的长期激励计划,仅有不到9%参加调查的管理人员表示自己持有公司股票。选择“红股” 作为期望的非现金报酬的管理人员仅占19%。
缺乏有效的长期激励让管理人员们表现出对目前薪酬的更高要求;因此,尽管“薪”情看涨,仍有30%的IT管理人员对收入水平感到不满,认为与他们付出的努力和承受的压力相比,公司的付薪水平算不上优厚。
    同时,他们期待得到更多的福利和培训深造的机会,公司配车或用车补贴,周期性休假/延长休假和医疗福利等。“不少公司的人力资源部忙于招聘和付薪,资金和人力上很难再投入到员工培训和其他福利上。”美世人力资源顾问公司顾问张婉蓉表示,“这与公司的组织架构和业务发展,以及行业的发展阶段不无关系。”

压力无处不在
    享受高薪的代价是承受高压。经年累月长时间的工作,学习、人才和业务需求的压力不断加大,“做不动了”成了IT管理人员们口中经常出现的抱怨。
   “我几乎没有准点下班的时候,每周大约会有一两天加班到近12点,通宵加班的情况每个月也会出现一两次。”一家外资咨询公司的技术经理说,“偶尔不需要加班,自己还会觉得有些奇怪。”
    调查数据也显示,IT管理人员的工作时间普遍偏长,每周的正常工作时间平均为46小时,加班或下班时间处理突发事件的时间每周平均为9小时,每天的工作时间远超过8小时,达到了11小时。相应地,IT管理人员对于公司的非现金报酬的期望中,“周期性休假/延长休假”位列第一。
    压力不仅仅来自超长的工作时间,信息技术发展一日千里,要求从业人员不断更新自己的知识。对于管理人员来说挑战更大,不但要保持自己在技术方面的专长,还要不断学习管理知识。调查显示,管理人员对于公司非现金报酬的期望,排名第一的就是“深造/培训”。“尽管工作非常繁忙,我仍然要求自己每天学习。”滨特尔水处理设备有限公司IT经理吴吉说,“管理人员要让自己始终保持一种学习状态,而非掌握技术本身。”2005年,吴吉在复旦大学完成了MBA的学习,现在她每年仍然要求自己考取一两项相关IT认证证书。
    为快速发展的企业工作,IT管理人员必须追求更快的工作节奏。“南航快速发展的业务对信息技术的需求是最大的压力,”当被问及工作的压力时,中国南方航空股份有限公司计算机中心的陶成庆说,“以前是我们推着客户走,现在是客户的需求推着我们走,对我们的反应速度提出了巨大的考验。”
     媒介购买机构群邑公司(GroupM)在中国也处于快速扩张的阶段,公司目前有员工大约750人,预计到今年底将发展到1,000人。公司的快速成长要求IT部门变得更敏捷,以满足经常变化的业务需求,这为中国区IT 总监潘进杰带来了另一个大问题。“有管理能力的IT人才太少,很多很好的想法会因为下属执行力的问题而无法实现。”潘进杰说,“人才是我最大的压力。我常常需要停下脚步,回头看看下属是不是已经落下太远了。”

打破职业天花板
    IT管理人员对未来工作发展的前景及薪酬增长潜力的预期分歧很大。当被问及“您认为IT领域的工作及其薪资增长的潜力和两年前相比有何变化?”时,选择“一样好”的调查参与者为 13%,39%的人认为“现在的前景更好”;同时,近一半的人表示了对前景的“不确定”。
    目前IT行业已经开始被重新评估,被认为已经开始“回暖”,但是业内人士却表现出了一定程度的担忧。
    外企太和公司的金可冶就认为,在某些领域,如互联网无线增值领域就存在过度投资的状况,一两年后可能会再次出现泡沫破灭的情况。就薪资情况而言,无线增值领域近两年就已经出现了付薪水平虚高的现象,2003年、2004年的薪酬增长一度达到30%~40%,2005年的增长率回落到17%,但这仍然与实际创造价值不符。
    即便不考虑个别领域投资过热的因素,信息技术的作用仍受到很多质疑。部分人依然认为,在中国,信息技术还只是一个锦上添花的辅助手段,很难构成企业的核心竞争力,智联招聘公司副总裁余用彤就持这样的观点。这让许多IT管理人员对自己的职业缺乏安全感。
    如果IT管理人员无法接触到公司的核心业务,上升空间就显得非常有限。很多IT管理人员在谈及自己的职业发展方向时,不约而同地选择了向业务转型。余用彤介绍,在美国,信息技术已经成为企业的必需,自然而然IT人员在企业中的地位也会很高。“IT技术人才如果非常优秀,薪水甚至比副总裁还高。而在国内,优秀的IT人员做不到两年就转行做销售了。”余用彤说。
    然而还是有人能够突破职业天花板,在商业科技领域找到新的发展空间。联华超市股份有限公司信息管理总部高级项目经理梁威不久前刚刚离职,转投埃森哲咨询公司(Accenture)做起了IT咨询。“不可否认IT经理做到一定阶段都会遇到职业瓶颈。”谈到自己的选择,梁威说,“但我现在转换角色,从甲方到乙方,用自己的积累去为更多企业做IT咨询,这也是一个非常吸引人的广阔空间。”
    调查结果表明,实际情况并不那么悲观。尽管在过去的1年中,有超过一半的IT管理人员和猎头公司有过接触,真正转变职位的仅有23%,而这其中因为离开前一家公司寻找其他机会而导致职位变化的仅占25%,超过一半的人是因为表现优秀得到了升职。
   “中国还没有发展到遍地都是信息技术的程度,企业发展到一定规模,就不得不重视信息技术了,信息技术一定是越来越重要。”吴吉毕业于复旦大学计算机专业,曾经做过行政、文秘、销售等各不相干的工作,最后又操起了老本行。“我的一个朋友在国际商业机器公司(IBM),他们受聘为一家河北廊坊的民营企业做IT 预算,3个亿的预算居然仍在老总的预计之下。”吴吉认为这是IT前途无限的明证。

年薪百万,经历重于学历
    参加调研的近1,700多名管理人员中,主管、经理级的管理者占了大多数,约为80%,分别是主管27%,经理22%,技术经理20%,项目经理12%;总监以上级别的约占参加调查的管理人员的20%,分别是总监7%,首席信息官(CIO) 4%,首席技术官(CTO) 4%,副总裁2%;另有2%选择了其他。
    调查显示,主管、经理级别的管理者们2007年的基本月薪平均约为7,000元人民币;除基本工资以外的其他现金收入的期望为平均每月9,000元;2007年收入预期在20万元左右。
    CIO、CTO、IT总监们2007年的现金总收入预期平均约为45万元人民币;而副总裁则要超过50万元。在这一级别上,根据公司规模、所处行业的不同,管理者们的收入差距也较大,收入高者可达年薪百万元以上。
    另外,研究数据显示,从业经验在很大程度上决定了管理者们的级别地位,相对而言,学历的影响较小。
    主管、经理级的管理者平均从业经验为7年;而CIO、IT总监、副总裁级别的管理人员从业年限平均达到12年。IT管理人员普遍集中在本科学历,占到全部人数的一半左右。有所区别的是拥有硕士学位的管理者在总监以上级别中比例较高,占到20%以上;而主管、经理级的管理者中硕士的比例平均在10%左右。

奖金和其他直接现金收入的来源
个人表现 56%
公司分红 31%
项目阶段性完成 31%
特别技能奖金-工资单上的单列项 16%
特别技能奖金 15%
签约奖金 13%
留任奖金 8%
认证/培训 7%
对未来12个月非现金报酬的期望
周期性休假/延长休假 33%
医疗福利 31%
深造/培训 52%
公司配车或用车补贴 33%
公司报销电话/传真/宽带上网费用 22%
认证考试报销 19%
你的工作哪一点对你来说是最重要的?
工作的挑战性/责任 41%
工作时间的灵活性 37%
工作的稳定性 33%
福利 30%
晋升的可能性 29%
工作表现得到认可 27%
为什么寻找一份新工作?
更高的报酬 75%
更有活力的公司 55%
自我完善 36%
个人/家庭的需要 22%
不喜欢现在公司的管理/文化 21%
更有趣的工作 19%
更多的责任 18%
希望加入一家创业阶段的公司 18%
更稳定的工作 18%
更换新的工作地点 12%
期权 12%
工作技能要求和我的技能不匹配 8%
寻找压力小一些的工作 4%
人才市场的机会太好,不能错过 3%
害怕被解雇 1%

下列哪些因素会吸引你接受一个更低的职位?
更好的公司 55%
更多的工作上的满足感 46%
更具挑战性的任务 44%
灵活性/机动性 29%
期权 22%
工作地点 20%
更多的职业安全感 20%
不同的领域 14%
posted @ 2008-01-21 13:16 米小波 阅读(846) | 评论 (2)编辑
     CAB提供了一个非常灵活的编程框架,利用这一框架,可以很好的将一个应用分离成不同的模块进行开发。
    我们来看看一个基于CAB的典型应用都有哪几部分组成:

首先一个CAB应用需要通过继承自FormShellApplication的应用程序类来进行启动。FormShellApplication需要传入两个类型参数,继承自WorkItem的类,和继承自Form的类(应用程序主界面FormShell)。主界面上可以放置供所有界面视图使用的公共的UI Element (如:Toolbar)。和显示用户界面的WorkSpaceWorkItem是封装了用例实现的容器,容器中的对象可以共享信息。WorkItem也可以包含下级WorkItem.

由于CAB的优点之一是能够很好的支持模块化开发,业务开发人员可以专注于某一方面业务模块的开发,如:仓库管理系统中,入库和出库就是同一个系统中的两个业务点,在CAB的支持下,完全可以将这两个业务点交由不同的开发人员进行开发,只要按照同样的既定的规范开发(界面规范,接口规范等),就能很好地进行集成。CAB中通过Module很好的实现了这一点。

一般我们将module实现于dll文件中,每个Dll文件可能包含系统某一方面的功能,当我们在独立开发好各个Module之后,我们可以利用CAB有选择的加载这些功能模块,从而支持系统运行。要实现Module被加载很简单,只需要在ProfileCatalog.xml中将需要被加载的module配置进去就可以了。当然前提是被加载的模块需要符合CABModule设计的标准。如图中所示,这个dll中需要有一个继承自ModuleInit的类,Module被加载的时候,该类的Load方法将被调用,所以大家也可以在继承类中通过重载Load方法来扩展其加载时的行为。

一般情况下,在独立的模块中,我们还需要实现相应的继承WorkItem的类来实现其业务用例的封装,这个WorkItem我们需要将其添加到RootWorkItemWorkItems集合中,以便和其建立联系。

WorkItem中可以使用MVP的模式来实现我们的系统。上图中的View是在主窗体的WorkSpace中显示的和用户进行交互的界面,Presenter则是响应界面操作,处理业务逻辑的地方,Model则是我们的数据。

虽然我们的系统可以模块化的独立开发,各个模块之间实现了松耦合,但是系统运行时,CAB还是需要通过某种方式将各个模块糅合在一起,以便形成一个有机的整体。首先CAB是一个IOC的容器,它可以在运行时根据需要实例化各种对象,并将其注入到对其有需要的对象中,达到对象的组装,然后可以通过发布订阅事件系统及共享State实现了对象间的通讯。

CAB涉及的Dll有:
   

    常用的命名空间如下:
    
    附两张CAB中命名空间Microsoft.Practices.CompositeUIMicrosoft.Practices.CompositeUI.Winforms涉及的类和接口:
       
   

个人认为,CAB是的不错的WinForm应用框架,目前主要还是体现在对界面层和业务逻辑层的支持上。如果配合其他的技术框架如Nhibernate对数据库层进行支持,将会更好。

posted @ 2008-01-21 11:02 米小波 阅读(166) | 评论 (4)编辑

首先我们来看看Composite UI Application Block中涉及的相关概念和术语。这里会做一个简单的介绍,后续文章会详细说到其用法。

应用程序架构元素

CAB. Composite UI Application Block的缩写

Module. 应用程序的组成部件,其中包含SmartParts支持Service,业务逻辑和配置信息等

ObjectBuilder.通过策略和配置信息自动创建对象实例的对象构造器。

Shell. 承载了用户接口元素,SmartPart,服务的外壳宿主程序。

Visualizer. CAB中提供的,可以查看应用程序中的WorkItem的动态分级视图的工具。

外壳元素

shell application. 承载了用户接口元素,SmartPart,服务的外壳宿主程序。

SmartPart. 一个展现数据的视图,比如控件,Windows 窗体或是一个向导页。

SmartPartInfo. 存放SmartPart的相关信息的类,以便被workspace所使用,比如可以在Smartpartinfo中设置SmartPart的显示标题。

UIElement. 一个以Shell作为宿主的控件,该控件能被多个Module所共享,这样的控件有:toolbar button , menuitem , status panel

UIElement adapter. 管理特殊类型的UIElement的显示的类

Workspace. 封装了控件和SmartParts的某种可视化的布局的组件,比如以Tab方式显示页面。

相关模式

Blackboard. 通过提供一个共享信息的地方,使其他组件能设置或获取这个地方的信息,已达到信息共享的模式。

Builder/Inversion of Control/Dependency Injection. 该模式通过组件之间的依赖关系进行运行时的注入,来达到组件重用和松散耦合的目的。

Event Broker. 允许松散耦合的组件通过发布订阅的方式进行通讯的模式。

Memento.持久化一个对象的内部状态状态,并在需要的时候可以在后期对状态进行恢复的模式。

Model-View-Controller (MVC). 该模式将领域模型,视图和基于用户输入产生的行为(控制器)分成3个不同的组成部分。视图部分提供给用户进行交互,交互信息通过视图传到控制器,控制器更新模型,模型引发事件,从而更新视图。关系图如下:

Model-View-Presenter (MVP). 该模式将领域模型,视图和基于用户输入产生的行为(控制器)分成3个不同的组成部分。视图部分提供给用户进行交互,交互信息通过视图传到控制器,控制器更新模型,模式触发事件到控制器,同时,控制器负责更新视图。关系图如下:


相关编程模型

Component. 应用程序的可视或非可视组成部件,比如SmartParts, services, 和控件.

Container. 包含了组件或服务的类。

event broker. 支持松散耦合的发布订阅事件机制的系统。

State. 存在于WorkItem中,以键-值的字典的方式来存放共享信息。

Service.以松散耦合的方式为其他的组件提供功能的组件。比如:ModuleLoaderService

WorkItem. 运行时的组件和服务的容器,该容器能协作其中封装的用例代码的执行。一般WorkItem和用例对应。

相关角色

infrastructure developer. 负责进行应用程序的基础服务的开发的开发人员。

module developer. 负责进行应用程序的业务组件的开发的开发人员。

shell developer. 负责建立应用程序外壳的开发人员。

SmartPart developer. 负责开发应用程序的SmartParts的开发人员。

posted @ 2008-01-16 15:00 米小波 阅读(278) | 评论 (2)编辑
       微软开发了一套开源的企业库 (Enterprise Library),通过使用这套企业库里面提供的各种应用程序块可以极大的提高应用程序的开发效率和缩短开发周期,也由此得到了大家的广泛应用。
企业库包括大家熟知的如下应用程序块:
Caching Application Block.
Cryptography Application Block. 
Data Access Application Block.
Exception Handling Application Block.
Logging Application Block.
Security Application Block.
Validation Application Block.
Policy Injection Application Block.
这些应用程序块都是一些常用的非业务相关的公共模块,相关资料在网上搜一下就一大堆,所以很多使用过企业库的朋友应该并不陌生。所以这里也就不再多说。
       我今天要给大家介绍的其实也是一个应用程序块,但是是独立于企业库单独安装的。网上也能搜到一些相关资料,但总觉不够全面,如果不看安装程序提供的帮助文档,网上查到的很多中文文章,还真让人看的一知半解。知其然,不知其所以然,所以本人就干脆看着帮助文档来细细研究。先给个下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=7B9BA1A7-DD6D-4144-8AC6-DF88223AEE19&displaylang=en
下载后会有一个CAB_CS的安装文件,安装即可。
       按照微软官方的说法,Composite UI Application Block (CAB)使用了目前商业客户端应用程序常用的设计模式来构建了一个灵活的基础框架。基于这个框架可以很容易的帮助你编写运行在microsoft .net平台上的具有复杂用户交互界面的Windows Form 应用程序。那么他有哪些优点呢?
1:允许构建由各个具有协作关系的独立模块组合成的复杂应用。
2:分离关注点,能将各个模块的开发的关注点和Shell的开发分离开来。
3:提供了一个能支持高质量的桌面应用开发的框架
4:提高了生产力和节约了开发时间,进一步巩固了架构师和开发人员的劳动成果。
 这些特点如何体现出来呢?我后面的文章将和大家一同来分析。   
posted @ 2008-01-15 23:16 米小波 阅读(350) | 评论 (0)编辑
        看看自己的上一篇博客,已经粉长粉长时间了,不知道是忙,还是压根就不想写,所以自己的博客一直没啥变化,看看访问名次也落了不少,呵呵,太没面子了,所以呀,还是准备写点东东......
最近一个项目涉及倒微软的Composite UI Application Block , 里面的一些好设计思想很值得大家学习,所以后面就拿出来和大家分享一下。
posted @ 2008-01-15 21:58 米小波 阅读(45) | 评论 (0)编辑
     最近公司发了几本书,正好自己也能抽出点时间,就开始读读。
     作为项目经理,我认为技术能力已经不再是自己的主要的能力提升方面,相反,非技术方面的能力提升,才是我最大的兴趣所在。我开始喜欢研究人与人之间的沟通,喜欢分析不同的人在不同的环境下的心理状态,喜欢找出最有效的方法来影响别人,让别人顺从自己。
     看完这本书才发现,我所关注的很多的方面这里都有提到。
     1,互惠
     2,承诺和一致
     3,社会认同
     4,喜好
     5,短缺
     6,权威
     对于互惠原理,应该说一直都有经历,但从没有书中说的那么深刻。团队管理中千万不要吝啬你的小恩小惠,因为你的成员一旦接受了你的小恩小惠,他们就会对你有负债感,而且这种恩惠越多,他们的负债感会越强,越会找时机予以偿还,比如愈加支持你的工作。所以难怪很多管理者一上任首先就是想方设法,通过各种小恩小惠拉拢关系,巩固自己的地位。
     承诺和一致原理的应用一定是需要巧妙的放到一个特定环境中去,想方设法下个套,然后让其做出承诺。大部分人会有这样的一个行为模式,就是自己的行为会想办法尽可能的和自己的承诺保持一致。这个在项目组的绩效考核中会有一些用处。做过绩效考核的人都知道,绩效考核的目标并不单单是为了一个考核的结果,而更多是为了监督执行和改进。我们会首先让被考核人员承诺一个目标,然后让其按照这个目标去工作。由于每个人的绩效目标都是针对这个人的个体特性所指定的,一般会制定一个比较难以达到的目标,作为其满分目标,然后随着难度的降低是中上,中,下。这样一旦确定了这个目标,考核者和被考核这会通过签字确认这份考核文件生效。一袄旦绩效合同签字生效,就表示被考核者建立了他的承诺,他后期需要为实现他的这个承诺而努力工作。谁都不想自己实现不了自己的承诺或是离自己的承诺相差太远。
      社会认同其实就是人类作事情有时会不假思索,盲目顺从的表现,只要看到大部分人都在做的事情,觉得就是合理的。
这个我在日常生活中过马路的时候体会很深,而且我也会时不时利用这个原理来搞一点恶作剧。比如,过人行道的时候,现在的行人其实更多的是在意路上现在是否还有车通过或是有穿着黄马褂的交通员维持次序,而不是在意是否现在是红灯。所以一旦出现某个时候,路上没车,但是现在是红灯,这时又恰好有几个行人等待过马路,只要大家都在那站着不动,也许不会有人闯红灯,但是一旦有2,3个人开始不顾红灯过马路,其他人好象会不由自主的跟着过去,然后过去的人越多,跟着过去的人就越干脆,哪怕很多时候我看到交通员在旁边吹哨制止,也无济于事。我就有很多次都是这样不由自主的闯红灯的。当然,运用到管理上就得加工一下了。
      喜好也影响了我,至少我对长的帅或漂亮的同事在日常沟通中会带着一种好感,这种好感其实很多时候会影响对一个人的判断。当然除了外表,我们一般对是“老乡”或是校友的同事会比对其他的要来的亲切,会更好沟通,也就是这个原因。
      短缺原理正是中国人常说的“物以稀为贵”,“失去的才是最珍贵的”的体现,大街上只要人们看到什么商品限时抢购,很多人即使自己不需要的,都会凑过去看看,或是干脆买一些,安慰自己说后面总有用的着的地方。
      权威也是制造影响力的一个很重要的方面。人们都有景仰或信任权威的天性,所以作为管理者,建立自己某方面的权威,对服众是非常有帮助的。 
      对于这些原理的思考和实践,我想对项目管理工作会有不错的效果。
posted @ 2007-10-07 01:06 米小波 阅读(90) | 评论 (3)编辑
      美国的是个两面临海的国家,西岸靠近太平洋,东岸靠近大西洋,在洛山矶的时候匆忙的感受了一下太平洋的感觉,趁着还在新泽西,今天也着实感受一下大西洋的风情。晒晒太阳,踩踩沙滩,捡捡贝壳,吹吹海风,感受感受海浪的敲打,同时顺便也看看美女,呵呵~~~,just enjoy !
posted @ 2007-07-01 08:29 米小波 阅读(74) | 评论 (0)编辑