IT Builder - Gabriel Oliva C. View Gabriel Oliva Chimal's profile on LinkedIn

Chief Sw. Architect Gabriel Oliva's Blog

Webcast de desarrollo colaborativo y construcción de software de clase mundial en MSDN LATAM

clock October 16, 2008 17:53 by author gabriel.oliva

 listo para construir mejor software que tu competencia ?

MSDN - Microsoft Visual Studio Team System: El hoy y el mañana

URL de Registro para Asistentes (Público):
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032389739&Culture=es-AR

MSDN - Haciendo un mejor software: Sugerencias y Herramientas para mejorar sus aplicaciones

URL de Registro para Asistentes (Público):
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032389766&Culture=es-AR

 

Nota: los eventos han sido pregrabados y estan disponibles para ser vistos bajo demanda.

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


IT Builder en Codeplex

clock July 1, 2008 04:27 by author gabriel.oliva

Como parte de nuestra aportación a la industria del desarrollo de Software, en IT Builder hemos comenzado un programa para 'liberar' parte del codigo usado en nuestras aplicaciones bajo el esquema de código abierto, motivo por el cual el dia de hoy se hizo el primer release en el sitio de CodePlex de un Framework desarrollado en IT Builder y que tiene como objetivo proveer servicios de notificacion a aplicaciones desarrolladas en .NET 2.0. Te invitamos a visitar el sitio de este proyecto y colaborar activamente en Codeplex, esperando que te sea de utilidad.

Notification Framework

 

 

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Microsoft & IT Builder en pro de la Industria de TI

clock May 14, 2008 03:17 by author gabriel.oliva

IT Builder se ha convertido en uno de los primeros 3 socios en formar parte del programa S2B (Students to Business) de Microsoft, el cual tiene como objetivo facilitar la incorporación de los egresados de diferentes Universidades a la industria de la TI a la vez que asegura que los recursos a insertar cumplan con un mínimo indispensable de conocimiento de las herramientas de desarrollo Microsoft, a través de este programa será posible fomentar la creación masa crítica de talentos y personal calificado que tanta falta le hace a la industria.Si eres recien egresado de la carrera de sistemas, informática o alguna afín esta es tu oportunidad de ingresar al mundo laboral de la mejor manera.

Para mas informacion visita :

http://www.s2bprogram.com/Mexico

[IT Builder cuenta con mas de 7 años de experiencia en el desarrollo de tecnología .NET y su staff ha capacitado e incubado mas de 800 profesionales en toda la república, incluyendo personal que en este momento es reconocido como MVP o que cuenta con alguna certificación de Microsoft, para mas información de IT Builder visite nuesra página : www.itbuilder.com.mx]

 

Currently rated 4.3 by 4 people

  • Currently 4.25/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Interoperabilidad entre .NET crypto services y legacy apps

clock May 7, 2008 16:30 by author gabriel.oliva

Para todos los asistentes al taller de Enterprise Library:

Solo para pasarles esta liga que me encontre en code project por si alguno de ustedes necesita importar/exportar datos entre plataformas diferentes a .NET , como algunos de ustedes saben el uso de los servicios de criptografia en .NET son muy sencillos de usar, pero podrian necesitar intercambiar algunos datos entre plataformas con la finalidad de generar infrestructuras de 'single sign on' entre aplicaciones, espero que este articulo les sea de utlidad.

http://www.codeproject.com/KB/security/CryptoInteropKeys.aspx

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


NHibernate + NHbBusiness + Ingenious MVC

clock April 29, 2008 02:22 by author gabriel.oliva

En algunas ocasiones he posteado informacion relacionada con NHbiernate el cual puede ser usado como apoyo para crear las capas de Data Services y facilitar la manipulacion y traduccion de los objetos de una aplicacion y su base de datos, en esta ocasion adicionalmente me gustaria mostrar tambien una forma rapida y muy eficiente de crear algunos metodos de validacion y manipulacion de los objetos en la capa de negocios a traves de NhbBusiness que es una framework orientado a complementar las operaciones de NHibernate, NHbbusiness lo pueden encontrar en el sitio de codeplex y aunque no existen muchos ejemplos de como usar el framework les puedo asegurar que es completamente intuitivo y una vez que lo usen seguramente querran implementarlo en alguna de sus soluciones, adicionalmente el ejemplo que les hago llegar contiene una implementacion basica de un MVC llamado 'Ingenious' para una pequeña aplicacion de registro de usuarios.

Espero que este ejemplo les sea de utilidad, no duden en hacerme llegar sus comentarios y dudas acerca de este ejemplo.

 

Ingenious : http://www.theserverside.net/news/thread.tss?thread_id=40102 , http://sourceforge.net/projects/ingeniousmvc

