Modernize Studio
Taal: Nederlands
Mail ons

Oudere .NET-applicaties, WinForms en Web Forms, gemoderniseerd

Applicaties die in de jaren 2000 en 2010 voor .NET Framework zijn geschreven, zijn meestal in betere staat dan tools in VB6 of Access, en verdienen een zorgvuldiger antwoord dan een volledige herbouw. We stellen vast wat ongewijzigd kan worden overgezet en wat opnieuw moet worden gebouwd, en brengen de applicatie naar ASP.NET Core met dezelfde gegevens en dezelfde regels.

Waarom nu

De ondersteuning voor .NET Framework 4.6.2 stopt op 12/01/2027, en versie 4.6.1 en eerder worden al niet meer ondersteund. .NET Framework 4.8 en 4.8.1 volgen de levenscyclus van de Windows-versie waarop ze zijn geïnstalleerd, dus een applicatie op 4.8 loopt geen direct gevaar. Het framework krijgt echter alleen nog correcties, terwijl nieuwe bibliotheken, tools en hostingopties voor het huidige .NET worden gemaakt.

ASP.NET Web Forms draait alleen op .NET Framework en is niet meegenomen naar ASP.NET Core. Windows Forms draait wel op het huidige .NET, maar blijft een desktoptechnologie voor Windows en geeft uw medewerkers geen toegang via de browser.

  1. Windows 10Einde van de ondersteuning door Microsoft
  2. .NET Framework 4.6.2Einde van de ondersteuning door Microsoft

Wat we moderniseren

Desktop- en webapplicaties op .NET Framework, en de services eromheen.

  • Windows Forms-applicaties

    Desktopprogramma's met DataGridView-grids, getypeerde DataSets en TableAdapters, vaak geïnstalleerd met ClickOnce of een MSI. Ze worden webapplicaties, of gaan als desktopprogramma over naar het huidige .NET als dat de betere keuze is.

  • ASP.NET Web Forms-sites

    Pagina's met ViewState, postbacks, UpdatePanel, GridView en SqlDataSource, master pages en user controls. We bouwen ze opnieuw in ASP.NET Core met Razor Pages, MVC of Blazor, afhankelijk van de applicatie.

  • Gegevenstoegang

    ADO.NET-code, getypeerde DataSets, LINQ to SQL, Entity Framework 6-modellen en stored procedures. Is de database in orde, dan houden we die en passen we alleen de code aan die ermee praat.

  • Services en koppelingen

    WCF- en ASMX-webservices, .NET Remoting en Windows-services. Ze worden REST-API's en achtergrondservices op het huidige .NET.

  • Aanmelden en configuratie

    Forms Authentication, de ASP.NET Membership-provider, Windows-verificatie, instellingen in web.config en app.config. Gebruikers en rollen gaan naar ASP.NET Core Identity, of naar Microsoft Entra ID of Active Directory als u die al gebruikt.

  • Rapporten

    Crystal Reports voor Visual Studio, RDLC-rapporten in ReportViewer en exports naar Excel. Ze worden documenten die de server maakt, in pdf of Excel.

Hoe de webversie eruitziet

Illustratief voorbeeld, fictieve gegevens

Een huuradministratie zoals die er in een WinForms-programma uit had kunnen zien, en dezelfde administratie als webpagina.

Sleep de schuifregelaar of gebruik de pijltjestoetsen.

Waar elk onderdeel terechtkomt

In .NET Framework: WinForms-schermen of .aspx-pagina's
In de webapplicatie: Razor Pages of Blazor-componenten
In .NET Framework: Code-behind en event-handlers
In de webapplicatie: Services en controllers, gedekt door tests
In .NET Framework: Getypeerde DataSets, LINQ to SQL
In de webapplicatie: Entity Framework Core of Dapper, op dezelfde database
In .NET Framework: WCF- of ASMX-services
In de webapplicatie: REST-API's op ASP.NET Core
In .NET Framework: Membership en Forms Authentication
In de webapplicatie: ASP.NET Core Identity of Entra ID
In .NET Framework: ClickOnce of MSI op elke pc
In de webapplicatie: Eén adres, geopend in de browser

