日期:2013-12-13  浏览次数:20786 次

在开发ASP.NET应用程序时,可以根据所开发应用程序的具体需求和设计,将代码封装成各种处理相应操作的类。并以此来组织和管理已有的代码。由此便形成了很多在ASP.NET应用程序中的程序集(即编译后形成的DLL文件)。

在这些程序集中,很多对底层代码的封装,不涉及应用程序的事务逻辑,那么是可以在各种应用程序中反复应用(代码的重用)。例如,对各种常用数据库操作的封装,形成专门用于数据库操作的类,那么该类是可以在所有需要数据库的应用程序中使用的。随之而来的便也有一个问题,可能在各种不同的应用程序中,对该类会作一些相应的更改,那么随着程序集的数目的增加和修改次数的增多,就会在版本问题上产生很多麻烦。而即使是一些仅仅被某个应用程序使用的程序集,也可能因为对其进行修改而产生了不同的版本,因而产生同样的版本上的问题。在平常的开发中就经常遇到这样的麻烦,对某段代码的调式总是不能产生预期的结果,错误找来找去,最后发现原来是所使用的程序集内的一些代码被做了修改。

前些日子编写了关于对程序集进行版本控制的规范的文档,这里说说我个人的一些建议,希望能够有一定的参考价值吧。

首先,我们需要有一个用于标识程序集不同版本的标号,版本号。MSDN中对版本号的说明,推荐使用一个由四部分组成的版本号格式。[MajorVersion.MinorVersion.BuildNumber.Revision],对这四部分的具体说明如下:(主版本或次版本。对版本号的主版本或次版本所做的更改表示不兼容的更改。因此,在这种约定下,2.0.0.0 版被视为与 1.0.0.0 版本不兼容。更改某些方法参数的类型,或者整个移除某个类型或方法都属于不兼容的更改。内部版本。内部版本号通常用于区分每日版本或者改动较小的兼容版本。修订号。修订号更改通常是为修复某个特定错误所需的增量编译保留的。有时,您会听到它被称为“紧急错误修复”号,因为当发送给客户针对某个特定错误的修复时,更改的通常是修订号。)以上括号中部分摘自MSDN。当然,可以根据各自实际需要的不同,对该版本号的格式做适当的调整。我所使用的版本号格式为:[主版本号.次版本号.程序编译时间.修改次数],其中,主版本号用于标识较大的改动,次版本号用于标识较小的改动,编译时间用于标识该程序集被编译归档的时间,修改次数用于标识该程序集被修改了几次。

[未完]

下半部分将主要讲述实现版本的控制的两个方案.