2012-12-10 15 views

Odpowiedz

28

wady powiązanych plików:

  • Dodaj jako link może być trudne do utrzymania, zwłaszcza jak przeskalować do wielu projektów i wielu plików źródłowych. Oprzyrządowanie (takie jak Project Linker dla Visual Studio 2010, czy trzymanie ALT podczas przeciągania w Visual Studio 2012) może to ułatwić.
  • Narzędzia do refaktoryzacji nie działają z połączonymi plikami. Na przykład, jeśli zmienisz nazwę klasy lub metody w połączonym pliku, narzędzia do refaktoryzacji nie zaktualizują odwołań do innych połączonych kopii tego interfejsu API.
  • Podczas edytowania kodu w połączonym pliku, program intellisense może wyświetlać interfejsy API, które nie są dostępne na wszystkich platformach, do których jest podłączony plik.
  • Program Visual Studio wyświetli okno dialogowe z napisem "Ten dokument jest otwierany przez inny projekt" podczas próby otwarcia połączonego pliku już otwartego przez inny projekt.
  • Otrzymujesz osobną bibliotekę DLL dla każdej platformy. Jeśli tworzysz bibliotekę do wielokrotnego użytku, którą chcesz udostępnić innym, łatwiej byłoby ją rozpowszechniać, gdyby istniała tylko jedna jej wersja, a nie osobna dla każdej platformy.

Wady przenośnych bibliotek klas:

  • Jesteś ograniczony do interfejsów API, które są dostępne na wszystkich platformach, które są kierowane. Nie można użyć kompilacji warunkowej (instrukcje #if) w celu obejścia różnic między platformami.
  • Może być trudno dowiedzieć się, które interfejsy API są obsługiwane w danej kombinacji platform. Oto arkusza kalkulacyjnego, które mogą w tym pomóc: Portable Class Library API List

Dla pewnych wskazówek, w jaki sposób wykorzystać Portable Class Libraries, zobacz:

Podczas gdy jestem stronniczy od przenośnych bibliotek klas (jako członek zespołu PCL), połączone pliki są również całkowicie poprawnym sposobem udostępniania kodu, a jeśli nie nie napotykają na wady, a następnie używaj połączonych plików źródłowych. Używam głównie przenośnych bibliotek klas, ale nadal używam połączonych plików źródłowych, gdy nie pasują do nich PCL.

+2

Ta odpowiedź wygląda świetnie. Jedyne, co mogę dodać, to że połączona ścieżka pliku dodaje także problemy z konserwacją w języku N. Kiedy używałem do utrzymania połączonej wersji pliku mvvmcross, dodanie nowej platformy było zniechęcającą perspektywą, ale teraz przełączyłem się na kod PCL, z radością rozważam dodanie kilku nowych platform - dodanie ich nie jest tak duże ani nieprzyjemne zadanie. – Stuart

+3

Skłamałem ... Jest jeszcze kilka rzeczy, które chciałbym dodać - 1. że trasa pcl zachęca do testowania i znacznie ułatwia testowanie; 2. To imo the pcl route zachęca do dobrej architektury - zachęca do korzystania z interfejsów i wtrysku zależności, podczas gdy linkowanie plików zachęca do statycznego linkowania do klas i instrukcji #if, które później powodują pękanie innych kompilacji. – Stuart

+0

Spojrzeliśmy na konwersję na PCL, ale myślę, że to naprawdę jest coś, o czym trzeba pomyśleć od pierwszego dnia. – iwayneo