Pregunta ¿Hay algo como JRebel para .NET? [cerrado]


JRebel es una herramienta para Java que puede intercambiar automáticamente nuevas versiones de clases a una JVM en ejecución. No solo se pueden cambiar las implementaciones de métodos, también es posible cambiar sus firmas, agregar nuevos o eliminar métodos existentes, y también agregar / eliminar campos. Lo único que no se puede hacer es permitir que la jerarquía de clases se modifique sobre la marcha. Es una gran ayuda para el desarrollo de aplicaciones web en particular.

¿Podría encontrar algo similar para .NET?


32
2017-08-11 12:59


origen


Respuestas:


No existe tal cosa en el mundo de .net ... no tan poderoso ... hay algo así como Editar y Continuar, pero esto es como "Reemplazar en caliente" en Java y nada más. El problema está en .net tiene el modelo completo de .dll (s) con sus versiones y dependencias entre dlls apuntando a una versión específica por lo que no es posible reemplazar dll sin reemplazar todo.

Una solución alternativa será algo así como compilar las clases, agregar toneladas de redireccionamientos de ensamblaje, de alguna manera descargar y cargar el dll antiguo, pero es realmente difícil.

Tenga en cuenta que en java después de implementar el "módulo" JSR, tal vez en java 9 no tengamos también JRebel.


2
2018-06-03 13:53



No hay tal cosa para .Net todavía. Mientras tanto, puedes probar NCrunch (http://www.ncrunch.net/), que ejecuta sus pruebas en segundo plano y en el momento en que rompe o realiza una prueba, se informa en los resultados de la prueba, por lo que no necesita esperar a reconstruir y probar la ejecución, ya que está sucediendo en tiempo real.


2
2017-09-16 17:11



Bueno, existe una función de compilación desde VS 2005 que se llama "Editar y continuar". Puede echar un vistazo ... http://msdn.microsoft.com/en-us/library/ms379578(VS.80).aspx.

Creo que no es tan sofisticado como JRebel.


0
2017-08-11 13:05



La reflexión está integrada en .NET y debería poder hacer la mayoría de esas cosas (escribir / modificar cosas en tiempo de ejecución).

No va a estar tan pulido y listo para las tareas como JRebel, pero nuevamente los dos marcos tienen estructuras diferentes para empezar. Puede no ser realista pensar en ellos como equivalentes.

En mi humilde opinión, la sustitución de tiempo de ejecución como una práctica estándar parece una buena forma de corromper el tiempo de ejecución para mí. Si necesita esta funcionalidad de intercambio en caliente, quizás sea mejor que elija un idioma interpretado en lugar de uno compilado.

Además, la sesión suele ser algo para evitar. Si tiene que usarlo para ASP.NET, puede usar algunos proveedores diferentes listos para usar en lugar de uno en proceso, o incluso usar perfiles en su lugar. Página de MSDN para la gestión del estado


0
2017-09-08 18:56



Qué tal si

Re-JIT

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

Oh, bueno, eso no fue, pero tal vez útil de todos modos:

NGen resistente con parches específicos

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


0
2017-09-02 22:59



Hay Rebel.NET que es similar, pero esto requiere reconstruir los binarios y no puede cambiar el código durante la ejecución.


-1
2017-08-28 20:42