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:
- kompilacji klas w jednym DLL i załadować go do Global Assembly Cache (GAC)
- 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
- kompilacji klas w jednym DLL i umieścić go w każdym projekcie
- 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)
- 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?
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
@docmanhattan mam na myśli kopiowanie samych plików .cs i dodawanie ich do nowych projektów. – kscott