Visual Studio alm rangers


Passo 3: Refatorar Referências e Dependências do Banco de Dados



Baixar 7.59 Mb.
Página5/62
Encontro30.10.2016
Tamanho7.59 Mb.
1   2   3   4   5   6   7   8   9   ...   62

Passo 3: Refatorar Referências e Dependências do Banco de Dados


Agora que montamos os componentes iniciais em projetos separados nós precisamos refatorar dependências e referências fortemente acopladas de forma que os projetos possam ser compilados juntos formando uma solução coesa. Antes que o código compartilhado possa ser injetado nesses projetos eles precisam compilar individualmente sem erros.

Local dos arquivos iniciais:

C:\HOL\DatabaseProjectGuidance\SolutionProjectMgmt\SharedCode\Step2_Answer

Local dos arquivos finais:

C:\HOL\DatabaseProjectGuidance\SolutionProjectMgmt\SharedCode\Step3_Answer

Duração estimada: 20 minutos


Configure o projeto startup e bloqueie o deployment do projeto shared code



  1. No Solution Explorer, clique com o botão direito em Solution ‘SharedCode (3 projects), e clique em Properties. A página de propriedades da solução irá aparecer (Figura 6).

  2. No diálogo Solution ‘SharedCode’ Property Pages, selecione a opção Single startup project e então selecione o projeto Database3 no mesmo combo.

  3. No painel esquerdo, clique em Configuration Properties.

  4. Na lista Configuration, selecione All Configurations.

  5. No painel direito, desmarque o checkbox Deploy para o Database3 project e clique em OK.

Figura 6 Defina as ações de Build e Deployment para os projetos



NOTA

Na prática você pode desejar variar as outras opções da solução por tipo de configuração, isto é, debug vs. release. Contudo, normalmente você não irá desejar realizar deploy do projeto shared code a não ser que esteja realizando testes unitários contra ele.

Adicione referências a dbschemas externos para resolver objetos de sistema do SQL Server

Parâmetro

Valor

Projects

Database3 & Database2

master DB

sys.objects

sys.partitions

dbo.xp_sqlagent_enum_jobs

dbo.sysobjects



msdb DB

dbo.sysjobs

Sp_delete_job





  1. Utilizando o Windows Explorer, crie uma nova sub-pasta abaixo da pasta da solução (C:\Users\Administrator\Documents\visual studio 2010\Projects\SharedCode\) chamada: DBSCHEMA

  2. Copie os arquivos dbschema para os objetos de bancos de dados master e msdb a partir de C:\Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions\SqlServer\2008\DBSchemas na pasta criada no passo anterior.

  3. No Solution Explorer, clique com o botão direito em Solution ‘SharedCode’ (3 projects), clique em Add e então clique em Add Existing Item.

  4. No diálogo Add Existing Item, vá para a pasta criada no passo 1, selecione os arquivos master.dbschema e msdb.dbschema. Clique em Add.

  5. No Solution Explorer, expanda a árvore e vá até o nó Solution ‘SharedCode’ (3 projects), Database3, References.

  6. Clique com o botão direito no nó References, clique em Add Database Reference.

  7. No diálogo Add Database Reference, selecione a opção Database project schema (.dbschema) e clique em Browse.

  8. No diálogo Select Database File, vá para a pasta criada no passo 1 e dê um duplo-clique no arquivo master.dbschema.

  9. Clique OK. Note algum tempo necessário ao processamento de todo o conteúdo do dbschema.

  10. Repita os passos de 5 a 9, porém desta vez adicione a referência para master.dbschema no projeto Database1.

  11. Repita os passos de 5 a 9, porém desta vez adicione a referência para master.dbschema no projeto Database2.

  12. Repita os passos de 5 a 9, porém desta vez adicione a referência para msdb.dbschema no projeto Database2.

  13. No menu principal clique em Build, Rebuild Solution.

  14. No menu principal clique em File, Save All.

Parametrize os nomes dos objetos de terceiros com referência a Database Schemas

Parameter

Value

Project

Database2

Variable name

$(ReportServerTempDB)

Variable value

ReportServerTempDB



  1. No Solution Explorer, expanda a árvore e vá até o nó Solution ‘SharedCode’ (3 projects), Database2, References.

  2. Na árvore do Solution Explorer, clique com o botão direito no nó References e clique Add Database Reference.

  3. No diálogo Add Database Reference (Figura 7), selecione o checkbox Define database variable.

  4. No lista Database projects in the current solution, selecione Database1.

  5. Abaixo do checkbox Define database variable, na caixa de texto Name digite: $(ReportServerTempDB).

  6. No caixa de texto Value, digite: ReportServerTempDB.

  7. Selecione o checkbox Update the existing schema object definitions and scripts to use the database reference variables, e clique em OK.