NHibernate: http://www.hibernate.org/343.html , http://sourceforge.net/projects/nhibernate

NHbBusiness: http://www.codeplex.com/nhbbusiness

 

UserAccess_.zip (1.54 mb)

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Tips generales sobre arquitectura (1)

clock March 12, 2008 14:17 by author gabriel.oliva

El dia de hoy recibí un correo que considere importante compartir con ustedes pues durante algun tiempo he contestado este tipo de preguntas de manera personal lo cual creo que es un poco inadecuado cuando a través de blog puedo llegar a mas personas que pueden tener las mismas dudas.

Les comparto el mail y la respuesta en post subsecuentes:

Hola Gabriel, estuve viendo un video que hiciste sobre diseño de capas de acceso a datos y abusando de la confianza que diste para que te escribiéramos me he animado a hacerlo.

Soy un asiduo lector de artículos sobre arquitectura de sistemas, lastimosamente en mi trabajo no he tenido la oportunidad de poder definir y trabajar con una arquitectura de las que he leído en diferentes páginas Web, en estos momentos comienzo a  desarrollar una aplicación web y pues tengo un dilema de que arquitectura implementar, como te digo he leído muchos artículos al respecto pero como tu sabes la última palabra la tiene la experiencia, cosa que no he tenido, básicamente la aplicación web que voy a desarrollar contiene capturas de datos y la respectiva grabación en bases de datos, lo común, no tiene nada de raro, de pronto una que otra invocación de web services pero no mas. He planteado la siguiente arquitectura:

 

Interfaz de Usuario

Entidades

Fachada

Capa de Reglas del Negocio

Capa de Acceso a Datos

 

 

En estos momentos tengo los siguientes interrogantes:

  1. Excepciones: Según la teoría, el manejo de excepciones debe hacerse en la Fachada, hay otra teoría que dice que las excepciones deben subirse desde la capa donde se capturan hacia las capas superiores y de ser posible transformarlas en excepciones de negocio las cuales serán convertidas en la interfaz de usuario en un mensaje amigable para este. Según tengo entendido, el hecho de estar generando excepciones representa una carga importante en el rendimiento de la aplicación; entonces el interrogante es: Como debo manejar las excepciones?
  2. Transacciones: Cual sería la forma recomendable de manejar excepciones y en que capa?

 

 

Desde ya, muchas gracias y disculpas por el atrevimiento.

 

PD: Si tienes consejos o tips adicionales te agradecería me los dijeras.

 

Saludos.

 

Edward Angulo Franco

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


IT Builder - Fomentando la calidad en el desarrollo de software en México

clock March 12, 2008 00:12 by author gabriel.oliva

Estimado lector, durante los ultimos años ha existido un gran movimiento de empresas relacionadas a la creación de software en nuestro país, el cual ha estado orientado principalmente a la adopción de modelos y metodologías de desarrollo que mejoren la calidad del software que producimos a la par de hacernos mas eficientes en la administración de recursos, todo esto con el afán de ser mas competitivos en mercados nacionales y por supuesto en mercados de exportación, a lo largo de estos años han proliferado de manera significativa aquellos modelos orientados hacia la documentacion y a la forma de evaluar la madurez en los procesos, CMM y CMMI han sido el estandar recomendado y considerado en marcos de trabajo como RUP y MSF 3.0, mas alla de las metologías ágiles y de modelos de ultima generación como EssUP o MSF 4.0 for agile dev., los estandares orientados hacia la documentación de evidencias han probado ser el mejor acercamiento hacia la optimización y mejora en la calidad de la industria de software (por lo menos en nuestro país), es por eso que en México desde hace algunos años se le ha dado impulso a algo que en nuestros dias es ya a la norma MoProsoft.

IT Builder a llevado a cabo con éxito la implantación de modelos y metodologías para la mejora en el desarrollo de software usando diversas tendencias, sin embargo, dada la orientación del mercado Mexicano y Latinoamericano hemos desarrollado de manera conjunta con clientes y socios de negocios, estratégias de implementación de MoProsoft teniendo como prioridad el tiempo de adopción y el valor agregado a las areas de desarrollo, durante este año IT Builder México y TI Baja (uno de los cluster de TI mas importantes de nuestro país) implantarán Moprosoft en uno de los proyectos más ambiciosos relacionados con esta norma usando las plantillas de rápido despliegue las cuales han sido desarrolladas por IT Builder para lograr la adopción en tiempos record.

Noticia publicada en el boletín electrónico del CETYS

Para mas información: contacto@itbuilder.com.mx

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


How to fine tune your asp net 2.0 app - Part 2

clock August 22, 2007 23:14 by author gabriel.oliva

