The Developer's Guide to Building Global Windows and Web Applications
by Guy Smith-Ferrier published by Addison-Wesley ISBN 0321341384

Latest News

22 April 2013 - Visual Studio 2012 Source Code now available

10 March 2012 - Visual Studio 2010 Source Code updated

01 September 2010 - Visual Studio 2010 Source Code now available

01 September 2010 - Visual Studio 2008 Source Code updated

26 April 2009 - Visual Studio 2008 Source Code updated

2 Dec 2008 - Visual Studio 2008 Source Code now available

27 Sept 2008 - Visual Studio 2005 Source Code updated

31 July 2008 - Visual Studio 2005 Source Code updated

3 July 2008 - Visual Studio 2005 Source Code updated

26 May 2008 - Visual Studio 2005 Source Code updated

20 April 2008 - Visual Studio 2005 Source Code updated

3 November 2007 - Visual Studio 2005 Source Code updated

18 July 2007 - Visual Studio 2005 Source Code updated

09 March 2007 - Visual Studio 2003 and Visual Studio 2005 Source Code updated

14 December 2006 - Visual Studio 2003 and Visual Studio 2005 Source Code updated

15 November 2006 - Visual Studio 2005 Source Code updated

30 October 2006 - Visual Studio 2005 Source Code updated

6 October 2006 - Visual Studio 2005 Source Code updated

4 October 2006 - Visual Studio 2003 Source Code available for download

19 September 2006 - Visual Studio 2005 Source Code updated

17 August 2006 - Second Sample Chapter added to downloads

14 August 2006 - First edition of book released

5 June 2006 - Sample Chapter updated with final draft

13 May 2006 - Visual Studio 2005 Source Code updated

10 April 2006 - Book production process begins

21 Oct 2005 - Visual Studio 2005 Source Code available for download

7 Sept 2005 - Website launched

Downloads

The Visual Studio 2012 (.NET Framework 4.0) source code for the book is available here.

Previous versions of the source code (for Visual Studio 2010, Visual Studio 2008, Visual Studio 2005 and Visual Studio 2003) are no longer being updated. If you want the latest and greatest updates you should download the Visual Studio 2012 source code. If you want to follow along with the code in the book you should download the Visual Studio 2005 and Visual Studio 2003 source code.


The Visual Studio 2010 (.NET Framework 4.0) source code for the book is available here.

The Visual Studio 2008 (.NET Framework 3.5) source code for the book is available here.

The Visual Studio 2005 (.NET Framework 2.0) source code for the book is available here.

The Visual Studio 2003 (.NET Framework 1.1) source code for the book is available here.

The Visual Studio 2010 (.NET Framework 4.0) Resource Provider Code Generator .exe/.msi is available here. This package works with Visual Studio 2012, Visual Studio 2010 and Visual Studio 2008. (the source code is included in the Visual Studio 2012, Visual Studio 2010, Visual Studio 2008 and Visual Studio 2005 source code).

The source code is provided "as-is" and without warranty. Check regularly for updates to the source code.

Here's a detailed description of what is available in these downloads:-

