lunes, 7 de diciembre de 2009

Quaere un proyecto "LINQ" de .NET para Java

Durante el desarrollo de mis aplicaciones Java me he topado con problemas por ejemplo en busquedas, ordenamiento de elementos de una lista o sublistas, esto ya habia sido solucionado de una manera muy sencilla con Linq pero esto en .NET, incluidas las famosas expresiones lambda, etc.

Sin embargo en java existe un proyecto, (aunque no tan nuevo; valga esta entrada al menos como informacion) llamado QUAERE el cual es un marco extensible que añade una sintaxis de consultas SQL a una reminiscencia de las aplicaciones Java.
Quaere permite a los desarrolladores para filtrar ; enumerar y crear proyecciones sobre un número de colecciones, listas, etc y otros recursos consultables mediante un enfoque común, la sintaxis expresiva.

Un ejemplo basico es el siguiente:

simplemente debemos declarar en el sector de importacion de librerias o clases en nuestro programa java:

import static org.quaere.DSL.*;

la siguiente sintaxis recupera todos los numeros menores a 5 del array representado por numeros

Integer[] numeros = {5, ,67 ,4, 1, 3, 9, 8, 6, 7, 2, 0,76};
Iterable menoresACinco = from("n").in(numeros)
.where(lt("n", 5))
.select("n");

lunes, 30 de noviembre de 2009

Silverlight 4 Beta disponible

Con el afan de contribuir al desarrollo en silverlight, y gracias al sitio http://timheuer.com aqui tienen algunos enlaces de las bondades que silverlight 4 tiene.

Y las descargas son:

con el debido agradecimiento al sitio http://timheuer.com

lunes, 23 de noviembre de 2009

Reporting Services

Esta semana ha sido crucial para mi porque descubri algunas soluciones que talvez podrian ayudar a aquellos que estan trabajando con reporting services.
Una de las grandes ventajas que esta herramienta (business intelligence) tiene, es que cualquier reporte puede ser un subreporte, y oviamente las cabeceras y pes de pagina de los subreportes son omitidos cuando estos estan siendo desplegados dentro de un reporte madre.
En el caso especifico de trabajar con Asp.net,
la pregunta es : como cargamos los datos del subreporte?

simplemente hacemos lo siguiente, agregamos un object datasource para obtener la fuente de datos del subreporte.
A continuacion realizamos la siguiente:

protected void Page_Load(object sender, EventArgs e)
{
ReportViewer1.LocalReport.SubreportProcessing -= SetSubDataSource;
ReportViewer1.LocalReport.SubreportProcessing += SetSubDataSource;
}

procesamos el evento SubreportProcessing, eliminamos los parametros que tiene, y enviamos el parametro recibido en e.Parameters[0] (ojo con los tipos de datos)
a continuacion hacemos una carga manual del ObjectDataSource2 que corresponde a la fuente de datos del subreporte.

public void SetSubDataSource(object sender, SubreportProcessingEventArgs e)
{
ObjectDataSource2.SelectParameters.Clear();
ObjectDataSource2.SelectParameters.Add(
new Parameter("receiptList", TypeCode.String,
e.Parameters[0].Values[0].ToString()));

e.DataSources.Add(new ReportDataSource("miDataSetSubReporte",
"ObjectDataSource2"));

}

martes, 21 de julio de 2009

Descargando Visual Studio 2010 CTP

Visual Studio 2010 CTP ya disponible

Ya esta disponible la maquina virtual que viene con el nuevo Visual Studio 2010 y el nuevo .NET Framework 4.0. Ya no tendremos que estar lidiando con la instalacion de algunas peculiaridades que tienes VS2010

La VPC tambien viene con las novedades de Team Foundation Server y Team system para aquellos que les gusta trabajar en equipo.

Pueden descargarse de:

http://www.microsoft.com/downloads/details.aspx?familyid=922b4655-93d0-4476-bda4-94cf5f8d4814&displaylang=en&tm

WebORB una verdadera Herramienta

En mis incursiones dentro de las tecnologías Adobe, como Flex y Adobe Air, y c# me he topado con una herramienta muy poderosa la cual me facilita la tarea de conectar ambas tecnologías.
Trabajando con silverlight necesariametne debía realizar conexiones haciendo uso de Windows Comunication Foundation (basado en web services), sin embargo WebORB trabaja con un nuevo protocolo de comunicacion llamado AMF (Action Message Format) .
Algunas veces cuando estamos generando aplicaciones empresariales o de alto nivel, los Web Services nos pueden quedar cortos en cuanto desempeño, desarrollo, e incluso depuración de los mismos. Recordemos que los Web Services son mensajes SOAP basados en texto, y cuando la aplicación empieza a crecer en cuanto a cantidad de datos puede ser un problema para el cliente para "parsear" todo este XML y para el servidor el envio y generación del mismo. Para solventar este problema tenemos lo que conocemos como Remoting. Remoting o en nuestro caso Flex Remoting es capaz de transportar los datos con mayor eficiencia que los Web Services, ya que usa un formato binario (AMF) para transmitir datos entre el Flash Player y nuestro código en .NET. El protocolo AMF (Action Message Format) es un protocolo binario mucho mas liviano que los Web Services y en cuanto al poder y rendimiento es mucho mayor ya que podemos accesar directamente con esta tecnología a objetos remotos como dll (dynamic link libraries) construidas en .NET , es decir podemos consumir directamente los métodos que tengamos en nuestra dll,además que consume menos ancho de banda.

te animo a utilizar esta estupenda herramienta.
Para iniciarte en esto visita el siguiente blog, por cierto muy inicial pero sencillo.
Click para acceder a
Giant Flying Saucer Programming Parlor Tricks