MSF Agile Beta 汉化教程(二)

概览

那么什么是MSF Agile呢?MSF Agile就是一套为团队项目提供的流程指南,主要包括角色定义、行为定义、工作流程以及交付产品等概念。

每种软件过程方法理论都会包含角色定义,其实无论贵公司是否已经采用了特殊的方法理论,都会或多或少的有了一些角色定义。比如开发人员、项目经理以及测试人员。当然,在国内很多小型开发公司里面,这些人员的职责非常不清晰,划分也不明确,比如很多测试人员并没有特定的人员,而是谁有空由谁来担任,甚至有时候,开发人员来测试自己开发的代码,或者老板亲自上阵。在这种情况下,谁也无法保障交付产品的质量。所以我们需要比较严格的角色定义,并且规范其职责范围。

每种角色都有自己的职责范围,这些职责是由一个个行为所组成的。行为就是单个角色为完成项目的某个任务所需要执行步骤的指南。行为被组合起来就成为了工作流程

交付产品最明显的例子就是我们所要开发出来的软件产品,包含二进制文件以及源代码。但交付产品远远不止这些,还包括文档(如帮助文档以及需求文档等等),一般来说,在某种行为完成后,肯定都有相应的交付产品出现。所以说,交付产品是某种行为的产出物,同时,也有可能成为某种行为的必要条件。也就是说,必须有某些交付产品,才能够去进行这一行为

Team System提供了一套集成的工具,用以在项目开发当中贯彻以上所提到的这些指导方针。它可以完成的功能主要有:

  • 用户和组

所有的开发成员都会获得用户身份,这些用户身份属于一些用户组。这些我们可以为特定的组赋予特定的权限,从而实现角色的定义。注意:这些用户与组是建立在活动目录(Active Directory)的基础上的。

  • 工作项库

为项目所计划或者需要跟踪的所有事项都被存放在一个工作项数据库的地方。这个数据库当中的每个记录都称之为一个工作项工作项可以有不同的类型,如任务缺陷风险等。工作项可以用来确定每个工作、交付产品等的状态。这样每天每个人的工作量就可以很轻易得到确认。

  • 版本控制系统以及项目站点

原来的Visual Source Safe 6.0一直以来受到各种各样的质疑,比如对分支、合并的支持(其实VSS支持这些工作,只不过默认关闭),并且不支持TCP/IP,无法供异地合作的人使用,在新版的VSS 2005当中这些都已经得到了增强。但VSTS还提供了一个更加强大的版本控制系统,称之为Team Foundation source control 。该系统不仅可以管理源代码,还可以管理测试(代码、配置、结果等)以及模块等。另外,依托Windows SharePoint Service的强大功能,VSTS还提供了项目站点的功能,可以查阅各种项目目标文档、日程表以及各种与该项目开发相关的资源文档。当然,也提供了讨论组等功能。

在接下来的教程当中,我们将分别介绍MSF Agile当中的角色定义以及工作项的具体定义。

注:文中的粗体字均是英文中的术语的直译,为了提高本教程的写作进度,暂时不提供索引,感兴趣的朋友,可以阅读原英文文档。

 

 

 

MSF Agile Beta 汉化教程(一)

注:为了方便大家尽快了解如何利用Visual Studio Team System在自己的团队当中展开开发工作,本人现在开始进行MSF Agile Beta版文档的汉化工作,原始文档可以在http://lab.msdn.microsoft.com/teamsystem/workshop/msfagile/default.aspx中下载得到。限于本人水平,有些汉化可能并不达意,欢迎大家批评斧正。同时,如果您有意参与汉化,也请与我来信说明。

版权:本汉化文档欢迎转载,但请在转载的时候,请注意保证本文的完整性,注明英文文档地址,及汉化作者名称,及原始出处(以超链接方式给出,而不是仅仅提供站点名称)

特别注明:本文档并非单纯的汉化原英文文档,部分内容是开心的个人开发过程中的随想,欢迎斧正。

前言

