viernes, octubre 19, 2007

Tip Web Server ClickOnce Configuration

Pasar nuestra aplicación de desarrollo a producción puede ser un proceso arduo y engorroso si no se realiza la configuración adecuada en el servidor web de publicación, un punto importante es agregar las extensiones de archivos necesarias en los MIME Content Type del sitio web, esto permite realizar la instalación y actualización de la aplicación sin problemas. Las extesiones que deben agregarse son las siguientes:

File Extension - MIME Content Type Mapping
.application application/x-ms-application
.manifest application/x-ms-application
.deploy application/octet-stream

Pdt1: No es necesario instalar el runtime del .net framework 2.0 en el servidor de publicación

Pdt2: En este sitio encuentran la forma de configurar las extensiones para los MIME Content Type:
http://support.microsoft.com/default.aspx?scid=kb;en-us;326965

miércoles, octubre 10, 2007

DDay.Update

Muchas personas no gustan de la forma en cómo ClickOnce presenta al usuario los formularios de instalación de su aplicación, algunos preferirían que fueran más personalizados o en su defecto solo usar sus funcionalidades de actualización y dejar la parte de la instalación a aplicaciones más sofisticadas y especializadas en esto como es el caso de InstallShield o de los proyectos de instalación de Visual Studio. Hace unas semanas en uno de los proyectos fue necesario aplicar este caso, donde solo era necesario utilizar el modelo de update de aplicaciones de ClickOnce y hacer la instalación con un proyecto InstallScript de InstallShield, para lo cual me fui muy útil la librería de clases de código abierto DDay.Update (http://www.ddaysoftware.com/Pages/Projects/DDay.Update/)

Vayan dándole una mirada y en mi siguiente post empezare un ejemplo práctico utilizando esta librería de clases

viernes, octubre 05, 2007

Registry Key

Es posible que una de las tareas que sea necesario realizar cuando se instala una aplicación es la de crear claves en el registro, para establecer ciertas caracteristicas de nuestra aplicación, aquí les dejo un fragmento de código que justamente crea una clave de registro si al comprobarla éta no existe.

private static void TestRegistryKey()
{
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.IsFirstRun)
{
string keyPath = @"SOFTWARE\RegistryKeypProject\RegistryKey";
RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(keyPath, true);
if (registryKey != null)
{
if (registryKey.GetValue("RunOnce") != null)
{
string runOnce = registryKey.GetValue("RunOnce").ToString();
if (runOnce == "0")
{
// your code
}
}
else
{
registryKey.SetValue("RunOnce", "0");
// your code
registryKey.SetValue("RunOnce", "1");
}
}
}
}