Przyglądałem się nowym funkcjom Visual Studio 2015 i Shared Project pojawiło się dużo, ale nie rozumiem, czym różni się korzystanie z Biblioteki klas lub Przenośnej biblioteki klas. Czy ktoś może wyjaśnić?
Edycja: Projekt współdzielony to nowa funkcja programu Visual Studio 2015 i różni się od przenośnej biblioteki klas. Rozumiem, czym jest Portable Class Library. Próbuję zrozumieć, czym różni się projekt współdzielony od biblioteki klas. Zobacz link poniżej.
c#
.net
visual-studio-2015
Indy411
źródło
źródło
Odpowiedzi:
Różnica między wspólnym projektem a biblioteką klas polega na tym, że ta ostatnia jest kompilowana, a jednostką ponownego użycia jest zestaw.
W przypadku tych pierwszych jednostką ponownego wykorzystania jest kod źródłowy, a wspólny kod jest dołączany do każdego zestawu, który odwołuje się do wspólnego projektu.
Może to być przydatne, gdy chcesz tworzyć osobne zestawy, które są ukierunkowane na określone platformy, ale nadal mają kod, który należy udostępnić.
Zobacz także tutaj :
W poprzednich wersjach programu Visual Studio 1 można było udostępniać kod źródłowy między projektami, wybierając Dodaj -> Istniejący element, a następnie wybierając opcję Połącz. Ale to było trochę niezgrabne i każdy osobny plik źródłowy musiał być wybierany indywidualnie. Przechodząc do obsługi wielu różnych platform (iOS, Android itp.), Postanowili ułatwić udostępnianie źródła między projektami, dodając koncepcję wspólnych projektów.
1 To pytanie i moja odpowiedź (do tej pory) sugerują, że Shared Projects to nowa funkcja w Visual Studio 2015. W rzeczywistości zadebiutowali w Visual Studio 2013 Update 2
źródło
Znalazłem więcej informacji z tego bloga .
źródło
Krótkie różnice to
1) PCL nie będzie miał pełnego dostępu do .NET Framework, gdzie ma to jak SharedProject.
2) #ifdef dla kodu specyficznego dla platformy - nie można pisać w PCL ( opcja #ifdef nie jest dostępna w PCL, ponieważ jest ona kompilowana osobno, jako własna biblioteka DLL, więc w czasie kompilacji (podczas oceny #ifdef) nie wie, na jakiej platformie będzie częścią. ) Gdzie, jako wspólny projekt, możesz.
3) Kod specyficzny dla platformy jest uzyskiwany za pomocą Inversion Of Control w PCL, gdzie za pomocą instrukcji #ifdef można osiągnąć to samo w Shared Project.
Doskonały artykuł ilustrujący różnice między PCL a współdzielonym projektem można znaleźć pod następującym linkiem
http://hotkrossbits.com/2015/05/03/xamarin-forms-pcl-vs-shared-project/
źródło
Krótko mówiąc, jak inni już pisali:
wspólne korzystanie z projektu
na poziomie kodu (pliku), co pozwala również na strukturę folderów i zasobów
pcl
Ponowne użycie na poziomie zestawu
Najbardziej brakowało mi tutaj odpowiedzi na temat ograniczonej funkcjonalności dostępnej w PCL: jako przykład masz ograniczone operacje na plikach (brakowało mi wielu funkcjonalności File.IO w wieloplatformowym projekcie Xamarin).
Bardziej szczegółowo
współdzielony projekt :
+ Można użyć #if podczas atakowania na wiele platform (np. Xamarin iOS, Android, WinPhone)
+ Wszystkie funkcje frameworku dostępne dla każdego projektu docelowego (choć muszą być kompilowane warunkowo)
o Integruje się w czasie kompilacji
- Nieco większy rozmiar wynikowych zestawów
- Wymaga Visual Studio 2013 Update 2 lub nowszej
pcl :
+ generuje wspólny zestaw
+ nadaje się do użycia ze starszymi wersjami Visual Studio (wersja 2 przed 2013 r.)
o dynamicznie połączony
- ograniczona funkcjonalność (podzbiór wszystkich projektów, do których się odwołuje)
Jeśli masz wybór, polecam pójście na wspólny projekt, jest on na ogół bardziej elastyczny i bardziej wydajny. Jeśli znasz swoje wymagania z wyprzedzeniem, a PCL może je spełnić, możesz również pójść tą drogą. PCL wymusza także wyraźniejszą separację, nie pozwalając na pisanie kodu specyficznego dla platformy (co może nie być dobrym wyborem do umieszczenia we wspólnym zestawie).
Głównym celem obu jest, gdy kierujesz reklamy na wiele platform, w przeciwnym razie zwykle używałbyś zwykłego projektu biblioteki / biblioteki dll.
źródło
Z książki VS 2015 trafnie
Projekty współdzielone umożliwiają współdzielenie kodu, zasobów i zasobów dla wielu typów projektów. Mówiąc dokładniej, następujące typy projektów mogą odwoływać się i wykorzystywać projekty współdzielone:
Uwaga: - Zarówno projekty współdzielone, jak i biblioteki klas przenośnych (PCL) umożliwiają udostępnianie kodu, zasobów XAML i zasobów, ale oczywiście istnieją pewne różnice, które można podsumować w następujący sposób.
źródło
Biblioteka klas jest współdzielonym skompilowanym kodem.
Udostępniony projekt to wspólny kod źródłowy.
źródło