Unicode and Visual Basic A Case Study

Document Sample
Unicode and Visual Basic A Case Study Powered By Docstoc
					       Unicode and Visual Basic:
            A Case Study



Michael S. Kaplan                             http://www.i18nWithVB.com/
Software Design Engineer
Trigeminal Software, Inc.
http://www.trigeminal.com




                     Unicode and Visual Basic, IUC 18
 26 April 2001
                              (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
26 April 2001
                         (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
26 April 2001
                         (Hong Kong)
      VB 4.0 - a time for choices




                Unicode and Visual Basic, IUC 18
26 April 2001
                         (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
26 April 2001
                         (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
 26 April 2001
                          (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
26 April 2001
                         (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
26 April 2001
                         (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
26 April 2001
                         (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
26 April 2001
                            (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
26 April 2001
                               (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
26 April 2001
                         (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
26 April 2001
                           (Hong Kong)
                The verdict for VB4?




                     Unicode and Visual Basic, IUC 18
26 April 2001
                              (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
26 April 2001
                           (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
26 April 2001
                           (Hong Kong)
          And then came VB.NET
 System.Text
 System.Globalization
 System.Resources
 The [unicode] Visual Studio IDE




                Unicode and Visual Basic, IUC 18
26 April 2001
                         (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
26 April 2001
                            (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
26 April 2001
                          (Hong Kong)
                Questions?




                Unicode and Visual Basic, IUC 18
26 April 2001
                         (Hong Kong)
 Unicode and Visual Basic:
       A Case Study



                Unicode and Visual Basic, IUC 18
26 April 2001
                         (Hong Kong)