a case study on unicode integration: microsoft visual basic, v 3.0 to v. 7.0
DESCRIPTION
Michael S. Kaplan Software Design Engineer Microsoft. A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0. http://www.i18nWithVB.com/. DISCLAIMER. The purpose(s) of Visual Basic. Making Windows development easier Promote the Windows platform through ISVs who use it - PowerPoint PPT PresentationTRANSCRIPT
A Case Study on Unicode Integration: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0Microsoft Visual Basic, v 3.0 to v. 7.0
Michael S. KaplanSoftware Design EngineerMicrosoft
http://www.i18nWithVB.com/
11 September 2002 San Jose, California (IUC22) 2
DISCLAIMERDISCLAIMER
11 September 2002 San Jose, California (IUC22) 3
The purpose(s) of Visual BasicThe purpose(s) of Visual Basic
Making Windows development easierPromote the Windows platform through
ISVs who use itThe "apple in Bill's eye"
11 September 2002 San Jose, California (IUC22) 4
International support in the International support in the early versions (1.0 – 3.0)early versions (1.0 – 3.0)
Very limited!Multiple versions of the product codebaseBugs found in one language version often
not fixed elsewhereNO Unicode support
11 September 2002 San Jose, California (IUC22) 5
VB 4.0 - a time for choicesVB 4.0 - a time for choices
11 September 2002 San Jose, California (IUC22) 6
Keep VB in 16 bit, and take Keep VB in 16 bit, and take advantage of the support for advantage of the support for
Win16 applicationsWin16 applications
Easy for VB to doUseless for the Win32 platform itselfNo international support at all
11 September 2002 San Jose, California (IUC22) 7
Move VB to Win32 entirely, Move VB to Win32 entirely, leveraging the emerging NT leveraging the emerging NT
platform's full support of Unicode platform's full support of Unicode through its "W" APIs.through its "W" APIs.
Great international solutionPoor solution for Windows 95
11 September 2002 San Jose, California (IUC22) 8
Move VB to Win32 but still with a Move VB to Win32 but still with a code page model rather than a code page model rather than a
Unicode one, using the "A" APIs.Unicode one, using the "A" APIs.
Easiest to doLess multilingual support
11 September 2002 San Jose, California (IUC22) 9
A hybrid technique ("A" APIs A hybrid technique ("A" APIs on Win9x, "W" APIs on NT)on Win9x, "W" APIs on NT)
Most complicated to doBest international supportGood leveraging of the best features of each
platform
11 September 2002 San Jose, California (IUC22) 10
What the VB team actually didWhat the VB team actually did
Using COMPorting the original VBWorking with the volume platform
(Windows 95)
11 September 2002 San Jose, California (IUC22) 11
Where COM fits inWhere COM fits in
Benefits to VB by using COMBenefits to COM by VB being a client
11 September 2002 San Jose, California (IUC22) 12
The birth of "UniMess"The birth of "UniMess"
An attempt to keep the conversion from VB3 to VB4 simple
From simplicity comes confusion
11 September 2002 San Jose, California (IUC22) 13
The cousin of UniMess:The cousin of UniMess:Using LCIDs for code pagesUsing LCIDs for code pages
COM's biggest drawbackOnce again, simplicity causes problems
11 September 2002 San Jose, California (IUC22) 14
Beyond UniMessBeyond UniMess
Intrinsic function woesSource file encoding compatibilityTrouble with the Ruby forms packageDifficulties with API callsProblems with file i/o
11 September 2002 San Jose, California (IUC22) 15
The verdict for VB4?The verdict for VB4?
11 September 2002 San Jose, California (IUC22) 16
Changes in VB5Changes in VB5
Minor functionality enhancementsNo major changes for Unicode supportSome work with the StrConv function
11 September 2002 San Jose, California (IUC22) 17
Changes in VB6Changes in VB6
More work with StrConvA lot of VB-specific code moved to COMA lot of other VB-specific functionality
now using existing COM methods
11 September 2002 San Jose, California (IUC22) 18
And then came VB.NETAnd then came VB.NET
System.TextSystem.GlobalizationSystem.ResourcesThe [Unicode] Visual Studio IDE[Mostly] Unicode controls in WinForms
11 September 2002 San Jose, California (IUC22) 19
Lessons learnedLessons learned
Was VB4 a good Unicode integration?Were VB5 and VB6 good integrations?What about VB.NET?
11 September 2002 San Jose, California (IUC22) 20
Summary of lessons learnedSummary 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
11 September 2002 San Jose, California (IUC22) 21
Questions?Questions?
11 September 2002 San Jose, California (IUC22) 22
A Case Study on Unicode Integration: Microsoft
Visual Basic, v 3.0 to v. 7.0