martes, diciembre 16, 2008

Oxite, el proyecto que termino quemandose solo


Hace algunos días se anuncio con mucho eco Oxite, un manejador de contenido Web desarrollado por Microsoft. El revuelo que causo en algunos lados era debido a que esta desarrollado con el ASP.NET MVC Framework y que esta acompañado de una licencia Open Source - Ms PL -.

Por otro lado en algunos sitios se llego a mencionar que ahora Microsoft quería competir contra WordPress.

Oxite nació, como se como una herramienta Open Source para el manejo de contenidos del sitio Mix Online de Microsoft, y según la pagina en Codeplex de Oxite, tiene dos objetivos principales:
1.- Ser un ejemplo de funcionalidad base de un blog
2.- Ser un ejemplo de una aplicación real desarrollada en ASP.NET MVC

Ante la publicidad que Microsoft le ha proporcionado a Oxite, sobre todo señalando que es una aplicación "real" de ASP.NET MVC, no era de extrañarse que ante la falta de aplicaciones guía para el desarrollo con ASP.NET MVC una horda de programadores "corrieran" a descargar el código fuente y empezar a utilizarlo como base para otras nuevas aplicaciones, del 5 de Diciembre a la fecha el código fuente se ha descargado 15,326 ocasiones.

Pero días después, ya que "humo" alrededor de Oxite se ha asentado le han empezado a caer las criticas al ser una aplicación pobremente realizada. El primer critico de la aplicación fue Rob Conery - Microsoft -, el menciona lo siguiente:

* La aplicación esta abierta a ataques, ya tiene vulnerabiliades XSS - Cross-site Scripting -, al omitir el uso de Html.Encode para desplegar texto en la pagina.

* En términos de arquitectura hace uso del patrón Repository, pero delegan al patrón la tarea de crear sus DataProviders en lugar de hacer uso de Inyección de Dependencias, permitiendo así que los DataProviders se inicialicen únicamente una vez de forma Singleton.

* Critica el uso de controladores como capa de negocio o "Fat Controllers"

* Recomienda separar y agrupar las acciones de los controladores por áreas funcionales.

* Evitar usar ViewData como cubeta donde "tirar" datos, ya que la ideología tanto de los controladores como de las vistas es ser "ligeras" como sea posible.

* Extraer la lógica de las vistas y moverla a "Helpers", evitando así el código espagueti de Oxite.

Por su lado Karl Seguin critica los siguientes puntos:
* La arquitectura esta sobre-diseñada

* La falta de pruebas de unidad, integración y funcionales, después de todo el Framework MVC favorece al uso de pruebas para asegurar el funcionamiento de la aplicación.

* Al igual que Rob, comenta sobre el abuso de los controladores, con lógica que no debería de estar ahí, y la falta de Inyección de dependencias para el manejo de las mismas.

* También menciona el hecho de las Vistas con código espagueti y el abuso de ViewData

* Otro punto importante es porque la aplicacion hace uso de Linq To SQL, si su futuro esta dudoso, ya que Microsoft favorece Linq To Entities.

* También critica la desaparición de la M del acrónimo MVC, indicando que la V se desarrollo de forma mediocre y la C completamente horrible.

* Para rematar hace una serie de observaciones sobre inconsistencias en el código donde parece que intervinieron varias personas, pero cada una aplico su estilo propio.

Chad Myers recomienda sobre Oxite:
* Oxite debe de ser retirado hasta que se arreglen por lo menos los problemas de seguridad

* Oxite no debe de ser visto como base o guia para desarrollar aplicaciones ASP.NET MVC

* Si quieres aprender ASP.NET MVC y no te es familiar el patrón MVC, alejate lo mas que puedas de Oxite.

Y para finalizar aqui hay un post de Scott Koon aka "lazycoder" donde compila una serie de posts criticando Oxite, pero tambien invita a la gente a aportar a Oxite, ya que al ser Open Source es posible que se pueda corregir.

Con esto queda demostrado que ASP.NET MVC no es un "Silver bullet" para el desarrollo de aplicaciones Web, y que cualquier herramienta/tecnologia puede ser abusada al extremo y sin piedad.

Si quieres conocer ASP.NET MVC te recomiendo ver el código fuente de CodeCampServer y SharpArchitecture, ambas proveen de una buena guía como usar ASP.NET MVC.

jueves, diciembre 11, 2008

Curso ASP.NET Upgrade información para asistir

 Ya esta disponible la información para asistir al curso ASP.NET Upgrade.

Como mencione en un post anterior, el curso iniciara el Sábado 10 de Enero, continuara el sabado 17 de Enero y finalizara el sabado 24 de Enero 2009 en las instalaciones de IT@Baja.

IT@Baja Clúster de TI de Baja California
Dirección:
Blvd. Díaz Ordaz, 4558-209,
Edificio Salomón Local 209,
Col. Las Palmas, Tijuana, B.C.
Tijuana, B.C. 22123

El costo del curso es de 500.00 pesos -pago único por los tres días - como cuota de recuperación, NO DEPOSITES ANTES DE CONFIRMAR TU LUGAR !.

Para confirmar sigue estos pasos:
1. Envía un mail a Gabriel Flores con la intención de apartar lugar en el curso
2. Se te responderá con un mail si aún hay cupo
3. Deposita tu cuota de recuperación en
Banamex
Cuenta de Cheques Sucursal 13 Cuenta 7692082
Nombre Gabriel Flores Romero
4. Envía un scan de la ficha de depósito a Gabriel Flores por mail
5. Te esperamos en las instalaciones del Clúster

Temario del curso esta disponible en la pagina de la Comunidad Tijuana.NET.