Mudanças entre as edições de "Arquitetura do projeto - Loomi"
(→Decisões de Arquitetura) |
(→Decisões de Arquitetura) |
||
Linha 69: | Linha 69: | ||
'''Tecnologias de Integração:''' | '''Tecnologias de Integração:''' | ||
− | O Loomi realiza integração com o '''Repositorio''' atráves de uma interface de '''API'''. O principal objetivo da integração do Loomi com o Repositorio é o consumo/criação dos '''recursos (Imagens, Vídeos, Docs etc)''' localizados dentro do Repositorio. | + | O Loomi realiza integração com o '''Repositorio''' atráves de uma interface de '''API'''. O principal objetivo da integração do Loomi com o Repositorio é o consumo/criação dos '''recursos (Imagens, Vídeos, Docs etc)''' localizados dentro do Repositorio. <br /> |
− | + | [[File:Integracao_LoomiRepository.png|thumb|center|x300px|alt=Diagrama integração Loomi - Repositorio|Diagrama integração Loomi - Repositorio]] | |
− | + | ||
− | [[ | + | |
Edição das 19h39min de 30 de agosto 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/api/v1/ MiniGestão API: http://devpei-academico-api.devedu.ms/ |
admin - 123456 (Administrador) professorpei1 - 123456 (Professor) alunopei1 - 123456 (Aluno) |
Testes | Loomi: http://pei.devedu.ms/ CoreSSO: http://pei-coresso.devedu.ms/ Repositorio: http://repositorio.devedu.ms/ Repositorio API: http://pei-repositorio-api.devedu.ms/ |
admin - 123456 (Administrador) professorpei1 - 123456 (Professor) alunopei1 - 123456 (Aluno) |
Ambiente de demonstração | http://loomi.mstech.com.br/ http://demo.mstech.com.br/ |
Informação exclusiva do Devops/GTI |
Produção | TBD | 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 | Tecnologia | 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
Tecnologias de Integração:
O Loomi realiza integração com o Repositorio atráves de uma interface de API. O principal objetivo da integração do Loomi com o Repositorio é o consumo/criação dos recursos (Imagens, Vídeos, Docs etc) localizados dentro do Repositorio.
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: Não implementada
- 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.