Visual Basic migration

One more time this morning I have been asked about VB6 to VB.Net migration. I have my opinion about this topic.

If you have a VB6 application that is working well and that maintainance is relativaly easy, then, why do you want to migrate? Just because .net is cool?, no that can’t be a reason. The reason that I have started hearing these days is: «Microsoft won’t give us support for VB6». Ok, that is a good reason, but there is still another questions to be answer:

A) Do you want the same application (from user perspective and from technical perspective) running in a new platform?


b) Do you want to take advantage of the capabilities of the new platform?

If you answer is B, then I most of the cases you don’t need a migration, you need to build a new system, maybe you can reuse some assets like database schema, some stored procedures, etc.

But if your answer is A, then there are some useful resources you can count on. First of all lets hear the voice of Patterns & Practices Group at Microsoft: Guide for upgrading VB6 applications to VB.Net and VB6 to upgrade assessment tool. I think these resources are a good starting point to understand the implications of the epic.

There also some interesting materials provided by Artinsoft (a company specialized in software migrations) . They have developed a tool to automate the migration process and they have also written some articles about it: Design application migration strategy and some more specific ones.

Hope this help.

Web Services and DataSets, a bad mix (ws-part 3)

If you are not familiar with the .Net Platform, DataSets are objects analogous to a database in memory. A DataSet contains not only a collection of DataTables, but also information about the primary keys and relations between the tables it contains. I ‘ve seen some people using DataSets to move data between the different layers of the application. I don’t like it, but that is part of other post, the big issue is when somebody starts using  DataSets to build Web Services to interoperate with other technologies/organizations. This is a sad design decision because the way DataSets are serialized is not always understandable for non .Net consumers. The reason for this is explained very clearly in detail in this post by Paul Ballard.

Team build WebSite Deploy

Estoy es muy simple, en primer lugar hay que crear un build común y corriente. Una vez creado hay que modificar el archivo resultante del build agregando al final del mismo el siguiente fragmento:

<Target Name="AfterDropBuild">
   <Exec Command="xcopy /y /e &quot;$(MSBuildProjectDirectory)\..\Release\_PublishedWebsites\MyProject&quot; \\MyServer\MyLocation" />


Es común al intentar utilizar las funcionalidades transaccionales provistas por System.Transactions, encontrarse con issues de configuración del DTC, en este thread se debate el tema y se mencionan los principales puntos a considerar.
No estoy seguro si lo mencionan el thread, pero recuerden habilitar en el firewall los puertos utilizados por el DTC.
Espero les resulte útil!