Thursday, October 09, 2008

This configuration section cannot be used

This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".

Este mensaje nos muestra el IIS 7 del Windows Vista debido a que NO se han instalado todos los componentes del lado del servidor necesario para resolver ASP.NET.

Windows Vista no activa estos componentes en la instalacion por defecto del IIS.

Para poder visualizar aplicativos ASP.NET sobre una PC con Windows Vista, es importante que tus componentes activados se parezcan a los que se muestran en la imagen.



Windows Vista esta orientado a colocar mas trabas para realizar ciertas tareas que en las versiones anteriores de Windows NO se mostraban.

Una caracteristica de seguridad.

Linq support server-side data paging

Cuando estas desarrolando software con Visual Studio 2008 para utilizar todos los beneficios de usar Linq, te encontraras con este mensaje de error, al intentar enlazar un origen de datos Enumerable.SelectIterator sobre un GridView:

The data source does not support server-side data paging.

Apesar de haber configurado las propiedades AllowPaging="true" del GridView, este mensaje te saca de las casillas y puedes equivocadamente sospechar que las expresiones Linq NO pueden enlazarse a un simple GridView.

var q = from item in Clients select item;
this._grid.DataSource = q;

Donde la variable Clients es una coleccion de datos, cualesquiera.

Sin embargo, al enlazar el objeto de estructura de datos inferida, es decir: q, sobre el DataSource del GridView, debe utlizar el metodo ToList()

this._grid.DataSource = q.ToList();

De esta manera superaras un inconveniente tecnico, que antes NO se habia experimentado, es decir en las versiones anteriores.

Linq brinda una serie de beneficios para poder trabajar con colecciones de objetos en el mundo .NET de una manera similar a SQL, sin que esto implique necesariamente una operacion hacia la Base de Datos.

Naturalmente, entre los pro y contra encontra algunas dificultades tecnicas que se deben superar.

Tuesday, October 07, 2008

SQL Server 2005 Setup Log Files

There was an unexpected failure during the setup wizard. You may review the setup logs and/or click the help button for more information.

Este es uno de los mensajes que puedes recibir cuando el proceso de instalacion del Microsoft SQL Server 2005 Standard Edition haya fracasado.

Evidentemente tienes que revisar los archivos de LOG que haya generado el Microsoft SQL Server 2005 Setup durante su ejecucion.

Estos archivos se encuentran en la carpeta:

c:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files\

Veras alli una lista de archivos de texto con extension .log para que puedan ser revisados y verifiques, cual fue el motivo para el fracaso del proceso de instalacion del Microsoft SQL Server 2005.

Monday, October 06, 2008

Visual Studio 2010 y Rosario

Microsoft anuncio que Visual Studio 2010 y .NET Framework 4.0 seran los proximos productos para el desarrollo de aplicaciones y su respectiva plataforma.

NO pasaron solo 10 meses desde que las versiones anteriores salieron al mercado.

Estamos jodidos, cada vez es mas facil programar. NO hay dudas. Un chiquillo de primero de secundaria podria sentarse al frente del Visual Studio .NET 2010 y construir una sencilla interfaz de usuario y luego darle una trivial funcionalidad, sin mayores inconvenientes.

Con mayor razon, si tienes algunos años mas de experiencia.

Visual Studio Team System VSTS 2010 comunmente llamado Rosario, esta orientado a ser el siguiente pilar para el desarrollo de software.

Al lado de Windows Comunication Fundation WCF, Windows Presentation Fundation WPF, y Windows Workflow WF, el proximo Visual Studio Team System 2010 trae consigo ALM Application Life-cycle Management, una especia de gestor de ciclo de vida del software.

En fin, NO hay dudas que al coger Visual Studio 2010 hace que las cosas sean mas sencillas de lo que eran ya con la version anterior, el Visual Studio 2008.

Venga Rosario!

Tuesday, September 16, 2008

CSS tablas filas estilos TBODY

Las hojas de estilos en cascada, popularmente conocidos como Cascade Stylesheet, es una de las cosas maravillosas que nos brindaron los browsers -hace unos años atras- para establecer la apariencia de nuestras vistas al usuario en los aplicativos web que desarrollasemos, reduciendo el codigo redundante del formato entremezclado con el HTML.

NO hay duda, las hojas de estilos en cascada o CSS, nos salvaron la vida.

Llegaron para quedarse. Para brindarnos facilidad de uso y ahorro de energia en la construccion de nuestras vistas.

Sin embargo, aquellos que usabamos las tablas para diseñar el layout de nuestras paginas vivimos en carne propia que los DIV brindaban un manejo mas sencillo para la configuracion del layout de nuestras vistas orientadas al usuario.

Las tablas cedieron terreno para dejarle el trabajo del layout a los DIV.

Algunos mencionaban que el performance de pintar: TABLE, TR, TD y demas era mucho mas bajo que al usar los DIV para hacer algo relativamente similar.

Pero entre otros tantos mitos, uno quedo muy claro, usar CSS sobre tablas se complicaba mas de lo debido.

