VB.NET programming: from legacy code to modern .NET
Matteo Migliore

Matteo Migliore is an entrepreneur and software architect with over 25 years of experience developing .NET-based solutions and evolving enterprise-grade application architectures.

He has led enterprise projects, trained hundreds of developers, and helped companies of all sizes simplify complexity by turning software into profit for their business.

We constantly receive requests for our courses, courses that we have improved over the years to create a distillation of the best possible training on the use of .NET to develop applications without stress and making the most of the technologies that Microsoft makes available.

We have created 5 courses that we constantly evolve and improve year after year:

  1. Develop .NET web applications with ASP.NET Core and REST
  2. Increase code quality and manage your solution with Visual Studio without stress
  3. Build successful Windows applications with WPF and MVVM
  4. Manage data with Entity Framework and SQL Server
  5. Take advantage of Azure and the Microsoft cloud 110%

If you are still working with VB.NET and want to learn more about its use with a practical and effective method, discover the VB.NET course.

Our courses all have a key feature, we have designed, organized and prepared them thanks to the 20 years of experience in development and management of software houses that my partners and I have.

They are handbooks that we designed thanks to the many mistakes we made and still make today in the development of the software we produce and see on the market.

Each of us continues an obsessive study of new technologies, new architectures and original solutions to the problems that the world of development presents.

The goal we have is always and only one: to constantly improve and update our software with as little effort as possible.

Develop with as little effort as possible

How do we make it as easy as possible? In a way that actually requires a lot of effort, and that is to remove everything superfluous.

As I always say “you have achieved the best possible architecture, not when you have nothing left to add, but when you have nothing left to take away”.

And this is achieved with the same process that great athletes use, like Bolt, continuing to eliminate everything that is not needed, improving every routing, improving every habit, creating virtuous automatisms that allow him to become champions by doing everything to the best of his ability.

When you see Bolt running, or rather, when you saw him running before he retreated, you see a cheetah moving silently in front of you and in a few seconds it reaches you, almost flying.

You see a perfect mass of muscles that move in unison to achieve the best possible performance, to reach the finish line leaving everyone behind without the possibility of reaching it.

To achieve this result, Bolt worked from many points of view, from nutrition to decontracting massages to meditation to train the mind to tolerate the pain that comes with extreme physical effort.

He therefore trimmed everything he could, got to the lowest possible weight so as not to carry around unnecessary ballast, but maintaining as much muscle mass as possible to have the explosive energy needed to run at the maximum possible speed for those 100 metres.

Continue to get better with .NET

Do you understand what I'm getting at? To get the most you need to use the best tools at your disposal, and in this case the best language with which to develop in .NET, but also compared to any other platform existing today, is not Visual Basic .NET but C#.

I'll explain right away why I say that Visual Basic is not the best language for developing in .NET.

The beginnings of Basic

Visual Basic derives, as its name suggests, from Basic, which is a language that I loved very much, I started using it when I was 6 years old, with the first MSX from Toshiba, a real gem at the time, a relative of the more famous Commodore64.

I received it as a gift for Santa Lucia, a holiday that in many Italian cities is even more important than Christmas for children who impatiently await their games.

I took the manual and began leafing through it avidly to understand how that mysterious object, which would later become my best friend, worked.

In the following 2 months I had reproduced all the examples I had found, and, having begun to understand the logic with which to write the programs, I began to create my own variations, both drawing geometric shapes (a real gem), and calculation applications that allowed interaction with the keyboard/computer.

When I made my first “Learn Times Tables” program, I was over the moon. I couldn't believe I had accomplished such a feat and had all that power flow under my fingers!

Computer for programming in Basic

You can't use a historical artifact to develop today

Now, that experience had been extraordinary, but soon enough I realized that that language was too tight for me, it was too verbose and although simple to write, it was difficult to understand at a glance.

That is, I struggled to understand in an instant what the code in front of me on the screen was doing.

Over the years I had switched to Turbo Pascal, another excellent language that kept me company in my adventures until I met Borland C++, finally a real language, powerful and capable of creating any type of application.

Until the arrival of the first Visual Studio with VB6, which left me truly amazed. You could create applications visually, with drag & drop and start programming the events that generated the UI, which until a few years earlier I had to write every single line of code from scratch.

There is one thing I would like you to pay attention to, I always speak in the past tense, because VB is a language that has seen a very strong decline among developers.

Microsoft continues to support it simply because there is a large chunk of legacy applications that are constantly being migrated, but what will probably happen is that at some point they will stop evolving it, as happened to Windows XP and Windows 7.

