Next month:
July 2003

June 2003

VBMoves - Localization of Windows Applications

During my half-day presentation on the VBMoves conference I have been asked about localization of Windows applications. Because I had some more minutes for my presentation, it was possible to demonstrate resources, some features of the Visual Studio designer, and the Windows Resource Localization Editor (winres.exe). I'm doing an Internationalization and Localization presentation at TechEd anyway.

For not too big user interfaces the localization feature offered by the Visual Studio .NET designer is good enough. However, one question I do get often doing localization presentations is how to change localization on the fly for maintenance tasks without reloading the form.

To change the culture of the user interface it is just necessary to set the culture of the thread:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");

While it would be nice to invoke the designer- generated method InitializeComponents() once more, this is not possible. Multiple UI objects would be created. Only a part from the implementation of this method can be called once more for a refresh of the user interface in another language. So it is necessary to add a custom method RefreshComponents() that resets the texts, positions... that are used for localization. This method will be called after setting the culture of the thread.

It would be nice if the method InitializeComponents() is splitted into two sections, so it wouldn't be necessary to do it manually.


VBMoves Presentation - ADO.NET

On the VBMoves conference (see my last entry) I've done a half-day presentation on Visual Basic .NET to a group of Visual Basic 6 developers. The presentation was about an Introduction to Visual Basic .NET and ADO.NET. While I had a UG leaders meeting, Hannes Preishuber completed the second half of the day demonstrating printing, using COM components, and offline scenarios with DataSets.

With ADO.NET presentations for attendees starting into this technology, a question that always comes up is concurrency management in disconnected scenarios. Here we have many possible options:

  • the first writer wins (this is a good default with the wizard-generated code)
  • the last writer wins
  • user-roles can be used to define the user who wins the update
  • conflicting data can be represented to the user, and now the user decides what data should be written
  • virtual locks can be done by writing a marker into a separate table which user works on a record, and the time s/he started to edit this record. This can be easily overridden by a supervisor
  • It is also possible to do real database locks that start when the DataSet is filled, and ends when the DataSet is updated. Of course here we no longer have a disconnected scenario; so we get all disadvantages of a connected solution.


VBMoves Conference - Visual Basic .NET

On the VBMoves conference I've given a half-day presentation on Visual Basic .NET and ADO.NET.

Julia is right: I'm a C# guy. 5 of my 6 books all have the code samples in C#. However, if it is necessary, I'm doing Visual Basic .NET development. Until now the only book I've done using VB was ASP to ASP.NET Migration Handbook

If a customers prefers VB.NET because s/he has a VB team in place, I completely agree with this choice. Of course because my normal language is C#, from time to time I'm having some syntax problems with VB. Here the O'Reilly book C# & VB.NET Conversion Pocket Reference helps. As a pocket reference it is really small - all that's needed for a C# programmer doing VB.NET.

In the pre-.NET time I've used VB6 only to test my COM components that I've created using C++/ATL.

With .NET we can be happy to have that many language options. Brian Ritchie lists 50 .NET languages.


UG Leaders Meeting Germany/Austria/Switzerland

Today I returned from a UG leaders meeting in Burghausen, Germany. Thomas Fickert from Microsoft Germany is giving a great support for user groups. Some things start rolling :-)

In Germany we have 9 INETA user groups. No other European country has that many groups. Second is UK with 8 groups.

The groups that had been represented here:

.NET Developers Group Muenchen
DevGroup Ruhrpott
dotnet Usergroup Bremen

.NET User Group Styria
.NET User Group Austria

The meeting location was also great. Burghausen is really a nice town. The longest castle in Europe! Thanks to Hannes Preishuber who is an INETA speaker for organizing this event in collaboration with the ASP.NET Konferenz.



Today we had a DECalumni event with more than 200 people previously working for Digital Equipment in Austria. This was the fifth time we had such an annually event. Within Digital we had a really good cooperation among the employees (end of the 80s).

Many of you (if you are not too young ;-) should know Digital. I expect that some of the developers reading this blog have been working with Digital, too. Dave Cutler who designed Windows NT was working with Digital on VMS before he moved to Microsoft. You can find a lot features from VMS inside the Windows operating system. Now Dave is responsible for the 64-bit release of Windows. 

After some struggling years, Digital was bought by Compaq and finally HP. Here is a good paper showing the history of this company.

I was working with this company in the years 1985-1996 using PDP11, VAX, and Alpha systems.


UG Leader Meeting in Burghausen

Yesterday I just finished my PPTs to give an overview of what INETA is doing in Europe, and in special in Germany/Switzerland/Austria.

This PPT will be used on Monday, 16-June when we will have a UG Leaders meeting in Burghausen, Germany. This meeting is inline with a VisualBasic moves day which offers an entry to VB.NET for VB developers (My main programming language still is C#).

Following the next two days, 17 and 18-June, an ASP.NET conference is happening in the same place.