Buscar este blog

sábado, 31 de marzo de 2012

Script sharp JavaScript o C#?

Programar en javascript puede ser dificil para los que nos dedicamos a la programación en lenguajes como C#, además el codigo es dificil de mantener y de seguir, para estos casos tenemos compiladores como script# que nos permiten escribir el codigo de las páginas en C# y luego el compilador convertira el código en javascript dandonos todas las ventajas de C# para usar en javascript, por supuesto estamos limitados por lo que puede hacer javascript pero en general este compilador es de mucha ayuda.

El ejemplo: un simple hola mundo en script#


using System;
using System.Collections.Generic;
using System.Html;
 
namespace SC {
    public static class DefaultPage {
        public static void HelloWorld() {
            Script.Alert("Hello World");
        }
    }
}
 
 
Esto nos genera un script que podemos incluir en una página y usar el código que escribimos en C#, tal cual si lo hubieramos escrito en javascript:


<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WTests._Default" %>
 
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    <script type="text/javascript" src="/Scripts/mscorlib.js"></script>
    <script type="text/javascript" src="/Scripts/SC.js"></script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <input id="Button1" type="button" value="button" onclick="SC.DefaultPage.helloWorld();" />
</asp:Content>

Hay que notar que debemos incluir otro script que viene con el compilador: mscorlib.js, aunque no siempre es necesario, también vemos que nos cambio la máyuscula al pricipio de la función pero este y otros aspectos de la programación se pueden configurar.

Script# se puede obtener en esta dirección: http://projects.nikhilk.net/ScriptSharp y tiene integración con Visual Studio 2010
De momento la documentación del proyecto es escasa y puede costar un poco de trabajo empezar a usarlo por lo que seguire publicando más tutoriales cortos acerca del tema en este blog.

martes, 13 de marzo de 2012

Web Services sin code behind

Hace unos días me encontré con la situación de querer publicar un servicio web sin tener que recompilar todo el sitio pues es un sitio muy complejo y un cambio muy pequeño no ameritaba subir todo otra vez.
Bueno afortunadamente se pueden escribir servicios sin code behind y al subir el archivo Asp.Net como todos sabemos lo compila automáticamente y queda disponible para su uso al instante.
Sin embargo si usas Visual Studio no permite crear este tipo de servicios directamente así que la forma de crearlo es agregar el servicio de la forma normal, cortas todo el contenido del code behind sin dejar ni una linea de código y el truco es abrir el archivo .asmx con el editor de xml (clic derecho al archivo  en el explorador de soluciones y seleccionar abrir con) y pegar el código copiado abajo de la única linea que tiene el archivo, también debemos quitar el atributo que hace referencia al code behind.

Aquí esta el ejemplo:


<%@ WebService Language="C#" Class="WebTest.HelloWorld" %>

using System;
using System.Web.Services;

namespace WebTest
{
    
    [WebService]
    internal class HelloWorld
    {
        [WebMethod]
        public string SayHello() {
            return "Hello World";
        }
    }
}