O slideshow foi denunciado.

Arquitetura 2012

382 visualizações

Publicada em

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Arquitetura 2012

  1. 1. Projetos .Net - Arquitetura 2012 Controles Common
  2. 2. Estrutura3 Camadas / N Camadas – Parte 11. Apresentação / UI – Primeira camada da arquitetura onde é definidaa interface de comunicação entre o usuário e a aplicação.2. Hosting – Segunda camada da arquitetura onde é definida a interfacede comunicação entre outros sistemas e a aplicação.2.1. Serviços – Parte da segunda camada da arquitetura onde é / sãodefinido(s) os serviços (WCF) de comunicação com a aplicação.3. Negócio – Terceira camada da arquitetura onde é / são definida(s)a(s) classe(s) de negócio, interface entre a camada 1 e / ou 2 com acamada 4.3.1 Entidade – Parte da terceira camada da arquitetura onde é / sãodefinidas(os) a(s) classe(s) que representam as entidades da aplicação.
  3. 3. Estrutura3 Camadas / N Camadas – Parte 24. Dados – Quarta camada da arquitetura onde é / são definida(s) a(s)classe(s) de acesso ao banco de dados.5. Teste – Quinta camada da arquitetura, é uma camada independenteda aplicação, serve apenas para organizar as classes de UnitTest.Framework – Camada base e auxiliar dos projetos Gommo. Nestacamada são definidas(os) classes e controles comuns para os projetosem geral.
  4. 4. Estrutura3 Camadas / N Camadas – Parte 3 A estrutura de camadas também é refletida no Windows Explorer e na estrutura de pastas físicas. Cada projeto fica em uma pasta separada, assim como existem pastas para a documentação do projeto, e outros artefatos como diagramas, etc.Isso torna eficaz a pesquisa de arquivos, o controle de versão e avisualização por parte da equipe.
  5. 5. Fluxo de informaçõesFuncionamento – Parte 1 1. Apresentação UI – Web Site 3. Negócio - 3.1 Entidades – TO - EO B.D. Facade 4. Dados - Dao
  6. 6. Fluxo de informações SistemaFuncionamento – Parte 2 externo 2. Hosting 2.1 Serviços - WCF 3. Negócio - 3.1 Entidades – TO - EO B.D. Facade 4. Dados - Dao
  7. 7. Metodologias utilizadas ou aplicáveisDDD – Domain Driven Design - Parte 1 A arquitetura apresentada baseia-se no conceito do DDD, que é a construção de umaaplicação baseada em domínios. Um domínio neste cenário, nada mais é que um assunto ou entidade mais popularmenteconhecido.Exemplo do domínio Usuário:(3) Namespace Gommo.ProjetoModelo.Facade Classe UsuarioFacade.(3.1) Namespace Gommo.ProjetoModelo.Entidade Classe UsuarioTO – UsuarioEO ou Usuario.(4) Namespace Gommo.ProjetoModelo.Dao Classe UsuarioDao.Exemplo do domínio Usuário com integração:(2) Namespace Gommo.ProjetoModelo.InterfaceComunicacaoServer Classe UsuarioInterface.(2.1) Namespace Gommo.ProjetoModelo.InterfaceComunicacao InterfaceIUsuarioService Classe UsuarioService.(3) Namespace Gommo.ProjetoModelo.Facade Classe UsuarioFacade.(3.1) Namespace Gommo.ProjetoModelo.Entidade Classe UsuarioTO – UsuarioEO ou Usuario.(4) Namespace Gommo.ProjetoModelo.Dao Classe UsuarioDao.
  8. 8. Metodologias utilizadas ou aplicáveisDDD – Domain Driven Design - Parte 2 Sistema Externo UsuarioInterface UI UsuarioService Usuario – Entidade – TO - EO UsuarioFacade UsuarioDao B.D.
  9. 9. Detalhes WebSite ou WebApplication Item WebApplication WebSiteArquivo de projeto Sim NãoPasta App_Code Sim* SimClasses organizadas por Namespaces Sim NãoOpções de Deployment 1 3Alteração das classes na Depuração (Debug) Não SimAlteração na página (.aspx) na Depuração Sim Sim(Debug)Properties do Arquivo no projeto Sim Não *é necessário criá-la manualmente com a opção New Folder e, se necessário, mudar a Propriedade "Build Action" das classes dentro da App_Code para "Compile". http://msdn.microsoft.com/en-us/library/dd547590.aspx
  10. 10. DetalhesEstrutura de diretórios - UIA importância da estrutura de diretórios dentro do WebSite é muitoimportante, pois garante a integridade do fluxo de informações daaplicação.No exemplo ao lado, há uma estrutura de pastas para Upload dearquivos do usuário. É importante separar as pastas por domínio(DDD).
  11. 11. DetalhesClasses e Patterns Utilizados No modelo proposto já existe uma parte da camada 4 (Dao) pronto, que é justamente aparte onde realiza a conexão com o banco de dados, e efetiva as operações necessárias no mesmo. A camada 4 (Dao) é uma das mais importantes, pois trata do acesso as informações decada aplicação assim como a performance na execução das mesmas. Para garantir que a performancenão seja um problema nas aplicações independente de seu tamanho, o acesso para leitura de dados érealizado utilizando-se a classe SqlDataReader do namespace System.Data.SqlClient.SqlDataReader,através da tecnologia de conexão ADO.Net. A classe SqlDataReader é utilizada sempre dependendo de uma conexão (modo conectado), e apesar disso seu desempenho é superior ao da classe DataSet que trabalha de modo desconectado. SqlDatareader http://msdn.microsoft.com/pt-br/library/system.data.sqlclient.sqldatareader.aspx ADO.Net http://msdn.microsoft.com/en-us/library/e80y5yhx(v=vs.80).aspx
  12. 12. DetalhesClasses e Patterns Utilizados Design Patterns é uma forma de estruturar um conjunto de classes e suasinterdependências assim como seus comportamentos, assim como para garantir a melhor performancena utilização dessas classes.Singleton – garante uma única instância de determinada classe na memória.Facade – interligação entre classes de forma isolada.Bridge – separa a interface de um objeto da sua implementação. Design Patterns http://www.dofactory.com/Patterns/Patterns.aspx
  13. 13. ConfiguraçõesWeb.config<?xml version="1.0"?><configuration><appSettings> <add key="DataProvider" value="System.Data.SqlClient"/> <add key="ConnectionStringName" value="ADO.NET.SqlServer"/></appSettings><connectionStrings> <add name="ADO.NET.SqlServer" connectionString="Data Source=servidor;InitialCatalog=DataBase;Integrated Security=False;User ID=Usuario;Password=Senha;"/></connectionStrings>
  14. 14. DeploymentComo fazer – Web SiteBasta gerar um Publish do projeto conforme figura. A primeira opção é para permitir atualização do site atravéz de dlls separadas. A segunda opção é para gerar dlls separadas para cada arquivo, .aspx e .ascx.
  15. 15. DeploymentComo fazer – Web AppBasta gerar um Publish do projeto conforme figura. A imagem representa um Publish Profile, onde você configura o padrão diretamente no IIS. Ou escolher a opção FileSystem em Publish method. E aio deploy é igual ao WebSite exceto pelo fato de Web App gerar apenas uma dll para todo o projeto.
  16. 16. VantagensPor que utilizar?Fácil adaptação da equipe;Tecnologia .Net otimizada utilizando boas práticas e Design Patterns;Flexibilidade;Manutenabilidade;Escalabilidade;Patrimônio da Gommo;Plataforma própria;
  17. 17. DesvantagensPor que não utilizar? Definição dos controles e classes comuns; Tempo de implementação dos controles e classes comuns;
  18. 18. PluginsO que mais pode ser feitoTFS – Deploy automático, Build Automático; Work ItemCode Metrics;Code Analysis;Redgate;Re-sharper;

×