The reason is very simple, VB has intrinsic limits to its design and Microsoft has to bear development costs for its support which it can instead allocate to other projects.

So sooner or later you will still have to migrate to C#, so it is better that you do it calmly and start to fully exploit its potential, rather than having to do it by chasing technology.

A company must be ahead of technology if it wants to master its market, it cannot stay in its wake and risk missing the train.

VB 6

How can you master technology if you use a language that is now old and obsolete, even in 1991, 29 years ago?

How much progress does computer science make in 1 year? And in 5 years?

Do you really think it's possible to remain mummified and anchored to old technologies without paying the toll?

The story of Claudio

In 1999 I was finishing high school and at the same time I opened my first VAT number. I had found a professional who fascinated me a lot because he combined two of my great passions, IT and martial arts.

He was a very calm person, who always seemed to know what he was doing, he seemed to have full control of his outsourced software development activity, also because when I went to visit him in the office, which seemed more like a laboratory, everywhere you could find VB6, Office Automation and robotics manuals.

In short, he was a true scholar, a true IT enthusiast.

Passion, as in all professions, and even more so in ours, is a fundamental ingredient if you want to be successful, don't you think?

Even more so in ours because it requires constant updating, unlike the pizza chef or the chef (of course, it depends on what level) who can afford to "learn the art and put it aside", we cannot afford this luxury.

Because our art is constantly evolving, while a pizza chef, once he has gone through school, has learned from the best and has found the secret dough recipe, can repeat it year after year, perfecting the process only minimally, a developer has infinite branches to go towards and his improvement will never end.

We provided Claudio with finished software in VB6, ready to sell to his customers, large companies in the automotive industry. Yes, it was strange that a small "craftsman" had such large clients, but his professionalism and his art of knowing how to sell himself together with his friendliness were such that he managed to bring home parts of very interesting projects.

2001 arrived and after several fruitful collaborations with Claudio, I told him that we would move to VB.NET, because by then VB6 was too old and not very productive. Its biggest limitation was that it was not an object-oriented language, but a procedural one, which prevented it from exploiting the richness of modeling that OOP languages ​​offer.

Claudio replies to me, and it's not a joke: ".NET? But we don't have to develop for the network." Indeed, the name of the technology was a bit misleading at the time, but I had studied the project thoroughly and it really excited me.

I told him that .NET was the future of development and that VB6 would soon be forgotten. But he started laughing, after all it had only been 10 years since VB6 was born.

We thus began to develop our own software, in particular an artificial vision system based on the processing of real-time video streams, which was truly prodigious at the time.

Thanks to parts of the UI in VB.NET, the core part in C# and the more critical parts in C++ and assembly, we were able to process even 4 video sources simultaneously, with Pentium 4 processors.

A truly remarkable result.

After 3 years, I heard from Claudio, who unfortunately had to close the business, dedicating himself full time to teaching Judo, because he had decided to stay put.

He hadn't wanted to update.

VB.NET vs. C# Trends

VB.NET has suffered a huge decline over the years as you saw in the graph at the beginning. Compared to C# its downward trajectory is inexorable.

For example, today on InfoJobs, you can find 13 job offers searching for "VB.NET developer" compared to the 78 you can find searching for "C# developer".

On the githut.info site there are many projects in C#, even if other languages surpass it. There are 56,062 active projects in C# while those in JavaScript are 323,938.

Obviously this is a raw data, in the sense that the number of projects taken alone is not that relevant, because JavaScript projects could be much less widespread in terms of community adoption or they could simply be tests or demos or experiments.

Although VB.NET is in steep decline, it still remains in use in many companies that need developers with solid skills.

If you want to make the most of its potential, discover ours course on VB.NET.

However, what is relevant is that there is no project, zero, written in VB.NET on Github. Chances are there are some, but it's such a small number that it doesn't even make the top 30.

In the end, what I want to suggest is that you start planning the migration of your VB.NET projects to C# and become much more productive, using a modern and evolving language.

Leave your details in the form below

Matteo Migliore

Matteo Migliore is an entrepreneur and software architect with over 25 years of experience developing .NET-based solutions and evolving enterprise-grade application architectures.

Throughout his career, he has worked with organizations such as Cotonella, Il Sole 24 Ore, FIAT and NATO, leading teams in developing scalable platforms and modernizing complex legacy ecosystems.

He has trained hundreds of developers and supported companies of all sizes in turning software into a competitive advantage, reducing technical debt and achieving measurable business results.

Stai leggendo perché vuoi smettere di rattoppare software fragile.Scopri il metodo per progettare sistemi che reggono nel tempo.