hanya ingin tahu apakah ada yang pernah mencoba menanamkan dan benar-benar mengintegrasikan mesin js ke dalam lingkungan .net. Saya dapat menemukan dan benar-benar menggunakan (setelah BANYAK rasa sakit dan usaha, karena itu cukup usang dan belum selesai) proyek spidermonkey-dotnet. Adakah yang berpengalaman di bidang ini? Mesin seperti SquirrelFish, V8 ..
Bukannya saya tidak puas dengan Mozilla's Spidermonkey (menggunakannya untuk miniframework Rails seperti untuk komponen kustom di dalam aplikasi inti ASP.NET), tapi saya masih ingin menjelajahi sedikit lebih jauh dengan opsi. Solusi baris perintah bukan yang saya butuhkan, saya tidak bisa mengandalkan apa pun selain CLR, saya perlu memanggil metode dari / ke objek JavaScript / C #.
// c# class
public class A
{
public string Hello(string msg)
{
return msg + " whatewer";
}
}
// js snippet
var a = new A();
console.log(a.Hello('Call me')); // i have a console.log implemented, don't worry, it's not a client-side code :)
Hanya untuk memperjelas - Saya tidak mencoba untuk benar-benar memprogram aplikasi itu sendiri di javascript sisi server. Ini digunakan semata-mata untuk menulis sub-aplikasi pengguna kustom (dapat dilihat sebagai semacam DSL). Jauh lebih mudah (dan lebih aman) untuk memungkinkan orang normal pemrograman dalam js daripada C #.
sumber
Jint JavaScript interpreter open source ( http://jint.codeplex.com ) melakukan persis apa yang Anda cari.
Sunting:
Proyek ini telah sepenuhnya ditulis ulang dan sekarang dihosting di Github di https://github.com/sebastienros/jint
sumber
Anda mungkin juga tertarik dengan Microsoft ClearScript yang di-host di GitHub dan diterbitkan di bawah lisensi Ms-Pl.
Saya bukan Microsoft fanboy, tetapi saya harus mengakui bahwa dukungan V8 memiliki fungsi yang sama dengan Javascript.Net, dan yang lebih penting, proyek ini masih dipertahankan. Sejauh yang saya ketahui, dukungan untuk delegasi juga berfungsi lebih baik daripada dengan Spidermonkey-dotnet.
ps: Ini juga mendukung JScript dan VBScript tetapi kami tidak tertarik dengan hal-hal lama ini.
ps: Ini kompatibel dengan .NET 4.0 dan 4.5+
sumber
Siapa pun yang mau mendengarkan Jurassic juga:
http://jurassic.codeplex.com/
sunting: ini telah pindah ke github (dan tampaknya aktif sekilas)
https://github.com/paulbartrum/jurassic
sumber
Anda dapat mencoba ironJS, terlihat menjanjikan meskipun sedang dalam pengembangan. https://github.com/fholm/IronJS
sumber
Saya kira saya masih tidak jelas tentang apa yang Anda coba lakukan, tetapi JScript.NET mungkin layak untuk dilihat, meskipun Managed JScript sepertinya lebih cocok untuk kebutuhan Anda (lebih seperti JavaScript daripada JScript.NET) .
Secara pribadi, saya pikir akan lebih baik untuk mengintegrasikan V8 entah bagaimana, tetapi saya tidak bisa mengunduh kode sumber; berharap saya punya waktu untuk benar-benar melakukan sesuatu dengannya.
sumber
Jika bahasa tersebut bukan masalah (ada yang ditulis dengan kotak pasir) maka ada LUA untuk .NET . Versi Silverlight dari kerangka .NET juga merupakan sandboxed afaik.
sumber
Hei, lihat Javascript .NET pada codeplex ( http://javascriptdotnet.codeplex.com/ ) dengan versi 0.3.1 ada beberapa fitur baru yang cukup manis yang mungkin akan menarik minat Anda.
Lihat kode contoh:
sumber
Anda dapat menggunakan mesin Chakra di C #. Berikut ini adalah artikel di msdn yang menunjukkan caranya:
http://code.msdn.microsoft.com/windowsdesktop/JavaScript-Runtime-Hosting-d3a13880
sumber
Saya datang dengan solusi yang lebih sederhana sebagai gantinya.
Saya membuat
.dll
file menggunakan Javascript dan kemudian mengompilasinya menggunakan Javascript compiler yang tersedia di command prompt pengembang VS2013.Setelah kami memiliki,
.dll
kami hanya menambahkannya ke\Support
folder dan kemudian direferensikan dalam proyek yang diperlukan untuk mengevaluasi pernyataan Javascript.Langkah-langkah terperinci untuk membuat
.dll
:Buat file di Notepad hanya dengan konten ini:
Simpan file sebagai
C:\MyEval.js
Buka Command Prompt VS2005 (Start, Programs, VS2005, VS2005 Tools)
Ketik
Cd\
untuk sampai keC:\
Tipe
File baru dibuat dengan nama
MyEval.dll
.Salin
MyEval.dll
ke proyek dan referensi itu (juga referensiMicrosoft.Jscript.dll
).Maka Anda harus dapat menyebutnya seperti ini:
objResult adalah
True
.sumber
Saya baru saja mencoba Skrip RemObjects untuk .Net .
Berhasil, meskipun saya harus menggunakan pabrik statis (
var a=A.createA();
) dari JavaScript alih-alihvar a=new A()
sintaks. (Fungsi ExposeType hanya memperlihatkan statika!) Tidak banyak dokumentasi dan sumber ditulis dengan Delphi Prism, yang agak tidak biasa bagi saya dan RedGate Reflector.Jadi: Mudah digunakan dan diatur, tetapi tidak banyak membantu untuk skenario lanjutan.
Juga harus menginstal sesuatu, bukan hanya menjatuhkan majelis dalam direktori adalah negatif bagi saya ...
sumber
Cara terdokumentasi Microsoft untuk menambahkan perluasan skrip ke apa pun adalah IActiveScript. Anda dapat menggunakan IActiveScript dari dalam aplikasi .NET mana saja, untuk memanggil logika skrip. Logikanya bisa berpesta pada objek .NET yang Anda tempatkan dalam konteks skrip
Jawaban ini menyediakan aplikasi yang melakukannya, dengan kode:
sumber
Ada implementasi dari HostX Scripting Engine Host di C # tersedia di sini: parse dan jalankan JS oleh C #
Ini memungkinkan untuk menggunakan Javascript (atau VBScript) langsung dari C #, dalam proses 32-bit atau 64-bit asli. Sumber lengkapnya adalah ~ 500 baris kode C #. Ini hanya memiliki ketergantungan implisit pada DLL mesin JScript (atau VBScript) yang diinstal.
Misalnya, kode berikut:
akan menampilkan 1.6666666666666667
sumber
Ada juga MsieJavaScriptEngine yang menggunakan mesin Internet Explorers Chakra
sumber
saya percaya semua mesin JS opensource utama (JavaScriptCore, SpiderMonkey, V8, dan KJS) menyediakan API penyematan. Satu-satunya yang saya kenal secara langsung adalah JavaScriptCore (yang merupakan nama mesin JS tempat tinggal SquirrelFish) yang menyediakan API C murni. Jika ingatanku (sudah lama sejak saya menggunakan .NET) .NET memiliki dukungan yang cukup baik untuk menautkan dalam C API.
Jujur saya tidak yakin seperti apa API untuk mesin lain, tapi saya tahu mereka semua menyediakannya.
Yang mengatakan, tergantung pada tujuan Anda JScript.NET mungkin yang terbaik, karena semua mesin lain ini akan mengharuskan Anda untuk memasukkan mereka dengan aplikasi Anda, karena JSC adalah satu-satunya yang benar-benar dikirimkan dengan OS, tetapi OS itu adalah MacOS: D
sumber
Saya tahu saya membuka utas lama tapi saya telah melakukan banyak pekerjaan pada smnet (spidermonkey-dotnet). Dalam beberapa tahun terakhir. Fokus pengembangan utamanya adalah penyisipan objek bersih ke dalam mesin spidermonkey. Ini mendukung berbagai konversi dari nilai js ke objek .net. Beberapa di antaranya termasuk delegasi dan acara.
Hanya mengatakan mungkin ada baiknya memeriksa sekarang bahwa ada beberapa perkembangan yang stabil di atasnya :). Saya selalu memperbarui repo SVN dengan perbaikan bug dan fitur baru. File sumber dan solusi proyek dikonfigurasikan agar berhasil dibangun saat diunduh. Jika ada masalah dalam menggunakannya, jangan ragu untuk membuka diskusi.
Saya mengerti keinginan untuk memiliki solusi javascript terkelola, tetapi dari semua javascript terkelola yang saya gunakan, semuanya sangat kurang dalam beberapa fitur utama yang membantu menjadikan keduanya kuat dan mudah dikerjakan. Saya sendiri sedang menunggu IronJS untuk menjadi sedikit dewasa. Sambil menunggu, saya bersenang-senang bermain dengan spidermonkey-dotnet =)
proyek spidermonkey-dotnet dan halaman unduh
Sunting: halaman dokumentasi wiki yang dibuat siang ini.
sumber
Coba ReoScript , interpreter JavaScript open-source yang diimplementasikan dalam C #.
ReoScript membuat aplikasi Anda dapat menjalankan JavaScript. Ini memiliki berbagai meton ekstensi seperti SetVariable, Function Extension, menggunakan CLR Type, .Net Binding Event dan lain-lain.
Halo Dunia:
Dan di sini adalah contoh skrip yang menciptakan winform dan menunjukkannya.
sumber
Gunakan JSCRIPT.NET untuk mendapatkan perpustakaan (dll) dari js. Kemudian referensi dll ini di aplikasi .NET Anda dan Anda baru saja di sana. DIBUAT!
sumber
Anda dapat menggunakan Badak mesin Mozilla Javascript yang ditulis di Jawa, dan menggunakannya dengan IKVM, berikut adalah beberapa instruksi
Petunjuk: https://www.codeproject.com/Articles/41792/Embedding-JavaScript-into-C-with-Rhino-and-IKVM
sumber
V8.NET adalah anak baru di blok (per April 2013) yang lebih dekat membungkus fungsi mesin V8 asli. Hal ini memungkinkan untuk lebih banyak kontrol atas implementasi.
sumber
Mungkin sekarang dengan
ASP.Net MVC4 Razor
mesin View. kodenya adalah ini:dan
Razor
bukan hanya untuk MVC4 atau aplikasi web lain dan Anda dapat menggunakannya dalam aplikasi desktop offline.sumber