Was ist Xamarin?What is Xamarin?

Screenshots der Beispiel-xamarin-Anwendung in IOS und AndroidScreenshots of example Xamarin application in iOS and Android

Xamarin ist eine Open-Source-Plattform zum Entwickeln moderner und leistungsfähiger Anwendungen für IOS, Android und Windows mit .net.Xamarin is an open-source platform for building modern and performant applications for iOS, Android, and Windows with .NET. Xamarin ist eine Abstraktions Ebene, die die Kommunikation zwischen frei gegebenem Code und zugrunde liegenden Platt Form Code verwaltet.Xamarin is an abstraction layer that manages communication of shared code with underlying platform code. Xamarin wird in einer verwalteten Umgebung ausgeführt, die Komfort wie Speicher Belegung und Garbage Collection bereitstellt.Xamarin runs in a managed environment that provides conveniences such as memory allocation and garbage collection.

Xamarin ermöglicht Entwicklern, einen durchschnittlichen Anteil von 90% ihrer Anwendung plattformübergreifend zu nutzen.Xamarin enables developers to share an average of 90% of their application across platforms. Dieses Muster ermöglicht es Entwicklern, Ihre gesamte Geschäftslogik in einer einzelnen Sprache zu schreiben (oder vorhandenen Anwendungscode wiederzuverwenden), aber die systemeigene Leistung, das Aussehen und Verhalten der einzelnen Plattformen zu erreichen.This pattern allows developers to write all of their business logic in a single language (or reuse existing application code) but achieve native performance, look, and feel on each platform.

Xamarin-Anwendungen können auf einem PC oder Mac geschrieben und in Native Anwendungspakete (z. b . eine APK -Datei unter Android) oder in einer IPA -Datei unter IOS kompiliert werden.Xamarin applications can be written on PC or Mac and compile into native application packages, such as an .apk file on Android, or an .ipa file on iOS.

Hinweis

Das Kompilieren und Bereitstellen von Anwendungen für IOS erfordert derzeit einen MacOS-Computer.Compiling and deploying applications for iOS currently requires a MacOS machine. Weitere Informationen zu den Entwicklungsanforderungen finden Sie unter System Requirements (Systemanforderungen).For more information about development requirements, see system requirements.

Wer xamarin ist fürWho Xamarin is for

Xamarin ist für Entwickler mit den folgenden Zielen konzipiert:Xamarin is for developers with the following goals:

  • Teilen Sie Code, Test und Geschäftslogik plattformübergreifend.Share code, test and business logic across platforms.
  • Schreiben Sie plattformübergreifende Anwendungen C# in mit Visual Studio.Write cross-platform applications in C# with Visual Studio.

Funktionsweise von xamarinHow Xamarin works

Diagramm der xamarin-Architektur

Das Diagramm zeigt die Gesamtarchitektur einer plattformübergreifenden xamarin-Anwendung.The diagram shows the overall architecture of a cross-platform Xamarin application. Mit xamarin können Sie auf jeder Plattform eine native Benutzeroberfläche erstellen und eine Geschäfts C# Logik in schreiben, die plattformübergreifend verwendet wird.Xamarin allows you to create native UI on each platform and write business logic in C# that is shared across platforms. In den meisten Fällen kann 80% des Anwendungs Codes mithilfe von xamarin freigegeben werden.In most cases, 80% of application code is sharable using Xamarin.

Xamarin baut auf Monoauf, einer Open Source-Version des .NET Framework basierend auf den .net ECMA-Standards.Xamarin is built on top of Mono, an open-source version of the .NET Framework based on the .NET ECMA standards. Mono ist für fast so lange vorhanden wie die .NET Framework selbst und wird auf den meisten Plattformen ausgeführt, einschließlich Linux, UNIX, FreeBSD und macOS.Mono has existed for almost as long as the .NET Framework itself, and runs on most platforms including Linux, Unix, FreeBSD, and macOS. Die Mono-Ausführungsumgebung übernimmt automatisch Aufgaben, wie z. b. Speicher Belegung, Garbage Collection und Interoperabilität mit zugrunde liegenden Plattformen.The Mono execution environment automatically handles tasks such as memory allocation, garbage collection and interoperability with underlying platforms.

Weitere Informationen zur plattformspezifischen Architektur finden Sie unter xamarin. Android und xamarin. IOS.For more information about platform-specific architecture, see Xamarin.Android and Xamarin.iOS.

Hinzugefügte FeaturesAdded features

