a case study on unicode integration: microsoft visual basic, v 3.0 to v. 7.0

22
A Case Study on Unicode A Case Study on Unicode Integration: Microsoft Visual Integration: Microsoft Visual Basic, v 3.0 to v. 7.0 Basic, v 3.0 to v. 7.0 Michael S. Kaplan Software Design Engineer Microsoft http://www.i18nWithVB.co

Upload: udell

Post on 13-Jan-2016

32 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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/

Page 2: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

11 September 2002 San Jose, California (IUC22) 2

DISCLAIMERDISCLAIMER

Page 3: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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"

Page 4: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 5: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

11 September 2002 San Jose, California (IUC22) 5

VB 4.0 - a time for choicesVB 4.0 - a time for choices

Page 6: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 7: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 8: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 9: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 10: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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)

Page 11: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 12: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 13: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 14: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 15: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

11 September 2002 San Jose, California (IUC22) 15

The verdict for VB4?The verdict for VB4?

Page 16: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 17: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 18: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 19: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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?

Page 20: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

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

Page 21: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

11 September 2002 San Jose, California (IUC22) 21

Questions?Questions?

Page 22: A Case Study on Unicode Integration: Microsoft Visual Basic, v 3.0 to v. 7.0

11 September 2002 San Jose, California (IUC22) 22

A Case Study on Unicode Integration: Microsoft

Visual Basic, v 3.0 to v. 7.0