210 likes | 387 Views
Michael S. Kaplan Software Design Engineer Trigeminal Software, Inc. http://www.trigeminal.com. Unicode and Visual Basic: A Case Study. http://www.i18nWithVB.com/. The purpose of Visual Basic. Making Windows development easier Promote the Windows platform through ISVs who use it
E N D
Michael S. Kaplan Software Design Engineer Trigeminal Software, Inc.http://www.trigeminal.com Unicode and Visual Basic: A Case Study http://www.i18nWithVB.com/ Unicode and Visual Basic, IUC 18 (Hong Kong)
The purpose of Visual Basic • Making Windows development easier • Promote the Windows platform through ISVs who use it • The "apple in Bill's eye" Unicode and Visual Basic, IUC 18 (Hong Kong)
International support in the early versions • Very limited! • Multiple versions of the product codebase • Bugs found in one language version often not fixed elsewhere • Certainly NO Unicode support Unicode and Visual Basic, IUC 18 (Hong Kong)
VB 4.0 - a time for choices Unicode and Visual Basic, IUC 18 (Hong Kong)
Keep VB in 16 bit, and take advantage of the support for Win16 applications • Easy for VB to do • Useless for the Win32 platform itself • No international support at all Unicode and Visual Basic, IUC 18 (Hong Kong)
Move VB to Win32 entirely, leveraging the emerging NT platform's full support of Unicode through its "W" APIs. • Great international solution • Poor solution for Windows 95 Unicode and Visual Basic, IUC 18 (Hong Kong)
Move VB to Win32 but still with a code page model rather than a Unicode one, using the "A" APIs. • Easiest to do • Less multilingual support Unicode and Visual Basic, IUC 18 (Hong Kong)
A hybrid technique ("A" APIs on Win9x, "W" APIs on NT) • Most complicated to do • Best international support • Good leveraging of the best features of each platform Unicode and Visual Basic, IUC 18 (Hong Kong)
What the VB team actually did • Using COM • Porting the original VB • Working with the volume platform (Windows 95) Unicode and Visual Basic, IUC 18 (Hong Kong)
Where COM fits in • Benfits to VB by using COM • Benefits to COM by VB being a client Unicode and Visual Basic, IUC 18 (Hong Kong)
The birth of "UniMess" • An attempt to keep the conversion from VB3 to VB4 simple • From simplicity comes confusion Unicode and Visual Basic, IUC 18 (Hong Kong)
The cousin of UniMess:Using LCIDs for code pages • COM's biggest drawback • Once again, simplicity causes problems Unicode and Visual Basic, IUC 18 (Hong Kong)
Beyond UniMess • Intrinsic function woes • Source file encoding compatibility • Trouble with the Ruby forms package • Difficulties with API calls • Problems with file i/o Unicode and Visual Basic, IUC 18 (Hong Kong)
The verdict for VB4? Unicode and Visual Basic, IUC 18 (Hong Kong)
Changes in VB5 • Minor functionality enhancements • No major changes for Unicode support • Some work with the StrConv function Unicode and Visual Basic, IUC 18 (Hong Kong)
Changes in VB6 • More work with StrConv • A lot of VB-specific code moved to COM • A lot of other VB-specific functionality now using existing COM methods Unicode and Visual Basic, IUC 18 (Hong Kong)
And then came VB.NET • System.Text • System.Globalization • System.Resources • The [unicode] Visual Studio IDE Unicode and Visual Basic, IUC 18 (Hong Kong)
Lessons learned • Was VB4 a good Unicode integration? • Were VB5 and VB6 good integrations? • What about VB.NET? Unicode and Visual Basic, IUC 18 (Hong Kong)
Summary of lessons learned • Backwards compatibility is crucial • Conversion between Unicode and other encodings is crucial • New data types need new constructs • Understand why you are supporting Unicode (the primary reasons for that support) • Know what supplementary benefits you will gain from Unicode Unicode and Visual Basic, IUC 18 (Hong Kong)
Questions? Unicode and Visual Basic, IUC 18 (Hong Kong)
Unicode and Visual Basic:A Case Study Unicode and Visual Basic, IUC 18 (Hong Kong)