Xamarin kombiniert die Möglichkeiten nativer Plattformen und bietet eine Reihe von Features, darunter:Xamarin combines the abilities of native platforms and adds a number of features, including:

  1. Vollständige Bindung für die zugrunde liegenden sdgs – xamarin enthält Bindungen für fast alle zugrunde liegenden Plattform-sdgs in IOS und Android.Complete binding for the underlying SDKs – Xamarin contains bindings for nearly the entire underlying platform SDKs in both iOS and Android. Zusätzlich dazu sind diese Bindungen stark typisiert. So bieten sie einfach Navigation, lassen sich leicht nutzen und sorgen während der Entwicklung für eine stabile Typüberprüfung zur Kompilierzeit und während der Entwicklung.Additionally, these bindings are strongly-typed, which means that they’re easy to navigate and use, and provide robust compile-time type checking and during development. Stark typisierte Bindungen führen zu weniger Laufzeitfehlern und Anwendungen höherer Qualität.Strongly-typed bindings lead to fewer runtime errors and higher-quality applications.
  2. Ziel-c, Java, C und C++ Interop – xamarin bietet Funktionen zum direkten Aufrufen von Ziel-c, Java, c und Bibliotheken und C++ bietet Ihnen die Möglichkeit, ein breites Array von Code von Drittanbietern zu verwenden.Objective-C, Java, C, and C++ Interop – Xamarin provides facilities for directly invoking Objective-C, Java, C, and C++ libraries, giving you the power to use a wide array of third party code. Mit dieser Funktion können Sie vorhandene IOS-und Android-Bibliotheken verwenden, die in Ziel-C, JavaC++oder C/geschrieben sind.This functionality lets you use existing iOS and Android libraries written in Objective-C, Java, or C/C++. Außerdem bietet xamarin Bindungs Projekte, mit denen Sie Native Ziel-C-und Java-Bibliotheken mithilfe einer deklarativen Syntax binden können.Additionally, Xamarin offers binding projects that allow you to bind native Objective-C and Java libraries using a declarative syntax.
  3. Moderne Sprachkonstrukte – xamarin-Anwendungen werden C#in geschrieben, eine moderne Sprache, die bedeutende Verbesserungen gegenüber Ziel-C und Java umfasst, wie z. b. dynamische sprach Features, funktionale Konstrukte wie Lambdas, LINQ, parallele Programmierung, Generika usw.Modern language constructs – Xamarin applications are written in C#, a modern language that includes significant improvements over Objective-C and Java such as dynamic language features, functional constructs such as lambdas, LINQ, parallel programming, generics, and more.
  4. Robuste Basisklassen Bibliothek (Base Class Library, BCL) – xamarin-Anwendungen verwenden die .net-BCL, eine große Auflistung von Klassen, die über umfassende und optimierte Features wie leistungsstarke XML-, Datenbank-, Serialisierungs-, e/a-, Zeichen folgen-und Netzwerkunterstützung verfügen.Robust Base Class Library (BCL) – Xamarin applications use the .NET BCL, a large collection of classes that have comprehensive and streamlined features such as powerful XML, Database, Serialization, IO, String, and Networking support, and more. Vorhandener C# Code kann für die Verwendung in einer APP kompiliert werden, die den Zugriff auf Tausende von Bibliotheken ermöglicht, die über die BCL hinaus Funktionalität hinzufügen.Existing C# code can be compiled for use in an app, which provides access to thousands of libraries that add functionality beyond the BCL.
  5. Moderne integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) – xamarin verwendet Visual Studio, eine moderne IDE, die Funktionen wie die automatische Vervollständigung von Code, ein anspruchsvolles Projekt-und projektmappenverwaltungssystem, eine umfassende Projektvorlagen Bibliothek, eine integrierte Quell Code Verwaltung und vieles mehr umfasst.Modern Integrated Development Environment (IDE) – Xamarin uses Visual Studio, a modern IDE that includes features such as code auto completion, a sophisticated project and solution management system, a comprehensive project template library, integrated source control, and more.
  6. Mobile plattformübergreifende Unterstützung – xamarin bietet ausgereifte plattformübergreifende Unterstützung für die drei Hauptplattformen von IOS, Android und Windows.Mobile cross-platform support – Xamarin offers sophisticated cross-platform support for the three major platforms of iOS, Android, and Windows. Anwendungen können so geschrieben werden, dass Sie bis zu 90% Ihres Codes freigeben können, und xamarin. Essentials bietet eine einheitliche API für den Zugriff auf gemeinsame Ressourcen auf allen drei Plattformen.Applications can be written to share up to 90% of their code, and Xamarin.Essentials offers a unified API to access common resources across all three platforms. Mit frei gegebenem Code können Entwicklungskosten und die Markteinführungszeit für Mobile Entwickler erheblich reduziert werden.Shared code can significantly reduce both development costs and time to market for mobile developers.

Xamarin.AndroidXamarin.Android

xamarin. Android-Architektur DiagrammXamarin.Android architecture diagram