Hoe de migratie verloopt

  1. Analyse binnen 48 uur

    U stuurt ons de solution met broncode, een back-up of script van de database, en de configuratiebestanden zonder productiewachtwoorden. Binnen 48 uur krijgt u een schriftelijk rapport: wat het programma vandaag doet, waar de risico's zitten, hoe de webversie zou worden opgezet, een vaste prijs voor een pilotmodule en een raming voor de rest. Het is gratis en verplicht u tot niets.

  2. Pilotmodule

    We bouwen één deel van de applicatie op een kopie van uw echte gegevens, meestal het deel dat het meest wordt gebruikt. Uw medewerkers werken er dagelijks mee voordat u over de rest beslist.

  3. Dezelfde gegevens, dezelfde uitkomsten

    We sturen dezelfde requests en gegevens naar de oude en de nieuwe applicatie en vergelijken de resultaten, van berekende velden tot API-antwoorden en gegenereerde documenten. Elke bedrijfsregel die we vinden, wordt ook een geautomatiseerde test die vóór elke latere release opnieuw draait. U ontvangt een rapport met de uitkomst van elke controle.

  4. 30 dagen parallel

    Als de volledige applicatie klaar is, blijft de oude applicatie er 30 dagen naast in gebruik. Elk verschil komt aan het licht terwijl het oude programma er nog is, en wij lossen het op binnen de afgesproken prijs.

Veelvoorkomende valkuilen, en hoe we ze aanpakken

  1. ViewState en postback-logica

    Web Forms-pagina's bewaren hun toestand in ViewState en in Session, en hun logica is verspreid over Page_Load, events van besturingselementen en controles op IsPostBack. ASP.NET Core kent daar geen equivalent voor. Wij vertalen de levenscyclus van de pagina naar expliciete requests, zodat elke actie één duidelijk startpunt heeft.

  2. API's die niet meer bestaan

    Application domains, .NET Remoting en Code Access Security zijn niet beschikbaar op het huidige .NET, en sommige API's compileren wel maar geven bij het uitvoeren een PlatformNotSupportedException. Tijdens de analyse doorzoeken we de code daarop, voordat er een prijs vastligt.

  3. Wachtwoorden uit Membership

    Accounts die door de oude ASP.NET Membership-provider zijn aangemaakt, slaan wachtwoorden op in een hashformaat dat ASP.NET Core Identity niet gebruikt. We migreren de accounts zo dat mensen inloggen met hun huidige wachtwoord en de hash bij de eerste aanmelding wordt bijgewerkt, of plannen een reset als de oude instellingen dat onmogelijk maken.

  4. Componenten van derden en rapportruntimes

    Componentensuites voor Web Forms en WinForms, zoals die van Telerik, DevExpress of Infragistics, en de Crystal Reports-runtime zijn gebonden aan specifieke frameworkversies. We controleren versies en licenties en bepalen per component wat ervoor in de plaats komt.

  5. Regels in stored procedures en triggers

    In veel applicaties uit deze periode zitten de echte bedrijfsregels in de database. Blijft de database, dan blijven die procedures ook, en de controles op dezelfde gegevens dekken ze af. Verandert de database, dan zetten we ze een voor een en weloverwogen over.

  6. Toestand in het geheugen

    Applicaties die gegevens bewaren in Session, in statische variabelen of in de in-process-cache gaan uit van één server die nooit herstart. Wij maken die toestand expliciet, zodat de nieuwe applicatie op meer dan één instantie kan draaien en een herstart doorstaat.

Prijs en betaling

Analyse

Gratis

schriftelijk, binnen 48 uur

Pilotmodule

€ 1.000–1.500

meestal; 50% bij de start, 50% bij acceptatie

Betalingsvoorwaarden

We vragen 50% bij de start en 50% bij acceptatie. De tweede helft is verschuldigd vóór de livegang en vóór de overdracht van de broncode. Bij grotere projecten volgen de betalingen de afgesproken fases.

De analyse is gratis. Besluit u niet verder te gaan, dan houdt u het rapport en bent u niets verschuldigd.

Prijzen zijn vast en worden schriftelijk vastgelegd voordat we beginnen. Verandert het werk, dan sturen we een nieuwe schriftelijke offerte en gaan we pas verder na uw akkoord.

Bij een volledige migratie streven we naar een prijs die 40 tot 60% onder de gebruikelijke offerte van een bureau ligt. Dat kan omdat we een kleine studio zijn, zonder kantoorpanden en zonder verkoopafdeling.

