Busqueda local

Loading

miércoles, 30 de marzo de 2011

RefreshMode en el EF

El EF es una de las herramientas más poderosas con las que he tenido que trabajar usando tecnologías de Microsoft, sus alcances son muy interesantes, nos ofrece innumerables funcionalidades y mecanismos; a tal grado que cada día podemos descubrir algo nuevo, algo que no sabíamos, pero también puede ser un dolor de cabeza cuando no sabemos por dónde empezar.
La mayor parte del tiempo, damos por sentado que la herramienta hará todo por nosotros y pocos somos lo que nos interesamos en saber como lo hace.

lunes, 28 de marzo de 2011

Facade Pattern

La primera vez que escuche la palabra Facade en una reunión donde se hablaba de sistemas, me pareció un concepto fuera de lugar o al menos que se usaba con la intensión de ser presuntuoso. Sobre todo porque la persona que lo estaba usando en la junta, no es una persona que se dedique a escribir código…al ser teórico, sabe términos, pero no siempre sabe aplicarlos en el momento adecuado. En fin, la situación termino con una búsqueda en internet.

jueves, 24 de marzo de 2011

Command Pattern

En programación no cabe duda, que podemos hacer las cosas de muchas maneras; cuando daba clase de programación, le permitía a mis alumnos presentar diferentes soluciones para el mismo problema. Sin embargo conforme van madurando el código debe ser más eficiente, mas escalable, más robusto. Esto requiere que antes de inventar la rueda, investiguemos a ver si no ha sido inventada aun.

miércoles, 23 de marzo de 2011

Ensamblados con Model Incrustado II

Después del post previo en el que explique cómo logre que funcionara en MVC un Model Incrustado en un DLL; tratamos de aplicar el mismo truco para otro proyecto, un Framework, que está formado de varias bibliotecas, cada una con su Model independiente incrustado, pero no funciono.

lunes, 21 de marzo de 2011

Ensamblados con Model incrustado

En este blog Hemos hablado de aplicaciones que usan un solo Model del Entity Framework. Sin embargo en la vida real, esto no es así de simple. Casi siempre los proyectos deben incluir bibliotecas, y estas pueden ser desarrolladas por varias personas, lo que ocasiona que cada proyecto pueda tener su propio Model.

domingo, 20 de marzo de 2011

MVC Security

Después de explicarles como se implementa el Membership  de haber hablado de OWASP  lo correcto es hablar de las formas en que podemos agregarle seguridad a nuestro sitio MVC. Si eres de aquellos que se han preguntado cuales serian las mejores practicas para implementar la seguridad usando este patrón, creo que este post te parecerá interesante.
Después del tiempo que le he dedicado creo que tengo un entendimiento de los proyectos MVC suficiente, para poder explicar como hacerlos; sin embargo el tema mas dedicado dentro de todo lo que aquí les h hablado esta relacionado con la seguridad. Un sitio web que no tenga el mínimo de protección, esta expuesto a ser hackeado solo por el gusto de hacerlo.

viernes, 18 de marzo de 2011

Patrón de estados?

Desde que empecé a codificar el ejemplo que acompaña a este post, he tratado de recordar algún proyecto importante donde no se requiriera el manejo de estados en algún punto del sistema. Lo cierto es que cuando debemos programar un escenario donde los estados de algún componente, deben ser controlados para poder determinar la lógica a seguir, siempre resulta complejo organizarlos y determinar la secuencia correcta. Sin embargo, lo más complejo no reside en determinar esa secuencia, sino en controlar que la secuencia se aplique adecuadamente, considerando sus desviaciones.

miércoles, 16 de marzo de 2011

Composite Pattern

Como ya hemos visto en post previos, usar patrones puede hacer nuestro código, más limpio, más eficiente. Hemos visto que al usar los patrones como plantillas predefinidas para nuestras clases, podemos realizar la tarea de desarrollo con más seguridad y en menor tiempo.
En los ejemplos que aquí se presentan se expone la situación para la cual se decidió usar dicho patrón, puesto que los patrones no pueden ser usados en todas las situaciones, mas ben es identificar en nuestro proyecto en donde aplica un patrón. Sobre todo porque es mejor idea usar algo que ya está probado, que empezar desde cero.

martes, 15 de marzo de 2011

Prototype Pattern

En los últimos post, he presentado ejemplos usando patrones creacionales, aun que son similares, cada uno tiene una razón diferente por la cual existe. Nuestro invitado de hoy es mi tercera alternativa para volver al mismo problema de crear páginas web. En esta ocasión el patrón Prototype, nos ofrece una aproximación diferente, donde el objetivo es evitarnos el proceso de crear la nueva instancia, ya que se emplea una sola instancia del objeto, a manera de prototipo, y a esta instancia se le realiza la clonación, y con algunos cambios, tendremos un nuevo objeto.

lunes, 14 de marzo de 2011

Builder Pattern

Este patrón pertenece al grupo de los creacionales, junto con el Factory y el Singleton, de los cuales hemos hablado en otros post. Podemos empezar por decir que si lo compramos con el Factory, podrían resultar muy parecidos, ya que ambos se concentran en el proceso de crear instancias de objetos, para que sean usadas por otros. Sin embargo el Factory se concentra en el QUE se está creando, mientras que el Builder se concentra en él COMO.

Clasificación de los Patrones