El primer paso para detectar la raiz del problema es identificar si proviene del manejo del view state de los web control que usamos, recordemos que esta propiedad se utiliza para mantener el estado (los caracteres, palabras, numeros etc. que ingresamos a nuestras cajas de texto por poner un ejemplo) entre invocaciones, esto es necesario debido a que como posiblemente sepa, el protocolo http esta basado en datagramas o paquetes que se envian a una maquina cliente determinada que si bien puede tener una referencia de session no mantiene una conexion permanente entre el cliente y el servidor, por tal motivo, la unica manera de recordar el contenido de nuestros inputs es atraves de esta 'memoria' de controles llamada view state. El problema con el view state se presenta cuando son tantos controles y tantas las cosas que estos tiene que recordar que simplemente la cadena que genera el view state llega a ser tan grande o mas que la propia pagina.

Existen algunos metodos para minimizar el impacto del view state, uno de ellos, el cual considero mas eficaz es el comprimir el view state, esto reduce significativamente el tamaño del stream enviado a los clientes pero implica sacrificar carga de procesamiento en el servidor, es decir, el servidor adicionalmente tendra que comprimir y administar en memoria el view state, puede hacer uso de esta tecnica cuando cuente con un servidor de gran capacidad.

Lo primero que tendriamos que hacer seria un objeto encargado de la compresion, en este caso lo llamaremos 'Compressor'

using System.IO;
using System.IO.Compression;

public static class Compressor {

  public static byte[] Compress(byte[] data)

  {
    MemoryStream output = new MemoryStream();
    GZipStream gzip = new GZipStream(output, CompressionMode.Compress, true);
    gzip.Write(data, 0, data.Length);
    gzip.Close();
    return output.ToArray();
  }

  public static byte[] Decompress(byte[] data)

{
    MemoryStream input = new MemoryStream();
    input.Write(data, 0, data.Length);
    input.Position = 0;
    GZipStream gzip = new GZipStream(input, CompressionMode.Decompress, true);
    MemoryStream output = new MemoryStream();
    byte[] buff = new byte[64];
    int read = -1;
    read = gzip.Read(buff, 0, buff.Length);
    while(read > 0) {
      output.Write(buff, 0, read);
      read = gzip.Read(buff, 0, buff.Length);
    }
    gzip.Close();
    return output.ToArray();
  }
}

 

Como podran notar, esta clase es muy simple, esta compuesta de 2 metodos estaticos uno para comprimir y otro para descomprimir, los cuales usaremos despues en nuestras paginas para 'invalidar' el comprotamiento por defecto de los metodos de persistencia de estado.

 

public partial class SomePage : System.Web.UI.Page
{

  protected override object LoadPageStateFromPersistenceMedium()
{
    string viewState = Request.Form["__VSTATE"];
    byte[] bytes = Convert.FromBase64String(viewState);
    bytes = Compressor.Decompress(bytes);
    LosFormatter formatter = new LosFormatter();
    return formatter.Deserialize(Convert.ToBase64String(bytes));
  }

  protected override void SavePageStateToPersistenceMedium(object viewState)
{
    LosFormatter formatter = new LosFormatter();
    StringWriter writer = new StringWriter();
    formatter.Serialize(writer, viewState);
    string viewStateString = writer.ToString();
    byte[] bytes = Convert.FromBase64String(viewStateString);
    bytes = Compressor.Compress(bytes);
    ClientScript.RegisterHiddenField("__VSTATE", Convert.ToBase64String(bytes));
  }
}

 

Ahora puede hacerlo mismo con cada pagina que necesite comprimir el view state, o mejor aun ... puede crear una clase base con estas implementaciones de compresion del view state y derivar las demas paginas de esta clase base.

Una nota final... gzip es el algoritmo de compresion que por defecto manejan navegadores convencionales como el Internet Explorer y Firefox, basado en esto continuaremos esta serie de post con un metodo de compresion un poco mas avanzado.

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Bilbao Al Invest 2006

clock July 28, 2007 12:11 by author gabriel.oliva

No habia tenido tiempo de compartir estas fotos con ustedes antes, asi que aqui les dejo esta liga de mi viaje a Bilbao del año pasado en donde tuve oportunidad de compartir experiencias con otros colegas y escuchar otros puntos de vista de la industria del software, esta vez con otro enfoque, esta por demas mencionar que fue una experiencia enriquecedora en todos los aspectos, la mas grata impresion que tuve fue el ver la inversion que el ESI y otras organizaciones han hecho para la creacion de parques industriales tecnologicos.

Bilbao Al Invest 2006 photos

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Search

Calendar

<<  January 2009  >>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

Archive

Tags

Categories


Blogroll

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2009

Sign in