JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Arreglar el error de que falta un ensamblado en el GAC en una aplicación ClickOnce en una aplicación .NET

Buff, ClickOnce: ¡menuda tecnología del año de la polca! Se nota que soy un viejuno. Lo cierto es que ClickOnce es una tecnología interesante que, aunque no esté tan de moda como en tiempos, se sigue utilizando y mucho. ¿No me crees? Vale, pues prueba a instalar por ejemplo Google Chrome en Windows y la verás en acción. Sí, ese pequeño ejecutable que te salta y que te pide permisos para instalar desde una ubicación remota es ClickOnce en todo su esplendor. En este artículo te cuento cómo solucionar el problema de cuando te sale el mensaje: "
No se ha podido instalar o ejecutar la aplicación. La aplicación necesita XXXXX Versión X.y.zzzz.0 en el GAC". [Más]

Mi Visual Studio no sincroniza el archivo actual en el Explorador de Soluciones

Una cosa muy útil cuando estamos programando con Visual Studio es que, si tienes varios archivos de código abiertos a la vez, cuando cambias de uno a otro se seleccione dicho archivo en el explorador de soluciones.De ese modo, al cambiar de archivo, sabes exactamente en qué proyecto concreto y en qué parte del proyecto estás en cada momento. Esto es especialmente útil en desarrollos grandes, formados quizá por decenas de proyectos y cientos o miles de archivos de código.En Visual Studio 2010 esto era así por defecto (y si no me equivoco ni siquiera lo podrías cambiar). En versiones más recientes de Visual Studio como Visual Studio 2013 o 2015, esto no es así. Por defecto, cuando abres un archivo no se selecciona automáticamente en el explorador de soluciones.En proyectos pequeños esto no tiene importancia, pero en proyectos grandes es un fastidio (o al menos a mi me lo parece).¿Cómo puedes hacer que se sincronice lo que estás viendo con el Explorador de Soluciones?Muy fácil. Es solo sa... [Más]

TRUCO: Búsqueda rápida de archivos en Visual Studio

Este es un truco que, sorprendentemente, muchos programadores que usan Visual Studio a diario desconocen. Se trata de la posibilidad de buscar a toda velocidad cualquier elemento de nuestro código, incluyendo archivos, variables, funciones, clases...La funcionalidad se denomina "Navigate to", y en las últimas versiones de Visual Studio se ha mejorado mucho, incluyendo VS2013.Para activarla lo único que hay que hacer es pulsar la combinación de teclas "CTRL + ," (sí, la coma).Esto abre una pequeña ventana adherida a la parte superior derecha del entorno, que tiene únicamente un cuadro de texto con el foco puesto, en el que podemos escribir:Lo que escribamos ahí se usa para localizar a toda velocidad cualquier elemento de nuestro proyecto que incluya esa palabra: archivos, rutas, clases, métodos, variables... y se nos van mostrando debajo con la primera seleccionada y su vista previa detrás (en la pestaña de vista previa):Si pulsamos las teclas del cursor para bajar o subir nos va mostra... [Más]

Recuperar la vista de diseño y la vista partida para HTML en Visual Studio 2013

Hasta ahora estábamos acostumbrados a que en Visual Studio pudiésemos editar páginas HTML usando un diseñador que nos permitía alternar entre tres vistas diferentes: Design: edición visual de la página, pudiendo sacar partido a herramienta gráficas y facilitándonos la escritura de textos, creación de tablas, etc... Source: edición directa de código fuente HTML, con ayuda “intellisense”, etc... pero nada visual. Split: dividía el diseñador en dos zonas, mostrando en cada parte los dos modos anteriores, de modo que podíamos editar visualmente algo y ver los cambios reflejados en el código y viceversa. En Visual Studio 2013 sin embargo, la primera vez que editamos una página HTML nos damos cuenta de que esta característica ya no está disponible y sólo disponemos de la vista de código. En Visual Studio 2013 han escrito de nuevo desde cero el editor de HTML, que no tiene nada que ver con el anterior aunque se parezcan en el modo “source”, y han dejado fuera estas funcionalida... [Más]

Cómo conectarse a IIS Express desde fuera de la máquina local

