Actualizando una aplicación CAB a SCSF
Este artículo describe como actualizar una aplicación CAB a Smart Client Software Factory 2007.
Contenidos
- Requisitos
- Tarea 1: Creando una solución nueva de Smart Client
- Tarea 2: Agregando la aplicación CAB antigua
- Tarea 3: Removiendo el proyecto Shell de Smart Client
- Tarea 4: Actualizando el proyecto Shell antiguo
- Tarea 5: Modificando el archivo de la solución
- Tarea 6: Compile y Ejecute… Diviértase!
Requisitos
Para poder completar la actualización, debe tener lo siguiente instalado en su computadora:
- .NET Framework 3.0 (no es necesario si usa Windows Vista).
- Visual Studio .NET 2005 (Team Edition for Software Testers recomendado).
- Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF) (requerido para crear el disconnected service agent para un proxy de WCF y para usar CAB-WPF Extensions que le permiten definir controles WPF como SmartParts).
- Guidance Automation Extensions February 2007 CTP.
- Guidance Automation Toolkit.
- Smart Client Software Factory - May 2007.
Tarea 1: Creando una solución nueva de Smart Client
Para actualizar su solución, creará una nueva solución de Smart Client usando la plantilla Smart Client Solution y luego agregará los módulos de su solución y el proyecto Shell a la nueva solución.
1. En el Visual Studio, dirígase a New (Nuevo) en el menú File (Archivo), y luego haga click en Project (Proyecto).
Figura 1. Las plantillas Smart Client Application Solution.
2. En el diálogo de New Project (Nuevo Proyecto), expanda el nodo de Guidance Packages. Haga click en el tipo de proyecto Smart Client Development May 2007.
3. En la parte de Templates (Plantillas), seleccione Smart Client Application (C#) o Smart Client Application (Visual Basic) (dependiendo del lenguaje en el que haya codificado la aplicación CAB).
4. Cambie el Name (Nombre).
5. (Opcional) Cambie la ubicación de la solución.
6. Haga click en OK (Aceptar).
Figura 2. El asistente Create Solution.
7. Ingrese la ubicación de los ensamblados del Composite UI Application Block, Enterprise Library, y de los offline application blocks.
8. Ingrese el Root namespace para su aplicación.
9. Desmarque la opción Create a separate module to define the layout for the shell (Crear un módulo separado para definirel diseño de la Shell).
10. (Opcional) Seleccione la opción Allow solution to host WPF SmartParts (Permitir que la solución albergue WPF SmartParts) (si su solución contiene o contendrá WPF SmartParts).
11. (Opcional) Seleccione la opción Show documentation after recipe completes (Mostrar documentación luego de que se complete el asistente).
12. Haga click Finish (Finalizar).
Figura 3. La estructura de una solución de Smart Client.
Tarea 2: Agregando la aplicación CAB antigua
En esta tarea, agregará su aplicación CAB a la solución nueva de Smart Client y la configurará de acuerdo con la estructura de SCSF.
1. Copie su aplicación CAB antigua a la carpeta Source ubicada dentro de la carpeta raíz de su solución de Smart Client nueva.
2. En el Solution Explorer, haga click derecho sobre la carpeta Source, dirígase a Add (Agregar), y luego haga click en Existing Project (Proyecto Existente).
3. Busque el directorio de la aplicación CAB antigua y agregue uno de los proyectos de módulo (ej.: su proyecto del módulo Shell de CAB).
Figura 4. Proyecto del módulo Shell de CAB agregado.
4. Repita los pasos 2 y 3 hasta que todos los módulos hayan sido agregados.
5. Haga click derecho sobre su Shell de CAB y seleccione Set as StartUp Project (Establecer como proyecto de inicio).
6. Por cada módulo, haga click derecho sobre el proyecto y seleccione Add Reference (Agregar Referencia). En el tab de Projects (Proyectos), seleccione los proyectos Infrastructure.Interface e Infrastructure.Library y haga click en OK (Aceptar).
7. Por cada módulo, reemplace los ensamblados Microsoft.Practices.* con los que están ubicados en %CarpetaRaízDeLaSolución%\Lib. Si tiene referencias a los proyectos CompositeUI y CompositeUI.WinForms, reemplacelos por las referencias a los ensamblados ubicados en %CarpetaRaízDeLaSolución%\Lib.
| Nota: %CarpetaRaízDeLaSolución%\Lib es el directorio de la carpeta raíz en la cual ubicó la nueva solución de Smart Client. |
8. Por cada módulo, haga click derecho sobre el proyecto y seleccione Properties (Propiedades). En el tab de Build (Construir), dirígase a la sección Output (Salida) y edite el directorio de Output (Salida) a %CarpetaRaízDeLaSolución%\bin\Debug.
Figura 5. Output Path (Directorio de Salida) en la sección de Output (Salida) ubicada en el tab de Build (Construir) en las propiedades del Proyecto. Nota: quizás no vea un directorio relativo hasta que cierre la ventana de propiedades y la vuelva a abrir.
Tarea 3: Removiendo el proyecto Shell de Smart Client
En esta tarea, removerá el proyecto Shell de Smart Client.
1. En el Solution Explorer, haga click derecho sobre el proyecto Infrastructure.Shell y luego haga click en Remove (Remover).
Figura 6. Removiendo el proyecto Shell de SCSF.
2. Elimine la carpeta Source\Infrastructure\Shell ubicada dentro de la carpeta raíz de la solución.
Figura 7. Eliminando la carpeta Shell.
Tarea 4: Actualizando el proyecto Shell
En esta tarea, actualizará el proyecto Shell de su aplicación CAB para reemplazar al proyecto Shell de Smart Client.
1. En el Solution Explorer, expanda su proyecto Shell, abra el archivo ProfileCatalog.xml y actualícelo para que concuerde con el esquema usado en las soluciones de SCSF. Por ejemplo, si su ProfileCatalog aparece así:
| XML |
|
|
| <?xml version=”1.0″ encoding=”utf-8″ ?>
<SolutionProfile xmlns=”http://schemas.microsoft.com/pag/cab-profile” > <Modules> <!– algunos modulos –> </Modules> </SolutionProfile> |
Deberá actualizarlo para que aparezca así:
| XML |
|
|
| <SolutionProfile xmlns=”http://schemas.microsoft.com/pag/cab-profile/2.0″>
<Section Name=”Services”> <Modules> <ModuleInfo AssemblyFile=”Infrastructure.Module.dll” /> <!– ESTO ES REQUERIDO POR LAS SOLUCIONES SC-SF –> <!– UBIQUE LOS MÓDULOS DE INFRAESTRUCTURA (FOUNDATIONAL) AQUÍ –> </Modules> </Section> <Section Name=”Apps”> <Dependencies> <Dependency Name=”Services” /> </Dependencies> <Modules> <!– UBIQUE LOS MÓDULOS DE NEGOCIO (BUSINESS) AQUÍ –> </Modules> </Section> </SolutionProfile>
|
2. Haga click en Save (Guardar) y cierre el archivo.
3. Ahora, haga click derecho sobre su archivo ShellApplication.cs y seleccione View Code (Ver Código).
4. Agregue la siguiente línea:
| Visual Basic |
|
|
| Imports %RootNamespace%.Infrastructure.Library; |
| C# |
|
|
| using %RootNamespace%.Infrastructure.Library; |
| Nota: %RootNamespace% debe ser reemplazado con el RootNamespace que especificó al crear la solución de Smart Client. |
5. Actualice la firma de la clase para que herede de FormShellApplication en vez de SmartClientApplication.
6. Haga click en Save (Guardar).
Tarea 5: Modificando el archivo de la solución
En esta tarea, modificará el archivo suSolución.sln para terminar de establecer el proyecto Shell de su aplicación CAB como el de Smart Client.
1. En la carpeta raíz de su solución, haga click derecho sobre el archivo .sln, seleccione Open with (Abrir con) y elija el NotePad (Bloc de notas).
2. Localice la sección Project de su proyecto Shell.
Figura 8. Sección del proyecto Shell.
3. Copie al portapapeles el GUID que aparece luego de la ubicación del proyecto (su formato es “XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”).
Figura 9. El GUID que aparece luego de la ubicación del proyecto.
4. Localice la línea GlobalSection(ExtensibilityGlobals) = postSolution.
5. Reemplace el GUID especificado en la propiedad ShellProjectGuid con la GUID de su proyecto Shell.
Figura 10. ShellProjectGuid.
6. Guarde y cierre el archivo.
Tarea 6: Compile y Ejecute… Diviértase!
En esta tarea, concluirá compilando y ejecutando su solución actualizada.
1. Vuelva al Visual Studio. Aparecerá un mensaje indicando que la solución ha sido modificada fuera del ambiente de desarrollo. Haga click en Reload (Recargar) para recargar la solución.
2. Compile (Build) y ejecute la aplicación.
Felicidades! Usted ha actualizado su aplicación CAB a SCSF May 2007!
Debería poder utilizar las recipes (asistentes) ahora.
- Salu2, Nacho
See this topic in English.