3ENGINE

Programación y otros cachivaches

Etiqueta: .NET

Página 1/7

Tecnologia

Acceso a IIS Express desde un equipo remoto


IIS Express es el servidor de desarrollo de ASP.NET que viene incorporado en Visual Studio y que también está disponible de manera gratuita para su descarga.

Esta versión recortada de IIS es perfectamente válida para desarrollos aunque esto no quita que al final para entornos de producción debas hacer el deploy en un IIS real.

Acceso desde un equipo remoto

A veces necesitamos hacer público el acceso al IIS Express para hacer pública nuestra aplicación. Por ejemplo para comprobar que la aplicación funciona en otros navegadores no disponibles en el entorno de producción, para que otras personas del equipo validen los desarrollos o simplemente porque no disponemos de un IIS real, etc..

Pasos

  1. Permitir conexiones de entrada
  2. * En Windows casi todas la conexiones de entrada están bloqueadas. Para comprobar conexiones de entrada permitidas ejecuta:

    * Para permitir conexiones ejecuta:

    donde url es la IP o nombre de máquina + puerto a publicar y user el nombre de usuario o grupo de usuarios (‘todos’ es ‘everyone’ si el S.O está en inglés)

  3. Añadir un regla al Firewall de Windows
  4. Modificar applicationhost.config
  5. Es posible que necesites modificar el archivo de configuración de IIS Express.
    Normalmente se encuentra en C:\Users\TuUsuario\Documents\IISExpress\config\applicationhost.config




Tecnologia

Cómo generar archivos Excel en C# con Open XML


Office Open XML es un formato de archivo abierto y estándar cuyas extensiones más comunes son .docx, .xlsx y .pptx. Principalmente contiene datos en XML comprimidos en un .zip. .NET dispone de librerias capaces de trabajar con este formato y de esta manera prescindir de instalar Office y sus temidas Microsoft.Office.Interop.

Generar archivos Excel en C# con Open XML

Para la demo es necesario instalar el paquete DocumentFormat.OpenXml:

generar archivos Excel en C# con Open XML

O desde la consola de Nuget:

El código es el siguiente:

Para mi demo los datos que deseo guardar en el archivo Excel los tengo en un DataTable. Al método BuildExcel se le pasa el DataTable con los datos y la ruta completa del archivo Excel a generar. El método CreateSheetData se encarga de leer los datos del DataTable y generar las celdas. El nombre de la hoja Excel se obtiene del nombre de la tabla.

Se trata de un código sencillo pero que puede servir como punto de partida.

Y ahora una pequeña demo:

Y el archivo generado:

generar archivos Excel en C# con Open XML

Enlace a la demo: SaveExcel.zip




Tecnologia

ORA-00932: inconsistent datatypes: expected DATE got NUMBER


Si estas lanzando una query con Oracle Data Access y te da un error ORA-00932: inconsistent datatypes: expected DATE got NUMBER:

Aunque parezca increible :-D, la razón mas probable es que el orden de los parámetros en la query no coincide con el orden en que se agregaron a la colección Parameters. Por lo tanto la solución al ejemplo anterior es cambiar el orden de inserción de los parámetros:




Tecnologia

Campo autonumerico en Oracle


Oracle no dispone de un campo autonumérico. Para conseguir emular un campo autonumérico necesitaremos una secuencia y un trigger. A continuación los pasos.

1. Crear la tabla

2. Crear la secuencia

3. Crear el trigger

Hasta aqui perfecto. Ahora puedes insertar un registro en la tabla NAMES sin preocuparte de asignarle un identificador. Ahora bien, si necesitas averiguar el identificar asignado utiliza NAMES_SEQ.CURRVAL:

Con PL/SQL puedes averiguar el identificador mediante RETURNING INTO. Por ejemplo con .NET queda así:

Con Entity Framework con Code First, esto se hace con la opción DatabaseGeneratedOption.Identity de la data annotation DatabaseGenerated: