2012-10-16 26 views
8

Załóżmy, że mamy zespół, który pracuje nad wieloma różnymi projektami. Każdy członek zespołu używa innego zestawu wizualnych/niewizualnych kontroli/komponentów podczas swojego cyklu rozwoju. Ponieważ Delphi wymaga, aby każdy komponent był kompilowany i instalowany globalnie w IDE, jak zarządzać tą sytuacją podczas pracy z projektem, który został rozpoczęty przez innego członka zespołu?Jak radzić sobie z komponentami specyficznymi dla projektu w Delphi?

Byłoby wspaniale, gdybym mógł sprowadzić źródła projektu z kontroli wersji i mają zdolność do go skompilować natychmiast. Nie obchodzi mnie, a czasem nie wiem, jakie elementy wizualne lub niewizualne są wymagane do tego projektu, myślę, że wszystkie powinny być zawarte w źródłach projektu.

Być może istnieją pewne narzędzia, które mogą czytać głównego pliku projektu lub katalogu i kompilacji/zainstalować wszystkie potrzebne składniki na załadunku projektu (i odinstaluj je, gdy projekt jest zamknięty)?

Jak radzisz sobie z tym problemem w Delphi?

+2

To pytanie może zawierać kilka odpowiedzi: http://stackoverflow.com/questions/8957128/setting-up-a-large-software-system-in-delphi. Jeśli jednak chcesz edytować formularze, nie ma potrzeby instalowania co najmniej elementów wizualnych. Dodaliśmy skrypty do naszej kontroli źródła, aby zautomatyzować odinstalowywanie i instalowanie odpowiednich kluczy w rejestrze. Oczywiście wymaga ponownego uruchomienia IDE. –

+0

Zwykle przechowuję plik pakietu "wszystkich komponentów" wraz z kodem źródłowym każdego projektu, zawierający wszystkie komponenty używane w danym projekcie. Następnie wystarczy otworzyć pojedynczą paczkę i odbudować ją, aby upewnić się, że wszystkie niezbędne komponenty są na miejscu, zanim zacznę pracować nad samym kodem źródłowym projektu. – Elling

Odpowiedz

4

Każdy, kto chce skompilować dany projekt, musi najpierw zainstalować dowolne komponenty używane w projekcie. Nie ma tego, chyba że projekt zawiera bezpośrednio kod źródłowy komponentów i tworzy instancje komponentów w kodzie zamiast używania DFM. AFAIK, nie ma narzędzia IDE, które zautomatyzuje komponent (un) instalację dla danego projektu dla ciebie.

+5

Jest na to sposób, tworząc wtyczkę IDE, która automatycznie wykrywa, czy "pakiet komponentów specyficznych dla projektu" musi zostać ponownie skompilowany i instaluje go w IDE, gdy grupa projektowa jest otwarta i odinstalowuje ją, gdy grupa projektowa jest Zamknięte. Ale aby to zrobić, musisz załatać i podłączyć się do IDE, ponieważ OpenToolsAPI nie jest wystarczająco bogaty, aby to zrobić. Wymaga to również, aby pakiet miał czysty kod finalizacji. –

+1

@AndreasHausladen Szkoda, że ​​nikt nigdy nie stworzył takiej wtyczki IDE. – Linas

+0

"Każdy, kto chce skompilować dany projekt, musi najpierw zainstalować dowolne komponenty używane w projekcie ...". W rzeczywistości można skompilować projekt bez instalowania, ale nie można edytować formularzy. Jeśli formularz narzeka właśnie naciśnij anuluj – Maksee

2

Bardzo mądrze jest ograniczyć komponenty i biblioteki, które będą używane przez Twój zespół. Jeśli każdy członek zdecyduje, który komponent będzie używał, twój ostateczny plik wykonywalny lub pakiety będą rosły i możesz mieć pewne niezgodności między bibliotekami.

Poza tym, możesz mieć dodatkowe koszty zakupu i aktualizacji bibliotek, które są bardzo podobne. Pamiętaj, że za każdym razem, gdy Delphi jest aktualizowany, powinieneś kupić nowe licencje z większości tych bibliotek.

Więc najlepszym rozwiązaniem jest:

  • zapytać jakich bibliotek korzysta każdy programista i dyskutować z nimi rzeczywiste potrzeby każdego z nich;

  • Katalog wymagana te biblioteki i zainstalować je na komputerze, który będzie kompilować kod końcowy;

+2

Zgadzam się, że twoje podejście powinno działać ... ALE jest to bardzo niewygodne IMO. Co się stanie, jeśli programista utworzył niestandardowy komponent tylko dla jednego projektu? Dlaczego wszyscy inni programiści muszą go zainstalować? Również w ten sposób musiałbym zachować wszystkie te zainstalowane komponenty, aby mieć pewność, że wszystkie są aktualne. Jeśli IDE wspiera instalowanie komponentów dla projektów, wówczas można uniknąć wszystkich tych problemów. – Linas

5

W naszej firmie mamy ten sam problem. Rozwiązujemy to, zmuszając wszystkich do dodania wszystkich niezbędnych ścieżek biblioteki do ich delphi ide.

Używamy dodatkowego repozytorium sdk/framwork, które zawiera wszystkie komponenty/sdks/frameworks każdego. Zachowujemy pojedynczy plik tekstowy, wymieniając wszystkie biblioteki z jego wersją, instalując informacje itp. Wszyscy sprawdzają pożądane biblioteki, więc nie mamy podwójnych bibliotek ani różnych wersji.

Ponieważ wszyscy pracujemy pod Windows, a ponieważ Delphi zachowuje swoje ścieżki i (afaik) zainstalowane informacje o składnikach w rejestrze, wyodrębniliśmy te informacje. Przechowujemy dla każdej używanej wersji delphi plik .reg w repozytorium sdk.

Tak więc, jeśli ktoś zmienia ramy, aktualizuje on informacje dla wszystkich plików w .reg i zobowiązuje go.

teraz, jeśli ktoś chce skonfigurować swoją maszynę programistyczną, to sprawdza sdk, dodaje np. xe2.zarejestruj informacje do ich rejestru, a następnie sprawdź projekt i ... tada. kompilacja.

Nie próbowaliśmy wyodrębnić pakietów "zainstalowanych komponentów". to na naszej liście rzeczy do zrobienia. Alternatywą byłoby przechowywanie pliku wsadowego do budowania i instalowania wszystkich pakietów sdk na raz. Ale nie wiem, czy instalowanie komponentów za pomocą linii poleceń jest możliwe w delphi.

Coś jak instalator JEDI byłoby miłe. Instalator wykrywa zainstalowane wersje i kompilacje Delphi. & wszystko ładnie instaluje. Swobodnie konfigurowalna wersja byłaby miła, więc dodaj wszystkie sdks -> zainstaluj na każdej wersji .. idealnie.

Powiązane problemy