Mudanças entre as edições de "Arquitetura do projeto - Loomi"

De MSTECH wiki
Ir para: navegação, pesquisa
(Decisões de Arquitetura)
(Decisões de Arquitetura)
Linha 47: Linha 47:
 
'''Persistência de dados''':  
 
'''Persistência de dados''':  
  
O Loomi utiliza base de dados relacional SQL Server 2008R2+ para os dados transacionais e o MongoDB para o Log.
+
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
  
  

Edição das 18h52min de 30 de agosto de 2016

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

Loomi diagrama de componentes.png

Diagrama de Classes

Loomi diagrama de classes.png

Decisões de Arquitetura

Descrever os seguintes itens:

Persistência de dados:

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.