Jak można rozbudować program, który jest już używany, w bazie są jakieś dane. Czy jest może jakaś możliwość zbudowania go z tak jakby "klocków" - osobnych plików. Np. jeden plik, to menu, jak się zmieni, to podmieniam, jak jest potrzebny jakiś nowy formularz, to kopiuję go do folderu z programem i działa.
Dowiedziałem się, że trzeba użyć refleksji.
Program na chwilę obecną mam zbudowany na WinForms. W programie mam pliki Class.cs, Form.cs, Form[design].cs. Jest formularz MdiParent i w nim otwieram kolejne potrzebne formularze.
- Rejestracja:prawie 16 lat
- Ostatnio:prawie 6 lat
- Postów:33
w podstawowej wersji nie jest to trudne ale wymaga dobrej znajomości języka której prawdopodobnie nie masz, bo gdybyś miał to byś nie pytał o takie rzeczy
możesz popróbować to zrobić na zasadzie pluginów, powinien być jakiś tutorial na sieci
ale w zasadzie to prawdopodobnie wystarczy Ci rozdzielenie aplikacji na .dll-ki - przy zmianie funkcjonalności przesyłasz klientowi odpowiednią dll-ke i tyle - dużo zamieszania nie ma
sztuką jest tak zaprojektować aplikację i tak utrzymywać moduły w poszczególnych .dll żeby były możliwie niezależnie od siebie

- Rejestracja:około 17 lat
- Ostatnio:3 dni
- Lokalizacja:Wrocław
Każdy Twój plugin musi zawierać klasę implementującą odpowiedni interfejs, Ty dynamicznie wczytujesz dllki z pluginami, a główna aplikacja potrafi zbudować na ich podstawie menu, formularze, itd.
Tylko nie wiem, czy to jest tego warte, naprawdę najłatwiej użyć jakiegoś ClickOnce i aplikacja będzie się aktualizowała sama po deployu nowej wersji.

- Rejestracja:ponad 12 lat
- Ostatnio:ponad rok
- Lokalizacja:Polska, Kraków
Jak używasz jakiegoś ORMa na przykład EF lub NHibernate to posiadają gotowe narzędzia w EF to się nazywa Migrations
w NHibernate podajże SchemaUpdate
. Jak używasz SQL to możesz samemu napisać taką prostą funkcję robiącą na starcie programu kolejne zmiany w modelu bazy danych.

- Rejestracja:ponad 21 lat
- Ostatnio:około 23 godziny
ale w zasadzie to prawdopodobnie wystarczy Ci rozdzielenie aplikacji na .dll-ki - przy zmianie funkcjonalności przesyłasz klientowi odpowiednią dll-ke i tyle - dużo zamieszania nie ma
sztuką jest tak zaprojektować aplikację i tak utrzymywać moduły w poszczególnych .dll żeby były możliwie niezależnie od siebie
Tym sposobem nic nie osiągniesz - wysilisz się tylko, a i tak user musi coś tam ręcznie ściągnąć i wgrać na dysk.
To już łatwiej zmieścić program w jednym exeku, i podmieniać tego exeka.
Kwestia bazy to już inna sprawa - zależy czego się używa do jej obsługi. Można zaimplementować upgrade bazy wraz z aktualizacją (na zasadzie: brakuje tabeli? CREATE TABLE
)
- Rejestracja:prawie 16 lat
- Ostatnio:prawie 6 lat
- Postów:33
DibbyDum - nie używam nic takiego.
Azarien - używam czystego c# do obsługi tego.
To jeszcze mam pytanie, po naciśnięciu zielonego trójkąta w VS (2012) w folderze \bin\x64\Debug mam trochę plików, czy muszę wysyłać je wszystkie klientowi czy wystarczy tylko exe + plik bazy danych + dll do SQLite'a?
- Rejestracja:ponad 10 lat
- Ostatnio:7 miesięcy
- Postów:194
Debug i Release powiny tak samo dobrze działać. Jednak wersja release nie zawiera plików które pozwalają się podpiąć w celu debuggowania oraz zapewne jest tam przeprowadzona większa optymalizacja kodu.
Koło tej zielonej strzałki możesz skonfigurować jakiego bulid-a ma wykonać Debug czy Release

- Rejestracja:prawie 12 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Warszawa
- Postów:1589
pablo_pj napisał(a):
somekind - A co zrobić z bazą danych? Chodzi mi o dodawanie tabel, dodawanie kolumn do istniejących tabel.
Możesz też użyć tego:
http://www.adeptsql.com/
Można łatwo porównać dwie bazy danych, tabele, procedury, funkcje itp zobaczyć co się zmieniło i jednym kliknięciem wgrać na produkcję.

Witam Kolega w zapytaniu zapewne myślał o czymś więcej niż pojedynczym programie... na ten przykład system Windows to nie jest pojedynczy program jak też usługi sieciowej całkowicie przecież jako biznes nie da się zrobić w postaci pojedynczego programu a nawet w postaci pojedynczej technologii... ja mam silnik własnej usługi który testuję obecnie... oprogramowanie łączy się z serwerem FTP wysyłając oraz odbierając czyli komunikacja z programem desktopowym na komputerze użytkownika ponadto jeszcze jest wymiana informacji z bankiem który przysyłam mi raporty dzienne wpłacanych przez użytkowników za abonament i szereg innych jeszcze technicznych aspektów których trochę by zajęło wyliczenie... tak więc być może autor tego wątku pytał w kontekście czegoś większego niż pojedynczy program Miko
- Rejestracja:prawie 16 lat
- Ostatnio:prawie 6 lat
- Postów:33
Dziękuję za odpowiedzi. Aplikacja na chwilę obecną nie jest duża. Chciałem rozbudować, tak, żeby była jak najprostsza do aktualizacji, ale zostanę przy pierwszym sposobie czyli kopiowanie nowszego exe-ka. Jeśli chodzi o bazę, to można zrobić osobny, malutki programik z 1 przyciskiem "Dodaj tabele". Myślę, że takie rozwiązanie powinno być najszybsze.