La historia de mis desventuras

Palabras más, palabras menos sobre desarrollo de software.

Posts Tagged ‘.Net’

Microsoft Virtual Academy

Posted by Jhonny López Ramírez en 29 diciembre 2009

logo_mva

Frente al pedido de un amigo sobre material de formación básico para .Net recordé a MVA (Microsoft Virtual Academy) y decidí darle de nuevo un vistazo. La verdad es que la página ha mejorado mucho en su diseño e interactividad y ahora los contenidos ofrecidos son de diversa índole. Se pueden encontrar vídeos, presentaciones en Power Point, demostraciones, etc.

Recomiendo a MVA como un excelente punto de partida para la formación en desarrollo con .Net, sobre todo porque agrupa los dispersos contenidos del MSDN. Adicionalmente resalto el hecho de que la formación en este portal está planteada en tres escenarios principales: carreras, cursos y especializaciones. Debo aclarar que no se trata exclusivamente de la plataforma .Net para el desarrollador, también tiene gran cantidad de contenido para profesionales TI que se desenvuelven en el ecosistema de desarrollo Microsoft. Sólo me queda un reparo: mucho del contenido se encuentra aún en inglés.

Dejo aquí el enlace para los interesados:

http://tinyurl.com/mvamicrosoft

Por cierto, con este post despido el 2009. Deseo a todos los lectores (!) de este blog un 2010 cargado de todo aquello que les haga sentir vivos.

Posted in Formación Profesional | Etiquetado: , | Leave a Comment »

Consumir un Web Service hecho en Java desde .Net

Posted by Jhonny López Ramírez en 27 noviembre 2009

microsoft__net_logo 1199737507331wikia-logodn java-logo

La interoperabilidad entre diferentes plataformas de desarrollo es, cada vez más, un hecho. Aunque no es nueva, la arquitectura orientada a servicios (SOA) es parte de ese planteamiento. Voy a exponer en este artículo lo sencillo que resulta integrar la plataforma .Net con Java a través de un servicio web construido en esta última. Aplica en diversos escenarios, como por ejemplo, casos en los que gran parte de la lógica se encuentra en aplicaciones Java ya desarrolladas que se intentan o pretenden migrar a .Net o en casos de clientes delgados que corran bajo plataformas Windows contra servidores con otros sistemas operativos. Es decir, nos sobran los motivos.

Prerrequisitos

Vamos a trabajar este ejemplo con las siguientes herramientas:

  • NetBeans JDK 6.7.1. Puede descargarlo aquí.
  • Java SE JDK. Puede descargarlo aquí.
  • Visual Studio 2008 Service Pack 1. Puede descargar un trial aquí.
Creando un servicio web en Java con NetBeans

En primer lugar crearemos el servicio web en Java. Para hacerlo, en NetBeans haremos clic en Archivo –> Proyecto nuevo, después de lo cual aparecerá el siguiente diálogo:

image

Allí seleccionaremos la categoría Java Web y a continuación Web Application. Haremos clic en Siguiente. Viene el segundo paso del asistente: definiremos el nombre de nuestra aplicación y la ubicación, entre otros aspectos. En este ejemplo, nuestra aplicación llevará por nombre DiferenciaHoraria:

image

Clic en Siguiente. En el siguiente paso escogeremos el servidor y la versión específica de Java EE. En este caso usaremos GlassFish v2.1 y Java EE 5, respectivamente:

image

Clic en Terminar. NetBeans nos creará a nosotros un proyecto con una estructura similar a la que vemos en la siguiente imagen:

image

A continuación sobre nuestra aplicación web haremos clic derecho y del menú contextual seleccionaremos Nuevo –> Web service, como se muestra en la siguiente imagen:

image

En el cuadro de diálogo resultante asignaremos un nombre a la clase contenedora del servicio y un paquete:

image

Clic en Terminar. Reemplazaremos el código de nuestro servicio web con el siguiente:

 

package miempresa.misolucion.misservicios;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import java.util.*;

@WebService()
public class DiferenciasHorarias {

@WebMethod
public float CalcularDiferenciaEnHoras(@WebParam(name="hora")int prmHora,
@WebParam(name="minutos") int prmMinuto)
{
float horaRecibida = prmHora + (prmMinuto / 100);

Calendar calendario = new GregorianCalendar();
int horas = calendario.get(Calendar.HOUR_OF_DAY);
int minutos = calendario.get(Calendar.MINUTE);

float horaActual = horas + (minutos / 100);

float resultado = horaRecibida - horaActual;

return resultado;
}

}
Procederemos a hacer el deploy del servicio web. Para ello hacemos clic derecho en la aplicación y seleccionamos la opción Deploy.
image
Luego ejecutaremos en prueba nuestro web service:
image
 
De la ventana del navegador que se despliega tomaremos la ruta así: http://localhost:8080/DiferenciaHoraria/DiferenciasHorariasService, sin el sufijo ?Tester.
 
Creando el cliente en .Net

Como este blog está orientado al desarrollo en .Net asumiré que sabemos crear una aplicación de consola por lo que iré omitiendo cosas:

image

Esta aplicación se llamará ClienteDiferenciaHoraria. Lo que haremos a continuación será establecer la conexión con el servicio web. Para ello agregaremos una nueva referencia de servicio como se ve en la siguiente imagen (para acceder a este menú haremos clic derecho sobre el proyecto):

image

En el cuadro de diálogo desplegado escribiremos la ruta del servicio (tomada anteriormente del navegador después de la puesta en prueba) y agregaremos el sufijo ?wsdl. Haremos clic en Ir y asignaremos un nombre a la referencia (en este caso DiferenciasHorariasServiceReference):

image

Visual Studio generará un cliente para el servicio web, como podemos ver en el explorador de objetos:

image

Finalmente haremos, desde nuestro código .Net, el llamado al servicio así:

static void Main(string[] args)
{
DiferenciasHorariasClient proxy = new DiferenciasHorariasClient();

float resultado =
proxy.CalcularDiferenciaEnHoras(21, 37);

Console.WriteLine("La diferencia es: {0}", resultado.ToString());
Console.ReadLine();
}

Ejecutaremos nuestra aplicación y veremos el resultado de la integración entre estas dos plataformas de desarrollo. Espero que sea útil para alguien.

El código usado aquí es meramente ilustrativo y no se trata de una solución real.

Posted in Desarrollo de software | Etiquetado: , , | 9 Comments »

Sobre algunas de mis posiciones…

Posted by Jhonny López Ramírez en 6 noviembre 2009

Me referiré puntualmente a mis posiciones en la industria del software. Es que hace días vengo siendo recriminado por mis preferencias a la hora de desarrollar software. Específicamente, mi preferencia por .net. Me permitiré aquí, aunque no deba, pronunciarme al respecto:

El open source y yo

Que vuelvo y digo: no tengo nada contra el open source; considero que existen al respecto grandes y respetables iniciativas, frecuentemente uso algunas de sus aplicaciones y donaría alguna vez un poco de dinero (que no me sobra) a alguna fundación de software libre. Y me parece genial que una persona o un grupo de personas decidan compartir sus desarrollos con el resto del mundo, permitir su distribución, su modificación, su loquesea. Pero no depreco de quien decida no hacerlo y me considero en el legítimo derecho de usar, producir y comercializar software privativo. Que me sostengo a mí mismo.

Microsoft y su comportamiento comercial

Sí, también considero que algunas de las prácticas llevadas a cabo por MS en el pasado dejan mucho que desear, por decir lo menos. Pese a eso uso muchos de sus productos. También tomo cocacola. Con lo que no estoy de acuerdo es con que lo desarrollado por MS sea tildado de malo sólo por pasión, que mucho me temo que es lo que pasa casi siempre, todo ese FUD, esas especulaciones, esa verborrea traída de los pelos de los detractores de MS; mucho me temo que los detractores de MS lo son comercialmente y parten de ello para, de plano, calificar de malomalomalomuymalo lo que tenga su sello. No todo lo que desarrollan es bueno, sí, lo reconozco (a mí me pasa a veces) pero tienen productos francamente buenos. Y mi relación con MS es comercial, me produce dinero el hacer una aplicación con sus herramientas, conocerlas, enseñarlas. Y de eso no me quejo.

.Net

Me encanta .net. Disfruto desarrollando en esta plataforma y me parece que es de las mejores del mercado. Yo también tuve 20 años y dije lo que dicen los románticos del open source pero, vamos, estaba estudiando. Tenía patrocinio. Ahora quiero hacerme a unos pesos y me encontré con que .net me facilitaba cantidades ganarme el pan de cada día, al menos tres veces al día.  Y repito: me encanta. ¿Que no es multiplataforma? Puf! me interesa poco, no quiero hacer aplicaciones para el 5% del mercado. Quiero hacer aplicaciones para el grueso de los consumidores de tecnología y ahí están los Windows. Y cuando Linux y todos sus tututus hagan suficiente ruido echaré mano de lo que haga falta para volver a hacerme los pesos de los tres panes del día. Entre tanto, repito, .net me encanta.

¿Java?

Ah! claro, también me encanta. Me parece que J2EE es de las cosas más serias del mundo. Y lo uso y lo usaré cuando pueda y deba (cuando alguien de ese segmento cincoporciento* me pague lo suficiente). Y claro, estimulo su uso, respeto su uso y me quito el sombrero cada que deba: ante la dignidad y la belleza.

¿Php?

Yo tenía un perro que se llamaba Pascal.

Los anteriores son argumentos meramente emocionales. Para los argumentos técnicos tengo pocas ganas hoy. Vendrán…

Posted in Desarrollo de software | Etiquetado: , | 2 Comments »