Figura 7 Adicione uma referência ao projeto Database1 para resolver os problemas de resolução de nomes



  1. No diálogo Preview Changes – Rename Server or Database, reveja as mudanças pendentes e clique em Apply.

  2. No menu principal, clique em Build e depois clique em Rebuild Solution.

  3. No menu principal, clique em File, Save All.

Otimize as referências ao dbschema externo para os objetos de sistema do SQL Server

NOTA

Você deve notado que é necessário algum tempo para validar e processar cada referência feita pelos projetos aos arquivos master.dbschema ou msdb.dbschema. Isso se deve ao grande número de objetos definidos em cada um desses arquivos, a maioria dos quais não são necessários nesta solução. Na prática você deve fazer uma cópia desses arquivos por solução e editá-los para remover todas as referências a objetos não utilizados.





Parâmetro

Valor

master.dbschema

Type=”ISql100DatabaseOptions”

Name=”[sys].[objects]”

Name=”[sys].[partitions]”

Name=”[sys].[sysobjects]”

Name=”[dbo].[xp_sqlagent_enum_jobs]”


msdb.dbschema

Type=”ISql100DatabaseOptions”

Name=”[dbo].[sp_delete_job]”

Name=”[dbo].[sp_verify_job_identifiers]”

Name=”[dbo].[sysjobs]”





  1. No Solution Explorer, expanda a árvore e vá até o nó Solution ‘SharedCode’ (3 projects), Solution Items.

  2. Dê um duplo-clique no arquivo master.dbschema para editar o seu conteúdo XML.

  3. Na aba master.dbschema, sob element XML , delete todas as entidades que não se encaixam no padrão listado na tabela acima. Nós sugerimos que você recorte e cole os elementos desejados do topo do documento, diretamente abaixo do nó . Após isso, delete o restante das entidades .

  4. Repita os passos 2-3 para o arquivos msdb.dbschema e seus valores.

  5. No menu principal, clique em Build e então em Rebuild Solution. Finalmente, verifique se você não introduziu novos erros ou alertas.

Algumas limpezas no projeto

NOTA

Há também uma referência ambígua para uma proc de sistema contida no banco de dados msdb no mesmo projeto (a referência não especifica o owner da SP); então vamos corrigir o problema!





  1. No Solution Explorer, expanda a árvore e vá até o nó Solution ‘SharedCode’ (3 projects), Database2, Schema Objects, Schemas ,dbo, Programmability, Stored Procedures.



  1. Clique com o botão direito em dbo.MigrationExecutionLog.proc.sql, e então clique em Exclude from Project.

NOTA

Há uma stored procedure com uma referência não resolvida para um objeto órfão em no projeto Database2 (ReportServer). Provavelmente este problema não existiria se os desenvolvedores originais estivessem usando o VSDB! Vamos excluí-la do projeto de forma que o problema não nos distraia dos objetivos do laboratório.





  1. No menu principal, clique em View, Error List.

  2. No painel Error List, dê um duplo-clique no alerta SQL04151 referente ao arquivo dbo.Get_sqlagent_job_status.proc.sql.

  3. Corrija o erro alterando a chamada a SP utilizando o nome totalmente qualificado (fully-qualified name):

EXECUTE @retval = msdb..sp_verify_job_identifiers
deve ser alterado para

EXECUTE @retval = msdb.dbo.sp_verify_job_identifiers



  1. No menu principal, clique em Build e então em Rebuild Solution.

  2. No menu principal, clique File, All.

IMPORTANTE

A solução deve compilar por completo sem nenhum erro ou alertas. É importante ter as coisas funcionando bem nesse passo antes de partirmos para a implementação dos arquivos de projetos parciais. Se não tivermos um estado limpo (sem erros ou alertas) pode ser mais complicado identificar os problemas após a implementação dos arquivos de projetos parciais.


Passo 4: Refatore a Solução para habilitar Projetos Parciais


Local dos arquivos iniciais: C:\HOL\DatabaseProjectGuidance\SolutionProjectMgmt\SharedCode \Step3_Answer

Local dos arquivos finais: C:\HOL\DatabaseProjectGuidance\SolutionProjectMgmt\SharedCode\Step4_Answer

Duração Estiamada: 15 minutos

