definitions。dll reside in the current directory)。 gacutil /I definitions。dll gacutil /I implementations2。dll Remember to add Definitions; because Implementations2 depends on Definitions。 Failing to add Definitions will generate gacutil errors。 ORGANIZING DYNAMIC CODE If you are going to place files in the GAC; don’t use the techniques demonstrated in this book when doing a production release。 The techniques discussed in this book are meant for developers; and only developers。 The techniques are shortcuts that assume you know what the dependencies are and are aware of what you are doing。 For distribution purposes; use the Microsoft Windows Installer application to install files into the GAC。 When writing dynamic code; the idea is to separate and pletely partmentalize the development of the ponent and the caller of the ponent。 Thus; you should not develop both pieces in the same project。 Create separate projects and have them working with test routines。 Then; at runtime; bine the functionalities; and everything should work (that is; if you properly tested your code)。 Using Version Numbers Version numbers are a way of being able to control the features and robustness of an applica tion。 In the packaged software market; the concept of the version number has nearly disappeared。 For example; consider Microsoft’s operating system versions: Windows 95; Window 98; Windows XP; Windows 2000; Windows Vista; and so on。 …………………………………………………………Page 356…………………………………………………………… 334 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 In open source software; version numbers are used extensively and are considered very important。 Yes; the version numbers resemble a lottery ticket; but they do follow a convention。 Understanding the convention makes it easier to select open source packages。 And more important; applying this versioning strategy makes it simpler to understand your assemblies。 Understanding Version Numbers Let’s say you want to download the open source program Capivara (a Java file manager and synchronization program)。 You see the version number 0。8。3。 The version number contains three parts: Major number: The major number is 0 in the example。 If the software has not reached the number 1; the version is considered a beta。 But often; a beta identifier does not mean the version is unusable。 Changing the major version number indicates a major change of functionality。 This means what worked in version 1 may not work with version 2。 An example is the Apache HTTPD server project; where the 1。x and 2。x series are two different implementations。 Minor number: The minor number is 8 in the example。 It is used to define minor function ality changes in a piece of software。 Changing the minor number (such as 7 to 8) indicates new features; but old functionality is supported。 A change may include bug fixes or patches。 Patch number: The path number is 3 in the example。 It is used to define a patched version of the software that has bug fixes or other changes。 The changes do not include features; and the functionality does not change。 When you attempt to download an open source package; you are typically confronted with multiple versions。 For example; you might see the version numbers 4。23 and 4。29 (beta)。 Because most people want the latest and greatest; they might be tempted to download 4。29。 But remember that open source projects make multiple versions available。 In the example; you should down load version 4。23; because 4。29 is a beta that may or may not work。 Version 4。23 is considered stable and therefore usable。 The open source munity will often use the following terminology when releasing software。 o Stable: A version that can be used in a production environment and should not crash。 o Unstable: A version that should not be used in production。 It will probably work; but have some crashes。 o Nightly: A version with all bets off; meaning that the version may or may not work。 The reason for using a nightly build is to monitor progress and check specific issues。 Such a version is not intended for consumer consumption; it is intended solely for developers。 o Alpha : A version that demonstrates the concepts that will make up a future version of the software。 However; in alpha versions; what was available one day might be gone the next day。 …………………………………………………………Page 357…………………………………………………………… 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 335 Versioning Assemblies assembly version numbers are different from those used for open source packages。 The following is an example of versioning an assembly。 The attributes AssemblyVersion and AssemblyFileVersion can be added anywhere in the assembly or application。 In Visual Basic Express; most likely the attributes are added to the file AssemblyInfo。vb。 The versions of the file have four significant parts。 From left to right; these are major version; minor version; build number; and revision。 The build number can represent a daily build nu