Move from VB.NET to C# and modernise your skills for the .NET world

VB.NET Course with the SVILUPPATORE MIGLIORE method

The programme for teams working with Visual Basic .NET who want to bring their applications to the next level, without starting from scratch.

Get all the information about the programme

1-on-1 Mentor On YOUR code Measurable results

Your team works with VB.NET. Maybe by choice, maybe by historical legacy. Either way, you have applications that work, generate revenue and must continue to evolve.

The problem is that the VB.NET world has changed: .NET Core, .NET 10, new architectural patterns, Entity Framework Core, dependency injection, and the team risks falling behind if it does not update its skills.

This programme is designed for those who work with VB.NET in production and want to modernise skills and architectures without having to rewrite everything in C#.

VB.NET

What you learn: the complete programme

2 phases, 8 modules of intensive training on YOUR code.

What you will learn

2 phases, 8 modules of intensive training on YOUR code.

PHASE 1: Modern VB.NET Foundations (Weeks 1-4)

  1. 1

    Modern VB.NET and .NET Features

    VB.NET on modern .NET is a different language from the one you use on .NET Framework. The features are there, but almost no team uses them because the documentation is all in C#. Here we close the gap starting from the real code you write every day.

    Programma

    • Idiomatic Async/AwaitHow to write asynchronous operations without blocking the interface, eliminating the freezes that frustrate users
    • Advanced LINQHow to replace nested for loops with expressive queries that the compiler optimises automatically
    • Pattern matchingHow to simplify Select Case and type conversions reducing code by more than a third
    • Nullable reference typesHow to eliminate NullReferenceException with Option Strict On and explicit annotations
    • Tuples and interpolationHow to return multiple values and build strings without redundant StringBuilder
    • .NET 10 featuresHow to access platform innovations directly from your VB.NET code

    Risultato

    Modern, idiomatic VB.NET code. This is not the VB.NET of 2008, it is professional code that leverages .NET to its full potential.

  2. 2

    Advanced OOP in VB.NET

    Object-oriented programming is identical in VB.NET and C#, but VB.NET codebases rarely apply it well. 3,000-line monoliths and God Classes that do everything are the norm, not the exception in inherited VB projects. Here we correct course with concrete examples on the code you have in production.

    Programma

    • Applied SOLIDHow to rewrite classes that do everything into components with a single, clear responsibility
    • Interfaces and abstract classesHow to design contracts that make code replaceable and testable
    • GenericsHow to eliminate code duplication by leveraging compiler type safety
    • Design patternsHow to apply Factory, Strategy, Observer and Decorator in VB.NET with real examples
    • Dependency injectionHow to invert dependencies and make components independent of each other
    • Progressive refactoringHow to move from procedural code to clean OOP without rewriting everything

    Risultato

    Clean architecture even in VB.NET. The code is modular, dependencies are managed and refactoring is safe.

  3. 3

    Entity Framework Core with VB.NET

    EF Core works perfectly with VB.NET, but the documentation is almost entirely in C#. Those who still use ADO.NET with manually concatenated SQL queries pay a huge technical debt with every schema change. Here we bridge the gap: all EF Core patterns translated to VB.NET with runnable examples.

    Programma

    • DbContext designHow to structure the context and configuration in VB.NET correctly
    • Fluent APIHow to map entities, relationships and constraints without polluting models with attributes
    • MigrationsHow to generate, apply and manage schema conflicts in a versioned way
    • Query optimisationHow to use projections and Include to avoid the N+1 problem and slow queries
    • From ADO.NET to EF CoreHow to plan a progressive migration without interrupting production
    • Connection poolingHow to configure the DbContext lifecycle and manage connections correctly

    Risultato

    Professional data access with EF Core. The database is versioned, queries are performant and type-safe.

  4. 4

    Modern Windows Forms

    Your WinForms application is probably a monolith with thousands of lines in code-behind. Every change becomes a risky surgical operation because UI, logic and data access are all mixed together. Here you learn to separate, structure and modernise without starting from scratch.

    Programma

    • Advanced data bindingHow to connect UI and data with BindingSource and INotifyPropertyChanged without manual code
    • MVP patternHow to separate presentation logic from UI making the code testable
    • UI refactoringHow to extract logic from code-behind into dedicated classes with clear responsibility
    • Custom controlsHow to build reusable components that standardise the application interface
    • Threading and async in WinFormsHow to keep the UI responsive during long operations without freezes
    • Progressive modernisationHow to update the interface module by module without stopping development

    Risultato

    Maintainable desktop applications. The UI is separated from the logic, the code is testable and forms are no longer monoliths.

