Proyecto Agente Salvavidas de Mascotas – ASM OpenSource

Hola a todos.

Como lo había comentado hace un par de semanas atrás en la página de Facebook. Quiero y deseo crear una aplicación web para gestionar el proceso de publicación y adopción de mascotas. Será un proyecto de código abierto y le he puesto por nombre «ASM – Agente Salvavidas de Mascotas». La idea principal es crear una comunidad de personas dispuestas a salvar y mejorar la calidad de vida de mascotas abandonadas en las calles o puestas en adopción, ofreciéndoles esta herramienta para facilitar y gestionar el proceso de encontrarles un hogar.

00001

¿Quieres ser parte del proyecto?

El proyecto estará escrito usando tecnología Microsoft .NET con C# 6.0 como lenguaje de programación, NET Framework 4.6.1, inicialmente con ASP.NET Web API como Framework de Servicios, etc.

He creado el repositorio en GitHub con la solución en blanco.

Características:

  • Gestionar Mascotas para Adopción
  • Gestionar Candidados de Adopción de Mascotas
  • Gestionar Estados de Publicación de Mascotas
  • Arquitectura del proyecto Domain Driven Design
  • Patrones de diseño Unidad de Trabajo, Repositorio, Inversión de Control e Inyección de Dependencias, Dtos, etc.
  • Autenticación Web API 2 OAuth Bearer Tokens
  • API REST bajo ASP.NET Web API 2
  • Entity Framework con Code First
  • Seguridad de Usuarios con ASP.NET Identity (Por definir)
  • Implementación de Pruebas Unitarias
  • Repositorio de Codigo GitHub

Como pueden ver, inicialmente el proyecto será creado como servicio usando ASP.NET Web API como Back-End. Espero que sea un proyecto de utilidad y sirva como base para futuros proyectos.

00002

En los próximos días estaré compartiendo y actualizando las primeras actividades a desarrollar en el proyecto en el Tablero de trabajo de GitHub

De igual manera, si encuentras errores en el proyecto, o tienes algunos comentarios / sugerencias puedes enviarlas al área de Issues de GitHub, o al correo: uialberto@outlook.com

Saludos y hasta pronto!

Objetos POCO, DTO – Entity Framework

Buenas mis amigos.

Hace ya varios días que vengo familiarizándome con la herramienta de Entity Framework. Cada día me encuentro con nuevos términos,  definiciones y nuevas tecnologías. Por lo que he decidido comenzar a tomar apuntes de todos ellos que se me presenten de ahora en adelante.

POCO – Plain Old CLR Object

Son las siglas de Plain Old C# Object, y se refieren a «clases simples» que no dependen de ninguna Framework. Es un término derivado del concepto del mundo Java: POJO. El término POCO se utiliza para contrastar un objeto «estándar» o simple de un objeto que está diseñado para ser utilizado con un complicado Framework de objetos, tal como un ORM, o bien para diferenciarlo de un objeto COM.

DTO – Data Transfer Object

Se refiere a Data Transfer Objects y es un objeto que por definición se envía y recibe dentro de un servicio (WS, WCF).  Básicamente son un molde para la información, donde el esquema se encuentra fuertemente tipeado.

Algunas de las ventajas de utilizar diseños que implementen este tipo de objetos son:

  • En cualquier punto del sistema la información puede ser validada, a partir de metadatos establecidos.
  • Mejora la comunicación entre los programadores, dándoles un mismo esquema de información, evitando conflictos.
  • Separa físicamente las capas del sistema, haciendo el código mucho mas limpio y reutilizable.
  • Proporciona mayor seguridad.

Aunque estos objetos pueden darnos una gran cantidad de ventajas, tienen una enorme desventaja la cual es la causante de su poco uso, y es el tiempo de desarrollo, ya que obliga al programador a tipear cada una de las entidades lógicas del sistema.

Una de las preguntas interesantes en el Grupo de Arquitectos .NET :

Que utilizariais para devolver la información en un servicio WCF donde en la capa de datos se esta ultilizando Entity Framework.

DTO o POCO?

Los objetos POCO contienen las propiedades de navegación.

Las respuestas la encontramos en un articulo escrito mas tarde por uno de los participantes basado en los comentarios y opiniones de miembros del Grupo:  Sobre WCF, DTO, POCO

Espero sea de utilidad.

Saludos.

Diseño Web Adaptativo

Hoy en día, la variedad de dispositivos existente en el mercado (Smartphones, Tablets, Smart TV, etc) ha provocado que la información disponible no sea accesible desde todos los dispositivos, o bien es accesible pero la experiencia de navegación es muy pobre. A partir de esta necesidad, el diseñador norteamericano Ethan Marcotte creó y difundió una técnica llamada Responsive Web Design (Diseño Web Adaptativo), el cual permite mediante el uso de estructuras e imágenes fluidas, asi como de media-queries en la hoja de estilo CSS, adatar el sitio Web al entorno del Usuario.

En Julio de 2008, el consorci W3C discutió, describió y aprobó esta tecnica bajo el titulo «One Web». El concepto de «One Web» hace referencia a la idea de construir una Web para todos (Web for All) y accesible desde cualquier tipo de dispositivo (Web on Everything).

Con una sola versión en HTML y CSS se cubren todas las resoluciones de pantalla, es decir, el sitio web creado estará optimizado para todo tipo de dispositivos: PCs, tabletas, teléfonos móviles, etc.

Responsive Web Design
Responsive Web Design

De esta forma se reducen los costes de creación y mantenimiento, pues se evita tener que desarrollar aplicaciones ad-hoc para versiones móviles, por ejemplo, una aplicación específica para móviles Android, otra para iPhone, etc.5

Espero les sea de utilidad.

Algunos ejemplos de Web con diseño Adaptativo.

Demo 1 | Demo 2 | Best Demos

Saludos.

Presentación Visual Studio 2012 con .NET 4.5

Buenas noches mis amigos.

Como bien lo había anunciado Microsoft anteriormente, hoy se realizó el evento del lanzamiento oficial de Visual Studio 2012 y .NET Framework 4.5, una solución de desarrollo de última tecnología para construir aplicaciones modernas que abarquen dispositivos conectados y servicios continuos, desde el cliente hacia la nube.

Logo Visual Studio 2012

En su página oficial del lanzamiento de Visual Studio 2012 han publicado una serie de videos que nos ayudan a conocer las capacidades de VS 2012. Estos videos proveen un buen punto de referencia sobre la amplia variedad de características y capacidades de este lanzamiento.

Entre las novedades y mejoras de este entorno de desarrollo integrado para Sistemas Operativos Windows que soporta varios lenguajes de programación como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET destacan:

  • Nueva interfaz de usuario.
  • Mayor rendimiento de ejecución a todos los niveles incluyendo la misma instalación del software.
  • Utilización de ‘centros de trabajo de flujo’ para permitir a los desarrolladores trabajar en programas a través de una sola ventana.
  • Mejora de las características de búsqueda.
  • Pestañas de previsualización.
  • Aumento de espacio en la zona de trabajo reduciendo las barras de herramientas.

IDE Visual Studio 2012

Visual Studio 2012 está disponible en las siguientes presentaciones:

  • Visual Studio Ultimate 2012.
  • Visual Studio Premium 2012.
  • Visual Studio Professional 2012.
  • Visual Studio Test Professional 2012.

A explorar estas nuevas caracteristicas y mejores capacidades de Visual Studio.

Saludos.

Calculator Engine – Sample TDD

Buenas amigos.

Hacia ya bastante tiempo que no publicaba, hoy estamos de regreso.

Recordando…! Hace un par de meses atrás había comenzado la lectura del libro Diseño Ägil con TDD de Carlos Blé Jurado. He escrito mi primera aplicación, comenzando desde el análisis, diseño e implementación y las formas de iteraccion. Incialmente se comenzo por escuchar al cliente, identificar los requerimientos y requisitos, luego se formuló los criterios de aceptación ATDD (Test de Aceptación), que no son mas que frases cortas y precisas de lo que el cliente quiere.

Los test de aceptación son el punto de partida para todo desarrollo por TDD. A partir de ahí, se presentan los test de desarrollo que no son mas que los hijos* de los ATDD, y estos pueden convertirse en Test Unitarios o Test de Integración.

Muy divertido. Los invito a leer el libro y comenzar el desarrollo de los ejemplos! La implementación y los ejemplos estan en C# y Python.

Aquí puedes descargar la Calculadora desarrollada con TDD. 

A practicar se ha dicho!

Saludos!