Xamarin. Android-Anwendungen kompilieren C# aus in Intermediate Language (IL) , was dann Just-in-time (JIT) in eine systemeigene Assembly kompiliert wird, wenn die Anwendung gestartet wird.Xamarin.Android applications compile from C# into Intermediate Language (IL) which is then Just-in-Time (JIT) compiled to a native assembly when the application launches. Xamarin. Android-Anwendungen werden in der Mono-Ausführungsumgebung parallel zum virtuellen Computer der Android-Laufzeit (Art) ausgeführt.Xamarin.Android applications run within the Mono execution environment, side by side with the Android Runtime (ART) virtual machine. Xamarin stellt .Net-Bindungen für die Namespaces "Android. *" und "java. *" bereit.Xamarin provides .NET bindings to the Android.* and Java.* namespaces. Die Mono-Ausführungsumgebung ruft diese Namespaces über die verwalteten Callable Wrapper (MCW) auf und stellt Android Callable Wrapper (ACW) für die Kunst bereit, sodass beide Umgebungen Code aufeinander aufrufen können.The Mono execution environment calls into these namespaces via Managed Callable Wrappers (MCW) and provides Android Callable Wrappers (ACW) to the ART, allowing both environments to invoke code in each other.

Weitere Informationen finden Sie unter xamarin. Android-Architektur.For more information, see Xamarin.Android architecture.

Xamarin.iOSXamarin.iOS

xamarin. IOS-Architektur DiagrammXamarin.iOS architecture diagram

Xamarin. IOS-Anwendungen sind vollständig im Vorfeld (AOT) , die aus C# in nativem Arm-Assemblycode kompiliert wurden.Xamarin.iOS applications are fully Ahead-of-Time (AOT) compiled from C# into native ARM assembly code. Xamarin verwendet Selectors , um Ziel-c für verwaltete C# und Registrare verfügbar zu machen C# , um verwalteten Code für "Ziel-c" verfügbar zu machen.Xamarin uses Selectors to expose Objective-C to managed C# and Registrars to expose managed C# code to Objective-C. Selektoren und Registrare werden zusammen als "Bindungen" bezeichnet und ermöglichen die Kommunikation mit C# dem Ziel-C und der Kommunikation.Selectors and Registrars collectively are called "bindings" and allow Objective-C and C# to communicate.

Weitere Informationen finden Sie unter xamarin. IOS-Architektur.For more information, see Xamarin.iOS architecture.

Xamarin.EssentialsXamarin.Essentials

Xamarin. Essentials ist eine Bibliothek, die plattformübergreifende APIs für Native Gerätefunktionen bereitstellt.Xamarin.Essentials is a library that provides cross-platform APIs for native device features. Wie xamarin selbst ist xamarin. Essentials eine Abstraktion, die den Prozess des Zugriffs auf systemeigene Funktionen vereinfacht.Like Xamarin itself, Xamarin.Essentials is an abstraction that simplifies the process of accessing native functionality. Einige Beispiele für die von xamarin. Essentials bereitgestellte Funktionalität sind:Some examples of functionality provided by Xamarin.Essentials include:

  • GeräteinformationenDevice info
  • DateisystemFile system
  • BeschleunigungsmesserAccelerometer
  • Telefon EinwählprogrammPhone dialer
  • Text-zu-SpracheText-to-speech
  • BildschirmsperreScreen lock

Weitere Informationen finden Sie unter xamarin. Essentials.For more information, see Xamarin.Essentials.

Xamarin.FormsXamarin.Forms

Xamarin. Forms ist ein Open-Source-Framework für die Benutzeroberfläche.Xamarin.Forms is an open-source UI framework. Xamarin. Forms ermöglicht Entwicklern das Erstellen von IOS-, Android-und Windows-Anwendungen aus einer einzelnen freigegebenen CodeBase.Xamarin.Forms allows developers to build iOS, Android and Windows applications from a single shared codebase. Xamarin. Forms ermöglicht Entwicklern das Erstellen von Benutzeroberflächen in XAML mit Code Behind in C#.Xamarin.Forms allows developers to create user interfaces in XAML with code-behind in C#. Diese Benutzeroberflächen werden als leistungsfähige native Steuerelemente auf jeder Plattform gerendert.These user interfaces are rendered as performant native controls on each platform. Einige Beispiele für die von xamarin. Forms bereitgestellten Features sind:Some examples of features provided by Xamarin.Forms include:

  • Sprache der XAML-BenutzeroberflächeXAML user-interface language
  • DatenbindungDatabinding
  • GestenGestures
  • EffekteEffects
  • FormatStyling

Weitere Informationen finden Sie unter xamarin. Forms.For more information, see Xamarin.Forms.

Erste SchritteGet started

Die folgenden Leitfäden helfen Ihnen beim Erstellen Ihrer ersten App mithilfe von xamarin:The following guides will help you build your first app using Xamarin:

Auf Channel 9 und auf YouTube finden Sie weitere Videos zu Xamarin.Find more Xamarin videos on Channel 9 and YouTube.