Wpis z mikrobloga

Część ważnej logiki mamy w Python. Oprogramowanie tworzymy w C# .Net. Szefostwo chce żebyśmy z glownego programu mogli wywoływać ten program napisany w pythonie. Widziałem ze są 3 opcje:
1. Wywoływanie procesu i zaczytywania output. 2. Ironpython.
3. PythonNet
Pythonowy programik wykorzystuje m.in. Matplotlib który nie za dobrze współpracuje z ironpython. Także która opcja jest najlepsza i dlaczego ? Jak byście podeszli do tego zagadnienia ?
Na chwile obecna jedyna opcja jaką widzę to utworzenie projektu wrappera w którym przy pomocy pythonNet wywoływał bym pythonowy kod. #programowanie #python #dotnet
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@DaxterPoker: Nie znam się na Pythonowych tematach, ale czy nie moglibyście przykryć aplikacji w Pythonie jakimś HTTP API i wywoływać to API z poziomu aplikacji .NET w standardowy sposób czyli po HTTP?

Ewentualnie zrobic to asynchronicznie w modelu pub/sub rzucając command na kolejkę/topic w reakcji na który aplikacja Pythonowa wykona logikę i output zapisze do jakiejś bazy danych, pliku, cokolwiek? Z tym, ze ta opcja wymaga modyfikacji aplikacji w Python,
  • Odpowiedz
@DaxterPoker: Ostatnio zrobiłem w .net IPC do komunikacjami miedzy instancjami.
Chodzi o to że program odpalany jest z linka z przeglądarki argumentami, ale jeśli już jest jakaś instancja odpalona to ta druga przekazuje argumenty do pierwszej i się zamyka.
tutaj przykład C# => Python
  • Odpowiedz
@DaxterPoker: W jakim sensie przerost formy nad treścią? Że robisz zdalne wywołanie po sieci? Pytanie czy przerostem formy nad treścią i bałaganem w kodzie nie skończy się wywoływanie procesu i ręczne zczytywanie outputu. Widziałem takie rzeczy i wiem jaki tam potem jest bałagan. Pod kątem czytelności architektury wystawienie API z aplikacji Pythonowej wydaje mi się najlepsze.
  • Odpowiedz
@markaron: czyli logika miała by wyglądać w ten sposób że podczas uruchamiania aplikacji c# wywołuje proces który odpali pythonową apkę z API, a później komunikacja następuje już po http?
  • Odpowiedz
@sepuqqu: @markaron: a te rozwiązania typu PythonNet ? jakieś doświadczenia z tematem ?
Wydawał mi się fajny gdy czytam teorię o tym. Gdy staram się coś w tym zrobic to juz nie jest tak kolorowo ( mało konkretnych tutoriali )
  • Odpowiedz
Jeśli obie aplikacje chodzą na tej samej maszynie to IPC może się okazać lepsze niż HTTP. Myślać o HTTP miałem na myśli architekturę, w której proces pythonowy siedzi sobie na centralnym serwerze a klienty (aplikacje .NET) się z nim komunikują po sieci.
  • Odpowiedz
@sepuqqu: @markaron: a te rozwiązania typu PythonNet ? jakieś doświadczenia z tematem ? Wydawał mi się fajny gdy czytam teorię o tym. Gdy staram się coś w tym zrobic to juz nie jest tak kolorowo ( mało konkretnych tutoriali )


@DaxterPoker jak chcesz ale wtedy spawasz ze sobą te apki kodem wrappera, zależy czy ci to pasuje
  • Odpowiedz