---
title: "C#- & .NET-Entwicklung"
canonical: https://wavect.io/de/services/dotnet-development/
language: de
description: "C#/.NET-Anwendungen gezielt erweitern und modernisieren. Wavect prüft Abhängigkeiten, Geschäftsregeln, Datenzugriff und Release-Kompatibilität vor der Umsetzung."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

C#- & .NET-Entwicklung

# Die .NET-Anwendung ändern und ihre Geschäftsregeln erhalten.

Eine gewachsene C#-Anwendung kennt das Geschäft oft besser als ihre Dokumentation. Wir verfolgen das Verhalten, von dem eine Änderung abhängt. Anschließend setzen wir ein vereinbartes Feature, eine Integration oder ein Laufzeit-Upgrade um und prüfen, was dabei erhalten bleiben muss.

DIE ZUSAMMENARBEIT

## Verhalten und Kompatibilitätsanforderungen sichtbar machen.

1. **Das laufende System verstehen** Anwendungsfall, Abhängigkeiten und Betriebsumgebung erfassen.
2. **Die vereinbarte Änderung umsetzen** Geschäftsregeln erhalten und das Fehlerverhalten festlegen.
3. **Release und Wiederherstellung proben** Die geänderte Anwendung unter ihren tatsächlichen Betriebsbedingungen prüfen.

KURZ ERKLÄRT

Wavect arbeitet an C#/.NET-Anwendungen, APIs und unterstützenden Diensten mit einem klaren Kompatibilitäts- und Abnahmeumfang. Laufzeit, Betriebssystem und Abhängigkeiten werden bewertet, bevor ein Umzug oder Ersatz zugesagt wird.

Geeignet für

- Teams, die eine vorhandene C#-Anwendung oder API erweitern
- Unternehmen mit einem kontrollierten Abhängigkeits- oder Laufzeit-Upgrade

Eine andere Leistung passt besser

- Die angenommene automatische Umwandlung jeder Windows-Anwendung in ein plattformübergreifendes Produkt
- Ein Anbieterwechsel, bei dem zuerst Zugang und Verantwortung wiederhergestellt werden müssen

## Klären, welche .NET-Anwendung geändert wird

Wir erfassen Laufzeit, Projekttypen, NuGet-Abhängigkeiten, Datenbankanbieter und Bereitstellungsumgebung. Eine ASP.NET-API, ein Hintergrunddienst und eine Windows-Desktopanwendung haben unterschiedliche Einschränkungen. Die erste Bewertung zeigt nicht abgesicherte Annahmen und den Geschäftsablauf, der geprüft werden sollte. Sind Repository-Zugriff, Zugangsdaten oder Verantwortung ungeklärt, beginnt die Arbeit mit der [Software-Übernahme](/de/services/software-takeover/).

## Einen Geschäftsvorgang über seine Grenzen verfolgen

Ein neuer Endpunkt oder Bildschirm kann Berechtigungen, Speicherung und nachgelagerte Arbeit verändern. Wir verfolgen diese Verantwortlichkeiten, halten Geschäftsregeln testbar und prüfen Ressourcenlebensdauer sowie asynchrone Aufrufe dort, wo sie die Korrektheit beeinflussen. Zum Datenzugriff gehören Transaktionsgrenzen, konkurrierende Änderungen und die Kompatibilität mit vorhandenen Datensätzen. Externe Nebenwirkungen brauchen eigene Wiederholungs- und Abgleichregeln; eine Datenbanktransaktion steuert nicht automatisch einen fremden Dienst.

## Ein Laufzeit-Upgrade ist eine Kompatibilitätsentscheidung

