Saya memiliki GUI di VB.Net yang perlu berinteraksi dengan algoritma yang ditulis dengan Python, semuanya berjalan di Windows 10 Professional. IDE-nya adalah Visual Studio 2017.

Bagaimana GUI VB.Net dan Python dapat berkomunikasi? Data perlu dikomunikasikan bolak-balik. GUI akan menerima perintah pengguna, dan kemudian memerintahkan Python untuk dieksekusi. Python akan memiliki acara yang perlu dikomunikasikan ke GUI.

Untuk memperjelas arsitektur, aplikasi GUI dan aplikasi Python adalah dua program berbeda yang berjalan secara bersamaan.

GUI memiliki dua fungsi utama: 1) mengambil perintah pengguna dan memberi tahu Python untuk menjalankannya. 2) Pantau/jajak pendapat aplikasi Python untuk data atau acara, dan perbarui (beri tahu) pengguna melalui kontrol GUI (kotak teks, dll.).

Python terutama melakukan dua hal: 1) menjalankan algoritma kontrol berkelanjutan, tunduk pada manajemen oleh GUI. 2) Melaporkan data dan kejadian ke GUI.

Soket TCP 100% dapat diandalkan, tetapi saya harus menulis dan men-debug skema perpesanan berpemilik, yang telah saya lakukan banyak dan menyenangkan, tetapi saya pikir mungkin saya dapat mencapai hal yang sama dalam waktu yang jauh lebih sedikit dengan beberapa metode lain yang sama-sama andal ... seperti COM, seperti yang disarankan di bawah ini.

Contoh skenario penggunaan asinkron:

1:

Aplikasi Python menjalankan proses robotik. Sementara itu, pengguna menekan perintah GUI untuk melihat metrik terbaru: VB.NET GUI memanggil fungsi COM dalam Python yang mengembalikan array data metrik.

2:

Aplikasi Python yang menjalankan proses robot menyelesaikan satu langkah, dan sekarang membutuhkan tindakan manual. Aplikasi Python memanggil fungsi COM dalam VB.NET dan meneruskan argumen dengan persyaratan tindakan manual.

2
Doug Null 18 Agustus 2017, 19:00

2 jawaban

Jawaban Terbaik

Saya menemukan jawaban di sini. Orang ini secara konsisten menunjukkan bagaimana VB.NET memanggil fungsi skrip IronPython dan juga meneruskan dan mengambil data VB. Manis.

Saya percaya nilai di sini dari IronPython vs. Python biasa adalah bahwa IronPython kompatibel dengan semua jenis data .NET yang diteruskan VB ke sana.

Sekarang, saya dapat membuat GUI dengan kualitas dan keandalan tertinggi dari VB.NET yang menggunakan efisiensi/produktivitas pengembangan tertinggi dari Python.

1
halfer 23 September 2017, 18:59

Integrasi Skrip Python MSDN

Inilah yang saya sarankan Anda dapat membaca ini ini adalah panduan di MSDN tentang berkomunikasi dari C # ke Pyhton

Pada dasarnya memanggil skrip python dan membaca output.

https://code.msdn.microsoft.com/windowsdesktop/C-and-Python-interprocess-171378ee


BesiPython

IronPython adalah implementasi open-source dari bahasa pemrograman Python yang terintegrasi erat dengan .NET Framework. IronPython dapat menggunakan pustaka .NET Framework dan Python, dan bahasa .NET lainnya dapat menggunakan kode Python dengan mudah.

http://ironpython.net/


Python untuk .NET

Python untuk .NET (pythonnet) adalah paket yang memberi programmer Python integrasi yang hampir mulus dengan .NET 4.0+ Common Language Runtime (CLR) di Windows dan runtime Mono di Linux dan OSX.

Namun yang ini membatasi Anda ke versi python tertentu.

http://pythonnet.github.io/


Solusi lainnya

  • Menggunakan socket dengan client (python) server (c#) atau sebaliknya.
  • Menggunakan database lokal atau file database seperti mdf.
2
Mederic 18 Agustus 2017, 16:21