Chapter Project Description VS2005 Pre-requisites VS2005 Download VS2003 Pre-requisites VS2003 Download
N/A Internationalization.Common A library of Internationalization tools including EmptyResourceReader, FileFinder, GlobalizationUtilities, PseudoTranslation, ResourceUtilities, TargetLanguages and ThreadFactory classes None Yes None Yes
4 ChangeCulturesDuringExecution Demonstration of how to change CurrentUICulture while the application is running (based on a menu of culture choices) None Yes None Yes
4 ChangeCulturesDuringExecution2 Demonstration of how to change CurrentUICulture while the application is running (based on Regional and Language Options Dialog) None Yes None Yes
4 ClickOnceBootstrapperManifestFiles Example ClickOnce Bootstrapper Manifest files for packaging .NET Framework Language Packs None Yes N/A N/A
4 ClickOnceDownloadOnDemand Demonstration of a ClickOnce application that downloads resources for the user’s choice of culture on demand None Yes N/A N/A
4 SetPublishState, SetPublishStateTask A command line utility and msbuild task to set the ClickOnce PublishState of satellite assemblies None Yes N/A N/A
4 SchizophrenicUI Demonstration of a schizophrenic user interface problem None Yes N/A N/A
4 TranslatedApplication Demonstration of a translated Windows Forms application with resources in English, French, Greek, Japanese and Pseudo Translation. None Yes N/A N/A
5 ASP.NET Control Localizer Localizes System.Web controls from resources in the .NET Framework Language Packs None Yes N/A N/A
5 SchizophrenicUI Demonstration of a schizophrenic user interface problem None Yes N/A N/A
5 Script Resource Viewer Debugging tool to decrypt WebResource and ScriptResource references and get unzipped content from these HTTP Handlers None Yes N/A N/A
6 CultureInfoExExample Demonstration of the CultureInfoEx class Globalization Yes N/A N/A
6 Globalization A library of Globalization tools. AlternateSortOrders gets an array of LCIDs of installed sort orders. CultureInfoEx is an extended CultureInfo class. CultureInfoProvider is a provider of CultureInfo objects. GeoInfo provides access to geographical information given a GeoId. PostalCodeInfo holds a postal code mask which is suitable for use with data entry controls. None Yes None Yes
6 IDNTest Demonstration of the IdnMapping class None Yes N/A N/A
7 IMEExample Simple demonstration of control of an IME in a Windows Forms application None Yes N/A N/A
7 IMEExample2 Complex demonstration of control of an IME in a Windows Forms application None Yes N/A N/A
7 SetInputLanguageExample Demonstration of setting the input language appropriate to the CurrentUICulture Internationalization.Common  Yes N/A N/A
8 ExceptionMessages Demonstration of how exception messages get localized None Yes None Yes
8 FallBackFontUsingCourierNew Demonstration of the Courier New font falling back to render Devanagari None Yes N/A N/A
8 HotKeyAssignments The HotKeyAssignments class handles the assignment of hot keys to controls and labels after localization has taken place None Yes None Yes
8 HotKeyAssignmentsExample Demonstration of the HotKeyAssignments in a Windows Forms application None Yes N/A N/A
8 LogFontExample Demonstration of the Font.ToLogFont method None Yes N/A N/A
8 TableLayoutPanelDemo Demonstration of the localization benefits of using TableLayoutPanel None Yes N/A N/A
9 TranslationEngine An engine for translating text. The project includes many wrappers for free machine translation services. Internationalization.Common Yes Internationalization.Common Yes
9 TranslatorEvaluator The TranslationEvaluator is a utility for evaluating the effectiveness and performance of machine translators. Internationalization.Common, TranslationEngine Yes Internationalization.Common, TranslationEngine Yes
10 AddResourceString AddResourceString is a Visual Studio add-in for adding a resource to a complete set of resource files and, optionally, translating the resource in the process Internationalization.Common, ResourceAdministration, TranslationEngine Yes Internationalization.Common, ResourceAdministration, TranslationEngine Yes
10 ResAdmin The Resource Administrator (ResAdmin) is a stand alone developer tool for providing the complete maintenance of resources Internationalization.Common, ResourceAdministration, ResourceEditorControlLibrary, TranslationEngine Yes Internationalization.Common, ResourceAdministration, ResourceEditorControlLibrary, TranslationEngine Yes
10 ResourceAdministration Implementations of the IResourceGovernor and IResourcesGovernor interfaces for providing an abstraction for resource implementations Internationalization.Common, CustomResourceManagers, TranslationEngine Yes Internationalization.Common, CustomResourceManagers, TranslationEngine Yes
10 ResourceEditorControlLibrary Includes the ResourceEditorControl component. ResourceEditorControl is a complete resource editor in a control. Use this control to build your own custom resource editor. Internationalization.Common, ResourceAdministration Yes Internationalization.Common, ResourceAdministration Yes
11 CustomCultureExamples Demonstration of 7 custom cultures. Includes the source for the CultureAndRegionInfoBuilderHelper class that helps build custom cultures. None Yes N/A N/A
11 RegisterCustomCulture Command line utility for registering custom cultures from a .LDML file None Yes N/A N/A
12 CustomResourceManagers 5 custom resource manager classes (DbResourceManager, ResourcesResourceManager, ResXResourceManager, StandardPropertiesResourceManager, TranslationResourceManager). Also includes the ResourceManagerSetter class for allowing Windows Forms to use a resource manager other than ResourceManager. TranslationEngine Yes TranslationEngine Yes
12 CustomResourceManagersExample Demonstration of using the DbResourceManager, ResourcesResourceManager and TranslationResourceManager resource managers and the ResourceManagerProvider and ResourceManagerSetter classes ResourceManagerProvider, CustomResourceManagers, TranslationEngine Yes ResourceManagerProvider, CustomResourceManagers, TranslationEngine Yes
12 ResourceManagerProvider A provider for resource manager implementations. The ResourceManagerProvider provides an abstraction from the actual resource manager class employed by an application. None Yes None Yes
12 ResClassGen ResClassGen is similar to the .NET Framework ResGen utility. It generates a strongly typed resource class (for both the .NET Framework 1.1 and 2.0) and allows the generated class to use a ResourceManagerProvider instead of a ResourceManager. (Includes a StronglyTypedResourceBuilder class for the .NET Framework 1.1). Resources.Tools Yes None Yes
12 Resources.Tools Includes the StronglyTypedResourceBuilderHelper class. This class uses the .NET Framework StronglyTypedResourceBuilder to generate a class with the difference that the generated code uses the ResourceManagerProvider to supply a resource manager instead of using the hard-wired ResourceManager class. None Yes N/A N/A
12 Resources Code Generators Includes the ResourceProviderCodeGenerator and PublicResourceProviderCodeGenerator replacements for the ResXFileCodeGenerator and PublicResXFileCodeGenerator. These code generators generate the same strongly typed resource classes from .resx files as the ResXFileCodeGenerator and PublicResXFileCodeGenerator with the exception that the resource manager is abstracted to the ResourceManagerProvider instead of being hard wired to the .NET Framework ResourceManager. The benefit is that your code can now use any resource manager not just the one in the .NET Framework. You can download the .exe/.msi built from this code here. None Yes N/A N/A
13 FxCopAdditionalGlobalizationRulesTest Test project for causing the FxCop rules in GlobalizationRules to fail GlobalizationRules Yes GlobalizationRules Yes
13 GlobalizationRules A library of 14 custom FxCop rules for testing internationalization Internationalization.Common Yes Internationalization.Common Yes
13 LiteralStringManager The Literal String Manager is a tool that accompanies the DoNotUseLiteralStrings custom FxCop rule. It provides a GUI for accepting or rejecting suspect strings in assemblies None Yes None Yes
14 InvokingWinRes Demonstration of the InvokeWinRes class. InvokeWinRes is a class for invoking WinRes from within a Windows Forms application. ResourceAdministration Yes ResourceAdministration Yes
14 ResourceTranslationManager The Resource Translation Manager is a translator/localizer tool for translating/localizing resources Internationalization.Common, ResourceAdministration Yes N/A N/A
App. A ConvertResX Converts .NET 2.0 resx files to .NET 1.1 .resx files None Yes N/A N/A