2011-09-01 13 views
9

Podobnie jak większość sklepów mamy zespół ludzi pracujących nad różnymi projektami, które wszystkie potrzebują dostępu do tych samych podstawowych informacji i funkcji, które odnoszą się do naszej działalności, zwykle w języku C#. Obecnie kopiujemy zwykłe klasy z projektu do projektu, ale wszyscy zaczynają mieć swoje własne smaki i chcemy je skonsolidować.Jaki jest najlepszy sposób udostępnienia bibliotek współdzielonych wielu aplikacjom?

Używamy SVN Tortoise i zdecydowaliśmy się na utrzymanie oddzielnego projektu, który zawierałby nasze wspólne klasy, ale nie jesteśmy pewni najlepszego sposobu na wdrożenie tego wspólnego kodu do naszych różnych aplikacji. Pracujemy dla wewnętrznego sklepu IT, który może dyktować wszystko o tym, w jaki sposób użytkownicy uzyskują dostęp do aplikacji, nie musimy martwić się o to, że wprowadzimy nasze produkty do świata rzeczywistego.

Niektóre nasze myśli były:

  1. kompilacji klas w jednym DLL i załadować go do Global Assembly Cache (GAC)
  2. kompilacji klas w jednym DLL i zapisać go na centralnie położony wspólny napęd do odwoływać się przez wszystkie inne projekty
  3. kompilacji klas w jednym DLL i umieścić go w każdym projekcie
  4. Wystarczy pobrać najnowsze zajęcia podczas uruchamiania projektu, ale nie mają centralną bibliotekę współdzieloną (nasza interpretacja tego: http://www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse.html)
  5. SVN externals http://svnbook.red-bean.com/en/1.0/ch07s03.html

wiem, że jest to wspólny problem, a jeśli spędzać czas patrząc na te lub inne opcje, to nieodmiennie znaleźć ludzi wyjaśniające pułapek każdej metody (wersjonowanie, testy regresji , "DLL Hell", "GAC jest do dupy", itp.). Nie mogę znaleźć nikogo, kto mówiłby o tym, co DZIAŁA i dlaczego. Czy istnieje preferowana metoda?

+0

Przez "kopiowanie wspólnych klas" oznacza to, że dosłownie tworzysz nowy plik .cs w projekcie i kopiujesz wklejając dane z wybranej klasy do nowego pliku .cs? – docmanhattan

+0

@docmanhattan mam na myśli kopiowanie samych plików .cs i dodawanie ich do nowych projektów. – kscott

Odpowiedz

2

W mojej firmie mamy ten sam problem. Obecnie używamy tylko plików .bat, które trafiają do naszego SVN Trunk i pobierają najnowsze referencje .dll i wypełniają lokalny folder References dla projektu, nad którym pracujemy.

Obecnie pracujemy nad przełączeniem tego systemu na NuGet. Nie jestem w 100% pewny, jak to działa, ale na pewno warto się nim zająć. Wygląda na to, że można go skonfigurować tak, aby wskazywał na współdzielone repozytorium kodu, a następnie w Visual Studio za pomocą wtyczki, jest to tak proste, jak kliknięcie prawym przyciskiem myszy i naciśnięcie przycisku "Aktualizuj" za każdym razem, gdy trzeba pobrać najnowszy kod.

+0

Nuget można skonfigurować prywatnie, więc polecam to. Dzięki temu otrzymywanie aktualizacji będzie proste – KallDrexx

Powiązane problemy