Aplikacja nadrzędna dla innych aplikacji

0

Witam, mam kilka aplikacji tzn:
Raport.exe
Kontrola.exe
Infrastruktura.exe
itd... napisanych w Pascalu

Teraz pytanie czy jest jakieś rozwiązanie na stworzenie Aplikacji nadrzędnej z modułem logowania za pomocą którego będzie można uruchamiać poszczególne aplikacje aplikacje.
Przy czym jeśli nie zalogujemy się do aplikacji nadrzędnej to nie uruchomimy aplikacji podrzędnej.
Zamknięcie aplikacji nadrzędnej zamyka też otwarte aplikacje podrzędne.

Zastanawiałem się nad szyfrowanym plikiem *.ini

Jeśli macie jakieś pomysły to bardzo proszę o wypowiedzenie się,

Lazarus 2.0.6

1
elektoWroc napisał(a):

Teraz pytanie czy jest jakieś rozwiązanie na stworzenie Aplikacji nadrzędnej z modułem logowania za pomocą którego będzie można uruchamiać poszczególne aplikacje aplikacje.

Oczywiście, ale to zależy jak całość ma wyglądać. Jaki efekt Cię interesuje? Chcesz po prostu się zalogować i uruchamiać inne programy jako osobne procesy (widoczne osobno na pasku zadań), czy mieć jedną aplikację, w której wnętrzu będą osadzone inne aplikacje, w ramach jednego procesu?

Przy czym jeśli nie zalogujemy się do aplikacji nadrzędnej to nie uruchomimy aplikacji podrzędnej.

Pracujesz nad konkretnym produktem czy wystarczą Ci rozwiązania proste, niezbyt bezpieczne?

Zamknięcie aplikacji nadrzędnej zamyka też otwarte aplikacje podrzędne.

To można zrealizować na wiele sposobów – bezpiecznych i ”chamskich”. Szczegóły są potrzebne.

Zastanawiałem się nad szyfrowanym plikiem *.ini

Szyfrowanym plikiem czy szyfrowanymi danymi w pliku? Niektórzy producenci przechowywali hasła w postaci hashy w zwykłych tekstowych plikach konfiguracyjnych (dokładniej: XML), więc i INI nie byłoby złe. Ale że INI nie wspiera drzewiastej struktury, to jego zastosowania są ograniczone.

Może TreeStructInfo, skoro Lazarusa używasz? ;)

0

generalnie chodzi mi o to żeby było to bezpieczne rozwiązanie a pojedynczy exe-c żeby nie miał 200Mb , jeśli w danym momencie potrzebna jest 1 z 8 aplikacji i ta ma 12Mb, może też dla prostoty jedna aplikacja to kilka formularzy które łatwo ogarnąć a nie kilkadziesiąt. Wszystkie aplikacje sa aplikacjami które operują na tej samej bazie danych (mysql) wiec może w bazie zapisać cześć poświadczeń.

1
elektoWroc napisał(a):

generalnie chodzi mi o to żeby było to bezpieczne rozwiązanie

Co to znaczy bezpieczne rozwiązanie w tym kontekście?

a pojedynczy exe-c żeby nie miał 200Mb

Po pierwsze musiałbyś się sporo natrudzić i nie wiadomo ile BMP zaszyć w zasobach, aby to miało 200 MB.
A po drugie - to jakiś problem? ;-)

, jeśli w danym momencie potrzebna jest 1 z 8 aplikacji i ta ma 12Mb, może też dla prostoty jedna aplikacja to kilka formularzy które łatwo ogarnąć a nie kilkadziesiąt.

Totalnie z czapy argument imo.
OK, masz mniejszy exe i mniej formatek. Fajnie.
Ale masz nowe problemy z synchronizacją danych pomiędzy różnymi procesami. Niefajnie.

To może podziel całą aplikację na moduły?
DLLkie odpadają, bo nie zyskasz na mniejszej wielkości plików wynikowych. W sumie, to ich suma będzie wielokrotnie większa niż jednego EXE.
Nie wiem jak w FPC, ale w Delphi każda DLLma własną kopię RTL'a - a to kolejne problemy.
Zysk niewielki, kłopotów mnóstwo.
Odpowiednik BPL jest dla Delphi/FPC zdecydowanie zdrowszym rozwiązaniem, ale ma jedną wadę i jedną niedogodność.
Wada - nie da się używać BPL skomplikowanych w różnych wersjach kompilatora.
Niedogodność - nie da się napisać takiego pluginu np. w Javie.

Oczywiście da się obejść te ograniczenia, ale to z kolei temat rzeka, bo jedynym sensownym rozwiązaniem będzie COM.
Ale raczej an pewno nie masz takich potrzeb...

Wszystkie aplikacje sa aplikacjami które operują na tej samej bazie danych (mysql) wiec może w bazie zapisać cześć poświadczeń.

Nieważne ile masz tych formularzy, ale na Twoim miejscu wszytko bym zrobił w jednym exe.
Zresztą dziwi mnie, że są to osobne exe bo takich tematów w aplikacjach biznesowych nie widziałem już od bardzo dawna...
Kod którego nie wykonasz nikogo nie boli, a że będzie w exe - a niech sobie będzie.
A jeżeli naprawdę będzie to potrzebne, to napiszesz sobie to na modułach ładowanych dynamicznie w zależności od potrzeb.

0
elektoWroc napisał(a):

generalnie chodzi mi o to żeby było to bezpieczne rozwiązanie a pojedynczy exe-c żeby nie miał 200Mb […]

Plik wykonywalny Lazarusa waży 227MB, a mimo to IDE startuje i działa ekspresowo.

Bez względu na rozmiar pliku wykonywalnego, do pamięci ładowane jest tylko co potrzeba, a nie wszystko co popadnie. Wyjątkiem są aplikacje kompresowane pakerami pokroju UPX, ale tych nie za bardzo jest sens używać, biorąc pod uwagę współczesne standardy co do pojemności dysków twardych i RAM oraz przepustowości łącza.

Wszystkie aplikacje sa aplikacjami które operują na tej samej bazie danych (mysql) wiec może w bazie zapisać cześć poświadczeń.

Czy one muszą być osobno? Nie może to być jedna aplikacja z kompletną logiką?


wloochacz napisał(a):

Nie wiem jak w FPC, ale w Delphi każda DLLma własną kopię RTL'a - a to kolejne problemy.

Nie ma cudów, dokładnie to samo jest – kopia RTL waży te kilkaset kilobajtów.

Nieważne ile masz tych formularzy, ale na Twoim miejscu wszytko bym zrobił w jednym exe.

Dokładnie. Jeśli nie potrzeba to nie ma powodu by komplikować całość.

PS: chyba Ci słownik robi psikusy. :P

0
furious programming napisał(a):

PS: chyba Ci słownik robi psikusy. :P

Poprawiłbym nawet, gdyby mnie tak okrutnie nie wku...ał patent ze zmianą wysokości memo do edycji postu. Kto to w ogóle wymyślił, żeby zawsze ustalić odgórnie wysokość memo na jakąś wartość po utracie focusa lub edycji? Na cholerę mogę zmienić tę wysokość jak za chwilę to wraca do pierwotnych rozmiarów? Matko, jak mnie to... ;-)

O tak to wygląda:
df4PMemo.gif

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