Udostępnij za pośrednictwem


Część 3 . Konfigurowanie rozwiązania międzyplatformowego platformy Xamarin

Niezależnie od tego, które platformy są używane, projekty platformy Xamarin używają tego samego formatu pliku rozwiązania (format pliku .sln programu Visual Studio). Rozwiązania mogą być współużytkowane w środowiskach deweloperskich, nawet jeśli nie można załadować poszczególnych projektów (takich jak projekt systemu Windows w Visual Studio dla komputerów Mac).

Podczas tworzenia nowej aplikacji międzyplatformowej pierwszym krokiem jest utworzenie pustego rozwiązania. W tej sekcji wyjaśniono, co się dzieje dalej: konfigurowanie projektów na potrzeby tworzenia aplikacji mobilnych dla wielu platform.

Udostępnianie kodu

Zapoznaj się z dokumentem Opcje udostępniania kodu, aby uzyskać szczegółowy opis sposobu implementowania udostępniania kodu na różnych platformach.

.NET Standard

Projekty .NET Standard umożliwiają łatwe udostępnianie kodu na różnych platformach, tworzenie zestawów, które mogą być używane na platformach Windows, Xamarin (iOS, Android, Mac) i Linux. Jest to zalecany sposób udostępniania kodu dla rozwiązań Xamarin.

Inne opcje

Historycznie platforma Xamarin używała przenośnych bibliotek klas (PCLS)] i projektów udostępnionych. Żadna z nich nie jest zalecana w przypadku nowych projektów; należy rozważyć migrację istniejących aplikacji do korzystania z platformy .NET Standard.

Wypełnianie rozwiązania

Niezależnie od tego, która metoda jest używana do udostępniania kodu, ogólna struktura rozwiązania powinna implementować architekturę warstwową, która zachęca do udostępniania kodu. Podejście platformy Xamarin polega na grupowanie kodu w dwa typy projektów:

  • Projekt Core (lub "Shared") — napisz kod wielokrotnego użytku w jednym miejscu, który ma być współużytkowany na różnych platformach. Użyj zasad hermetyzacji, aby ukryć szczegóły implementacji wszędzie tam, gdzie to możliwe.
  • Projekty aplikacji specyficzne dla platformy — korzystaj z kodu wielokrotnego użytku z możliwie najmniejszym sprzężeniem. Funkcje specyficzne dla platformy są dodawane na tym poziomie, oparte na składnikach uwidocznionych w projekcie Core.

Projekt podstawowy

Podstawowe projekty, które współużytkują kod, powinny być platformą .NET Standard i tylko zestawami referencyjnymi dostępnymi na wszystkich platformach — tj. typowe przestrzenie nazw platformy, takie jak System, System.Core i System.Xml.

Podstawowe projekty powinny implementować jak najwięcej funkcji interfejsu użytkownika, co może obejmować następujące warstwy:

  • Warstwa danych — kod, który zajmuje się magazynem danych fizycznych, np. SQLite-NET , a nawet pliki XML. Klasy warstw danych są zwykle używane tylko przez warstwę dostępu do danych.
  • Warstwa dostępu do danych — definiuje interfejs API, który obsługuje wymagane operacje danych dla funkcji aplikacji, takie jak metody uzyskiwania dostępu do list danych, poszczególnych elementów danych, a także tworzenie, edytowanie i usuwanie.
  • Warstwa dostępu do usługi — opcjonalna warstwa zapewniająca usługi w chmurze aplikacji. Zawiera kod, który uzyskuje dostęp do zdalnych zasobów sieci (usług sieci Web, pobierania obrazów itp.) i ewentualnie buforowania wyników.
  • Warstwa biznesowa — definicja klas modelu i klas Fasada lub Menedżer, które uwidaczniają funkcje aplikacji specyficznych dla platformy.

Projekty aplikacji specyficzne dla platformy

Projekty specyficzne dla platformy muszą odwoływać się do zestawów wymaganych do powiązania z zestawem SDK każdej platformy (Xamarin.iOS, Xamarin.Android, Xamarin.Mac lub Windows), a także z projektem platformy .NET Standard.

Projekty specyficzne dla platformy powinny implementować:

  • Application Layer — specyficzne dla platformy funkcje i powiązanie/konwersja między obiektami warstwy biznesowej a interfejsem użytkownika.
  • Warstwa interfejsu użytkownika — ekrany, niestandardowe kontrolki interfejsu użytkownika, prezentacja logiki weryfikacji.

Odwołania projektu

Odwołania do projektu odzwierciedlają zależności projektu. Podstawowe projekty ograniczają odwołania do typowych zestawów, dzięki czemu kod jest łatwy do udostępnienia. Projekty aplikacji specyficzne dla platformy odwołują się do projektu .NET Standard oraz innych zestawów specyficznych dla platformy, które muszą korzystać z platformy docelowej.

Konkretne przykłady struktury projektów należy stosować w badaniach przypadków.

Dodawanie plików

Akcja kompilacji

Ważne jest, aby ustawić prawidłową akcję kompilacji dla niektórych typów plików. Ta lista zawiera akcję kompilacji dla niektórych typowych typów plików:

  • Wszystkie pliki C# — akcja kompilacji: kompilowanie
  • Obrazy na platformie Xamarin.iOS i Windows — akcja kompilacji: zawartość
  • Pliki XIB i Storyboard w środowisku Xamarin.iOS — akcja kompilacji: InterfaceDefinition
  • Obrazy i układy XML w systemie Android — akcja kompilacji: AndroidResource
  • Pliki XAML w projektach systemu Windows — akcja kompilacji: strona
  • Pliki XAML zestawu narzędzi Xamarin.Forms — akcja kompilacji: EmbeddedResource

Ogólnie środowisko IDE wykryje typ pliku i zaproponuje prawidłową akcję kompilacji.

Uwzględnij wielkość liter

Na koniec należy pamiętać, że niektóre platformy mają systemy plików z uwzględnieniem wielkości liter (np. iOS i Android), dlatego należy używać spójnej standardowej nazewnictwa plików i upewnić się, że nazwy plików używane w kodzie są dokładnie zgodne z systemem plików. Jest to szczególnie ważne w przypadku obrazów i innych zasobów, do których odwołujesz się w kodzie.