Saturday, January 15, 2005

The Winner Is...

Hoy en la mañana se integro a

http://groups.msn.com/guydotnetxmlwebservices/

Siendo el miembro numero 100 de este Group MSN. Y se adjudico la invitacion a GMail que habia ofecido en el post anterior.

Entrego las pruebas en pro de la transparencia del proceso :)





Rumbo a los 200 miembros...!!!

Friday, January 14, 2005

100 Members Coming Soon...

Esto si es curioso, de verdad.



Inicie este Group MSN:

http://groups.msn.com/guydotnetxmlwebservices/

Con la intencion de poder entregar aquellas cosas que alcanzasen el calificativo de util. No esperaba que puediese serle util a tanta gente :)

Faltan solo 3 integrantes mas, para llegar a los 100 miembros.

Y quisiera premiar a quien llegase a ser el miembro numero 100, con una invitacion a Gmail

Que les parece? No esta da mal, eh.

Friday, January 07, 2005

Oracle.DataLayer.Primitives Public Version Released...!!!

Les entrego la version publica del DataLayer.Primitives que habia publicado anteriormente.

http://guydotnetxmlwebservices.blogspot.com/2004/11/datalayerprimitives-and.html

Pero en esta oportunidad, con soporte al Oracle DataBase, haciendo uso del Oracle Data Access Provider - ODP

Que podran descargar de cualquiera de los siguentes lugares:

http://www.msnusers.com/guydotnetxmlwebservices/Documents/Oracle.DataLayer.zip
http://www.msnusers.com/guydotnetxmlwebservices/Documents/Oracle.DataLayer.rar

Pero previamente deberan unirse al grupo a traves del siguiente link:
http://groups.msn.com/guydotnetxmlwebservices/join

Algunos puntos que valen la pena comentar, para esta version de codigo, son:

Dentro del CommonLayer.Customs, se agrego el CustomBoolean, que encapsula el mapeo de un tipo de dato booleano, con el que no se cuenta dentro de Oracle. Algo relativamente similar al Boolean que se mapea naturalmente con el tipo de dato BIT del SQL Server.

Este tipo de dato, se comportara como un Boolean dentro del .NET y como un CHAR(1) contra la database. Con valores 'Y', 'N'. A traves de las propiedades Value y DBValue, respectivamente.

De esta manera contamos con un tipo de dato que te permitira centralizar el manejo de tipos de datos booleanos, que se obtiene de la database Oracle.

Por otro lado, el PrimitiveParameter cuenta con una propiedad adicional: Position, la cual indica el orden que obstenta dentro de alguna collection de PrimitiveParameters.

Debido a que SQL Server, no es estricto en el orden en el que se envian los parametros para la ejecucion de un store procedure, pues no era necesario contra con esta propiedad en el DataLayer.Primitives orientado a dicho motor de Base de Datos.

Sin embargo, en Oracle, si lo es. De esta manera, cada vez que agregamos un elemento a la colleccion, salvamos el orden en el que se esta agregando dicho elemento. Para que posteriormente sea entregado en dicho orden al store procedure, que se vaya a ejecutar.

En este objetivo, PrimitiveParameterPositionComparer implementa la interfaz IComparer, validando la propiedad Position entre elementos contiguos de una colleccion.

PrimitiveParameterCollection, define una propiedad llamada Sortered la cual ordena la lista de elementos de la colleccion de PrimitiveParameters aplicando el criterio de orden entre los elementos, establecido en PrimitiveParameterPositionComparer.

Finalmente, PrimitiveSize permite encapsular la longitud para los tipos de datos CHAR, VARCHAR2, etc. cuando se crea un PrimitiveParameter

Friday, November 26, 2004

To Be Peruvian Is...

Disclamer: Cualquier semejanza con la realidad es pura coincidencia :)

Llevar tu bolsita cuando vas a una fiesta infantil, para tirarse todos los bocaditos.

Tirarse los sachet de mostaza y mayonesa cuando vamos al burguer.

Es decirle a tu prima para jugar al Papá y a la Mamá.

Tirarte un juergón de las 9 de la noche a las 6 de la mañana, con su pan con chicharrón y camote frito, tan delicioso como un ceviche con su chela pa'cortarla y con dos mas pa' seguirla.

Subir a la Combi diciendo "Una china aca a 3 cuadras" y se van hasta 20 cuadras.

Meterte donde no te importa...

Andar fashion hasta cuando no tienes ni para un te ....

Es ir al mercado del barrio con una bolsa ya toda arrugada de Wong o Metro que usaste hace tiempo para una fecha especial, y despues te panudeas diciendo q haces tus compras ahi ...

