Grupa projektów w Lazarusie

0

Cześć.

Do tej pory w Lazarusie napisałem kilka projektów, które raczej służyły do testowania środowiska i ekosystemu FPC, LCL (komunikacja port szeregowy, jakieś tcp/ip, bazy danych, komponenty graficzne etc.), gdzie zmęczony walką z środowiskiem odpuszczałem. Obecnie chciałbym hobbystycznie i zobaczymy co z tego wyjdzie pociągnąć jeden projekt o którym myślę od dłuższego czasu, właśnie w Lazarusie, jednak chciał bym to zrobić porządnie, lub po mojemu... Pisząc w Delphi/C++ Builderze zawsze całość aplikacji miałem spięte w pliku *.groupproj, a w nim już poszczególne projekty. Używając VisualStudio zawsze mam plik solucji *.sln, który zawiera wiele *.cprojów. Solucja/Grupa projektów służy do spięcia w całość aplikacji, a poszczególne projekty są to wyseparowane potencjalnie niezależne i ponownie używalne biblioteki np. do komunikacji z jakimś web serwisem, do obsługi danego urządzenia, projekt z logiką biznesową, projekt z gui, testy etc. W Lazarusie nie mogę znaleźć odpowiednika grupy projektów/ rozwiązania. Możecie mi przedstawić w skrócie jak tutaj organizować tego typu przedsięwzięcie? W jakie sposób Wy organizujecie pracę i kod w Lazarusie?

Pytanie poboczne, czy Lazarus dorobił się managera pakietów oraz repozytoriów w stylu Microsoftowego Nugeta czy Embarcaderowego GetIt?

1

W zakresie sposobu organizacji pracy - przyłączam się do pytania, może sam się czegoś ciekawego/przydatnego dowiem, poznam jakieś sztuczki itp :)

A odnośnie menedżera pakietów - ja jedynie kojarzę Online Package Manager - dostępny z menu package. Tylko coś mi świta, że domyślnie nie jest to zainstalowane i trzeba ręcznie dorzucić do IDE, żeby potem móc korzystać. Ten menedżer wygląda w sposób następujący:

screenshot-20190612082316.png

2
somedev napisał(a):

W Lazarusie nie mogę znaleźć odpowiednika grupy projektów/ rozwiązania.

Doinstaluj sobie pakiet LazProjectGroups za pomocą opcji Install/Uninstall Packages… z menu Package. Będziesz miał do dyspozycji dodatkowe narzędzie.

Więcej informacji znajdziesz w artykule Project Groups we wiki (nie wiem na ile jest on aktualny), a krótki wstęp znajduje się w tej prezentacji – Project Groups in Lazarus (klikaj przycisk ze strzałką w prawo). Przydałoby się jakieś nowsze źródło informacji…

cerrato napisał(a):

Tylko coś mi świta, że domyślnie nie jest to zainstalowane i trzeba ręcznie dorzucić do IDE, żeby potem móc korzystać.

Nie no ten menedżer jest w standardzie – niczego nie trzeba doinstalowywać. ;)

Online Package Manager.png

0

Dzięki chłopaki. Bardzo to pomoce. Bawię się tym LazProjectGroups ale to tez ma wady - mogę na raz pracować jedynie w kontekście 1 projektu i musze się przełączać między projektami by zmieniać dwa. Chyba, że otworzę 2 instancje Lazarusa. Tez kwestia jak z zależnościami i debuggowaniem kodu między projektami - zaraz to przetestuje.

0
somedev napisał(a):

Bawię się tym LazProjectGroups ale to tez ma wady […]

A no ma, i to całkiem sporo. Dlatego ten pakiet idinstalowałem niedługo po instalacji – wnerwiał mnie, toporne to i nieintuicyjne, a artykuł w wiki trochę biedny. Ale było to już jakiś czas temu, stąd nie wiem jak wygląda bieżąca wersja (o ile wyszła nowsza niż ta którą testowałem).

[…] mogę na raz pracować jedynie w kontekście 1 projektu i musze się przełączać między projektami by zmieniać dwa.

Tak, to jest ograniczenie IDE, którego póki co nie przeskoczy. Przy czym nie jest to wada pakietu, a środowiska i jego architektury. Być może w przyszłości samo IDE będzie inaczej zorganizowane, tak aby można było pracować z wieloma projektami w ramach jednej instancji (a byłoby to bardzo przydatne). No i pasowałoby, aby narzędzie do zarządzania grupami projektów było w standardzie, było bogatsze w funkcjonalności i posiadało lepszą dokumentację, również w postaci instrukcji obsługi.

0

Jak natomiast Wy pracujecie jeśli chodzi o projekty, które mają wiele dllek? Dla mnie normalnym jest, że system posiada kilkadziesiąt do kilkuset plików dll i trzeba je debuggować - jak sobie z tym radzicie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1