Persistência de projeto

A persistência é uma consideração de design importante para seu projeto. A maioria dos projetos usa itens de projeto que representam arquivos; Visual Studio também dá suporte a projetos cujos dados não são baseados em arquivo. Os arquivos pertencentes ao projeto e ao arquivo de projeto devem ser persistentes. O IDE instrui o projeto a salvar a si mesmo ou a um item de projeto.

Modelos para projetos são passados para a fábrica do projeto. Os modelos devem dar suporte à inicialização de todos os itens de projeto de acordo com os requisitos do tipo de projeto específico. Esses modelos podem ser salvos posteriormente como arquivos de projeto e gerenciados pelo IDE por meio da solução. Para obter mais informações, consulte Criando Project instâncias usando fábricas Project e soluções.

Project itens podem ser baseados em arquivo ou não baseados em arquivo:

  • Os itens baseados em arquivo podem ser locais ou remotos. Em projetos Web em C#, por exemplo, as conexões com arquivos em um sistema remoto persistem localmente, enquanto os próprios arquivos persistem no sistema remoto.

  • Itens não baseados em arquivo podem salvar itens em um banco de dados ou repositório.

Modelos de commit

Depois de decidir onde os itens de projeto estão localizados, você deve escolher o modelo de confirmação apropriado. Por exemplo, em um modelo baseado em arquivo com arquivos locais, cada projeto pode ser salvo de forma autônoma. Em um modelo de repositório, você pode salvar vários itens em uma transação. Para obter mais informações, consulte decisões Project design de tipo.

Para determinar as extensões de nome de arquivo, os projetos implementam a interface , que fornece informações que permitem que o cliente de um objeto implemente a caixa de diálogo Salvar como , ou seja, para preencher a lista de lista de opções Salvar como Tipo e gerenciar a extensão de nome de arquivo IPersistFileFormat inicial.

O IDE chama a IPersistFileFormat interface no projeto para indicar que o projeto deve persistir seus itens de projeto conforme apropriado. Portanto, o objeto possui todos os aspectos de seu arquivo e formato. Isso inclui o nome do formato do objeto .

No caso em que os itens não são arquivos, ainda é como IPersistFileFormat os itens não baseados em arquivo são persistentes. Project arquivos , como arquivos .vbp para projetos ou Visual Basic arquivos .vcproj para Visual C++ projetos, também devem ser persistentes.

Para salvar ações, o IDE examina a RDT (tabela de documentos em execução) e a hierarquia passa os comandos para as IVsPersistHierarchyItem IVsPersistHierarchyItem2 interfaces e . O IsItemDirty método é implementado para determinar se o item foi modificado. Se o item tiver, o SaveItem método será implementado para salvar o item modificado.

Os métodos na interface são usados para determinar se um item pode ser recarregado e, se o item pode IVsPersistHierarchyItem2 ser, para recarregá-lo. Além disso, o IgnoreItemFileChanges método pode ser implementado para fazer com que itens alterados sejam descartados sem serem salvos.

Confira também