在中国的法律建设当中,有一个十六字方针,相信上过高中政治课程的同志们都已经非常熟悉了,这就是“有法可依,有法必依,执法必严,违法必究”。其实,在团队开发当中,为了保障开发的正常进行,这十六字方针仍然适用。下面就一一进行解释:

  • 有法可依

  在团队开发当中,为了能够更加快速的交付客户所需要的质量稳定的软件产品,需要有一定的开发理论作为支撑,这就是软件开发过程当中的“法”。在业界,这种方法论并不缺少,比如著名的有:MSF(微软解决方案框架)、RUP(Rational统一过程理论)、XP(极限编程)等。

  • 有法必依

   有了这些软件过程的方法论,那么如何真正有效的贯彻实施?这就需要有工具来配合,使这些方法论真正能够贯彻在软件开发的各个环节中。其实,在大家的开发团队当中,这种工具已经或多或少的在使用了,比如开发环境:Visual Studio.NET,Borland C# Builder;版本管理工具:Visual SourceSafe,CVS; Bug管理工具;项目管理工具;测试工具等。

  • 执法必严

   但目前的工具在软件开发团队当中,并不是特别顺手,因为各个工具都独立存在,在功能上互相交叉,但又无法相互共享其结果。最终的结果是在开发当中造成严重脱节,软件团队成员之中怨声载道,项目也一再延期。可见,光是有工具是不行的,而且必须要有一个集成的工具,能够把各个环节能够统一出来,每个环节都可以量化管理,推动项目能够良性开发。

  • 违法必穷

       有了良好的工具及方法论,那么在公司里面也应该有相应的公司章程,开发团队绩效考核办法等绑定,从而确立整个团队开发的奖惩措施,更有效的发挥软件开发团队的潜力。

      大家知道,微软的MSF至今已经发展到3.0,是微软及微软合作伙伴在软件开发过程当中,根据自己的实践总结的一套方法理论。但MSF并不一定适合所有的ISV(独立软件开发商),所以在4.0推出时,我们将MSF分成两个版本,一个是软量级的:MSF Agile,适合绝大部分开发团队使用;另外一个是MSF Complete,适合已经通过或者相当于CMM 3级的软件企业使用。

       目前,MSF Agile还处于Beta阶级,本教程将介绍MSF Agile的基本内容,以便让大家对此有所了解,并且在本教程当中,将会结合VSTS来介绍该方法论,不是单纯的“纸上谈兵”。

Enterprise Library

上个月底,MSDN上一个重大事件是Enterprise Library 1.0的推出。Enterprise Library 1.0把原先陆续推出的几个应用程序编码块(Application Blocks)更新后以统一的风格集中在一起,其扩展性和易用性大大增强,并提供了一个简单易用非常powerful的配置编辑工具

其中的Data Access Application Block有了很大的变化。ADO.NET中遭人批评的一点是没有提供一个共同界面在保持最佳性能的情形下来操作不同数据库(虽然有不少人做了类似努力,譬如参考这里),这种情形在早期Data Access Application Block版本中也没什么改变,但在Enterprise Library中的版本中推出了database-agnostic APIs。虽然还只支持SQL Server, Oracle, DB2,但你可以写自己的Provider来操作其他的数据库。譬如,你可以写类似下面的编码,只要在相应的配置文件中改变连接字符串以及Data Provider类名,即可操作其他数据库

using Microsoft.Practices.EnterpriseLibrary.Data;

Database db = DatabaseFactory.CreateDatabase();
DBCommandWrapper dbcw = db.GetSqlStringCommandWrapper(“select au_lname as LastName, au_fname as FirstName from authors”);
using (IDataReader reader = db.ExecuteReader(dbcw))
{
  DataGrid1.DataSource = reader;
  DataGrid1.DataBind();
}

跟Enterprise Library相关的连接

Enterprise Library下载

Enterprise Library Home

Enterprise Library Community Site

Blogs:

Tom Hollander

Scott Densmore

Hisham Baz commences

Martin Granell

PetShop.NET

有位网友把微软的PetShop 3.* 用开源技术重写了,要我提提意见。

首先,我要对这位网友表示感谢,支持和鼓励,让我们见识到了Java世界里时兴的技术/模式在.NET开发中的具体应用。随着这些时兴技术不断地移植到.NET中,我们开发人员会有越来越多的选择。你不需要等ObjectSpaces,类似技术已经在这里

我的看法是,微软的PetShop 3.*,除了跟Sun的J2EE版本做比较外,主要是提供了一个可做参考的样品,在当前.NET的框架,类库下,怎么手工实现分层应用。这里面涉及很多细节,怎么设计业务层/持久层,怎么做事务,业务层与持久层怎么交互,表现层怎么跟应用层交互,等等,这对初学者来说,是个很好的指导,让人了解在多层应用中,具体都需要做什么。由于O/R的差别,在大型项目中,很多时候大概会用专门的O/R Mapper或持久框架。象NHibernate这样transparent,non-intrusive的技术,指明了很好的方向。但不管用什么,多层应用里所涉及的细节都是需要了解的。在这一点上,对一个.NET开发人员而言,我想,微软的PetShop serves its purpose。

