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

De MSTECH wiki
Ir para: navegação, pesquisa
(Visão de Componentes)
(Ambientes utilizados)
 
(15 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 9: Linha 9:
 
|-
 
|-
 
| Desenvolvimento
 
| Desenvolvimento
| Loomi: http://localhost:62429/ <br> Repository API: http://devpei-repositorio-api.devedu.ms/api/v1/ <br> MiniGestão API: http://devpei-academico-api.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/  
| admin - 123456 ('''Administrador''') <br> professorpei1 - 123456 ('''Professor''') <br> alunopei1 - 123456 ('''Aluno''')
+
| adminpei - 123456 ('''Administrador''') <br> professorpei1 - 123456 ('''Professor''') <br> alunopei1 - 123456 ('''Aluno''')
 
|-
 
|-
 
| Testes  
 
| Testes  
| Loomi: http://pei.devedu.ms/<br> CoreSSO: http://pei-coresso.devedu.ms/ <br> Repositorio: http://repositorio.devedu.ms/ <br> Repositorio API: http://pei-repositorio-api.devedu.ms/
+
| Loomi: http://pei.devedu.ms/ <br> Repositorio API: http://pei-repositorio-api.devedu.ms/ <br> MiniGestão API: http://pei-academico-api.devedu.ms/  
| admin - 123456 ('''Administrador''') <br> professorpei1 - 123456 ('''Professor''') <br> alunopei1 - 123456 ('''Aluno''')
+
| adminpei - 123456 ('''Administrador''') <br> professorpei1 - 123456 ('''Professor''') <br> alunopei1 - 123456 ('''Aluno''')
 
|-
 
|-
| Ambiente de demonstração
+
| Demonstração
| http://loomi.mstech.com.br/ <br> http://demo.mstech.com.br/
+
| http://loomi.mstech.com.br/
| Informação exclusiva do Devops/GTI
+
|-
+
| Produção
+
| TBD
+
 
| Informação exclusiva do Devops/GTI
 
| Informação exclusiva do Devops/GTI
 
|}
 
|}
Linha 36: Linha 32:
 
=Visão de Componentes=
 
=Visão de Componentes=
  
[[Arquivo:Loomi_diagrama_de_componentes.png]]
+
[[File:Loomi_diagrama_de_componentes.png|thumb|center|x500px|alt=Diagrama de componentes Loomi|Diagrama de componentes]]
  
 
=Diagrama de Classes=
 
=Diagrama de Classes=
  
*[[Diagrama de Classes Loomi]]
+
[[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=
Linha 47: Linha 43:
 
'''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.
+
{| 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
 +
|
 +
|}
  
'''Tecnologias de Integração:'''
 
  
O Loomi realiza integração com o '''Repositorio''' atráves de uma interface de '''API'''. Na atual sprint (9) o repositório ainda não possui uma API exposta. Dessa maneira, foi criada uma API fake qual será descontinuada assim que a API final do Repositorio for desenvolvida.
 
  
O principal objetivo da integração do Loomi com o Repositorio é o consumo dos '''recursos (Imagens, Vídeos, Docs etc)''' localizados dentro do Repositorio.
+
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
  
  
Linha 89: Linha 95:
  
  
* '''Consulta''': Não implementada
+
* '''Consulta''': Acesso via sistema, para usuários com perfil de administrador
 
* '''Escopo''': Configurável atráves dos seguintes métodos:
 
* '''Escopo''': Configurável atráves dos seguintes métodos:
 
** Log.Error(ex) - Gera log de erros
 
** Log.Error(ex) - Gera log de erros

Edição atual tal como às 11h31min de 19 de outubro 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/
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 componentes Loomi
Diagrama de componentes

Diagrama de Classes

Diagrama de classes Loomi
Diagrama de classes

Decisões de Arquitetura

Descrever os seguintes itens:

Persistência de dados:

Data Store Acesso Descrição
SQL Server 2008 R2 +
MicrosoftSQLServer.png
Entity Framework 6 (Code-First)
EF6 Logo.png
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?

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.