Kami sedang menulis aplikasi desktop kaya yang kompleks dan perlu menawarkan fleksibilitas dalam format pelaporan jadi kami pikir kami hanya akan mengekspos model objek kami ke bahasa skrip. Waktu adalah ketika itu berarti VBA (yang masih merupakan opsi), tetapi kode turunan VSTA yang dikelola (saya pikir) tampaknya telah layu di pohon anggur.
Apa sekarang pilihan terbaik untuk bahasa skrip yang disematkan di Windows .NET?
Jawaban:
Saya telah menggunakan CSScript dengan hasil yang luar biasa. Ini benar-benar mengurangi keharusan melakukan binding dan hal-hal tingkat rendah lainnya di aplikasi saya yang dapat ditulis.
sumber
Secara pribadi, saya akan menggunakan C # sebagai bahasa scripting. Kerangka .NET (dan Mono, terima kasih Matthew Scharley) sebenarnya menyertakan kompiler untuk setiap bahasa .NET di kerangka itu sendiri.
Pada dasarnya, ada 2 bagian dari penerapan sistem ini.
Izinkan pengguna untuk mengkompilasi kode Ini relatif mudah, dan dapat dilakukan hanya dalam beberapa baris kode (meskipun Anda mungkin ingin menambahkan dialog kesalahan, yang mungkin akan menjadi beberapa lusin baris kode lagi, tergantung bagaimana dapat digunakan Anda menginginkannya).
Membuat dan menggunakan kelas-kelas yang terdapat dalam rakitan terkompilasi Ini sedikit lebih sulit daripada langkah sebelumnya (memerlukan sedikit refleksi). Pada dasarnya, Anda harus memperlakukan rakitan yang dikompilasi sebagai "plug-in" untuk program tersebut. Ada cukup banyak tutorial tentang berbagai cara membuat sistem plug-in di C # (Google adalah teman Anda).
Saya telah menerapkan aplikasi "cepat" untuk mendemonstrasikan bagaimana Anda dapat mengimplementasikan sistem ini (termasuk 2 skrip yang berfungsi!). Ini adalah kode lengkap untuk aplikasi, cukup buat yang baru dan tempel kode di file "program.cs". Pada titik ini saya harus meminta maaf atas potongan besar kode yang akan saya tempel (saya tidak bermaksud untuk menjadi begitu besar, tetapi sedikit terbawa dengan komentar saya)
sumber
csscript.net
Sepertinya itu semacam pembungkus untuk ini. Ini pada dasarnya adalah implementasi tanpa tulang. Saya pikir pertanyaan yang lebih baik adalah "apa yang csscript.net lakukan untuk saya yang tidak". Saya tidak tahu apa yang dilakukan csscript, tetapi mereka pasti tahu apa yang dilakukan kode di atas di sini, mereka memilikinya (atau sesuatu yang sangat mirip) di perpustakaan mereka.IronPython . Berikut ikhtisar tentang cara menyematkannya .
sumber
Mesin PowerShell dirancang agar mudah disematkan dalam aplikasi agar dapat ditulis. Faktanya, PowerShell CLI hanyalah antarmuka berbasis teks ke mesin.
Edit: Lihat https://devblogs.microsoft.com/powershell/making-applications-scriptable-via-powershell/
sumber
Bahasa hinaan .
sumber
Bahasa skrip pilihan saya adalah Lua hari ini. Kecil, cepat, bersih, terdokumentasi lengkap, didukung dengan baik, memiliki komunitas yang hebat , digunakan oleh banyak perusahaan besar di industri (Adobe, Blizzard, EA Games), pasti patut dicoba.
Untuk menggunakannya dengan bahasa .NET, proyek LuaInterface akan menyediakan semua yang Anda butuhkan.
sumber
Mengapa tidak mencoba C #? Mono memiliki proyek baru yang hebat terutama untuk mengevaluasi C # secara dinamis:
http://tirania.org/blog/archive/2008/Sep-10.html
sumber
IronRuby seperti yang disebutkan di atas. Proyek yang menarik bagi saya sebagai programmer C # adalah dukungan C # Eval di Mono . Tapi itu belum tersedia (akan menjadi bagian dari Mono 2.2).
sumber
Suara lain untuk IronPython. Menyematkan itu sederhana, interoperasi dengan kelas .Net sangat mudah, dan, yah, itu Python.
sumber
Saya mungkin menyarankan S # yang saat ini saya pertahankan. Ini adalah proyek open source, ditulis dalam C # dan dirancang untuk aplikasi .NET.
Awalnya (2007-2009) dihosting di http://www.codeplex.com/scriptdotnet , tetapi baru-baru ini dipindahkan ke github.
sumber
Coba Ela . Ini adalah bahasa fungsional yang mirip dengan Haskell dan dapat disematkan ke aplikasi .Net apa pun. Meskipun memiliki IDE yang sederhana namun dapat digunakan.
sumber
Saya belum mencoba ini tetapi terlihat cukup keren:
http://www.codeplex.com/scriptdotnet
sumber
Saya baru saja membuat plugin untuk klien, memungkinkan mereka menulis kode C # dalam modul yang berfungsi seperti yang dilakukan VBA untuk Office.
sumber
Saya telah menggunakan Lua sebelumnya; di aplikasi Delphi tetapi dapat disematkan di banyak hal. Ini digunakan di Adobe Photoshop Lightroom .
sumber
Saya suka membuat skrip dengan C # itu sendiri . Sekarang, pada tahun 2013, ada dukungan yang cukup baik untuk C # scripting, semakin banyak pustaka yang tersedia.
Mono memiliki dukungan yang bagus untuk skrip kode C # , dan Anda dapat menggunakannya dengan .NET hanya dengan memasukkan
Mono.CSharp.dll
dalam aplikasi Anda. Untuk aplikasi scripting C # yang saya buat, periksa CShellLihat juga 'ScriptEngine' di Roslyn yang berasal dari Microsoft, tetapi ini hanya CTP.
Seperti yang telah disebutkan beberapa orang, CS-Script telah ada sejak lama juga.
sumber