Pertanyaan Apakah ada sesuatu seperti JRebel untuk .NET? [Tutup]


JRebel adalah alat untuk Java yang dapat secara otomatis menukar versi baru dari kelas ke JVM yang sedang berjalan. Tidak hanya implementasi metode dapat diubah, itu juga mungkin untuk mengubah tanda tangan mereka, untuk menambah baru atau menghapus metode yang ada, dan juga menambah / menghapus bidang. Satu-satunya hal yang tidak bisa dilakukan adalah membiarkan hierarki kelas diubah on-the-fly. Ini adalah anugerah nyata untuk pengembangan aplikasi web pada khususnya.

Bisakah saya menemukan sesuatu yang serupa untuk .NET?


32
2017-08-11 12:59


asal


Jawaban:


Tidak ada hal seperti itu di dunia .net .. tidak begitu kuat .. ada beberapa hal seperti Edit dan Lanjutkan tetapi ini seperti "Hot replace" di Java dan tidak lebih. Masalahnya adalah .net Anda memiliki seluruh model .dll (s) dengan versi dan dependensi antara dll yang menunjuk ke versi tertentu sehingga tidak mungkin untuk mengganti dll tanpa mengganti semua.

Sebuah solusi akan menjadi sesuatu seperti mengkompilasi kelas, menambahkan ton pengalihan perakitan, entah bagaimana membongkar dan memuat dll yang lama tetapi itu sangat sulit.

Perlu diingat bahwa di java setelah "modul" JSR diimplementasikan mungkin di java 9 kita tidak akan memiliki JRebel juga.


2
2018-06-03 13:53



Belum ada yang seperti itu. Sementara itu, Anda dapat mencoba NCrunch (http://www.ncrunch.net/), yang menjalankan tes Anda di latar belakang dan saat Anda melanggar atau membuat uji lulus itu dilaporkan dalam hasil tes, sehingga Anda tidak perlu menunggu untuk membangun kembali dan eksekusi tes seperti yang terjadi secara real time.


2
2017-09-16 17:11



Yah ada fitur build in sejak VS 2005 yang disebut "Edit dan Lanjutkan". Anda mungkin melihat ... http://msdn.microsoft.com/en-us/library/ms379578(VS.80).aspx.

Saya pikir itu tidak begitu canggih seperti JRebel.


0
2017-08-11 13:05



Refleksi dibangun ke. NET dan harus dapat melakukan sebagian besar dari hal-hal tersebut (menulis / mengubah hal-hal saat runtime).

Ini tidak akan menjadi seperti dipoles dan tugas siap sebagai JRebel, tetapi sekali lagi kedua kerangka memiliki struktur yang berbeda untuk memulai. Mungkin tidak realistis untuk menganggapnya sebagai ekuivalen.

IMHO, substitusi runtime sebagai praktik standar terdengar seperti cara yang baik untuk merusak runtime kepada saya. Jika Anda membutuhkan fungsi swapping panas ini, mungkin Anda lebih baik memilih bahasa yang ditafsirkan daripada yang dikompilasi.

Juga, sesi biasanya sesuatu yang harus dihindari. Jika Anda harus menggunakannya untuk ASP.NET, Anda dapat menggunakan beberapa penyedia berbeda di luar kotak alih-alih dalam proses satu, atau bahkan menggunakan profil sebagai gantinya. Halaman MSDN untuk manangement negara bagian


0
2017-09-08 18:56



Bagaimana tentang

Re-JIT

https://channel9.msdn.com/Shows/Going+Deep/CLR-45-David-Broman-Inside-Re-JIT

Oh well, bukan itu tapi mungkin berguna juga:

Tangguh NGen dengan Patching Bertarget

Lihat https://channel9.msdn.com/Blogs/Charles/Surupa-Biswas-CLR-4-Resilient-NGen-and-Targeted-Patching


0
2017-09-02 22:59



Ada Rebel.NET yang serupa tetapi ini membutuhkan membangun kembali binari dan tidak dapat mengubah kode selama eksekusi.


-1
2017-08-28 20:42