¿A que se debia esto? ¿Acaso NO era sencillo establecer una clase TABLE > TR para aplicar un estilo en particular a dicha combinacion de elementos?

Pues, alli radica uno de los problemas.

El operador > : mayor que, implica que la combinacion se establece entre el ascendente y el descendiente inmediato, sin embargo NO era comunmente usado.

En comparacion al operador tacito, TABLE TR, que aplicaba el estilo a todos los descendientes TR, de primer o enesimo nivel, con respecto al elemento TABLE.

Lo mejor es usar combinaciones de TABLE > TR para aplicar estilos a los elementos internos a un TABLE. Por que de esa manera NO pierdes el control de las cosas que estas desarrollando sobre la vista.

Sin embargo, dicha combinacion nunca funcionaba. ¿Que es lo que pasaba?

Bueno aqui viene la parte mas triste de todo esto embrollo.

Sucede pues, que el elemento TBODY es implicito en la construccion jerarquica de los TABLE, TR y TD.

Es decir, a pesar que explicitamente NO colocases el TBODY luego del TABLE y antes del TR, dicho elemento -el TBODY- se encontraba alli.

Entonces, necesariamente debias establecer tus estilos para las combinaciones TABLE > TBODY > TR si querias aplicar algun estilo para las filas inmediatamente inferiores de un TABLE en particular.

Pequeño detalle ¿cierto? Ahora todo encaja ¿verdad?

Ante dicho truquillo, poco difundido, es que las tablas se alejaron del diseño de los layouts para dejar ese trabajo a los DIV usando propiedades float y clear, segun sea el caso.

Las tablas solo seria usadas para mostrar informacion tabularmente.

Las clasicas grillas de datos y demas relativamente similares.

Monday, August 25, 2008

Bottom Up para desarrollar software

La perspectiva Bottom Up para desarrollar software provoca que una de tus primera tareas sea modelar la estructura logica de la Base de Datos que soportara el producto de software que vayas a construir.

Muchas veces se cae en la simpleza de mencionarse que si la base de datos esta bien modelada cualquier cambio posterior NO tendra un impacto muy grave.

Los que estamos involucrados en el mundo del desarrollo de software con conectividad a Base de Datos, hemos modelado una estructura de datos, si o si, y hemos visto hasta Base de Datos en produccion, sin primary keys, constraints, relations ships, sin nada.

Con campos redundantes de informacion de una tabla en otra, entre quienes existen solo algun tipo de relacion.

Entonces, ¿hasta que punto es valido rasgarse las vestiduras para aferrarse a la fragil idea de que la base de datos debe estar MUY bien modelada?

En la fase de la contruccion del software, aquella en la que los developers empiezan su tarea, desarrollan las vistas del usuario y demas, por alguna u otra circunstancia se haran necesarios diferentes cambios en la estructura de datos original de la base de datos que hayas modelado.

NO existe el modelamiento preciso y exacto que resuelva todas las incidencias posteriores, sin requerirse cambios en los objetos de la base de datos: tablas, campos, relaciones, etc.

Si aun puesto en produccion, el software al ser usado por un mayor volumen de usuarios, brotaran incidencias que traeran como consecuencias cambios en las vistas y muchas veces -algunos de esos cambios- requeriran cambios en la estructura de datos original, pues con mayor razon que en la fase de la construccion del software seamos testigos presenciales y activos de esos cambios.

La Base de Datos NO tendria por que ser necesariamente la mayor de las prioridades, pues las vistas del usuario NO interacturan directamente con dicha estructura.

La capa de negocio o Business Layer adquiere mayor relevancia.

Friday, August 22, 2008

Clases parciales con Visual Source Safe

Una de las tantas aplicaciones que puedes darle a las clases parciales esta directamente asociada con el uso del Visual Source Safe 2005.

Cuando tienes algunos developers en tu equipo de trabajo, dedicados a la construccion de un producto de software y se apoyan en Visual Source Safe para la gestion y cuidado del codigo fuente, sucede una necesidad.

Acceder a un archivo .cs en particular para agregarle alguna funcionalidad o aplicar un pequeño refactory en el mismo.

Sea como fuese, es necesario poder acceder a un mismo archivo fisico a la vez.

Justamente el Visual Source Safe existe para todo lo contrario. Impedir el acceso de escritura a un mismo archivo fisico, a la vez.

Ante el requerimiento de poder hacerlo y la funcionalidad de la herramienta que te lo impide, utilizar Clases Parciales o Partial Classes es una solucion al problema.

Al utilizar mas de un archivo fisico para definir una entidad logica, solo te quedara la tarea de agrupar ciertas funcionalidades en el primero de los archivos y otras funcionalidades en los archivos fisicos restantes.

Puedes utilizar tantos archivos fisicos requieras para la definicion de tu entidad logica, la clase.

Wednesday, August 20, 2008

Web Client Software Factory

Una propuesta para desarrollo de software en modalidad web con la propuesta Model View Presenter MVP, es el llamado Web Client Software Factory.