Hace unos tres años Microsoft lanzó IISExpress, una versión ligera de su servidor Web y servidor de aplicaciones, pensada fundamentalmente para ser utilizada por parte de los desarrolladores. Hasta entonces cuando queríamos probar y depurar una aplicación web desde Visual Studio teníamos básicamente dos opciones: Usar el servidor de desarrollo integrado, conocido comúnmente como “Cassini”. El problema es que no era el servidor verdadero y había ciertas diferencias con un entorno de producción real. Además no permitía usar otras tecnologías como PHP o ASP Clásico, y a veces era necesario por que tenemos aplicaciones mixtas. Usar el propio Internet Information Server, que sí que era ya como el entorno real y no tenía ningún tipo de limitaciones. El problema es que para poder usarlo necesitas permisos de administrador y además implica configurar el ... [Más]

Situación de las certificaciones para desarrollo Microsoft en 2013

La verdad es que tenía pendiente escribir un post sobre este tema desde hace al menos 8 meses. Pero he sido reticente a hacerlo sobre todo por la opinión -seguramente controvertida- que tengo al respecto, y no me apetecía nada hacerlo. Sin embargo en las últimas semanas he recibido bastantes correos de gente preguntándome por ello, y me veo ya casi en la "obligación" de escribirlo. así que allá voy. Nota: Antes de seguir leyendo, si tienes interés en entender bien el trasfondo de todo lo que comento a continuación, asegúrate de haber leído antes mi post sobre las certificaciones de Visual Studio 2010, de hace justo 2 años. Ello te ayudará a saber en qué situación estamos y hacia donde vamos en este tema. Por otro lado en este post solamente trataré y valoraré las certificaciones para desarrolladores, no así las de sistemas ni las de acceso a datos (que t... [Más]

Cómo usar expresiones regulares en las búsquedas de Visual Studio

Aparte de para las labores habituales de todo desarrollador (o sea, escribir código, jeje), Visual Studio es también una estupenda herramienta para procesar archivos, sobre todo cuando necesitas hacer cambios masivos en contenidos mediante buscar y reemplazar. Como te permite abrir muchos archivos y luego buscar cadenas sobre ellos usando expresiones regulares, puedes hacer cambios más o menos complejos con relativa facilidad. Sin embargo la sintaxis de expresiones regulares que admite difiere en bastantes cosas de la sintaxis habitual en la mayoría de los lenguajes de programación, como C#/.NET o JavaScript, por ejemplo. Para expresiones regulares básicas es igual y no tendrás problemas, pero hay otras cuestiones que, de entrada, resultarán más complejas porque cambia la sintaxis. Por ejemplo, imagina que tienes que cambiar todas las etiquetas <ul>  dentro de varios archivos HTML por etiquetas <ol>, para convertir todas las listas en listas ordenadas. Abrirías el ... [Más]

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]

Resolver el error “No se puede encontrar el tipo” al cargar un formulario con un control propio

Yo no programo demasiado para Windows Forms, ya sabéis que lo mío es más la Web. Pero últimamente estoy trabajando a los ratos en un proyecto que tienen una parte de visualización para escritorio hecha con esta tecnología. Como soy partidario de reutilizar al máximo, siempre encapsulo la funcionalidad todo lo que puedo, incluyendo funcionalidad de la interfaz de usuario. Por eso en este trabajo, tengo varios controles de usuario listos para arrastrar y soltar en cualquier formulario que los requiera. El caso es que tras haber trasteado bastante con la interfaz, de repente algunos formularios me empezaron a fallar, mostrándome un error como el de la figura (yo trabajo con todo en inglés, incluidos los nombres de clases  y variables):  (la parte difusa lleva el nombre del control que no se carga y su espacio de nombres) A pesar de que en el código del diseñador del formulario todo parecía estar bien y se reconoce el tipo del control y a pesar de que si ejecutas la aplicación... [Más]

Uso de la caché de ASP.NET 4.0 fuera de aplicaciones Web - Perfiles de .NET

La caché de ASP.NET es una maravilla. Permite almacenar en memoria (o en otra ubicación, ya que es extensible) datos costosos de obtener y que no caduquen de inmediato. De esta forma las siguientes veces que debamos utilizarlos en la misma aplicación podremos obtenerlos desde la caché sin necesidad de volver a calcularlos o generarlos. Además la caché de ASP.NET ofrece un montón de características avanzadas que van más allá del simple almacenamiento. Por ejemplo podemos establecer caducidades de la información tanto en un determinado momento en el futuro, si no se utiliza tras un periodo, haciendo que unas informaciones dependan del valor de otras o creando dependencias de ciertos elementos externos (como un archivo, una consulta en la base de datos o una clave del registro). Esto último es de especial interés, pues nos brinda la posibilidad de hacer cosas bastante complicadas sin apenas código. Por ejemplo, si nuestra aplicación depende de la información almacenada en un archivo en e... [Más]