Estos dïas me he conseguido con Script#, que según viene con tiempo, nunca había escuchado sobre la herramienta.
Script# Es una librería que compila código C# a Javascript. El cual funciona obviamente, entre todos los navegadores modernos. También hace que el mantenimiento de los scripts sean más mantenibles y escalables.
Lo primero que hacemos es ir a la página principal: http://projects.nikhilk.net/ScriptSharp y descargamos la última versión (0.6.3) para Visual Studio 2010. Ejecutamos el instalador y una vez finalizado el proceso abrimos Visual Studio.
Vemos que hay una nueva categoría de proyectos (Script#), y varios tipos nuevos (Class Library, jQuery Class Library, jQuery Web Application, Web Application, Sidebar Gadget y Unit Test). Seleccionaremos para esta prueba un proyecto de tipo jQuery Web Application y aceptamos.
Lo primero que notamos es que nos crea lo siguiente:
internal static class HomePage{static HomePage(){jQuery.OnDocumentReady(delegate(){// Add script that runs once the document is ready for being// consumed by script.});}}
Como podemos ver, Script# es una especie de DOM en C# para JS, pero bien integrado a VS, bien programado y con buena documentación.
Ahora a probar:
internal static class HomePage{static HomePage(){jQuery.OnDocumentReady(delegate(){jQueryObject query = jQuery.Select(".mydiv");query.FadeIn(EffectDuration.Slow).Blur(delegate{Window.ShowModalDialog("Testing", null, "");});});}}
Al compilar, revisamos la carpeta “bin” del proyecto, y podemos ver el resultado. Aunque no es un DOM que transcribe las funciones, sino más bien, está todo sobre un framework de JS de ScriptC# que va, en este caso encima de otra capa que sería jQuery.
Código que se compila:
(function(){function executeScript(){Type.registerNamespace('WebAppDemo.Home');WebAppDemo.Home._HomePage=function(){}
Type.registerNamespace('WebAppDemo.Shared');WebAppDemo.Shared._Utility=function(){}
WebAppDemo.Home._HomePage.registerClass('WebAppDemo.Home._HomePage');WebAppDemo.Shared._Utility.registerClass('WebAppDemo.Shared._Utility');(function(){$(function(){var $1_0=$('.mydiv');$1_0.fadeIn('slow').blur(function(){window.showModalDialog('Testing',null,'');});});})();}ss.loader.registerScript('WebAppDemo.Home',[],executeScript);})();
Código en debbug, que sería el equivalente directo en JS.
(function () {$(function() {var query = $('.mydiv');query.fadeIn('slow').blur(function() {window.showModalDialog('Testing', null, '');});});})();
Esto es solo una pequeña prueba, en otra entrega probaré un poco más a fondo a Script# y su rendimiento.
Por ahora solo les digo que la herramienta te permite hacer algo que de otra forma sería muy dificil o poco mantenible: Tener control sobre el código del cliente desde el servidor.
Gracias por leer!
No hay comentarios:
Publicar un comentario