Este interesante add-on para el Visual Studio .NET 2005 propone una forma peculiar de desarrollar software para ASP.NET.

Web Cliente Software Factory se monta sobre el Composite UI Application Block.

Esto es una ladilla pues cuando te encuentres desarrollado alguna vista en particular te encontraras con un error mas deconocido que el anterior.

Unos errores realmente espantosos.

Ello es consecuencia directa de utilizar el Composite UI Application Block como base para el Web Client Software Factory.

Por otro lado, el Web Cliente Software Factory propone un marco para desarrollo de una aplicacion ASP.NET en lo correspondiente a la capa del usuario. El manejo de las vistas a traves de un presenter.

Escucharas sobre Presenters, Controllers y Views a diestra y siniestra.

Sin embargo, debes y tienes que encontrar una forma creativa de fusionar la propuesta del Web Client Software Factory con tu capa de negocio y posteriormente con tu capa de acceso a datos.

De una forma u otra, sentiras en carne propia que requieres utilizar mas tiempo -que el que utilizabas antes- para construir un aplicativo cualesquiera bajo la propuesta del Web Client Software Factory.

Los Views solo deberian gestionar los eventos de los controles que estan disponibles al usuario.

Los Presenters son los encargados a establecer la logica de presentacion de la informacion en los Views. Pues los Presenters tiene una referencia a los Views.

Esto podria sonar relativamente extraño, pero es asi. Pues uno espera que sea el View que tenga una referencia al Presenter, sin embargo la referencia es a la inversa y eso ayuda a poder utilizar los elementos definidos en los Views desde el Presenter.

Los Controllers hacen justamente eso, controllar la forma en que los Presenters han de interactuar.

Sin embargo, queda en un limbo como hacer para que tu Business Layer se integre facilmente con la propuesta del Web Client Software Factory.

Cada quien tiene su propio criterio y encontraras soluciones buenas y otras NO tan buenas.

En el intento esta la respuesta. Y en las pruebas de stress la mejor solucion.

Monday, August 18, 2008

Tipos anonimos en C# 3.0

Una de las cosas que me fascinan del C# 3.0 es el uso de tipo anonimos.

Las tipos anonimos o anonymous types, tambien conocidos como clases anonimas, brindan una posibilidad interesante que nos hubiese gustado poder disfrutar en la version C# 2.0 del Visual Studio .NET 2005.

Una de las primeras aplicaciones de los tipos anonimos lo encontramos en el desuso de los RowDataBound del GridView al mostrar informacion de vistas relativamente sencillas.

Gracias a que existen los tipos anonimos, puedes entregar un lista de elementos cuya estrutura NO se encuentra definida previamente.

Muchas veces, al usar un modelo de objetos basado en Collections and Business Entities, se hacia necesario utilizar el RowDataBound del GridView para poder enlazar los controles definidos en los TemplateColumn -que hayas diseñado en el GridView- con el dato que deseas.

Por ejemplo, si tenias un collection de Clientes y tienes una propiedad para cada cliente llamada TipoCliente.

Evidentemente NO hibas a enlazar en una columna del GridView solo el ID del TipoCliente.

Era requerido por el usuario final, mostrar la descripcion del TipoCliente en la grilla de datos.

Ese tipico escenario, era motivo para utilizar el RowDataBound del GridView, con la intencion de enlazar el Label que habias definido en el TemplateColumn con el dato que se encontraba en ICliente.TipoCliente.Descripcion que habias establecido segun el modelo de objetos a nivel de la capa de negocio del producto de software que te encontrabas construyendo.

Gracias a las clases anonimas y su facil uso, hemos dejado de usar los RowDataBound del GridView en algunos tipicos escenarios.

Esto ayuda mucho en la mejora del tiempo para el desarrollo del software.

Al poder definir un collection de tipos anonimos de una forma relativamente similar a: new { item.Entity.ID, item.Entity.Nombre, item.TipoCliente.Descripcion }; donde item es un objeto del tipo ICliente y naturalmente la clase Cliente implementa la interfaz ICliente, todo se hace mas sencillo y menos trabajoso para el developer.

Los tipos anonimos han logrado facilitarnos la vida, como NO tienes idea.

Thursday, August 07, 2008

Partial Class en Visual Studio .NET

Una de las mejoras del C# 2.0 son las Partial Class o clases parciales.

Partial Class permite definir una misma clase y sus miembros en archivos .cs distintos.

Una de sus primeras aplicaciones lo encontramos en los .designer de las ASPx web pages.

Pues en las versiones anteriores del Visual Studio .NET previas al 2005 los elementos definidos en el diseñador de las paginas ASPx eran plasmados en un solo archivo aspx.cs.

Lo cual se le hacia muy complicado gestionar al Visual Studio .NET 2002 y 2003, por ejemplo.

Hoy esto ha sido superado. Facilitando el manejo del designer y la estabilidad del Visual Studio .NET 2005 y con mayor razon en el Visual Studio .NET 2008.

Usar las Partial Class es un primer ejemplo del Divide y Venceras.