Verifique que os objetos nos código compartilhado não irão propagar erros



  1. No Solution Explorer, clique com o botão direito no projeto Database3 e então clique em Properties.

  2. Na aba Database3, selecione a página Code Analysis.

  3. No painel da direita, selecione o check box Enable Code Analysis on Build.

  4. No menu principal, clique em Build e em Rebuild Database3.

  5. No painel Output, verifique que o build do projeto foi bem sucedido.

  6. No painel Error List, corrija todos os erros e alertas de análise de código, caso haja algum.

  7. No menu principal, clique em File, Save All.

Exporte os objetos compartilhados como uma definição de arquivo de projeto parcial

  1. No Solution Explorer, clique com o botão direito em Database3 e então clique em Export As Partial Project

  2. No diálogo Save As, clique em New Folder, e depois digite: Partial Projects Export.

  3. Na caixa de texto File name, digite: Shared Objects e então clique Save.

  4. No diálogo do Microsoft Visual Studio entitulado Do you want to add this partial project file to your current project? clique em Yes.

Refatore a configuração padrão do arquivo de projeto parcial

  1. No Solution Explorer, abaixo de Database3, Partial Projects Export, dê um duplo-clique em Shared Objects.files.

  2. No diálogo Inconsistent Line Endings, clique em Yes.

  3. Na aba Shared Objects.files, tome nota do nome da propriedade referenciada no comentário no topo do arquivo; deve ser algo como Database3BasePath_XX_X_XXX_X_XX_XX_XX.

  4. Encontre e substitua todas as ocorrências do valor do nome desta propriedade por Database3BasePath. Altere 19 instâncias desse valor.

  5. Encontre e substitua todas as ocorrências de Database3BasePath\’ por Partial Projects Import\Shared Objects\. Altere 9 instâncias do valor.

  6. No menu principal, clique em File, Save All.

  7. Feche a aba Shared Objects.files.

Importe os arquivos parciais de projeto e elimine os conflitos de referências não resolvidas

  1. No Solution Explorer, clique com o botão direito em Database2 e então clique em Import Partial Project.

  2. No diálogo do Microsoft Visual Studio entitulado Including a partial project will cause the project to load and unload. Do you want to save your project and continue? clique em Yes.

  3. No diálogo Open, vá para a pasta ..\Database3\Partial Projects Export e dê um duplo-clique em Shared Objects.files.

  4. No menu principal, clique em View e então em Error List.

NOTA

Ao importar os arquivos parciais de projeto do projeto Database3 no projeto Database2, nós de fato duplicamos os objetos para cada objeto compartilhado – aqueles que importamos e os que foram identificados quando fizemos a comparação dos esquemas de banco de dados entre os projetos Database1 e Database2. Estas entradas duplicadas resultaram em diversos erros de referências não resolvidas (SQL03006) os quais precisam ser corrigidos removendo os objetos originais do projeto Database2 e mantendo os objetos importados.



  1. No Solution Explorer, expanda o nó Database2 e expanda os seguintes nós: Schemas , dbo, Tables, dbo.ChunkData.table.sql.

  2. Clique com o botão direito em dbo.ChunkData.table.sql, clique em View Object in Schema View e então clique em ChunkData.

NOTA

Existem duas entradas para esta tabela, ambas prefixadas por um ícone de erro. Você precisa vizualizar as propriedades de cada uma delas e excluir a que esteja na estrutura de pastas do projeto Database2, mantendo a outra definição referente ao projeto compartilhado Database3.



  1. Clique com o botão direito em ChunkData, e então clique em Properties.

  2. No painel de propriedades, examine o valor da propriedade Full Path. Caso ela esteja fazendo referência ao caminho do projeto Database2, delete a entidade ChunkData. Caso contrário, inspecione e delete a outra entidade ChunkData.

  3. Repita os passos 7-8 para as tabelas ChunkSegmentMapping e Segment.

  4. No menu principal, clique Build e então clique em Rebuild Database2.

  5. Examine o conteúdo do painel Error List e repita os passos 7-8 para cada novo objeto chave, constraint, índice no projeto Database2.

  6. No menu principal, clique Build e depois em Rebuild Database2.

  7. Na janela Output, verifique se a compilação do projeto foi bem sucedida.

  8. No painel Error, certifique-se de que não há erros ou alertas.

  9. No menu principal, clique em File e então em Save All.

  10. Repita os passos 1-14, mas desta vez, importe os arquivos parciais do projeto Database3 no Database1.

Exercite diferentes níveis de granularidade do build

  1. No Solution Explorer, clique com o botão direito Database3 e clique em Rebuild.

  2. Clique com o botão direito em Database3 e então clique em Unload Project.

  3. Clique com o botão direito em Database1 e então clique em Rebuild.

  4. Clique com o botão direito em Database2 e então clique em Rebuild.

  5. No menu principal, clique Build e então clique em Rebuild Solution.

