JASoft.org

Cómo migrar fácilmente de dasBlog a BlogEngine.NET

Cómo migrar fácilmente de dasBlog a BlogEngine.NET
NOTA 22/08/2011: La migración descrita en este artículo es valida para cualquier versión de BlogEngine superior a la 1.6, incluyendo la 2.0 y la última 2.5 que es multi-blog. Si vas a albergar varios blogs migrados debes prestar especial atención a la parte final de redirecciones. Llevo haciendo mi blog desde Junio de 2004, es decir, hace casi 7 años. Lo inicié albergándolo dentro de un proyecto llamado GolemProject que estaba auspiciado por una Universidad (craso error), por lo que enseguida murió y tuve que albergarlo yo mismo en uno de nuestros servidores. En aquel entonces (2005) el sistema de blogging más interesante que había -escrito en .NET- me pareció que era dasBlog. Lo malo es que este proyecto está abandonado. su última versión salió hace dos años -en marzo de 2009- e incluso entonces no incluía ya ni la mitad de las cosas que se le suponen a un sistema de blogging moderno, por lo que era cuestión de tiempo (y de vencer la pereza) que acabase migrando a otro sistema. Des... [Más]

Cómo crear URLs amigables personalizadas con ASP.NET Web Forms

Cómo crear URLs amigables personalizadas con ASP.NET Web Forms
Una de las ventajas que aducen los defensores a ultranza de ASP.NET MVC es lo bonitas y apropiadas para SEO que quedan sus URLs. Y tienen razón. La típica URL para una página que muestre los detalles de un producto hecha con ASP.NET Web Forms tendría un aspecto análogo a este: http:///www.miservidor.com/VerProducto.aspx?IDProd=5 Sin embargo, la misma funcionalidad usando ASP.NET MVC sería más bien algo más simple, del estilo de: http:///www.miservidor.com/Ver/Producto/5 Estas URL estilo REST son muy útiles tanto de cara a hacer el sitio más amigable a los usuarios, como para facilitar la vida a las arañas de los buscadores, favoreciendo el posicionamiento de las páginas si éstas son parte de una aplicación pública. ¿Cómo podemos conseguir lo mismo en ASP.NET Web Forms? Conseguir lo mismo en nuestras páginas Web Forms "tradicionales" es muy sencillo desde que apareció ASP.NET 4.0. Lo único que tenemos que hacer es definir las rutas que queremos usar, exactamente de la misma m... [Más]

Internet Information Server (IIS) Express y Visual Studio 2010 SP1

Internet Information Server (IIS) Express y Visual Studio 2010 SP1
Desde hoy por la mañana está disponible para descarga el Service Pack 1 de Visual Studio 2010. Trae algunas novedades (nada que ver con el SP1 de VS2008 que fue realmente un cambio gigantesco) y corrige decenas de bugs. Una de las novedades que trae respecto a desarrollo Web es la posibilidad de utilizar el recientemente aparecido IIS 7.5 Express para probar los desarrollos. IIS Express es una versión reducida del servidor de aplicaciones Web de Microsoft y nos proporciona una experiencia mucho más real a la hora de probar las aplicaciones, frente al habitual "Cassini" (o Web Development Server, como se le llama oficialmente). IIS Express contiene el motor de IIS y funciona exactamente igual que éste, por lo que te resultará muy fácil probar las configuraciones reales en él o, incluso, distribuirlo con tus propias aplicaciones en un momento dado. Lo puedes descargar desde aquí o instalarlo desde el Web Platform Installer. ... [Más]

Cambios en la renderización de controles de ASP.NET 4.0

Cambios en la renderización de controles de ASP.NET 4.0
En mi anterior post comentaba que ASP.NET 4.0 había cambiado la forma de renderizar sus controles Web nativos para hacerlos más compatibles con XHTML, y que esto podía causar algunos problemas con aplicaciones hechas en versiones anteriores y migradas a la actual. También mostraba la forma de solucionar el problema y forzar la generación de HTML compatible con ASP.NET 3.5. Lo que no comentaba era qué cambios exactamente se producen en el renderizado de estos controles ahora en ASP.NET 4.0, así que lo comento a continuación: Todos los controles renderizan XHTML Strict 1.0 Los controles de validación no renderizan estilos "inline" sino clases CSS. Deshabilitar controles que no sean de entrada de datos ya no produce por defecto controles con el aspecto deshabilitado (lo comentaba en la práctica en el post anterior) Algunos controles que usaban el atributo border=0 ya no lo hacen (por ejemplo tablas o imágenes) Los elementos <div> que se generan alrededor de los campos ... [Más]

Renderizar HTML compatible con ASP.NET 3.x para los controles Web en ASP.NET 4.0

Renderizar HTML compatible con ASP.NET 3.x para los controles Web en ASP.NET 4.0
ASP.NET 4.0 ha cambiado la forma de renderizar los controles Web. Ahora, para representarlos en las páginas resultantes, genera HTML que cumple con los estándares de la W3C. En concreto los controles de ASP.NET 4.0 Web Forms generan XHTML 1.0 Strict. Viñeta por Gabriel Utasi Esto es fantástico para la mayor parte de los casos, ya que nos ayudará a que nuestras aplicaciones con ASP.NET Web Forms se adapten más fácilmente a los estándares y los requisitos de accesibilidad. Sin embargo puede darnos más de un dolor de cabeza en caso de que estemos reusando código CSS o Javascript que hayamos hecho con una versión anterior. También podría trastocarnos algunos maquetados de páginas hechos con versiones anteriores de la plataforma. Para poder volver al comportamiento anterior de ASP.NET 3.5 (en realidad 2.0) y poder elegir la forma de renderizar los controles y por tanto el tipo de HTML generado, los controles tienen una nueva propiedad llamada RenderingCompatibility. Sin embargo esta prop... [Más]

