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");
Novedades, tecnologia y desarrollo software de la manera mas natural
lunes, 7 de diciembre de 2009
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.
- Mejores herramientas
- API de impresión
- Manejo del evento del click derecho
- Acceso al micrófono y webcam
- Soporte nativo a la rueda del ratón
- RichTextArea Control
- Soporte ICommand
- API del portapapeles
- Control WebBrowser para mostrar HTML
- Aplicaciones con permisos elevados
- Acceso a ficheros locales
- Interacción COM
- Notificaciones de escritorio API (Estilo MSN o Outlook)
- Autenticación de red
- Cambios en el acceso cross-domain
- Acceso al teclado en modo pantalla completa
- Text trimming
- ViewBox
- Right-to-left, BiDi and complex script
- Offline DRM
- Contenido protegido H.264
- Silverlight como receptor de drag & drop
- Data binding
- Managed Extensibility Framework (MEF)
- Mejoras en el DataGrid
- Fluid UI support in items controls
- Implicit theming
- Google Chrome support
Y las descargas son:
- Visual Studio 2010 Beta 2 or Visual Web Developer Express 2010 Beta 2 (pick one)
- Silverlight Tools for Visual Studio 2010
- Expression Blend for .NET 4 Preview – for authoring Silverlight 4 and WPF 4 applications
- WCF RIA Services (formerly .NET RIA Services) (NOTE: This is actually included in the SL Tools for Silverlight 4)
- Silverlight 4 SDK CHM (offline documentation) – optionally online here as well
- Updated Silverlight Toolkit for Silverlight 4
- Developer runtimes: Windows and Mac platforms
- Silverlight 4 SDK only – not needed if you install the tools above
- Silverlight Media Framework – a new, Open Source media player framework for you to use.
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"));
}
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
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
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
Suscribirse a:
Entradas (Atom)