Categories
.NET AJAX ASP.NET

Script#

Script#, al igual que Google Web Toolkit, permite generar código javascript, utilizando en este caso cualquier lenguaje compatible con el .NET Framework.

csharp:

// Demo.cs
using System;
using ScriptFX;
using ScriptFX.UI;

namespace HelloWorld {

    public class Demo : IScriptlet {

        private Button _okButton;
        private XMLHttpRequest _request;

        public void Start() {

            _okButton = new Button(Document.GetElementById("okButton"));
            _okButton.Click += new EventHandler(this.OnOKButtonClick);
        }

        private void OnOKButtonClick(object sender, EventArgs e) {
            Callback completedCallback = new Callback(this.OnRequestComplete);

            _request = new XMLHttpRequest();
            _request.Onreadystatechange = Delegate.Unwrap(completedCallback);
            _request.Open("GET", "Hello.ashx", true);
            _request.Send(null);
        }

        private void OnRequestComplete() {
            if (_request.ReadyState == 4) {
                _request.Onreadystatechange = Function.Empty;
               
                Window.Alert(_request.ResponseText);
            }
        }
    }
}
 

En la página de demostración, lo único que se tiene que hacer es registrar la clase "HelloWorld.Demo".

html:

<!-- Demo.aspx -->
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>Demo Script#</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <input type="button" id="okButton"
        value="OK" />

    </div>
   
    <nStuff:Scriptlet runat="server"
      ScriptAssembly="HelloWorld"
      ScriptletType="HelloWorld.Demo" />

    </form>
</body>
</html>
csharp:

<%@ WebHandler Language="C#" Class="HelloHandler" %>

// Handler.ashx: Se encarga de procesar la petición.

using System;
using System.Web;

public class HelloHandler : IHttpHandler {

    public bool IsReusable {
        get {
            return true;
        }
    }

    public void ProcessRequest(HttpContext context) {
        HttpRequest request = context.Request;
        HttpResponse response = context.Response;

        string greeting = String.Empty;
        string name = request["name"];
        if (!String.IsNullOrEmpty(name))
        {
            greeting = "Hello " + HttpUtility.HtmlEncode(name) + "!";
        }
        else
            greeting = "Hello from server";

        greeting += " - Server time: " + DateTime.Now.ToShortTimeString();
     
        response.ContentType = "text/plain";
        response.Write(greeting);
    }
}

xml:

<!-- Web.config -->
<?xml version="1.0"?>
<configuration>

  <system.web>
    <pages>
      <controls>
        <add tagPrefix="nStuff" assembly="nStuff.ScriptSharp.Web" namespace="nStuff.ScriptSharp" />
      </controls>
    </pages>
  </system.web>

</configuration>

Pueden descargar el compilador de Script# desde http://www.nikhilk.net/Content/Samples/ScriptSharp.zip o ver un video demostrativo en http://www.nikhilk.net/Content/Video/ScriptSharpIntro.wmv

Categories
Varios

Programadores y Chefs

The reason the kitchen is a mess is not because the kitchen is poorly designed, it's because we didn't do the dishes after every meal.

Jeff Atwood hace una analogía interesante entre los programadores y chefs, en como debemos "limpiar" las cosas que hacemos para evitar problemas posteriores.

No cabe duda, como humanos que somos, que cometemos errores al desarrollar aplicaciones, pero lo importante es aprender reconocerlos y corregirlos.

Categories
Varios

Word 2007 & Blogs

Al parecer a Microsoft le ha dado buenos resultados este fenómeno de la blogósfera, ya que Joe Friend dice que en la beta 2 (próxima a salir) de Office 2007, se podrá publicar contenidos (imágenes, HTML limpio) en Blogs MSN Spaces, Blogger, Sharepoint, Community Server o aquellos que soporten Atom o metaweblog.

Categories
.NET Varios

Visual Studio 2005 & Ruby

Steel es un add-in para Visual Studio 2005 que permite utilizar Ruby en este IDE. Actualmente este add-in no tiene muchas cosas, pero está previsto que para futuras versiones éste tenga: un debugger, verificación de sintáxis al estilo de los "lenguajes estáticos" como C#, soporte para Intellisense, soporte para el desarrollo de aplicaciones basadas en Rails.

Pueden descargar los instaladores de este add-in desde http://www.sapphiresteel.com/static/pages/software/download.html

Categories
Varios

Charla en IRC sobre PostgreSQL

FYI: como parte del "Ciclo de Encuentros y Conferencias OnLine", organizado por Solar, se realizará una conferencia sobre PostgreSQL, la cita es este jueves 11 de mayo a las 21 hs (GMT-3) por el canal #solar, del servidor irc.freenode.org.

Esta conferencia estará a cargo de Alvaro Herrera, quien es uno de los desarrolladores del proyecto PostgreSQL.

Para mayor información, visitar el sitio de Solar