NOTA

Com este tipo de build você irá notar que atualmente nós não precisamos que a solução Database3 compile os outros dois projetos referenciados. O projeto parcial é referenciado a partir dos arquivos de projeto e você não precisa incluir o projeto Database3 na sua solução.


Passo 5: Propague as mudanças para os components de código compartilhado


Agora que nós refatoramos e consolidamos o código compartilhado em um projeto comum, nós podemos com facilidade realizar mudanças a estas estruturas de forma centralizada e automaticamente propagar estas mudanças para os projetos dependentes.

Local dos arquivos iniciais: C:\HOL\DatabaseProjectGuidance\SolutionProjectMgmt\SharedCode\Step4_Answer

Local dos arquivos finais: C:\HOL\DatabaseProjectGuidance\SolutionProjectMgmt\SharedCode\Step5_Answer

Duração Estimada: 10 minutos


Altere uma view no projeto compartilhado



  1. No painel Solution Explorer, expanda a árvore e vá para Solution ‘SharedCode’ (3 projects), Database3. (Caso o projeto esteja descarregado do passo 4 neste cenário, clique com o botão direito no nó do projeto e selecione Reload Project.) Após, clique no nó Schema Objects, Schemas , dbo, Views, e então efetue um duplo-clique dbo.vwRowCounts.view.sql.

  2. Na aba dbo.vwRowCounts.view.sql, edite a definição da view e adicione uma nova coluna chamada ‘DatabaseName’ que retorne DB_NAME() como seu valor.

  3. No menu principal, clique em Build e selecione Rebuild Database3.

  4. No painel Output, verifique que o build do projeto foi bem sucedido, sem erros ou alertas.

  5. No menu principal, clique em Build e então em Build Solution.

  6. No painel Output, verifique que o build da solução foi bem sucedido, sem erros ou alertas.

Inspecione os projetos dependentes e verifique que as alterações no código compartilhado foram propagadas

  1. No painel Schema View, expanda a árvore e navegue até o nó Database1, Schemas, dbo, Views, vwRowCounts, Columns. Observe a adição da coluna DatabaseName.

  2. Clique com o botão direito em vwRowCounts e selecione Properties.

  3. No painel Properties, examine o valor da propriedade Full Path e note que ela faz referência ao arquivo localizado na árvore de diretórios do projeto Database3.

  4. Repita os passos 1-3, mas desta vez examine a mesma visão lógica no projeto Database2.



Catálogo: 2012
2012 -> Fapesp e inpe promovem workshop para discutir relatório do ipcc sobre Riscos de Extremos Climáticos e Desastres nas Américas do Sul e Central
2012 -> Anima Mea Concerto no Convento Corpus Christi, 14junho2015
2012 -> Branches e merge com Visual Studio Team Foundation Server 2012
2012 -> Perfil: Time de Qualidade, Testadores
2012 -> Lista de Biologia Vanessa / Frente a volume 2
2012 -> CÂmara municipal de sapopema estado do paraná cnpj: 77. 774. 487/0001-94 Av. Manoel Ribas, 520, cep – 84. 294-000 Fone/Fax (43) 3548-1258
2012 -> Instituto nacional de estudos e
2012 -> Gabinete do ministro
2012 -> Indice de leis complementar 2012 lei 114 À 154 lei complementar 114 de 19 de janeiro de 2012
2012 -> Agenda do presidente do Ibram, Angelo Oswaldo de Araújo Santos 30 de dezembro de 2014

Baixar 7.59 Mb.

Compartilhe com seus amigos:
1   2   3   4   5   6   7   8   9   ...   62




©bemvin.org 2020
enviar mensagem

    Página principal
Prefeitura municipal
santa catarina
Universidade federal
prefeitura municipal
pregão presencial
universidade federal
outras providências
processo seletivo
catarina prefeitura
minas gerais
secretaria municipal
CÂmara municipal
ensino fundamental
ensino médio
concurso público
catarina município
reunião ordinária
Dispõe sobre
Serviço público
câmara municipal
público federal
Processo seletivo
processo licitatório
educaçÃo universidade
seletivo simplificado
Secretaria municipal
sessão ordinária
ensino superior
Universidade estadual
Relatório técnico
Conselho municipal
técnico científico
direitos humanos
científico período
pregão eletrônico
Curriculum vitae
espírito santo
Sequência didática
Quarta feira
conselho municipal
prefeito municipal
distrito federal
língua portuguesa
nossa senhora
educaçÃo secretaria
Pregão presencial
segunda feira
recursos humanos
educaçÃO ciência
Terça feira
agricultura familiar