Prijzen exclusief btw.

De prijs inschatten

Een echte migratie, gecontroleerd met tests

Northwind is de voorbeelddatabase die Microsoft met Access meeleverde, geen klant van ons. We hebben een openbare kopie gemigreerd naar SQLite en PostgreSQL, elke tabel en elke query met geautomatiseerde tests vergeleken met het origineel en op het resultaat een werkende webapplicatie gebouwd. De casestudy geeft de cijfers, het equivalentierapport somt elke controle op.

Northwind is een Access-database, maar voor .NET WinForms en WebForms volgen we dezelfde aanpak: migreren, de uitkomsten met dezelfde gegevens vergelijken met het origineel en beide programma's naast elkaar laten draaien.

Equivalentierapport (in het Engels) · Klikbare preview en voorbeeldanalyse (demo)

Veelgestelde vragen

Moeten we alles herschrijven?

Nee. Klassenbibliotheken met bedrijfslogica gaan vaak met beperkte aanpassingen over naar het huidige .NET, en de database kan meestal blijven. Wat het meest verandert, is de gebruikersinterface: de Web Forms-pagina's en de WinForms-schermen. De analyse scheidt wat kan worden overgezet van wat opnieuw moet worden gebouwd.

Kan onze WinForms-applicatie een desktopprogramma blijven?

Ja. Windows Forms wordt ondersteund op het huidige .NET, en die overstap verlengt de levensduur van het programma voor minder dan een herbouw voor het web kost. Hebben uw gebruikers toegang nodig via de browser of buiten kantoor, dan is een webapplicatie het antwoord. Als beide zinvol zijn, prijzen we in de analyse beide.

Onze applicatie draait op .NET Framework 4.8. Is het dringend?

Niet vanwege de ondersteuning: 4.8 en 4.8.1 volgen de levenscyclus van de Windows-versie waarop ze draaien. De redenen om over te stappen liggen meestal elders: toegang via de browser, hosting op Linux, bibliotheken die .NET Framework niet meer ondersteunen, of de moeite om ontwikkelaars voor Web Forms te vinden.

Kan de migratie in fasen?

Ja. ASP.NET Core en de oude applicatie kunnen naast elkaar draaien achter hetzelfde adres, waarbij telkens één onderdeel wordt overgezet. Microsoft beschrijft deze stapsgewijze aanpak zelf voor ASP.NET-applicaties.

Gebruikt u automatische upgradetools?

Waar ze helpen, bijvoorbeeld om projectbestanden en pakketverwijzingen bij te werken. Ze bepalen niet hoe een Web Forms-pagina in ASP.NET Core moet werken, en elk omgezet onderdeel wordt net als de rest op dezelfde gegevens gecontroleerd tegen de oude applicatie.

Welke database gaan we gebruiken?

Meestal de database die u al hebt, doorgaans SQL Server. Overstappen op een andere database is een aparte beslissing, en die raden we alleen aan als daar een duidelijke reden voor is.

Contact

Kies het kanaal dat u het beste uitkomt. We antwoorden binnen één werkdag per e‑mail, in het Nederlands.

Per e‑mail

riccardo@modernizestudio.com
Stuur een e‑mail

Stuur ons de broncode en een kopie van de database met testgegevens, of een korte beschrijving van de applicatie. U krijgt binnen één werkdag antwoord.

Stuur ons uw bestand

Is het programma gemaakt in Access, Excel, VB6, Delphi of een oudere versie van .NET? Dan ontvangt u binnen 48 uur na het versturen van het bestand een gratis schriftelijke analyse.

  1. Maak een kopie van het bestand, desgewenst met testgegevens.
  2. Voeg die toe aan het formulier of aan een e‑mail, bij voorkeur als archief met een wachtwoord dat u apart stuurt. Op verzoek tekenen we eerst een geheimhoudingsovereenkomst.
  3. Binnen 48 uur: de analyse en een vaste prijs voor een pilotmodule.

Wij werken vanuit Italië.

Stuur een bericht

Optioneel. Een database, een Excel-werkmap, schermafbeeldingen of een programma van eisen, tot 10 MB. Zet voor grotere bestanden een downloadlink in het bericht.

Mail ons

De knop opent uw e‑mailprogramma met het bericht al ingevuld. Er wordt niets verstuurd totdat u daar op Verzenden klikt.

Mail ons