Llegar al paradero cerca a tu jato a las 7 de la mañana pa ir a estudiar o a trabajar y escuchar una melodiosa voz q te dice..... Todo ermitaño, balanza, hospital, curva, independencia, quiosco rico, 8 esquinas, revision tecnica, trocadero, zarumilla, todo benavides, larco, pardo, cmdte espinar, conquistadores, javier prado este, toda la marina, Faucett, aeropuerto,HABLA VAS???? oe chino cambiame 5 lucas en ripios, cierra la puerta, quita el letrero, pie derecho. 2, 1, 2, 1 se va Orion sigue Star guarda con Pamela Techo Alto adelante se va con 8 carro planchado, viene en correteo lobo gris y el GRINGO pisa pisa, suelta mi ferro pe!!!!!

Es reunirte con tus patas para chupar,hacer una chanchita de luca c/u pa comprar una oferta de CABITO ,y una vez que se pican son capaces de vacear sus bolsillos ,incluso quedarse sin pasaje ,por seguir chupando.

Es broncearte en el techo de tu casa y decir que has pasado el fin de semana en mancora o en colan.

Es aprovechar los martes, "dos por uno", pasar caleta, tu gaseosa de a luca, y tu bolsita de chisitos, y hacerla linda en el cine. Es que los peruanos somos misios pero nos las arreglamos.

Es tirarse la plata de la semana en una trancaza y luego decir la plata no alcanza y que el Cholo tiene la culpa es que no pagan bien y no hay trabajo...!!! ...

Es levantarse con optimismo todos los dias y tener fe que el PERU v ha cambiar algun dia...

Saturday, November 20, 2004

DataLayer.Primitives and DataLayer.Primitives.Core Public Version Released...!!!

Les entrego la version publica del DataLayer.Primitives and DataLayer.Primitives.Core

Que podran descargar de cualquiera de los siguentes lugares:

http://www.msnusers.com/guydotnetxmlwebservices/Documents/DataLayer.zip

http://www.msnusers.com/guydotnetxmlwebservices/Documents/DataLayer.rar


Pero previamente deberan unirse al grupo a traves del siguiente link:
http://groups.msn.com/guydotnetxmlwebservices/join

¿Que es DataLayer.Primitives and DataLayer.Primitives.Core? ¿Y para que sirve?

Es la solucion .NET orientada a la capa de acceso a datos de un producto de software que se desarrolla sobre la tecnologia del .NET Framework.

La intencion es poder construir un producto basado en una arquitectura de tres capas. Que permita flexibilidad y escalabilidad dentro de su tiempo de vida..

¿Como podria usarlo dentro de mi desarrollo de software?

Generalmente, deberiamos contar con tres soluciones, para la construccion de un producto de software.

DataLayer.sln -> Orientado a la capa de acceso a datos.
BusinessLayer.sln -> Orientado a logica de negocio
UserLayer.sln -> Orientado a interfaz del usuario

En esta oportunidad, les entrego la version publica del DataLayer.sln

¿Que existe dentro del DataLayer.sln?

En el encontraremos, los siguientes proyectos .cs.proj

CommonLayer.Customs : Clases customizadas para un uso particular
CommonLayer.Nullables : Tipos de datos que soportan nulo
CommonLayer.Exceptions : Excepciones para su uso dentro del producto
DataLayer.Primitives and DataLayer.Primitives.Core : Bloque orientado a las operaciones contra la BD
DataLayer.WinApp : Proyecto que testea esta capa de la arquitectura.

¿Como interactua el DataLayer.Primitives and DataLayer.Primitives.Core con las demas capas?

El BusinessLayer.sln es el lugar de donde podras interactuar con el DataLayer.Primitives and DataLayer.Primitives.Core y hacer uso de las clases que ella te brinda para poder consruir las operaciones contra la Base de Datos.

Dentro de ls version publica del DataLayer.Primitives, encontraras las siguientes clases:

PrimitiveEntity : Es una clase que debe ser heradada necesariamente para permitirte aprovechar las operaciones basicas para una tabla de base de datos, desde la perspectiva CRUD. Sobre escribiendo los metodos OnSelect, OnInsert, OnUpdate y OnDelete para poder indicar los parametros que han de ser usados para la ejecucion de cada uno de los stores procedures que han de realizar dichas operaciones.
PrimitiveExecutable : Es una clase que simplemente de ser instanciada para poder ejecutar operaciones contra la base de datos, sean estas a traves de store procedures o sentencias sql.
PrimitiveParameter : Es la clase que nos permitira la creacion sencilla de diferentes tipos de parametros para ser entregados en la ejecucion de los stores procedures, al PrimitiveEntity o el PrimitiveExecutable, dependiendo de lo que hayas usado para realizar operaciones contra la DB.
PrimitiveParameterCollection : Es una colleccion de PrimitiveParameter basada en DictionaryBase, para poder tener un acceso inmediato a cada uno de los elementos de la colleccion con solo tener el nombre del parametro. Muy util cuando se deseas retornar valores a traves de los parametros de un store procedure. Pero siempre usado en todo lugar del DataLayer.Primitives donde se necesiten parametros.
PrimitiveProcedure : Es una estructura que encapsula la definicion basica de un store procedure.
PrimitiveSql : Estructura simple para definir una sentencia SQL.

¿Como deberia estar estructurado el BusinessLayer.sln para poder interactuar facilmente con el DataLayer.Primitives and DataLayer.Primtives.Core?

El BusinessLayer.sln deberia contar con los siguientes proyectos:

BusinessLayer.Components and BusinessLayer.Components.Collections : Es el proyecto en el cual se establecen las clases que encapsulan la logica del negocio a la cual esta orientada el producto.
BusinessLayer.Entities : Aqui se definen las entidades que han de ser el medio por el cual se enviar informacion entre la capa del usuario y la logica de negocio.
BusinessLayer.IDataWrapper : Establece las interfaces para realizar operaciones permitidas contra la DB
BusinessLayer.DataAccess : Es el nexo entre las capa de negocio y la capa de datos. Es aqui donde se hace referencia explicita para poder hacer uso de las clases que brinda el DataLayer.Primitives and DataLayer.Primitives.Core.
BusinessLayer.WinApp : Es el proyecto que permite testear esta capa de la arquitectura.

¿Que es lo que no trae esta version publica del DataLayer.Primitives and DataLayer.Primitives.Core?

No todos los tipos de datos nulos estan entregados en esta version publica. Solo he liberado NullInt32, NullString, NullDataTime. Apoyados por la interfaz INullable. Esto dentro del CommonLayer.Nullables

No se ha entregado toda la gama de excepciones usadas para la construccion de los proyectos que lidero. Solo tres excepciones muy basicas. Esto dentro del CommonLayer.Exceptions.

Solo se ha liberado el CustomDataSet. Esto dentro del CommonLayer.Customs.

Del mismo modo, no se ha liberado el soporte para las transacciones contra la DB ni el soporte para todos los tipos de datos, en la creacion de PrimitiveParameter. Esto dentro de DataLayer.Primitives.

¿No hay mayor informacion sobre el DataLayer.Primitives.Core?

Digamos que justamente es el nucleo del DataLayer.Primitives. Las clases que se definen en ese namespace, tienen la particularidad de ser internal por lo que su uso no va mas alla del assembly correspondiente al DataLayer.Primitives.

¿Que tienes pensado liberar proximamente?

Seria ideal poder liberar un BusinessLayer.sln orientado a una realidad de negocio en particular que permita apreciar el uso adecuado del DataLayer.Primitives and DataLayer.Primitives.Core.

¿Cuando lo piensas hacer?

Coming soon...

Wednesday, October 20, 2004

Google Desktop Released

Para quienes aun no han descargado el ultimo juguete de Google, os invito:

Google Desktop
http://desktop.google.com/



Esta aplicacion aun corre sobre una web browser. Y no es una aplicacion desktop natural, como todos conocemos.

Uno quisiera tal vez, una agradable experiencia con el producto por tratarse de una aplicacion pequeña. O cierta integracion con el sistema operativo o con otras aplicaciones. Algo relativamente similal al Babylon o el WinZip

Pero aun asi, sigue siendo una opcion interesante. Al ver tan lejos a WinFS.

Este nuevo juguete se pasa algunas horas indexando la informacion de tu PC, tus documentos office, correos, HTML y TXT. Por unica vez.

Para luego darte resultados inmediatos, al realizar tus busquedas sobre el mismo Destop Google o sobre http://www.google.com/

En fin, un motivo para olvidar la opcion search del nuestro querido amigo, Windows.

Claro, si usas el Index Server de tu IIS sobre tu PC. Y haz aprovechado la interfaz que brinda, para visualizar tus documentos a traves de busquedas, pues no esta mal.

Pero para el publico en general, es una opcion agradable y facil de usar.

Microsoft Virtual PC 2004 - Service Pack 1

... y hasta que salio el primer Service Pack para VPC 2K4. :)

Para todos los que trabajamos frecuentemente con este producto, resulta una muy buena noticia, de veras.

http://www.microsoft.com/downloads/details.aspx?FamilyId=B07C9EF0-265A-4237-AE3B-25BC8937D40F&displaylang=en

Denle una revisada al README, para conocer mayores detalles de las correciones y mejoras que vienen con este parche:

http://download.microsoft.com/download/6/9/d/69de9b67-6498-41fb-9add-95ceab6eb5cc/readmesp1.htm

Friday, October 01, 2004

Inquire into MONO

Continuaba en mi afanoza investigacion sobre MONO, la plataforma de desarrollo de software libre basado en el .NET Framework que permite contruir aplicaciones GNU/Linux con una productividad sin precendentes sobre plataformas como Unix, Linux y MacOS, y me encontre con este post en el blog de Chris Anderson, uno de los arquitectos de Avalon:

Miguel, lets chat...
http://www.simplegeek.com/PermaLink.aspx/eb453f85-10e3-48ee-a6f5-cc4b886ce668

En respuesta a lo que Miguel De Icaza, quien lidera actualmente el equipo del proyecto MONO para la empresa Novell, escribio en este post:

Longhorn changes
http://primates.ximian.com/~miguel/archive/2004/Sep-01.html

Miguel, es mexicano, orgullo hispano para la comunidad Linux. Fue lider y fundador de la fundacion GNome, de su empresa Ximian y desarrollador instrumental de Linux para SPARC. Fue galardonado con el Premio del Software Libre y el premio Innovador del Año, ambos en el año 1999. Y algun otro galardon, seguramente... ;)

Es uno de los impulsores del Proyecto MONO, cuya implementacion se basa en los estandares de ECMA C# y la infraestructura del lenguaje comun. MONO incluye las herramientas de desarrollo necesarias para crear aplicacion de cliente y servidor.

Aun más, Miguel replico lo expuesto por Chris Anderson, en funcion a las criticas que el habia espobazado inicialmente y que Chris habia respondido, a traves de este post:

Avalon Part 2
http://primates.ximian.com/~miguel/archive/2004/Sep-09.html

Hace un tiempo, Miguel desecho una propuesta de Microsoft para trabajar en Redmond. Y uno de los arquitectos de Indigo, lo tuvo en sus planes, lo que se puede corroborar en una entrevista que le hace Microsoft-Watch a Don Box.

http://www.microsoft-watch.com/article2/0,1995,1418558,00.asp

Si te interesa leer la historia completa de Miguel, podrias verlo en:

http://www.rebelion.org/noticia.php?id=3911

Su blog personal es: http://primates.ximian.com/%7Emiguel/activity-log.php

Vale...!

Thursday, September 09, 2004

gmail is for me, too. Thanks Google!!!

El dia martes consegui mi cuenta de gmail a traves de un amigo de USA - Seattle. Al parecer pude calificar a este restringido servicio, aun :)

http://gmail.google.com

A pesar que aun se encuentra en version Beta. Las funcionalidades que brindan al usuario son muy comodas e intesantes.

Por ejemplo, propone el folder STARRED, que permite marcar nuestros emails con la finalidad de que estos puedan ser encontrados posteriormente, con mayor facilidad. Uno podria marcar multiples veces un email, para darle cierto status, a este.

La opcion de Archivar, brinda la posibilidad de alojar nuestros mails en un lugar logico, sin que sean eliminados aun. Pero tambien sin una acceso inmediato salvo al seleccionar la opcion 'All Mail'.

Ni que decir de la opcion de busqueda. Algo relativamente similar a lo que ya nos brindaba Yahoo, cuando hace dos meses atras hicieron el upgrade de su servicio. De pronto, un dia, mi buzon aparecio con 2GB de espacio disponible. Santo Dios!!!

Ni modo, para todos aquellos que deseen una cuenta de gmail, me envian un mensaje, a mi reciente cuenta de correo electronico:

Javier Luna AT gmail
javier.a.luna@gmail.com

Tuesday, September 07, 2004

I wanna be unplugged of my PC

Surfeando por la red, me encontre con el blog de Mauricio Sougarret.

¿Que quien es el? Uhm, bueno. El es uno de los chicos que trabaja para Microsoft Peru. Y participa constantemente de los eventos tecnologicos del gigante del software, aqui en nuestro querido pais.

Me di un tiempo para leer un post que finalmente me agrado.

Me estare poniendo viejo
http://msougablog.blogspot.com/2004/06/me-estar-poniendo-viejo.html

Nos habla un poco sobre la añoranza de las cosas que ha cambiado en nuestras vidas y de aquellas que hemos dejado detras, debido a como la tecnologia se ha hecho parte importante en nuestro dia a dia.

Os recomiendo ;)