Aquí encontrarás todo lo relacionado a la tecnología, computación, informática y demás. Enterate de las noticias del momento en cuanto a tecnología se refiere.





Crear un webservice para validación de E-mail

En éste tutorial, veremos como crear un webservice que contenga un método para validar si una dirección de emial es válida ó no. También crearemos una aplicación web en asp.net para consumir el webservice. En ésta ocasión utilizaremos VS2008 con el framework 3.5 SP1.

Lo primero que haremos será crear un sitio web del tipo webservice, para ello vamos a Fila->New-WebSite, en la ventana que nos aparece seleccionamos ASP.NET WebService:

Por default nos creará un método que regresa un simple “Hola Mundo”, modificaremos ese método y agregamos lo siguiente:

[WebMethod]
public bool EmailValidation(string email)
  {
string expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
if (System.Text.RegularExpressions.Regex.IsMatch(email, expresion))
      {
if (System.Text.RegularExpressions.Regex.Replace(email, expresion,String.Empty).Length == 0)
      { return true; }
       else
      { return false; }
      }
     else
      { return false; }
    }

Quedaría de la siguiente manera:

Con ésto ya tenemos creado nuestro webservice con un método que nos validará un email, ahora agregaremos un nuevo proyecto a nuestra solución, será un proyecto web asp.net, para ello, vamos a File->Add->New Project y seleccionamos ASP.NET Web Application:

Lo primero que debemos hacer es agregar la referencia del webservice a nuestro nuevo proyecto web, para ello damos click derecho en Referencia y luego Agregar referencia web…

Nos aparecerá una ventana para seleccionar la fuente del webservice, seleccionaremos WebService en this solution:

Ahí nos aparecerá el webservice que habíamos creado, lo seleccionamos y le damos Add Reference:

Una vez que ya está agregada la referencia, vamos a modificar el archivo Default.aspx y le ponemos un TextBox y un Botón:

Ahora en el evento OnClick del botón, agregamos el siguiente código:

 localhost.Service EmailService = new localhost.Service();
   bool Valid = EmailService.EmailValidation(TextBox1.Text);
       if (Valid)
          Response.Write("Email Correcto");
         else
          Response.Write("Email Incorrecto");

Quedaría de la siguiente manera:

Para correr el proyecto, configuramos el proyecto webapplication para que arranque de inicio , dando click derecho en el proyecto y le damos en Set as StartUp Project:

Listo!, probamos:


Si quieres hacer un webservice libre utilizando Mono, puedes visitar mi artículo anterior: Crear un webservice en monodevelop

ASP.NET MVC Framework – FAQ

He estado utilizando ASP.NET MVC Framework para unos proyectos, sin duda es una herramienta que nos ayuda bastante a realizar aplicaciones ABC sin escribir mucho código, aquí les dejo algunas preguntas frecuentes sobre éste framework:

1. ¿Qué es MVC?

Aunque de forma algo simplista, podríamos definir MVC como un patrón arquitectural que describe una forma de desarrollar aplicaciones software separando los componentes en tres grupos (o capas):

2.¿Qué ventajas tiene el uso del patrón MVC?

3.¿Qué es ASP.NET MVC framework?

Es un framework, un entorno de trabajo cuya primera versión acaba de ver la luz, creado por Microsoft con objeto de ayudarnos a desarrollar aplicaciones que sigan la filosofía MVC sobre ASP.NET.

Además del conjunto de librerías (ensamblados) que proporcionan las nuevas funcionalidades a nivel de API, incluye plantillas y herramientas que se integran en Visual Studio 2008 (tanto en la versión Express de Visual Web Developer como en sus hermanas mayores) para facilitarnos un poco las cosas.

13. ¿Es ASP.NET MVC framework software libre?

He aquí una de las grandes novedades respecto al post que escribí un año atrás. Por aquellos tiempos era inimaginable que esta pregunta pudiera responderse de forma afirmativa, pero… efectivamente, ASP.NET MVC Framework es software libre.

A primeros de abril de 2009 se comenzó a distribuir oficialmente el código fuente de ASP.NET MVC con licencia MS-PL (Microsoft Public License), un modelo de licencia aprobado por la OSI (Open Source Initiative) que permite el uso del software en aplicaciones comerciales y no comerciales.

Programación en 3 capas

Una buena práctica a la hora de desarrollar un sistema, es tratar de que la arquitectura sea de mínimo 3 capas: Presentación, lógica de negocio y datos.

En ésta imágen se puede entender mejor la arquitectura de 3 capas:

3 capas

En la capa de presentación sería la interfaz del usuario, ya sea con windows form, GTK ó Web; la capa de la lógica de negocio serían todas las validaciones y/o métodos, mientras que la capa de datos sería la fuente de datos, puede ser una base de datos, un archivo XML, etc…

Cómo práctica haremos una pequeña aplicación en 3 capas sobre un login en c# con la ayuda de monodevelop. Para comenzar creamos una nueva solución en blanco llamada Proyecto3Capas.

Primero comenzaremos con la capa de datos, para ello, damos click derecho en la solución llamada Proyecto3Capas->Añadir->Nuevo Proyecto, seleccionamos un proyecto web vacio y le ponemos de nombre Datos:

Nuestra capa de datos será un webservice dónde contendra el usuario y password del login. Una vez tengamos damos click derecho en el proyecto Datos->Añadir->Nuevo archivo y seleccionamos Servicio web con code Behide, si tienes dificultades para crear el webservice puede ir al post: crear un webservice en monodevelop.

En el archivo webservice.asmx.cs agregaremos un nuevo método:

  [WebMethod]
    public bool Datos(string user, string pass)

    {

        if(user=="admin" && pass=="admin")
				return true;
			else
				return false;

    }

Es un simple método que valida usuario = admin y password también admin.

Luego, seguirá la lógica de negocio, para ello, damos click derecho en la solución, Añadir->Nuevo proyecto, y seleccionamos una Librería en c# (puede ser VB.NET si lo desea),le pondremos como nombre Logica, lo bueno de ésto es que se creará una DLL por lo que puede ser escrita en cualquier lenguaje.

Para ser uso de la capa de Datos , damos click derecho en la carpeta de Referencia->Editar referencia , vamos a la pestaña de Proyectos y agregamos la capa de Datos:

Agregaremos un método llamado Autentificacion con lo siguiente:

	public bool Autentificacion(string user, string pass)
		{
			Datos.webservice service = new Datos.webservice();
			bool resultado = service.Datos(user,pass);
			if(resultado==true)
				return true;
			else
				return false;
		}

Ahora Falta crear la capa de Presentación, nuevamente damos click derecho en la solución y añadimos un proyecto GTK# llamado Presentación, una vez creado, agregamos la referencia de la capa de la lógica.

Creamos una interfaz donde acepte un usuario, contraseña, un label para mostrar resultado y un botón, en el evento click del botón, añadimos lo siguiente:

Logica.Logica login = new Logica.Logica();
bool result = login.Autentificacion(this.entry1.Text,this.entry2.Text);
	if(result==true)
		label3.Text = "correcto";
	else
		label3.Text = "incorrecto";

Ésto sería un proyecto muy sencillo pero muy claro de como se puede dividir un proyecto en 3 capas, ésto nos ayudará a identificar mejor los posibles errores, mantenible,etc…

Les dejo el proyecto terminado para su descarga: Proyecto 3 Capas.zip

Comentarios, dudas, sugerencias son bien aceptadas.

Asp.Net vs PHP

Actualmente me encuentro en un curso de desarrollo de software, en dónde opté por .NET, lógicamente todo lo estamos viendo sobre la plataforma windows, hemos llegado al módulo de Asp.Net, anteriormente he utilizado PHP como lenguaje para desarrollo de aplicaciones web, hay algunas ventajas y desventajas entre uno y otro, y en mi opinio aquí enlisto algunas:

ASP.NET Ventajas sobre php

  1. Potente IDE para desarrollo
  2. Para desarrollar aplicaciones web con ASP.NET se tiene Visual Studio, que aunque es privativo y es caro, la verdad es de los mejores ó el mejor IDE para programación, ésto es un factor muy importante teniendo encuenta que el tiempo es igual a $.

  3. Un gran número de componente.
  4. Asp.net cuenta ya con un gran número de componentes en dónde solamente arrastramos, configuramos y ya tenemos un formulario validado en todos sus campos en el lado del cliente, ésto significa que asp.net genera código javascript que nos hace las validaciones del lado del cliente, haciendo la aplicación más rápida.

  5. Mantenimiento de aplicación
  6. Algo muy bueno de asp.net, esque puedes crear módulos (dlls) bastante fácil, el mantenimiento de un proyecto resulta bastante fácil con el manejor de módulos.

  7. Debugeo
  8. Gracias al IDE visual studio, es posible hacer un debugeo completo de toda nuestra aplicación, ésto sin duda, una gran ventaja.

  9. Muchas aplicaciones/componentes de terceros
  10. Existen muchas aplicaciones/componentes creados por terceros, algunos de hechos con AJAX, haciendo lucir mejor nuestra aplicación.

  11. Código compilado
  12. A diferencia de otros lenguajes script que el código es interpretado, asp.net es compilado, por lo que se supone debe ser más rápido.

  13. Multiplaforma
  14. Gracias al proyecto mono, podemos migrar nuestra aplicación web terminada a un servidor web apache corriendo en linux.

PHP, ventajas sobre ASP.NET

  1. Mucho más rápido y ligero en la etapa de producción
  2. A diferencia de asp.net, las páginas php son muchisimo más ligeras y rápidas.

  3. Cantidad de código disponible
  4. Gracias a que mucha gente utiliza php, existe casi cualquier cosa hecha en php, basta con “googlear” y encontrarás la solución.

  5. Hacks programming
  6. Con php se pueden realizar muchos “hacks”, gracias a que convive bastante bien con HTML, javascript, ajax.

  7. Plataformas de desarrollo
  8. A diferencia de asp.net que solamente tiene Visual studio, para php existen muchas plataformas de desarrollo, desde un simple bloc de notas, VIM, Zend, NetBeans, Eclipse, etc…

Como lo podrán ver, los 2 son muy buenos lenguajes para desarrollo web, ustedes por cuál se inclinan?

Todos los derechos reservados. Tecnologia.