我同意,微软的PetShop要真正成为Best Practice的样板,有不少需要提高,完善的地方。譬如他们的Domain Model,用Martin Fowler的说法是有点贫血(Anemic),但这也许是因为这应用本身没有多少业务逻辑,有人指出过里面不少的缺点,也有人指出过SQL Server / Oracle的实现是否用Bridge模式来实现更恰当些。

但我觉得,这位网友把几个层都做了大改动,基本上就是重写了,不再是“重构”了。而且我觉得这位网友没必要局限于微软的PetShop implementation,而应该从原来的J2EE的blueprint出发,用那些开源技术完全重新实现PetShop,也许更可体现这些技术的好处。同时希望这位网友能把其中的要点写成文章发表。

需要指出的是,象NHibernate/Spring.Net等技术还是在Beta甚至Alpha阶段,在正式的production项目中,要慎用

跟踪 Office 文档阅读情况的一个小办法

春节一天天临近,办公室的同事越来越少,领导在最后几天也不会安排什么工作,所以留守的人员虽然无聊,倒也轻松,上网找找春节好玩的地方,看看小说,向朋友发春节贺卡,当然也少不了游戏比拼

言归正传了,写写文档阅读跟踪的心得,如果你有一些需要保护的文档,在某些情况下需要发给其它人查看,但期望跟踪了解此文档的使用情况,如是否由企业外部人员查看,是否被大规模扩散等,一般较为严格的保护措施有:

  • 给 Office 文档设置查看/修改密码
  • 转成 PDF 格式并加安全设置
  • 利用 RMS 来限制访问

但有些特定的情况下,不适宜给文档设置如上安全特性,如发给老总的文档或其它部门的办公文档,即要确认是否阅读,又要保证文档不会外泄。如下的这个小技巧也许是解决此类问题的一个好办法:

在文档的任意处(一般是在结尾处),点击“插入”---“对象”,选择“由文件创建创建”,然后输入自己编写的跟踪程序的 URL 地址,如 http://ZZZ.YYY/track.asp,并选中“链接到文件”复选框,然后确认退出,这时会在文档中生成一个较大的透明对象,将其缩小到不易发现的大小即可。

至于 ASP  跟踪程序里就比较自由了,由您来把握了了,一般如下语句是不能少的:

INSERT INTO Track(IP,HostName,UserName,Agent,ViewDateTime)
VALUES(
‘” & Request.ServerVariables(“REMOTE_ADDR”) & “‘,'” & Request.ServerVariables(“REMOTE_HOST”) & “‘,'” & Request.ServerVariables(“REMOTE_USER”) & “‘,'” & Request.ServerVariables(“HTTP_USER_AGENT”) & “‘,'” & Now & “‘)”

在对方接收到文档并打开查看时,不同版本的 Office 会有不同的效果:

  • Office 2000/XP 版本:系统会“隐式地”(只在状态栏上显示进度)自动更文档中的链接,这样对方一般不会发现已被“跟踪”。
  • Office 2003 版本:系统会“显式地”(弹出一个对话框,确认用户是否更新文档中的链接)地更新链接,一般用户不会想到这是一个跟踪链接而点击“确认”,少量知情或不知情用户可能会选择“取消”(看完这篇文章的人都变成知情用户了 ),这样就无法跟踪了,但估计这个比例小于 10%。

如果你要同时跟踪内部用户和外部用户,那最好在文档中插入两个跟踪连接,然后分别在内网和外网部署跟踪程序。

MSN 病毒大曝发

大家小心了。

今天登录 MSN Messenger 后,已经发现 10  余例好友列表中的人发送不明文件(.scr, .exe , .gif ) 过来,明显是中了病毒,不仅有国内的朋友,也有国外的朋友,看来病毒的传播性很强。

同时发现 MSN Messenger 在文件传输安全设置上的一些不足,Outlook / Outlook Express 都已对邮件附件进行了分级,如果不改注册表,发送的 .exe , .scr 文件是被自动禁止的,这样把绝大多数邮件病毒送进了坟墓。而最新的 MSN Messenger 7.0 也只是在选项中可以定义接收文件之后可以用防病毒程序去扫描,而没有传送文件的其它高级选项,如完全或部分阻止接收(危险)文件,估计 MSN Messenger 的后续版本肯定会把这个 Feature 加进去,否则 MSN 病毒不会消停。

 查看:MSN 病毒分析及解决方案(SINA)
下载:专杀工具1 2 3