Dodawanie nowych funkcji aplikacji przez Usera

0

Witam. Mam dosc rozbudowana aplikacje do obsługi maszyny CNC. Uzytkownik tej maszyny ciągle wpada na nowe pomysły co do możliwości maszyny i rozszerzam mu tą aplikację o te nowe funkcje. Przeważnie ogranicza się to do dodania nowego BUTTONa w MENU głownym, ktory otwiera nowe okno z danym "podprogramem". Jaka była by najprostsza mozliwość zorganizowania tego w ten sposób abym mógł dodawać rozszerzenie, np. przez wysłanie mu DLLa, albo zorganizować jakoś dodawanie pluginów do aplikacji? Od razu dodam, że nie mogę skompilować u siebie, ponieważ aplikacja korzysta z bibliotek maszyny i musi być do niej podłączona. Pozdrawiam.

0

W tym wypadku lista par {nazwa przycisku, nazwa programu} wystarczy.

0

Ale musiałbym zorganizować to tak, żeby użytkownik dodał sobie to sam w aplikacji, bez kompilowania (ponieważ nie zna się za nic), ewentualnie podmiana DLL.

1

Do tego problemu można podejść różnie, ja osobiście mam takie pomysły:

  1. Jeżeli pomysłów jest dużo, ale są w miarę podobne, a użytkownicy są tylko "klikaczami" to może trzeba stworzyć jedno okno typu "kombajn". Czyli dajmy na to wycinasz koła zębate i pod każde zamówienie pisałeś nowy moduł (bo jedne były cięte z blachy inne rzeźbione różniły się gęstością i kształtem zębów itd) to piszesz okno z dużą ilością kontrolek w których użytkownik długo się będzie ogarniał ale da radę i potem przestanie do ciebie przychodzić. Skrajnym przypadkiem takiego modułu jest wpisywanie przez użytkownika listy rozkazowej (typu przesuń ramię o centymetr w lewo)
  2. Możesz umożliwić też wpisywanie skryptów (to dla użytkowników bardziej ogarniętych z matmy i tych którzy coś tam kodowali). Istnieje w .Net możliwość interpretowania skryptów Pythonowych nawet tych wpisanych przez użytkownika http://www.codeproject.com/Articles/661832/Dynamic-Programming-with-Python-and-Csharp wtedy do ciebie trafiałyby tylko "ciekawe" zadania
  3. Możesz wyznaczyć pewne interfejsy jakie należy implementować i klasy po których należy dziedziczyć udostępnić użytkownikowi SDK (dll'kę zawierającą interfejsy i niektóre ich implementacje) i pozwolić użytkownikowi pisać własne moduły. Potem taką dll'kę użytkownik kopiuje w określone miejsce a twój program korzystając z metody z tego wątku http://stackoverflow.com/questions/8945537/loading-dll-in-external-program ładuje je do pamięci. Jest to rozwiązanie dobre gdy twoi użytkownicy sporo programowali ale nie chcesz im z jakiegoś powodu dawać kodu swojej aplikacji.

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