Wir vergleichen das bestehende Projekt mit der vorgeschlagenen Laufzeit und prüfen verwendete Pakete, APIs und Plattformannahmen. .NET Framework und modernes .NET sind keine austauschbaren Begriffe. Windows-spezifisches Verhalten muss ausdrücklich bewertet werden. Die [Microsoft-Übersicht zur Portierung](https://learn.microsoft.com/en-us/dotnet/core/porting/framework-overview) dient dabei als Referenz. Die übergreifende Ersatzstrategie bleibt bei der [Legacy-Modernisierung](/de/services/legacy-modernization/), eine Verlagerung in eine andere Cloud bei der [Cloud-Migration](/de/services/cloud-migration/).

## Ein neuer Freigabeablauf erhält offene Vorgänge

Beispiel für eine mögliche Abnahme: Ein C#-Dienst bekommt einen zweiten Freigabeschritt, während alte Anträge noch offen sind. Tests decken alte und neue Datensätze, berechtigte Rollen und zwei gleichzeitig widersprechende Entscheidungen ab. Die Release-Probe enthält eine fehlgeschlagene Bereitstellung und das vereinbarte Verfahren zur Datenwiederherstellung. Erfolgreiches Kompilieren allein ist keine Abnahme. Das Szenario beschreibt eine mögliche Prüfung und kein veröffentlichtes Kundenergebnis.

## Die Änderung mit ihren Betriebsannahmen übergeben

Du erhältst Codeänderungen, Regressionstests, Abhängigkeitsentscheidungen und Release-Hinweise zu verbleibenden Plattformgrenzen. Wir dokumentieren das Zusammenspiel zwischen Datenbankänderungen und Anwendungs-Rollback, statt jede Migration als umkehrbar anzunehmen. Hilfreich sind ein funktionierender Build, repräsentative Testdaten und eine Person, die die Geschäftsregeln bestätigen kann. Laufende Betreuung lässt sich über [Software-Wartung](/de/services/software-maintenance/) vereinbaren.

## Fragen vor dem Start

### Könnt ihr an einer älteren .NET-Framework-Anwendung arbeiten?

Wir bewerten Framework, Bibliotheken und Betriebsumgebung, bevor wir den Umfang vereinbaren. Eine sinnvolle Verbesserung kann möglich sein, ohne die gesamte Anwendung sofort auf eine andere Laufzeit zu verschieben.

### Läuft die Anwendung danach unter Linux?

Nur wenn dieses Ziel ausdrücklich vereinbart und geprüft wird. Windows-spezifische APIs, Desktop-Frameworks und Abhängigkeiten können die Anwendung beschränken, auch wenn Teile modernes .NET verwenden.

### Ersetzt ihr die Datenbank oder das ORM?

Nur wenn die Befunde es rechtfertigen und der Umfang es umfasst. Zuerst betrachten wir vorhandene Abfragen, Transaktionsverhalten und Datenkompatibilität. Ein Werkzeugwechsel ist kein Selbstzweck.

### Ist die gesamte Anbieterübergabe enthalten?

Die technische Arbeit kann auf eine Übergabe folgen oder sie begleiten. Zugangswiederherstellung, Verträge und Betriebskontinuität gehören jedoch zur Software-Übernahme. Diese Verantwortlichkeiten bleiben ausdrücklich sichtbar.

## Den nächsten Schritt wählen

- [Verantwortung und Zugang zu einem übernommenen System klären](/de/services/software-takeover/)
- [Den übergreifenden Modernisierungspfad wählen](/de/services/legacy-modernization/)
- [Bestehende Geschäftssysteme verbinden](/de/services/api-integration/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/de/services/dotnet-development/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "Sprachen & Frameworks",
      "dateModified": "2026-10-31",
      "description": "C#/.NET-Anwendungen gezielt erweitern und modernisieren. Wavect prüft Abhängigkeiten, Geschäftsregeln, Datenzugriff und Release-Kompatibilität vor der Umsetzung.",
      "name": "C#- & .NET-Entwicklung",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "C#- & .NET-Entwicklung",
      "url": "https://wavect.io/de/services/dotnet-development/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/de/",
          "name": "Startseite",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/de/services/overview/",
          "name": "Leistungen",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/de/services/overview/#technologies",
          "name": "Sprachen & Frameworks",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/de/services/dotnet-development/",
          "name": "C#- & .NET-Entwicklung",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/de/services/dotnet-development/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-31",
      "description": "C#/.NET-Anwendungen gezielt erweitern und modernisieren. Wavect prüft Abhängigkeiten, Geschäftsregeln, Datenzugriff und Release-Kompatibilität vor der Umsetzung.",
      "inLanguage": "de",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/de/services/dotnet-development/#service"
      },
      "name": "C#- & .NET-Entwicklung",
      "url": "https://wavect.io/de/services/dotnet-development/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Wir bewerten Framework, Bibliotheken und Betriebsumgebung, bevor wir den Umfang vereinbaren. Eine sinnvolle Verbesserung kann möglich sein, ohne die gesamte Anwendung sofort auf eine andere Laufzeit zu verschieben."
      },
      "name": "Könnt ihr an einer älteren .NET-Framework-Anwendung arbeiten?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nur wenn dieses Ziel ausdrücklich vereinbart und geprüft wird. Windows-spezifische APIs, Desktop-Frameworks und Abhängigkeiten können die Anwendung beschränken, auch wenn Teile modernes .NET verwenden."
      },
      "name": "Läuft die Anwendung danach unter Linux?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nur wenn die Befunde es rechtfertigen und der Umfang es umfasst. Zuerst betrachten wir vorhandene Abfragen, Transaktionsverhalten und Datenkompatibilität. Ein Werkzeugwechsel ist kein Selbstzweck."
      },
      "name": "Ersetzt ihr die Datenbank oder das ORM?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Die technische Arbeit kann auf eine Übergabe folgen oder sie begleiten. Zugangswiederherstellung, Verträge und Betriebskontinuität gehören jedoch zur Software-Übernahme. Diese Verantwortlichkeiten bleiben ausdrücklich sichtbar."
      },
      "name": "Ist die gesamte Anbieterübergabe enthalten?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
