Mudanças entre as edições de "Arquitetura do projeto - Loomi"
(→Repositório de Versionamento) |
(→Ambientes utilizados) |
||
(26 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 9: | Linha 9: | ||
|- | |- | ||
| Desenvolvimento | | Desenvolvimento | ||
− | | http://localhost:62429/ <br> http://devpei-repositorio.devedu.ms/ | + | | Loomi: http://localhost:62429/ <br> Repository API: http://devpei-repositorio-api.devedu.ms/ <br> MiniGestão API: http://devpei-academico-api.devedu.ms/ |
− | | | + | | adminpei - 123456 ('''Administrador''') <br> professorpei1 - 123456 ('''Professor''') <br> alunopei1 - 123456 ('''Aluno''') |
|- | |- | ||
| Testes | | Testes | ||
− | | http://pei.devedu.ms/<br> http://pei- | + | | Loomi: http://pei.devedu.ms/ <br> Repositorio API: http://pei-repositorio-api.devedu.ms/ <br> MiniGestão API: http://pei-academico-api.devedu.ms/ |
− | | | + | | adminpei - 123456 ('''Administrador''') <br> professorpei1 - 123456 ('''Professor''') <br> alunopei1 - 123456 ('''Aluno''') |
|- | |- | ||
− | | | + | | Demonstração |
− | | http://loomi.mstech.com.br/ | + | | http://loomi.mstech.com.br/ |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
| Informação exclusiva do Devops/GTI | | Informação exclusiva do Devops/GTI | ||
|} | |} | ||
Linha 36: | Linha 32: | ||
=Visão de Componentes= | =Visão de Componentes= | ||
− | + | [[File:Loomi_diagrama_de_componentes.png|thumb|center|x500px|alt=Diagrama de componentes Loomi|Diagrama de componentes]] | |
+ | |||
+ | =Diagrama de Classes= | ||
+ | |||
+ | [[File:Loomi_diagrama_de_classes.png|thumb|center|x500px|alt=Diagrama de classes Loomi|Diagrama de classes]] | ||
=Decisões de Arquitetura= | =Decisões de Arquitetura= | ||
Descrever os seguintes itens: | Descrever os seguintes itens: | ||
− | '''Persistência de dados''': | + | '''Persistência de dados''': |
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Data Store | ||
+ | ! Acesso | ||
+ | ! Descrição | ||
+ | |- | ||
+ | | SQL Server 2008 R2 + <br/> [[Arquivo:MicrosoftSQLServer.png]] | ||
+ | | Entity Framework 6 (Code-First) <br/> [[Arquivo:EF6_Logo.png]] | ||
+ | | | ||
+ | |- | ||
+ | | [[Arquivo:MongoDB_Logo.png]] | ||
+ | | MongoDB C# Driver 2.2.4 | ||
+ | | | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | O Loomi utiliza base de dados relacional SQL Server 2008R2+ para os dados transacionais e o MongoDB para o Log. A comunição com o SQL Server é realizada através do ORM Entity Framework versão 6. Já para o MongoDB, utilizamos o driver do C# versão 2.2.4 | ||
+ | |||
+ | |||
+ | '''Log: ''': | ||
+ | |||
+ | * '''Framework''': Log4Net 2.0.5 | ||
+ | * '''Base de Dados''': MongoDB | ||
+ | * '''Arquitetura''': O Log é exposto através da interface ILog. A instância da interface ILog pode ser obtida através da Injeção de Dependência: | ||
+ | |||
+ | public class ExampleController : Controller | ||
+ | { | ||
+ | private readonly ILog log; | ||
+ | |||
+ | public ExampleController(ILog log) | ||
+ | { | ||
+ | this.log = log; | ||
+ | } | ||
+ | |||
+ | [HttpGet] | ||
+ | public JsonResult Get() | ||
+ | { | ||
+ | try | ||
+ | { | ||
+ | return Json("Example Controller"); | ||
+ | } | ||
+ | catch (Exception ex) | ||
+ | { | ||
+ | log.Error(ex); | ||
+ | Response.StatusCode = (int)HttpStatusCode.InternalServerError; | ||
+ | return Json("Something bad happened.", JsonRequestBehavior.AllowGet); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
− | ''' | + | * '''Consulta''': Acesso via sistema, para usuários com perfil de administrador |
+ | * '''Escopo''': Configurável atráves dos seguintes métodos: | ||
+ | ** Log.Error(ex) - Gera log de erros | ||
+ | ** Log.Warn(ex) - Gera log de nível Warning | ||
− | |||
'''Padrão de Arquitetura utilizado:''' Se houve planejamento anterior, qual o padrão utilizado? Domain Driven Design (DDD) usando a estrutura MVC? Usa Webforms com outra arquitetura? Front-end e back-end são separados? | '''Padrão de Arquitetura utilizado:''' Se houve planejamento anterior, qual o padrão utilizado? Domain Driven Design (DDD) usando a estrutura MVC? Usa Webforms com outra arquitetura? Front-end e back-end são separados? |
Edição atual tal como às 11h31min de 19 de outubro de 2016
Índice
Informações Gerais
Ambientes utilizados
Ambiente | URL de Acesso | Credenciais |
---|---|---|
Desenvolvimento | Loomi: http://localhost:62429/ Repository API: http://devpei-repositorio-api.devedu.ms/ MiniGestão API: http://devpei-academico-api.devedu.ms/ |
adminpei - 123456 (Administrador) professorpei1 - 123456 (Professor) alunopei1 - 123456 (Aluno) |
Testes | Loomi: http://pei.devedu.ms/ Repositorio API: http://pei-repositorio-api.devedu.ms/ MiniGestão API: http://pei-academico-api.devedu.ms/ |
adminpei - 123456 (Administrador) professorpei1 - 123456 (Professor) alunopei1 - 123456 (Aluno) |
Demonstração | http://loomi.mstech.com.br/ | Informação exclusiva do Devops/GTI |
Repositório de Versionamento
Ambiente: GITLab - Git
Nome: PEI
Caminho: https://gitlab.mstech.com.br/pei/pei
Estrutura dos branches: Main (Master), Develop (Develop)
Visão de Componentes
Diagrama de Classes
Decisões de Arquitetura
Descrever os seguintes itens:
Persistência de dados:
Data Store | Acesso | Descrição |
---|---|---|
SQL Server 2008 R2 + ![]() |
Entity Framework 6 (Code-First) ![]() |
|
![]() |
MongoDB C# Driver 2.2.4 |
O Loomi utiliza base de dados relacional SQL Server 2008R2+ para os dados transacionais e o MongoDB para o Log. A comunição com o SQL Server é realizada através do ORM Entity Framework versão 6. Já para o MongoDB, utilizamos o driver do C# versão 2.2.4
Log: :
- Framework: Log4Net 2.0.5
- Base de Dados: MongoDB
- Arquitetura: O Log é exposto através da interface ILog. A instância da interface ILog pode ser obtida através da Injeção de Dependência:
public class ExampleController : Controller { private readonly ILog log; public ExampleController(ILog log) { this.log = log; } [HttpGet] public JsonResult Get() { try { return Json("Example Controller"); } catch (Exception ex) { log.Error(ex); Response.StatusCode = (int)HttpStatusCode.InternalServerError; return Json("Something bad happened.", JsonRequestBehavior.AllowGet); } } }
- Consulta: Acesso via sistema, para usuários com perfil de administrador
- Escopo: Configurável atráves dos seguintes métodos:
- Log.Error(ex) - Gera log de erros
- Log.Warn(ex) - Gera log de nível Warning
Padrão de Arquitetura utilizado: Se houve planejamento anterior, qual o padrão utilizado? Domain Driven Design (DDD) usando a estrutura MVC? Usa Webforms com outra arquitetura? Front-end e back-end são separados?
Tecnologia de Front-end: Se houver separação, qual tecnologia/framework foi empregada para o projeto? AngularJS, VUE, JQuery, uma composição deles? Qual padrão de codificação (estrutura de pastas, camadas) está sendo usado no projeto? Quais fatores levaram à decisão do framework e arquitetura definidas?
Tecnologia de Back-End: qual tecnologia/framework foi empregada para o projeto? ASP.NET, Java, NodeJS, uma composição deles? Qual padrão de codificação (estrutura de pastas, camadas) está sendo usado no projeto? Quais fatores levaram à decisão do framework e arquitetura definidas?
Framework de CSS: Está sendo utilizada uma ferramenta SASS? Qual framework está sendo usado? Bootstrap 3, Bootstrap 4, Foundation?
Configurações de Otimização de deploy: O código é minificado? O código está com ofuscação? No ASP.NET foi habilitado o bundle no web.config? Quais configurações para otimizar o código são feitas?
Outros aspectos: Fique à vontade para descrever outras considerações, o importante é deixar as decisões tomadas e padrões adotados bem documentados!
Fundamentações das decisões tomadas
Nesta seção, coloque todas as considerações das tomadas de decisão realizadas para o produto. Porque foi usada tal arquitetura? Porque essa separação de componentes? Porque houve refatoração? Descreva o máximo possível nesta seção para que o histórico das decisões seja armazenado para consultas futuras.