Udostępnianie kodu udostępnionych projektów

Udostępnione projekty umożliwiają pisanie wspólnego kodu, do którego odwołuje się wiele różnych projektów aplikacji. Kod jest kompilowany w ramach każdego projektu odwołującego się do projektu i może zawierać dyrektywy kompilatora, aby ułatwić włączenie funkcji specyficznych dla platformy do udostępnionej bazy kodu.

Udostępnione projekty (czasami nazywane projektami udostępnionych zasobów) umożliwiają pisanie kodu współużytkowanego między wieloma projektami docelowymi, w tym aplikacjami platformy Xamarin.

Obsługują one dyrektywy kompilatora, dzięki czemu można warunkowo dołączyć kod specyficzny dla platformy do skompilowania w podzestawie projektów odwołujących się do udostępnionego projektu. Istnieje również obsługa środowiska IDE, która ułatwia zarządzanie dyrektywami kompilatora i wizualizowanie wyglądu kodu w każdej aplikacji.

Jeśli w przeszłości użyto łączenia plików do współużytkowania kodu między projektami, udostępnione projekty działają w podobny sposób, ale z znacznie ulepszoną obsługą środowiska IDE.

Co to jest udostępniony projekt?

W przeciwieństwie do większości innych typów projektów udostępniony projekt nie ma żadnych danych wyjściowych (w postaci biblioteki DLL), zamiast tego kod jest kompilowany w każdym projekcie odwołującym się do niego. Przedstawiono to na poniższym diagramie — koncepcyjnie cała zawartość udostępnionego projektu jest "kopiowana" do każdego projektu odwołującego się do projektu i kompilowana tak, jakby była częścią projektu.

Shared Project architecture

Kod w projekcie udostępnionym może zawierać dyrektywy kompilatora, które będą włączać lub wyłączać sekcje kodu w zależności od tego, który projekt aplikacji używa kodu, co jest sugerowane przez kolorowe pola platformy na diagramie.

Udostępniony projekt nie jest kompilowany samodzielnie, istnieje wyłącznie jako grupa plików kodu źródłowego, które mogą być zawarte w innych projektach. Podczas odwołowania się do innego projektu kod jest skutecznie kompilowany w ramach tego projektu. Projekty udostępnione nie mogą odwoływać się do żadnego innego typu projektu (w tym innych projektów udostępnionych).

Należy pamiętać, że projekty aplikacji systemu Android nie mogą odwoływać się do innych projektów aplikacji systemu Android — na przykład projekt testowy jednostkowy systemu Android nie może odwoływać się do projektu aplikacji systemu Android. Aby uzyskać więcej informacji o udostępnionym projekcie.

przewodnik Visual Studio dla komputerów Mac

W tej sekcji opisano sposób tworzenia i używania udostępnionego projektu przy użyciu Visual Studio dla komputerów Mac. Zapoznaj się z sekcją Shared Project Example (Przykład udostępnionego projektu), aby zapoznać się z kompletnym przykładem.

Tworzenie udostępnionego projektu

Aby utworzyć nowy projekt udostępniony, przejdź do pozycji Plik > nowe rozwiązanie... (lub kliknij prawym przyciskiem myszy istniejące rozwiązanie i wybierz polecenie Dodaj > nowy projekt...):

New Shared Project

Na następnym ekranie wybierz nazwę projektu i kliknij przycisk Utwórz.

Poniżej przedstawiono nowy projekt udostępniony — zwróć uwagę, że nie ma żadnych odwołań ani węzłów składników; nie są one obsługiwane w przypadku projektów udostępnionych.

Empty Shared Project

Aby projekt udostępniony był przydatny, należy odwoływać się do co najmniej jednego projektu w stanie kompilacji (takiego jak aplikacja lub biblioteka systemu Android lub projekt PCL). Udostępniony projekt nie zostanie skompilowany, gdy nie zawiera odwołania do niego, więc błędy składni (lub innych) nie zostaną wyróżnione, dopóki nie zostanie odwołany przez coś innego.

Dodanie odwołania do udostępnionego projektu odbywa się w taki sam sposób, jak w przypadku odwoływania się do zwykłego projektu Biblioteka. Ten zrzut ekranu przedstawia projekt platformy Xamarin.iOS odwołujący się do udostępnionego projektu.

Project reference to Shared Project

Po odwołaniu się do projektu udostępnionego przez inną bibliotekę lub aplikację możesz skompilować rozwiązanie i wyświetlić wszelkie błędy w kodzie. Po odwoływaniu się do projektu udostępnionego przez co najmniej dwa inne projekty w lewym górnym rogu edytora kodu źródłowego, które pokazuje, które projekty odwołują się do tego pliku.

Udostępnione opcje projektu

Po kliknięciu prawym przyciskiem myszy udostępnionego projektu wybierz pozycję Opcje mniej ustawień niż inne typy projektów. Ponieważ projekty udostępnione nie są kompilowane (samodzielnie), nie można ustawić opcji danych wyjściowych ani kompilatora, konfiguracji projektu, podpisywania zestawu lub poleceń niestandardowych. Kod w projekcie udostępnionym skutecznie dziedziczy te wartości z dowolnych odwołań.

Poniżej przedstawiono ekran Opcje — nazwa projektu i domyślna przestrzeń nazw są jedynymi dwoma ustawieniami, które zazwyczaj zostaną zmienione.

Shared Project Options

Przykład projektu udostępnionego

W przykładzie Tasky użyto projektu udostępnionego do przechowywania wspólnego kodu używanego zarówno przez aplikacje systemu iOS, Android, jak i Windows Telefon. Pliki kodu źródłowego SQLite.cs i TaskRepository.cs wykorzystują dyrektywy kompilatora (np. #if __ANDROID__) w celu wygenerowania różnych danych wyjściowych dla każdej aplikacji, do których się odwołują.

Poniżej przedstawiono kompletną strukturę rozwiązania (odpowiednio w Visual Studio dla komputerów Mac i programie Visual Studio):

Projekt Telefon systemu Windows można przechodzić z poziomu Visual Studio dla komputerów Mac, mimo że ten typ projektu nie jest obsługiwany do kompilacji w Visual Studio dla komputerów Mac.

Uruchomione aplikacje są pokazane poniżej:

iOS, Android, Windows Phone examples

Podsumowanie

W tym dokumencie opisano, jak działają projekty udostępnione, jak można je tworzyć i używać zarówno w Visual Studio dla komputerów Mac, jak i w programie Visual Studio, oraz przedstawiono prostą przykładową aplikację, która demonstruje udostępniony projekt w akcji.