Ver por etiquetas

Todas las etiquetas » desarrollo (RSS)

Si usas GUIDs, mucho ojo el próximo 11 de febrero

Los GUID (Globally Unique Identifier) son una serie de 16 bytes generados pseudoaleatoriamente que se suelen utilizar para identificar de forma única objetos, dispositivos, componentes, o prácticamente cualquier cosa. Y, a diferencia de otros tipos de identificadores, el “única” debe ser interpretado de forma global, es decir, es virtualmente imposible que un GUID utilizado para un elemento se repita en otro equipo, lugar o sistema. No hay magia negra en esto, es...

Inyección de parámetros en acciones ASP.NET MVC (y III)

En este tercer y último post de la serie (ir al primero o segundo ) , vamos a ver una última técnica para realizar inyección de parámetros a acciones ASP.NET MVC que, aunque aporta menos a la hora de comprender las misteriosas interioridades del framework, es ciertamente mucho más cómoda y práctica en caso de que deseemos aplicar esta técnica. Recapitulando un poco, queremos pasar de un planteamiento en el que el controlador es el que...

Inyección de parámetros en acciones ASP.NET MVC (II)

En el primer post de la serie , vimos rápidamente en qué consiste la inyección de parámetros como fórmula para suministrar dependencias a una acción ASP.NET MVC, y realizamos una implementación sustituyendo unas pequeñas piezas del framework llamados action invokers que, como su nombre indica, son los responsables de invocar las acciones solicitadas por el usuario. La idea es poder tener en nuestros controladores acciones que reciben directamente...
Publicado por José M. Aguilar | con no comments

Inyección de parámetros en acciones ASP.NET MVC (I)

No hace demasiado tiempo describíamos por aquí cómo desacoplar controladores ASP.NET MVC mediante el uso de Inyección de Dependencias. En este caso, como en otros que hemos tratado, se hacía uso de uno de los “sabores” de esta técnica, que consiste en suministrar como parámetros al constructor de una clase todos aquellos componentes de los que depende para su funcionamiento. Sin embargo, esta no es la única forma de usar inyección...
Publicado por José M. Aguilar | con no comments

Control de acceso a Hubs SignalR

SignalR permite controlar el acceso a los métodos del interior los Hubs de una forma muy similar a como hacemos en ASP.NET MVC o WebAPI. Y cuando digo muy similar no estoy exagerando en absoluto, como podéis observar en el siguiente código: ? 1 2 3 4 5 6 7 8 [Authorize] public class AlertService : Hub { public void Alert(string msg) { this.Clients.All.showAlert(msg); } } Pues sí, también tenemos disponible aquí el atributo [Authorize] . O mejor dicho, otro...
Publicado por José M. Aguilar | con no comments
Archivado en: ,,

Crear manualmente proxies de Hubs Signalr

Cuando desde un cliente javascript consumimos los servicios suministrados por un Hub de SignalR, lo habitual es usemos los proxies generados automáticamente, para lo que solemos incluir en nuestra página una referencia al script “/Signalr/Hubs” según la ruta por defecto. Sin embargo, puede haber casos en los que no nos interesa este comportamiento y preferimos generarlo de forma manual para, por ejemplo, incluirlo en un bundle o distribuir el archivo a través...
Publicado por José M. Aguilar | con no comments
Archivado en: ,,

Generar archivos Excel como un señor con ClosedXml

Venga, lo confieso: yo también he generado desde mis aplicaciones contenidos HTML y los he enviado al cliente en un archivo con extensión XLS, incluso modificando el content-type, para que pareciera un documento de hoja de cálculo. Durante años. Y también le he dicho a mis clientes que el molesto mensaje que aparece al abrirlo desde Excel, el que indica que el contenido del archivo no coincide con la extensión del mismo, es algo normal. Pero esto se acabó...

¿Añadir una barra al final de las URL?

Hace poco veíamos que el nuevo sistema de routing usado por proyectos MVC 4 permitía una cierta configuración del formato de URL generadas por la aplicación al usar helpers como Url.Action() o Html.ActionLink() , y cómo usando una simple línea de código podíamos hacer que las rutas se generaran usando sólo minúsculas . Pues bien, al igual que en ese caso, en los proyectos que usen la última versión del ensamblado...
Publicado por José M. Aguilar | con no comments

Inyección de dependencias en Hubs de SignalR

