version; minor version; build number; and revision。 The build number can represent a daily
build number; but this is not required。 The revision identifier can represent a random number;
but this is not required either。 For my assemblies; I use a revision number of 0; and consider the
build number as a patch number。
Visual Basic Express has a built…in mechanism that automatically updates the build and
revision numbers。 Here; the asterisk represents the auto…increment:
Alternatively; you can use a versioning tool; or you can increment the numbers manually。
The gacutil tool can be executed multiple times with multiple versions; as shown in Figure 12…4。
■Note For more information about using versioning tools; see this blog entry about auto…incrementing
assembly versions: http://weblogs。asp/bradleyb/archive/2005/12/02/432150。aspx。
Figure 12…4。 An assembly added three times to the GAC with three different versions
In Figure 12…4; the assembly VersioningAssembly has been added three times to the GAC
with three different versions (1。0。0。0; 1。1。0。0; an d 1。2。0。0)。 With the GAC in this state; an appli
cation or another assembly has the option to reference three different versions of the same
assembly。
…………………………………………………………Page 358……………………………………………………………
336 CH AP T E R 1 2 ■ L E A R N I N G A B OU T A PP L I CA TI O N CO N F I G U R AT IO N AN D D Y N A M I C L O AD I N G
For an application or assembly to use another assembly; you create a reference。 When the
application or assembly is piled; a specific version number of the assembly is referenced。
For example; if a reference to the version 1。1。0。0 of VersioningAssembly is defined; then version
1。1。0。0 of the assembly is loaded。
Adding an Assembly Redirection to a Configuration File
Let’s say an application or assembly needs to use a new version of the VersioningAssembly
assembly。 To make the application or assembly aware of the new assembly; you update the
application or assembly configuration file that references the old assembly。 The configuration
file update includes an assembly redirection。 Essentially; what the redirection says is that if a
certain version of an assembly is requested; the new version should be loaded。 The following is
an example of an assembly redirection。
This configuration file includes an assemblyBinding XML element that defines a collection
of assemblies that will be affected。 The collection of assemblies is embedded within the
dependentAssembly element。 Within the dependentAssembly element are two child elements:
assemblyIdentity and bindingRedirect。 The assemblyIdentity element is used to identity the
assembly for which a reference will be redirected。
The bindingRedirect element contains two attributes: oldVersion and newVersion。 The
oldVersion attribute identifies the version of the old assembly in the calling assembly or appli
cation。 If the specified version of the old assembly is found; the newVersion attribute is used to
identify which assembly version should be used instead。 In the example; the old version is 1。1。0。0;
and the new version is 1。2。0。0。 The new version has an incremented minor number; indicating
a new version of an assembly。 However; the binding redirection does not care whether the
newVersion attribute references a newer version or an older version。 The version identifiers
identified by the attributes newVersion and oldVersion are just that: identifiers。
…………………………………………………………Page 359……………………………………………………………
CH AP T E R 1 2 ■ L E AR N IN G AB O U T AP P L I CAT I ON CO N F IG U R AT IO N A N D D Y N A M IC L O AD IN G 337
Implementing a Shared Typed Convention…Based
Architecture
There has been quite a bit of talk in the software munity about convention over configu
ration。 Most of this talk began in earnest with the development of Ruby on Rails (http://
rubyonrails。org/)。 Ruby on Rails (Rails for short) is a tool that allows people to very
quickly create web sites that provide useful functionality。
Many attribute the success of Rails to its use of convention over configuration。 Some say
it is the Ruby language。 Others say it is because Rails is a professional product。 I believe it’s a
bination of factors; but the convention over configuration angle does play an important role。
Let’s go back to the problem of loading code dynamically; or for that matter; executing
code dynamically。 How much do you expect the programmer to know; and how much do you
expect the programmer to guess? Consider this code:
Interface IDefinition
End Interface
Sub DoIt(ByVal def As IDefinition)
" Do Something with def
End Sub
In the code; you can see an interface IDefinition and a method DoIt(); with a parameter
of type IDefinition。 This creates a contract where to call DoIt(); you need to pass an instance
of type IDefinition。
Is it correct to assume that the dynamic loading of a type can fulfill the cont
小说推荐
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章
- 深入浅出MFC第2版(PDF格式)
- -Page 1-Page 2-山高月小山高月小 水落石出水落石出山高月小山高月小 水落石出水落石出-Page 3-深入淺出MFC(第版 使用Visual C 5.0 MFC 4.2)Dissecting MFC(Second Edition Using Visual C 5.0 MFC 4.2)侯俊
- 最新章:第309章
- VC语言6.0程序设计从入门到精通
- -Page 1-Visual C 6.0 程序设计从入门到精通求是科技 王正军 编著
- 最新章:第136章
- SQL 21日自学通(V3.0)(PDF格式)
- -Page 1-SQL 21 日自学通(V1.0 翻译人 笨猪目录目录 1译者的话 14第一周概貌 16从这里开始 16
- 最新章:第170章
- 2008年青年文摘精编版
- 作者:中国青年出版社“初恋”的惩罚.作者:凡 凡 文章来源《真情》2005年第4期 点击数:6608 更新时间:2005-6-5过了年,我就十八岁了。离高考只剩下四个多月了。这一段,班里的男女生相互间递纸条、写情书、约会等地下活动慢慢的多了起来。我这个“尖子生”也突然感到了不安、慌乱,并且自责。不知
- 最新章:第230章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章