Cómo crear un temporizador global en ASP.NET

Cómo crear un temporizador global en ASP.NET
Las páginas Web son objetos con un tiempo de vida corto: se llaman, se ejecutan en el servidor, se devuelve el resultado y mueren. Por lo tanto no tiene sentido colocar en ellas un objeto como un temporizador (el típico Timer que sí tenemos en un formulario de Windows). La forma de atar un evento periódico a una página Web (por ejemplo para actualizar los contenidos de la misma) es siempre en en lado cliente, es decir, con JavaScript. Para facilitarnos la vida, las extensiones de ASP.NET AJAX incluyen un control Timer que podemos arrastrar sobre el formulario para forzar la actualización periódica de uno o más UpdatePanels que tengamos sobre el mismo. Sin embargo, en principio, no tenemos forma de conseguir un temporizador en el servidor que se ejecute cada cierto tiempo para todos los usuarios de nuestra aplicación. ¿O sí? Crear un temporizador para una aplicación Web Dentro de las clases base de la plataforma .NET, dentro del espacio de nombres System.Timers, existe una clase esp... [Más]

Mis dos libros de ASP.NET disponibles en PDF

Mis dos libros de ASP.NET disponibles en PDF
Desde ayer están disponibles en la tienda on-line de Krasis mis dos libros de ASP.NET para compra también en PDF: Existen tres opciones a la hora de comprar cada libro: comprarlo en papel (como siempre), comprarlo en PDF o, para mi la mejor opción, comprarlo a la vez en papel y en PDF. En este último caso por sólo 5 euros (+IVA) más sobre el precio de papel podemos comprar el libro en PDF. Basta con seleccionar la opción que nos interese antes de darle al botón de añadir al carrito: El eterno dilema de la protección y el "pirateo" En krasis no creemos en sistemas como Adobe Digital Editions y similares que atan la compra a un dispositivo determinado y que coartan tu libertad de uso de lo que has comprado. No nos parece justo que compres un PDF y puedas leerlo solamente en el ordenador en el que lo has comprado y que tengas que usar un programa especial para leerlo. Queremos libertad para que el comprador haga un uso responsable de su compra. Por ello estos libros son PDFs que... [Más]

Modo de redirección de errores personalizados en ASP.NET y su impacto en SEO e imagen

Modo de redirección de errores personalizados en ASP.NET y su impacto en SEO e imagen
Desde la configuración de una aplicación ASP.NET es posible configurar páginas de error propias, personalizadas, para que cuando una página falla estrepitosamente o hay un enlace roto no tengamos que ver la famosa YSOD de ASP.NET (Página Amarilla de la Muerte, Yellow page Of Death). Esto es una gran ventaja para los programadores de ASP.NET ya que nos evita tener que configurar manualmente IIS para conseguir el mismo resultado y basta con tocar el web.config para cambiar el modo en que se visualiza cualquier circunstancia anómala de una página. Para conseguirlo sólo hay que introducir en web.config el nodo <customErrors> de manera similar a esta: En este ejemplo hemos definido una página especial para el error con código de estado HTTP 404 (que significa "No encontrado"), otra para el estatus 500 ("Error interno del servidor", o sea, todos los errores no controlados), y una página (ErrorGenerico.aspx) para el resto de códigos de estado HTTP que no sean el 200 (que significa q... [Más]

Mayor control sobre aplicaciones ASP.NET para hosters en .NET 4.0

Mayor control sobre aplicaciones ASP.NET para hosters en .NET 4.0
La mayoría de las empresas de hosting lo que pretenden es albergar cuantas más aplicaciones mejor en un mismo servidor. Eso significa más clientes dentro del mismo hardware y por lo tanto más ingresos. Para ello generan un único grupo de aplicaciones en el que se ejecutan todas las aplicaciones, lo que abre menos procesos simultánenos en el servidor y ahorra recursos. Como contrapartida las aplicaciones mal escritas pueden llegar a monopolizar los recursos del servidor y echar abajo a las demás. La dificultad de esta técnica de gestión estriba en averiguar qué aplicación es la que está desbocada cuando aparecen los problemas, ya que al estar todas bajo el mismo proceso no hay forma de distinguir unas de otras para poder parar a la conflictiva. Sabiendo que esto es práctica habitual, el equipo de ASP.NET ha introducido un nuevo ajuste en la configuración de ASP.NET 4.0 que permite distinguir los recursos utilizados por cada aplicación individualmente, aunque compartan el mismo proceso... [Más]

ASP.NET 4.0: Nueva sintaxis declarativa para evitar XSS

ASP.NET 4.0: Nueva sintaxis declarativa para evitar XSS
Los que ya tenemos una cierta edad y hemos trabajado (y mucho) con ASP Clásico estamos acostumbrados a ver la sintaxis <%= %> en las páginas Web. Este tipo de expresiones se limitan a mostrar lo que vaya dentro de ellas en el lugar indicado en la página. Por ejemplo, si escribimos: <%= Request.Url.ToString() %> Obtendremos la URL de la página actual. Se puede usar cualquier tipo de expresión dentro de estas etiquetas (llamadas a funciones, condicionales, bucles...) y veremos en la página el resultado. Este tipo de sintaxis siempre fue denostada por generar mucho código espagueti, el cual es típico de otros lenguajes como PHP. Está soportado por ASP.NET Web Forms, aunque prácticamente apenas se utiliza pues hay muchas opciones mejores. Sin embargo vuelve a estar más de moda que nunca debido a ASP.NET MVC. En MVC se utilizan mucho en las vistas ya que permiten mostrar de manera directa y sencilla los valores de las propiedades del modelo. Y la verdad es que convierte... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico