El poder del código solo es completo, si tenemos el conocimiento de como usarlo.
Busqueda local
lunes, 14 de noviembre de 2011
MVP en ASP.NET usando Entity Framework (3 de 3)
viernes, 11 de noviembre de 2011
MVP en ASP.NET usando Entity Framework (2 de 3)
jueves, 10 de noviembre de 2011
MVP en ASP.NET usando Entity Framework (1 de 3)
lunes, 7 de noviembre de 2011
Capas con Entidades relacionadas (3 de 3 )
Según Wikipedia, una API, es una interface programable de una aplicación, es un conjunto de reglas y especificaciones que facilitan la interacción con estas. Este tipo de interfaces nos permiten ofrecer la solución que lleva a cabo nuestra aplicación, para que pueda ser usada por otras aplicaciones, de una manera sencilla.
Lo que estamos haciendo al codificar nuestra aplicación usando capas para colocarlas en ASP, nos coloca en una interesante posición con respecto a las APIs; al lograr que nuestras capas no sean cohesivas, podemos prepararnos para tener nuestra propia API.
viernes, 4 de noviembre de 2011
Capas con Entidades relacionadas (2 de 3)
Esta es la segunda parte del artículo donde se ejemplifica como usar la arquitectura de capas con entidades relacionadas.
Ya hemos presentado en el articulo previo la capa del doman Model, aun que aun debe ser modificada para incluir todos los controles que se requerirán por los cambios que introduciremos; además en esta segunda parte vamos a terminar con las capas superiores de este modelo.
martes, 1 de noviembre de 2011
Capas con entidades relacionadas (1 de 3)
lunes, 31 de octubre de 2011
Ejemplo ASP.NET en capas (3 de 3)
viernes, 28 de octubre de 2011
Ejemplo ASP.NET en capas (2 de 3)
Su responsabilidad incluye todo aquello que se requiera para trasladar los datos en ambos sentidos, incluso las conversiones entre una vista y otra…
jueves, 27 de octubre de 2011
Ejemplo ASP.NET en capas (1 de 3)
miércoles, 26 de octubre de 2011
ASP.NET sobre capas
La solución que ofrece Microsoft al problema del código mezclado es el Code Behind. Una forma al parecer simple de separar el código HTML del código VB o C#, en un archivo aparte.
Este archivo aparte contiene código que responde a los eventos que se disparan en la interface, y al final termina siendo una forma disfrazada de SMART UI, debemos romper ese vicio….
martes, 25 de octubre de 2011
Como determinar que patrón usar.
Conocerlos y haberlos usado en alguna ocasión o por ejemplos, no es suficiente para poder determinar cuál sería el patrón que mejor se adapta a nuestro problema, incluso podría no ser necesario usar alguno.
Según mi propia experiencia puedo darles algunas ideas…
lunes, 24 de octubre de 2011
Anti patrón Smart UI.
Quien no ha escrito una aplicación urgente agregando controles a una página o formulario y por la facilidad que nos ofrecen las herramientas de desarrollo como Visual Studio, agregamos código a los eventos en la misma interface, después de todo es algo rápido y no va a servir más que para esta vez.
Además si lo podemos hacer, es porque la herramienta lo permite, entonces no debe ser mal, no? Pues no es así, es una mala práctica que no debemos repetir…
martes, 11 de octubre de 2011
Andamios?
En la versión anterior de MVC de Microsoft, la 2.0 encontré en repetidas ocasiones la palabra Scaffolding. La traducción literal es ANDAMIO, a pesar que investigue sobre ella, la tecnología en ese momento era más limitada.
En MVC 2 podemos crear automáticamente los Controllers y las Vistas con un simple clic en el lugar apropiado. En la nueva versión MVC 3 los programadores han ido mas allá, permitiéndonos crear de forma automática el código del cual podemos partir.
Si la versión anterior me pareció un gran avance, esta nueva versión es mucho mejor.
jueves, 19 de mayo de 2011
DisposeCurrent
Lo cierto es que no podemos predecir en qué momento va a pasar a nuestra puerta a recoger la basura. Así mismo el Recolector no podrá realizar su trabajo adecuadamente si le ponemos una cadena y un candado a nuestro bote de basura, no creen?
martes, 12 de abril de 2011
Image Handler (MVC y WebForms)
lunes, 11 de abril de 2011
Que tanto debo documentar mi código?
jueves, 7 de abril de 2011
Diferentes objetos una sola colección
martes, 5 de abril de 2011
DropDownList en MVC
viernes, 1 de abril de 2011
Validación
miércoles, 30 de marzo de 2011
RefreshMode en el EF
lunes, 28 de marzo de 2011
Facade Pattern
jueves, 24 de marzo de 2011
Command Pattern
miércoles, 23 de marzo de 2011
Ensamblados con Model Incrustado II
lunes, 21 de marzo de 2011
Ensamblados con Model incrustado
domingo, 20 de marzo de 2011
MVC Security
viernes, 18 de marzo de 2011
Patrón de estados?
miércoles, 16 de marzo de 2011
Composite Pattern
martes, 15 de marzo de 2011
Prototype Pattern
lunes, 14 de marzo de 2011
Builder Pattern
Clasificación de los Patrones
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
sábado, 12 de marzo de 2011
Random
viernes, 11 de marzo de 2011
Sort
miércoles, 9 de marzo de 2011
HTTP y ASP.NET (WebForms y MVC)
martes, 8 de marzo de 2011
Membership
lunes, 7 de marzo de 2011
Yield
viernes, 4 de marzo de 2011
Service Locator
Introducción
jueves, 3 de marzo de 2011
Seguridad
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
martes, 1 de marzo de 2011
DTO
lunes, 28 de febrero de 2011
Modificadores de Clase
Anti-Patterns
viernes, 25 de febrero de 2011
Cuando usar Throw new Exception
jueves, 24 de febrero de 2011
Dilema EF o SP
En este punto es necesario hacer algunos comentarios en relación con la pregunta más compleja que me han hecho sobre el uso del EF.
Programar usando EF, Es mejor que usar Store Procedures con DataSets?
EF Query
EF Connection String
miércoles, 23 de febrero de 2011
Iterator Pattern I
Tenía una pseudo clase Ticket, que internamente tenía una colección de Conceptos. A través del la clase Ticket exponíamos métodos para agregar conceptos a esta colección o eliminarlos, o recorrerlos para realizar cálculos, etc.
martes, 22 de febrero de 2011
Custom Validation Rules
Manejo de Errores
lunes, 21 de febrero de 2011
Enums
domingo, 20 de febrero de 2011
User Experience
sábado, 19 de febrero de 2011
Factory Pattern
Work Flow
viernes, 18 de febrero de 2011
n-Capas
Buenas prácticas
Patrones de diseño de software.
LINQ
Así que vamos por partes.
jueves, 17 de febrero de 2011
Dependency Injection
Por qué?
Favorece la implementación de clases que no son cohesivas, privilegia el código reusable, y libera a nuestro software del paradigma de las dependencias que muchas veces le impiden evolucionar. Por medio de este, podemos crear piezas de código para usar en nuestro software, y cuya arquitectura une los componentes, en vez de que los componentes se liguen a sí mismos.
martes, 15 de febrero de 2011
View Engine
Encontré algunos ejemplos muy interesantes donde el programador sustituyo por completo llamado FlickrExplorer (http://flickrxplorer.codeplex.com/) una excelente pieza de código, aun que fue creada en MVC 1.0 puede ser abierta en VS 2010 sin ningún problema.
Extensibility en MVC
MVC 3 (preview)
Entre la versión 1 y 2 hubo avances significativos, en pro de simplificar el código que era necesario escribir en la versión 1. En la versión 2, resulto más estructurado y simple llevar a cabo alguna tarea, sin que sea necesario dar muchas vueltas. Los patrones y los principios de Diseño, se pueden detectar en todo lo que hacemos.
lunes, 14 de febrero de 2011
Métodos de Extensión
Son un tipo especial de método que es llamado como si fuera parte de la clase instanciada del tipo para el cual fue creado el método de extensión. Los métodos extendidos más famosos los podemos encontrar en LINQ, y le añaden funcionalidad extra a IEnumerable y a IEnumerable<T>.
Estos métodos los podemos ver cuando estemos codificando en el Intellisense después del punto.
Generics
El principal beneficio es la posibilidad de reutilizar el código, incluso con diferentes tipos de datos, todo tipo que soporte el compilador puede usar el código, incluso tipos de datos que no existan en este momento.
Entendiendo las Lambdas
Una expresión Lambda tiene la habilidad de manejar eventos en la misma línea de codigo, asignando un bloque de código directamente a un evento usando métodos anónimos. Las lambdas son una forma muy concisa de crear métodos anónimos.
domingo, 13 de febrero de 2011
Flujo de trabajo al codificar
viernes, 11 de febrero de 2011
Buddy Class
Patrón de Repositorio y Patrón de Unidad de trabajo.
Con el paso de los años dentro de este medio, he visto muchas formas de hacer lo mismo, y siempre he tratado de usar la más recomendada o probada. Hace algún tiempo, escuche por primera vez la palabra PATRON al referirse a una forma probada de hacer las cosas.
Entity Framework 4.0
Vamos a comentar algunas, sin que se entienda que son las más importantes:
jueves, 10 de febrero de 2011
Entidades
miércoles, 2 de febrero de 2011
Entendiendo los Helpers
- Html.ActionLink()
- Html.BeginForm()
- Html.CheckBox()
- Html.DropDownList()
- Html.EndForm()
- Html.Hidden()
- Html.ListBox()
- Html.Password()
- Html.RadioButton()
- Html.TextArea()
- Html.TextBox()
sábado, 22 de enero de 2011
Modelo de validación
Nos ofrece un mecanismo por medio del cual podemos usar las DataAnnotations, que son reglas de validación declarativas que se pueden aplicar a propiedades y objetos.
La arquitectura nos permite usar incluso nuestro propio motor de validaciones, o implementar otros de terceros.
martes, 18 de enero de 2011
View Models
Desde mi muy particular punto de vista un ViewModel es una forma de organizar los datos que pertenecen a un modelo para que puedan ser presentados sin tener que exponer la entidad, incluso aun que dicha entidad no exista en la base de datos.
En nuestro Blog, un ViewModel es una clase especial que se crea para enviar los datos al view y que le permite al Controler realizar un automatic binding al momento de recibir la respuesta del usuario, a través del envió de la información.
Reglas de Validación y Reglas de negocio
Las reglas de validación son partes reusables de lógica, que llevan a cabo dicha validación sobre una entidad; misma que puede variar entre validación de integridad hasta validación de estado y cuya meta es realizar una validación sobre la entidad antes que alguna acción sea realizada con esta entidad.
domingo, 16 de enero de 2011
Validación de DATOS en el MODEL
No todo está perdido, hay una forma de extender las clases. En .NET podemos dividir una clase en diferentes archivos físicos usando la declaración PARTIAL . Las clases para las entidades dentro del MODEL creado por el ENTITY FRAMEWORK (EF) son parciales. Esto nos da la posibilidad de crear un archivo nuestro donde podemos crear propiedades que no existan a nivel de la tabla; y así tener propiedades de la clase que no requieren está en la base de datos.
Si estamos usando el EF es necesario crear Clases Meta Data, y aplicarle a esta clase las validaciones requeridas.
Como se crea un VIEW?
Acceso a Datos
sábado, 15 de enero de 2011
Controllers
Que es un Controller?
El controler es el responsable del flujo de la aplicación. Es el que recibe la solicitud para realizar alguna acción y es el que genera la respuesta adecuada. El controller es un tipo de clase especial que hereda del System.Web.Mvc.Controller. Los métodos que expone esta clase se denominan acciones. Y las respuestas pueden ser Views, Archivos, o Re direccionar a otro controler, etc.Expresiones Lambdas
Las expresiones lambda se utilizan en consultas de LINQ basadas en métodos.
CRUD
C.- Create o crear.
R.- Read o Leer (Consulta).
U.- Update o Actualizar.
D.- Delete o Borrar.
Contexto
Que necesito para acceder al Model?
Desde el punto de vista de MVC el model se encuantra en el contexto del usuario que este ejecutando la aplicación. Por lo que acceder a él debe ser bajo algún mecanismo que nos permita garantizar que dicho contexto sea el mismo sin importar desde que repositorio estemos realizando el acceso.Esto se debe a necesidad de asegurarnos que las transacciones automáticas que nos ofrece el Entity framework mantengan su integridad.
LINQ
Que es LINQ
Sin las siglas de las palabras en ingles: Language Integrated Query o lenguaje integrado de consulta.Es un proyecto de Microsoft que agrega consultas nativas semejantes a las de SQL a los lenguajes de la plataforma .NET, inicialmente a los lenguajes Visual Basic .NET y C#.
LINQ define operadores de consulta estándar que permiten a lenguajes habilitados con LINQ filtrar, enumerar y crear proyecciones de varios tipos de colecciones usando la misma sintaxis. Tales colecciones pueden incluir arreglos , clases enumerables, XML, conjuntos de datos desde bases de datos relacionales y orígenes de datos de terceros.
Repositorio
Genéricos
El uso de los genéricos es una de las más poderosas implementaciones del .NET, surgió en la versión 2 del Framework y nos permite parametrizar el tipo de que almacenan y manipulan, las clases, las estructuras, las interfaces, los delegados, y los métodosSi a una interface le agregamos el uso de Genéricos, el código se convierte en algo más poderoso, ya que podemos definir interfaces que no requieren que se establezca el tipo de los objetos en tiempo de diseño o codificación. Con el uso de los Genéricos, incluso el tipo de la clase que puede ser usado en la interface en tiempo de ejecución. Lo único que debemos hacer es cambiar el nombre de nuestra entidad, por la letra T mayúscula.
Interfaces
El concepto de clases abstractas e interfaces puede ser un poco confuso para los principiantes en la programación orientada a objetos ya que una clase abstracta sin ninguna implementación se ve cómo una interface, sin embargo existen muchas diferencias y similitudes entre ellas.
viernes, 14 de enero de 2011
Como agregar un modelo: Entity Fremework
Para que este tutorial se pueda realizar deben tener instalado el SQL, 2005 o 2008 y ejecutándose en el equipo. Además deben tener una base de datos para usarla de ejemplo.
Como crear el primer proyecto.
Por donde comenzar?
Cuando me veo en la necesidad de aprender una nueva tecnología, siempre empiezo por obtener un libro y el código de un ejemplo. La mejor forma de verificar lo que estamos leyendo y de validar el código que estemos escribiendo es por medio de la comparación.
Para aprender MVC en la primera versión encontré el sitio de Scott Guthrie llamado Nerd Dinner, en este sitio podemos ver la tecnología en ejecución. Además se puede conseguir el código fuente y podemos descargar el libro donde se explica lo necesario para poder entenderla y dar nuestros primeros pasos.
Hoy en día la versión 1.0 de MVC ya paso a la historia, sin embargo es un buen comienzo. El código de la versión 2 lo podemos obtener de esta dirección: http://nerddinner.codeplex.com/releases/view/45647
La aplicación podemos verla en esta dirección: http://nerddinner.com/
El libro podemos obtenerlo en esta dirección: http://www.wrox.com/WileyCDA/Section/id-321793.html
Es una aplicación muy interesante donde podemos aprender los secretos de la tecnología, podemos conocer los elementos, como se codifica, podemos seguirla paso a paso y de esa forma avanzar con la confianza suficiente para poder crear nuestro propio sitio.
Suerte.