Von Xamarin.Forms zu .NET MAUI

Der eine oder andere hat es sicherlich schon gehört, aber mit .NET veröffentlicht Microsoft im Herbst diesen Jahres auch .NET MAUI, was als Weiterentwicklung von Xamarin.Forms gilt und das Entwickeln von Cross-Plattform-Apps stark vereinfachen soll. Dafür hat man die Entwicklung von Xamarin.Forms bereits weitestgehend eingestellt und hat alle unfertigen Features in das Xamarin Community Toolkit ausgelagert, welches ich auch schon hier im Blog vorgestellt habe.

Wenn man nun im Herbst ein neues Projekt starten möchte, dann wird einem in Visual Studio das passende Template zur Verfügung stellen und man kann direkt loslegen. Hier sollte es keine größeren Probleme sein.

Wie geht man nun aber vor, wenn man bereits eine Xamarin.Forms App hat und diese auf .NET MAUI aktualisieren möchte? Hierfür wird Microsoft ein Tool bereitstellen, welches die notwendigen Anpassungen automatisch vornehmen soll. Nun kann es aber sein, dass man den Vorgang selber vornehmen möchte oder aber das Tool fehlschlägt. Für dieses Szenario hat Javier Suárez, seines Zeichens Senior Software Engineer bei Microsoft für Xamarin.Forms und .NET MAUI, nun begonnen ein GitHub-Repository zu erstellen.

In diesem Repository stellt Javier nun Anleitungen zur Verfügung, um zu zeigen, wie man Behaviors, Converters oder auch Effects konvertieren kann. Glücklicherweise müssen meisten nur die Namespaces angepasst werden.

Spannend wird es im Bereich Renderers. Diese stehen nämlich unter .NET MAUI so nicht mehr zur Verfügung und hören jetzt auf den Namen Handlers. Allerdings gibt es Kompatibilitäts-Pakete, welche man hinzufügen kann, so dass man auch in einer .NET MAUI App seine alten Renderer weiterhin benutzen kann, aber natürlich wird empfohlen auf Handler zu wechseln.

An dieser Stelle muss ich noch erwähnen, dass das Repository am Anfang steht und kontinuierlich erweitert wird. Es lohnt sich also dieses in Blick zu behalten.

Map Control mit bindable Pins erweitern Xamarin.Forms Projekt mit .NET Standard Xamarin.Forms: Welche NuGet Pakete verwende ich?