Desde hace algunas semanas he estado trabajando con patrones y he publicado algunos post donde hablo de ellos, incluso publique un post donde brevemente explico que son, lo puedes leer aquí.
Pero me falto hablar de cómo se clasifican, así que en este breve post voy a presentarles un breve resumen, de cómo se clasifican y cuales pertenecen a cada clasificación.
Algunos ya fueron ejemplificados en este Blog, porque ya los he usado en algún proyecto, y mi intensión es que en este Blog solo haya Post donde hable de código que sea resultado de mi experiencia personal.

domingo, 13 de marzo de 2011

Copiar Objetos

Antes de las clases, copiar una variable era tan simple como usar el signo de igual entre las dos variables, con lo cual el valor almacenado en la variable que se encontraba a la derecha del símbolo se le asignaba a la variable que se encuentra a la izquierda del símbolo. Todo era muy simple. A continuación comentare los mecanismos relacionados con la copia de objetos, a manera de preámbulo para un posterior Post, donde hablare del Patrón Prototype.
 

sábado, 12 de marzo de 2011

Random

Recientemente descubrí que lo que por mucho tiempo creí que era aleatorio, resulta no serlo. Así la clase Random, en realidad genera números pseudo-aleatorios, ya que en realidad usan una formula matemática, por lo que podría ser predecible, es algo que no me había afectado, y me había servidor en muchas situaciones; sin embargo en un proyecto reciente, no fue suficiente usar Random en .NET.
Probé desde lo más tradicional con la clase Random y el método Next hasta lo más moderno con LINQ, sin embargo mi problema no se solucionaba.
 

viernes, 11 de marzo de 2011

Sort

Dentro de mis estudios me han apasionado varios tópicos, algunos ya los he comentado en este Blog, pero hay uno que no he nombrado siquiera, sin embargo cuando me los presentaron resultaron ser un reto muy interesante.
El concepto parece sencillo, tanto que de forma ingenua podríamos intentar escribir un algoritmo innovador, algo que nadie haya descubierto, sin que tengamos las bases, de lo que ya existe.
Me refiero a los métodos de ordenamiento, hay muchos algoritmos que se han creado o han tenido popularidad en cierto momento, sin embargo, es bien cierto que no todos sirven para lo mismo. Así que no basta con saber implementar uno, hay que conocer los otros para estar preparado antes los retos de programación que debemos resolver.

miércoles, 9 de marzo de 2011

HTTP y ASP.NET (WebForms y MVC)

A través de los años he trabajado con las diferentes versiones de ASP que ha liberado Microsoft; cuando se introdujo .NET el cambio fue muy interesantes, sobre todo si tenias años de quejas en contra de las versiones anteriores y a partir de ahí, los cambios han ido cada vez más rápido. Cuando apareció MVC en el escenario, me pareció que todo lo que por tanto tiempo había usado para hacer sitios, ya no servía para nada. Sin embargo solo se trata de diferencias. Para poder entender las principales diferencia entre las WebForms y MVC, es necesario saber cómo funciona Internet.

martes, 8 de marzo de 2011

Membership

Dentro del ASP.NET podemos obtener una característica que representa uno de los procesos que siempre debemos desarrollar en cualquier aplicación: Membrecía. Así es, cuando desarrollamos un sitio web, debemos proveer algún mecanismo por medio del cual un aspirante a ser usuario pueda registrarse, este mecanismo debe ser seguro, y flexible.

lunes, 7 de marzo de 2011

Yield

Como programador, me resulta atractivo que un lenguaje ofrezca un mecanismo que representa un atajo, que por sí solo nos permita realizar alguna acción, que de otra forma sería más compleja de codificar.
Lo malo es cuando esa funcionalidad, existe en un lenguaje y en el otro no; y que al aprender a usarla en el que si la tiene, consideras que sería bueno tenerla en el otro. Este es el caso del Yield Return, existe en C# y no existe en VB.
 

viernes, 4 de marzo de 2011

Service Locator

Introducción

Cuando descubrí MVC en la plataforma ASP.NET, descubrí los patrones, fue cuando conocí a Martin Fowler. Quien a pulso y con mucho trabajo en pro de las metodologías, la arquitectura de software y los patrones, se ha convertido es su represéntate mundialmente reconocido; todo lo que dice sobre estos temas casi es ley. Al menos eso parece, ya que en todos los sitios donde he investigado, usan referencias a su sitio, lo citan como refuerzo de lo que dicen, incluso Microsoft.

jueves, 3 de marzo de 2011

Seguridad

owasp
Desde que empecé a escribir código para aplicaciones de escritorio, sentí fascinación por los mecanismos de seguridad, siempre me interesan los temas relacionados con Hackers; porque me resulta muy interesante saber que hicieron, aun que pocas veces se conocen los detalles de cómo lo hicieron.
Cuando descubrí el Internet y el desarrollo en ese entorno (que fue usando ASP y Cold Fusion) he sabido de toda clase de ataques que se implementan sobre sitios Web que se supone deberían ser seguros.

miércoles, 2 de marzo de 2011

ASP.NET Session

Lo primero que debo decir es que si nuestra aplicación debe estar en la WEB, entonces empezamos con un reto interesante. Puesto que la web no tiene estado, cada vez que solicitamos una página a un servidor, esta debe crearse, el protocolo que se emplea en Internet es el HTTP y este protocolo no permite conservar información entre pagina y pagina.

martes, 1 de marzo de 2011

DTO

Ayer mientras investigaba y escribía sobre los anti-patrones, me llamo la atención un que parecía referirse a los view models. Me refiero al Vagón Gitano, ya que en la descripción habla de un objeto cuya única funcionalidad es llevar datos de un lugar a otro, o sea su razón de ser consiste en existir para llevar información.