PHASE 2: Quality and Migration (Weeks 5-8)

  1. 5

    Testing in VB.NET

    VB.NET codebases almost always have zero automated tests. Every change is a leap in the dark because you have no safety net that signals regressions. Here we build that net, starting from legacy code that was never designed to be tested.

    Programma

    • NUnit in VB.NETHow to write unit tests, fixtures and assertions that verify real behaviour
    • Mocking dependenciesHow to isolate components from databases, external services and the filesystem
    • Integration testsHow to verify data access and complete flows without touching production
    • Regression testsHow to cover existing legacy code without modifying it before refactoring
    • Code coverageHow to read the metrics that really matter and ignore the misleading ones
    • CI integrationHow to run tests automatically on every commit and block merges that break something

    Risultato

    Code tested with confidence. Refactoring is safe and you find regressions before your customer does.

  2. 6

    Architecture and Service Layer

    Structuring a VB.NET application with clean layers is possible and necessary if it needs to last another ten years. The lack of separation between UI, logic and data is the main cause of high maintenance costs in legacy projects. Here we build the right architecture, starting from what you already have.

    Programma

    • Layered architectureHow to organise presentation, business and data in layers with clear boundaries
    • Dependency injectionHow to configure Microsoft.Extensions.DI in a VB.NET desktop or console application
    • Service layerHow to extract business logic from the UI into services with clear responsibility
    • Configuration managementHow to read settings from configuration files without hardcoded strings
    • Structured loggingHow to use ILogger to track operations with useful context in production
    • Centralised error handlingHow to manage exceptions uniformly without scattered try/catch blocks

    Risultato

    Application structured with clean layers. Each component has a clear responsibility and the code is easy to navigate.

  3. 7

    Migration from .NET Framework to .NET 10

    .NET Framework no longer receives new features and is destined for maintenance only. Staying on .NET Framework means giving up the performance, security and features that .NET 10 provides out of the box. The migration must be planned methodically, not improvised on a production project.

    Programma

    • .NET Upgrade AssistantHow to use the Microsoft tool to analyse breaking changes before touching the code
    • Compatibility analyserHow to identify incompatible APIs and estimate migration effort
    • Progressive strategyHow to migrate one project at a time while keeping the application running
    • NuGet packagesHow to find compatible alternatives for .NET 10 for every package no longer supported
    • Windows Compatibility PackHow to use the compatibility package for missing APIs during the transition
    • Multi-targetingHow to support both frameworks during the transition to reduce risk

    Risultato

    Application ready for .NET 10. The migration is planned, tested and the risk is under control.

  4. 8

    Deploy and Continuous Modernisation

    After the migration you need a process to keep the application up to date and deploy it reliably. A manual deploy is an endless source of human errors that repeat themselves with every release. Here we automate the process and define the roadmap for the next steps.

    Programma

    • CI/CD for VB.NETHow to build automated pipelines that compile, test and publish the application
    • Packaging and distributionHow to choose between ClickOnce, MSIX and self-contained based on your scenario
    • Semantic versioningHow to manage releases with clear numbering and automatic changelogs
    • Production monitoringHow to collect metrics and diagnostics without direct server access
    • Modernisation roadmapHow to plan the next interventions with priorities based on real risk
    • VB.NET to C# transitionHow to evaluate costs, timelines and scenarios where planning it makes sense

    Risultato

    Reliable deploy process and a clear roadmap. The application is ready for the future, whatever direction you choose.

The method: Progressive Mastery Architecture

We work on your existing VB.NET code. We do not ask you to rewrite everything in C#, we teach you to modernise VB.NET with current best practices, and when it makes sense, to plan a gradual transition.

Better Developer Method

Who this programme is for

CTO with VB.NET applications in production

The applications work but the team struggles to evolve them. You want a programme that modernises skills without interrupting productivity and without rewriting everything.

VB.NET developer who wants to stay competitive

VB.NET is not dead, but the market rewards those who know modern best practices. This programme brings you to the next level with current patterns and architectures.

Team planning the transition to C#

You want a gradual path: first modernise VB.NET with best practices, then when it makes sense plan the transition to C# without trauma.

Who is Matteo Migliore

What professionals who have followed the programme say

Eraldo Minella

Eraldo Minella

General Manager - Il Sole24Ore

Andrea Mariotti

Andrea Mariotti

Technical Director - Cotonella S.p.a.

Gianfranco Abruscato

Gianfranco Abruscato

CEO - AG Informatica Industrial Automation

Marco Argiolas

Marco Argiolas

IT Director - Wakiwi

Francesco Lanfranchi

Francesco Lanfranchi

Junior .NET Developer - Cotonella S.p.a.

Luca Affini

Luca Affini

Software Analyst - Wakiwi

Valentina Dell'Orto

Database Specialist - Wakiwi

Jessica Filippi

Jessica Filippi

.NET Developer - Cotonella S.p.a.

Filippo Sordo

Senior Developer - Bonifiche Veronesi

Dorinel Derdeshi

Dorinel Derdeshi

Mobile Application Specialist - Wakiwi

Claudio Sofonio

Claudio Sofonio

Business Intelligence Expert - Cotonella S.p.a.

Gabriele Belperio

Gabriele Belperio

Mobile Application Developer - Wakiwi

Investment and programme

Programmes are tailored to the number of participants, duration and project complexity.

Fill in the form to receive the complete programme and a personalised quote based on your specific needs.

Individual Programme

1 participant, personalised mentoring

  • 8 complete modules
  • Biweekly live 1-to-1 sessions
  • Platform access for 12 months
  • Continuous chat support

Intensive Workshop

1-2 days on specific topics

  • Focus on specific modules of your choice
  • Up to 5 participants
  • Complete training materials
  • Follow-up session at 30 days

Ready to modernise your VB.NET code?

Fill in the form and receive all the information about the VB.NET programme. We analyse your scenario and the best path for you or your team.

Free analysis We assess the state of the VB.NET code and the modernisation options

Talk to one of our tutors Not a salesperson, but a real expert who will guide you

Practical advice You receive useful guidance even if you decide not to continue

Enter your details and receive all the information about the VB.NET course

Fill in the form and receive all the information about the path. We analyze your scenario and the best path for you or your team.

Free analysis Direct answer from the architect No commitment
Move from VB.NET to C# and modernise your skills for the .NET worldFree analysis, no commitment