Persistencia de un proyecto
La persistencia es una consideración clave de diseño para el proyecto. La mayoría de los proyectos usan elementos de proyecto que representan archivos; Visual Studio también admite proyectos cuyos datos no están basados en archivos. Los archivos que pertenecen al proyecto y al archivo del proyecto deben conservarse. El IDE indica al proyecto que se guarde a sí mismo o un elemento de proyecto.
Las plantillas para proyectos se pasan al generador de proyectos. Las plantillas deben admitir la inicialización de todos los elementos del proyecto según los requisitos del tipo de proyecto específico. Estas plantillas se pueden guardar posteriormente como archivos de proyecto y administrarse mediante el IDE a través de la solución. Para obtener más información, consulte Creación de instancias de proyecto mediante generadores de proyectos y soluciones.
Los elementos del proyecto pueden basarse en archivos o no basados en archivos:
Los elementos basados en archivos pueden ser locales o remotos. En los proyectos web de C#, por ejemplo, las conexiones a archivos de un sistema remoto se conservan localmente, mientras que los propios archivos persisten en el sistema remoto.
Los elementos no basados en archivos pueden guardar elementos en una base de datos o repositorio.
Confirmar modelos
Después de decidir dónde se encuentran los elementos del proyecto, debe elegir el modelo de confirmación adecuado. Por ejemplo, en un modelo basado en archivos con archivos locales, cada proyecto se puede guardar de forma autónoma. En un modelo de repositorio, puede guardar varios elementos en una transacción. Para obtener más información, vea Decisiones de diseño de tipos de proyecto.
Para determinar las extensiones de nombre de archivo, los proyectos implementan la IPersistFileFormat interfaz, que proporciona información que permite al cliente de un objeto implementar el cuadro de diálogo Guardar como , es decir, rellenar la lista desplegable Guardar como tipo y administrar la extensión de nombre de archivo inicial.
El IDE llama a la IPersistFileFormat
interfaz del proyecto para indicar que el proyecto debe conservar sus elementos de proyecto según corresponda. Por lo tanto, el objeto posee todos los aspectos de su archivo y formato. Esto incluye el nombre del formato del objeto.
En el caso de que los elementos no sean archivos, IPersistFileFormat
sigue siendo la forma en que se conservan los elementos no basados en archivos. Los archivos de proyecto, como archivos .vbp para proyectos de Visual Basic o archivos .vcproj para proyectos de Visual C++, también deben conservarse.
Para guardar acciones, el IDE examina la tabla de documentos en ejecución (RDT) y la jerarquía pasa los comandos a las IVsPersistHierarchyItem interfaces y IVsPersistHierarchyItem2 . El IsItemDirty método se implementa para determinar si se ha modificado el elemento. Si el elemento tiene, el SaveItem método se implementa para guardar el elemento modificado.
Los métodos de la IVsPersistHierarchyItem2
interfaz se usan para determinar si se puede volver a cargar un elemento y, si el elemento puede ser, para volver a cargarlo. Además, el IgnoreItemFileChanges método se puede implementar para hacer que los elementos modificados se descarten sin guardarse.