Cuando estamos implementando Hubs de SignalR, podemos encontrarnos fácilmente con que éstos necesitan utilizar componentes externos para llevar a cabo su tarea. Por ejemplo, es bastante probable que un servicio en tiempo real proporcionado por un Hub tenga que utilizar una clase de servicios o cualquier otro componente externo de una aplicación, como en el siguiente código: ? 1 2 3 4 5 6 7 8 9 10 11 public class MyHub: Hub { public Task sendMessage( string text) { using...
Publicado por José M. Aguilar | con no comments

Simular una conexión lenta con Fiddler

Normalmente hacemos pruebas de nuestros desarrollos web sobre nuestro propio equipo, donde la transferencia de datos es prácticamente inmediata, en servidores de prueba ubicados en una red de área local, o incluso sobre un servidor de producción al que accedemos mediante una conexión a Internet de gran capacidad. Sin embargo, nuestras aplicaciones web son muy diferentes cuando el cliente no dispone de una conexión de alta velocidad. Lo que nosotros percibimos en...

Documentación automática de servicios WebAPI

Cuando trabajábamos con los Servicios Web de toda la vida, las herramientas de desarrollo incluían sistemas para generar la documentación básica de los servicios que implementábamos. El estándar WSDL ( Web Services Description Language ), era un lenguaje basado en XML que permitía describir las funcionalidades de un servicio web aportando gran cantidad de detalles sobre las operaciones, tipos de datos, o direcciones de acceso a las mismas. Gracias...
Publicado por José M. Aguilar | con no comments
Archivado en: ,,

Validación en cliente de campos ocultos en ASP.NET MVC

En formularios ASP.NET MVC, por defecto los campos ocultos no son validados en cliente . Es decir, aunque estos campos hayan sido generados usando los helpers e incluyan atributos con las restricciones, no serán tenidos en cuenta por jQuery validate a la hora de validar los datos del formulario antes de enviarlos al servidor. Así, si tenemos una clase del Modelo con una propiedad como la siguiente: ? 1 2 3 [Required(ErrorMessage= "Required" )] [StringLength(3, ErrorMessage...

Errores de ASP.NET MVC 4 en distintos idiomas

Algunos mensajes que genera ASP.NET MVC utilizan el idioma en el que hayamos instalado el framework. Por ejemplo, si hemos descargado la versión en inglés de MVC 4 y estamos usando en sistema operativo en español, podemos encontrarnos con textos de error como los mostrados en la siguiente captura de pantalla: Los textos en español son generados por las restricciones impuestas por los tipos de datos y las anotaciones (data annotations) que tengamos definidas para ellos...
Publicado por José M. Aguilar | con no comments

Enums con desplegables automáticos en MVC

Si hay algo que me gusta de ASP.NET MVC es la cantidad de fórmulas que ofrece para aumentar nuestra productividad. Prácticamente cualquier código que estemos hartos de repetir una y otra vez puede ser encapsulado y reutilizado usando los puntos de extensión que nos proporciona el framework. Hoy vamos a ver una solución a un problema al que seguro nos hemos enfrentado cientos de veces: la edición en formularios de propiedades de tipo enum . 1. El escenario...
Publicado por José M. Aguilar | con no comments

Rutas en minúsculas en MVC 4 y ASP.NET 4.5

Seguro que alguna vez habéis notado que al generar URLs hacia acciones de una aplicación MVC usando helpers como Url.Action() o Html.ActionLink() , éstas son generadas usando mayúsculas y minúsculas según hubiéramos indicado en los parámetros de las llamadas: Helper URL generada @Url.Action("index", "home") /home/index @Url.Action("List","Products", new{ Category="PC" }) /Products/List?Category...
Publicado por José M. Aguilar | con no comments

Asincronía en MVC 4

Este es el mensaje que deberíamos interiorizar, si no lo hemos hecho ya, a la vista de las múltiples novedades introducidas en las últimas versiones de la plataforma ASP.NET y MVC: Asíncronía = bueno A grandes rasgos, la explicación es la siguiente: IIS tiene disponible un número limitado de hilos ( threads ) destinados a procesar las peticiones. Cuando llega una petición, uno de estos hilos es asignado en exclusiva a ella y permanecerá...
Publicado por José M. Aguilar | 2 comment(s)
Archivado en: ,,

TypeScript: un primer vistazo

Siempre he tenido la sensación de que Javascript no ha evolucionado de forma proporcional a las responsabilidades y expectativas que han ido depositando en él. El explosivo crecimiento que ha sufrido en los últimos años no venía acompañado de mejoras en el lenguaje que nos ayudaran a implementar aplicaciones cada vez más extensas y complejas, para las que es muy conveniente disponer de herramientas más potentes que las ofrecidas de serie por...

DisplayModes en MVC 4

Como venimos comentando desde la aparición de la preview de MVC 4 , el Display Mode o modo de visualización es un nuevo mecanismo que permite la creación de aplicaciones capaces de retornar vistas específicas según las características y capacidades del cliente conectado u otros parámetros del entorno de la petición. Esto tiene mucha utilidad directa, por ejemplo, a la hora de construir aplicaciones web que adapten su interfaz en función...

Login único para subdominios en ASP.NET

Imaginad que tenemos un sistema web de cierto volumen y decidimos estructurarlo en aplicaciones independientes, cada una publicada en un subdominio propio: www.acme.org , que sería el sitio principal. crm.acme.org , con el sistema CRM de la empresa. erp.acme.org , con un sistema de gestión empresarial. administration.acme.org con las herramientas de administración del sistema. etc. Desde un punto de vista operativo, es probable que nos interese suministrar un mecanismo de autenticación...
Publicado por José M. Aguilar | con no comments
Archivado en: ,,

ASP.NET MVC 4 Release Candidate ya disponible

¡Bueno, pues parece que esto se mueve! Hace unos días ha sido publicada la Release Candidate de ASP.NET MVC 4 coincidiendo con la liberación de Windows 8 Release Preview y Visual Studio 2012 Release Candidate (que, de hecho, incluye de serie MVC 4 RC). Y como viene siendo costumbre, vamos a dar un repaso a todo lo que encontramos en esta nueva entrega, que presumiblemente será la última (bueno, o penúltima, nunca se sabe) antes de la versión definitiva...
Más artículos Página siguiente >