SlideShare uma empresa Scribd logo
1 de 21
11
Alunos
Nuno Silva - 24948
Pedro Santos -
24992
Tiago Sousa - 25126
Coordenadores
Paulo Pereira
Pedro Pereira
2
• Motivação
• Objectivos
• Visão Geral
• Arquitectura
• Infra-Estrutura
• Conclusão
• Casos Práticos
• Vídeo
Estrutura da
Apresentação
3
Cansados de REPETIÇÃO!!!
4
Código Repetitivo
Necessidade de criar sempre os mesmos
componentes
• Bases de dados
• Acesso a dados
• Internacionalização
• Controlos para mostrar dados
• etc
5
• Baixo Acoplamento e Alta Coesão
• Menos Código para o Programador Escrever
• Desenvolvimento rápido
• Diminuição dos erros
• Combate à Redundância
• Independência
6
Blocos Constituíntes
7
Blocos Constituíntes
8
Processo de Geração
9
Criação de Plugins
10
Tipos de Plugins
11
Objectos de Suporte
12
Componentes Gerados
Projectos Gerados
• Core
• DataAccessLayer
• Config
• WebUserInterface
Exemplo
13
Componentes Gerados
Core
• Representação em classes do
modelo de entidades
DataAccessLayer
• API de persistência de entidades
Config
• Aplicação de utilitários
14
Web User Interface
• Controlos extensíveis para a
manipulação visual de entidades
• Funcionalidades comuns em
aplicações web
• Autenticação/autorização
• Internacionalização
• Gestão de Excepções
• Interface de Administração
15
Visualização de Entidades
CategoryItem
Output
16
Edição e Listagem de
Entidades
EntityEditor
17
Edição e Listagem de
Entidades
EntityList
Output
18
Administração
Backoffice Gerado Automaticamente
19
• Pontos Fortes
• Mecanismos de Automatização
• Fácil mudança de requisitos
• Controlos ASP.NET versáteis
• Independência de SGBD
• Trabalho Futuro
• Especificação do Fluxo de páginas
• Independência de ferramentas exteriores
20
Casos Práticos
21
MOVIE TIME!

Mais conteúdo relacionado

Mais procurados

ASP.NET MVC, para sua vida melhorar
ASP.NET MVC, para sua vida melhorarASP.NET MVC, para sua vida melhorar
ASP.NET MVC, para sua vida melhorarWaldyr Felix
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Renato Groff
 
ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!Vinicius Mussak
 
WordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperWordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperPaulino Michelazzo
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Renato Groff
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Renato Groff
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Rodrigo Kono
 
Implementando Cache no Mulesoft Flow usando Redis
Implementando Cache no Mulesoft Flow usando RedisImplementando Cache no Mulesoft Flow usando Redis
Implementando Cache no Mulesoft Flow usando RedisRenato de Oliveira
 
Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com MeteorWeverton Gomes
 
Introdução ao CakePHP
Introdução ao CakePHPIntrodução ao CakePHP
Introdução ao CakePHPRafael Cichini
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 

Mais procurados (14)

ASP.NET MVC, para sua vida melhorar
ASP.NET MVC, para sua vida melhorarASP.NET MVC, para sua vida melhorar
ASP.NET MVC, para sua vida melhorar
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
 
DevOps com Python
DevOps com PythonDevOps com Python
DevOps com Python
 
ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!
 
WordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperWordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé Developer
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
 
Implementando Cache no Mulesoft Flow usando Redis
Implementando Cache no Mulesoft Flow usando RedisImplementando Cache no Mulesoft Flow usando Redis
Implementando Cache no Mulesoft Flow usando Redis
 
Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com Meteor
 
Introdução ao CakePHP
Introdução ao CakePHPIntrodução ao CakePHP
Introdução ao CakePHP
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Meteor - TechParty 2015
Meteor - TechParty 2015Meteor - TechParty 2015
Meteor - TechParty 2015
 
(A18) LabMM3 - Ajax
(A18) LabMM3 - Ajax(A18) LabMM3 - Ajax
(A18) LabMM3 - Ajax
 

Destaque

Makalah kel-dua-gizi-dan-makanan AKBID PARAMATA RAHA KAB. MUNA
Makalah kel-dua-gizi-dan-makanan AKBID PARAMATA RAHA KAB. MUNA Makalah kel-dua-gizi-dan-makanan AKBID PARAMATA RAHA KAB. MUNA
Makalah kel-dua-gizi-dan-makanan AKBID PARAMATA RAHA KAB. MUNA Operator Warnet Vast Raha
 
розвиток професійної самосвідомості сугак в.в.
розвиток професійної самосвідомості сугак в.в.розвиток професійної самосвідомості сугак в.в.
розвиток професійної самосвідомості сугак в.в.Ольга Демидова
 
Soalan kh ujian 1 thn 6 (2015)
Soalan kh ujian 1 thn 6 (2015)Soalan kh ujian 1 thn 6 (2015)
Soalan kh ujian 1 thn 6 (2015)fadhilahraizi
 
Lesiones en el futbol soccer
Lesiones en el futbol soccerLesiones en el futbol soccer
Lesiones en el futbol socceradrianvegarojo
 
Makalah kesetahan dan gizi AKBID PARAMATA RAHA KAB. MUNA
Makalah kesetahan dan gizi AKBID PARAMATA RAHA KAB. MUNA Makalah kesetahan dan gizi AKBID PARAMATA RAHA KAB. MUNA
Makalah kesetahan dan gizi AKBID PARAMATA RAHA KAB. MUNA Operator Warnet Vast Raha
 
Earnings Presentation 3Q15
Earnings Presentation 3Q15Earnings Presentation 3Q15
Earnings Presentation 3Q15Cencosud
 
Resume_Aftab_Pasha
Resume_Aftab_PashaResume_Aftab_Pasha
Resume_Aftab_PashaAftab Pasha
 
reffrence lettrer creative academy
reffrence lettrer creative academyreffrence lettrer creative academy
reffrence lettrer creative academyFortunate Nneji
 
La puerta de m´ hamide el ghezlane Memorias de un viaje de vuelta e ida ...
La puerta de m´ hamide el ghezlane     Memorias de un viaje de vuelta e ida  ...La puerta de m´ hamide el ghezlane     Memorias de un viaje de vuelta e ida  ...
La puerta de m´ hamide el ghezlane Memorias de un viaje de vuelta e ida ...RUBÉN LAGUNAS TELLO
 
REV CITYSCAPES 042.GDJ137.V2
REV CITYSCAPES 042.GDJ137.V2REV CITYSCAPES 042.GDJ137.V2
REV CITYSCAPES 042.GDJ137.V2Darryl Moore
 
PIA Semiotica de la imagen
PIA Semiotica de la imagenPIA Semiotica de la imagen
PIA Semiotica de la imagen9oskr3
 
Catastrofe de Chernobyl
Catastrofe de ChernobylCatastrofe de Chernobyl
Catastrofe de ChernobylYamiletDTsab
 

Destaque (17)

Tampilan alfresco
Tampilan alfrescoTampilan alfresco
Tampilan alfresco
 
Makalah kel-dua-gizi-dan-makanan AKBID PARAMATA RAHA KAB. MUNA
Makalah kel-dua-gizi-dan-makanan AKBID PARAMATA RAHA KAB. MUNA Makalah kel-dua-gizi-dan-makanan AKBID PARAMATA RAHA KAB. MUNA
Makalah kel-dua-gizi-dan-makanan AKBID PARAMATA RAHA KAB. MUNA
 
розвиток професійної самосвідомості сугак в.в.
розвиток професійної самосвідомості сугак в.в.розвиток професійної самосвідомості сугак в.в.
розвиток професійної самосвідомості сугак в.в.
 
Empresa
EmpresaEmpresa
Empresa
 
Presentation
PresentationPresentation
Presentation
 
Soalan kh ujian 1 thn 6 (2015)
Soalan kh ujian 1 thn 6 (2015)Soalan kh ujian 1 thn 6 (2015)
Soalan kh ujian 1 thn 6 (2015)
 
Marketing money monster
Marketing money monsterMarketing money monster
Marketing money monster
 
Lesiones en el futbol soccer
Lesiones en el futbol soccerLesiones en el futbol soccer
Lesiones en el futbol soccer
 
Makalah kesetahan dan gizi AKBID PARAMATA RAHA KAB. MUNA
Makalah kesetahan dan gizi AKBID PARAMATA RAHA KAB. MUNA Makalah kesetahan dan gizi AKBID PARAMATA RAHA KAB. MUNA
Makalah kesetahan dan gizi AKBID PARAMATA RAHA KAB. MUNA
 
Earnings Presentation 3Q15
Earnings Presentation 3Q15Earnings Presentation 3Q15
Earnings Presentation 3Q15
 
Resume_Aftab_Pasha
Resume_Aftab_PashaResume_Aftab_Pasha
Resume_Aftab_Pasha
 
reffrence lettrer creative academy
reffrence lettrer creative academyreffrence lettrer creative academy
reffrence lettrer creative academy
 
La puerta de m´ hamide el ghezlane Memorias de un viaje de vuelta e ida ...
La puerta de m´ hamide el ghezlane     Memorias de un viaje de vuelta e ida  ...La puerta de m´ hamide el ghezlane     Memorias de un viaje de vuelta e ida  ...
La puerta de m´ hamide el ghezlane Memorias de un viaje de vuelta e ida ...
 
Rne2006 e 020
Rne2006 e 020Rne2006 e 020
Rne2006 e 020
 
REV CITYSCAPES 042.GDJ137.V2
REV CITYSCAPES 042.GDJ137.V2REV CITYSCAPES 042.GDJ137.V2
REV CITYSCAPES 042.GDJ137.V2
 
PIA Semiotica de la imagen
PIA Semiotica de la imagenPIA Semiotica de la imagen
PIA Semiotica de la imagen
 
Catastrofe de Chernobyl
Catastrofe de ChernobylCatastrofe de Chernobyl
Catastrofe de Chernobyl
 

Semelhante a Midgard's final presentation

SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dadosSQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dadosDirceu Resende
 
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosVisual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosFernando Henrique
 
VIII sessão SQL Bahia - Conhecendo o Microsoft SQL Operations Studio
VIII sessão SQL Bahia - Conhecendo o Microsoft SQL Operations StudioVIII sessão SQL Bahia - Conhecendo o Microsoft SQL Operations Studio
VIII sessão SQL Bahia - Conhecendo o Microsoft SQL Operations StudioAnderson Souza
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Fernando Henrique
 
[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest LabsJaqueline Ramos
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Renato Groff
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013André Borgonovo
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureFabrício Lopes Sanchez
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaRenato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Renato Groff
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosRyan Padilha
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDDPHP Day Curitiba
 
Web components para o seu design system
Web components para o seu design systemWeb components para o seu design system
Web components para o seu design systemNicole Oliveira
 

Semelhante a Midgard's final presentation (20)

SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dadosSQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
SQLCLR - Transformando seu SQL Server em algo muito além de um banco de dados
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core MVC
 
2006 - CURSOINTRODUÇÃOADOTNET.ppt
2006 - CURSOINTRODUÇÃOADOTNET.ppt2006 - CURSOINTRODUÇÃOADOTNET.ppt
2006 - CURSOINTRODUÇÃOADOTNET.ppt
 
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosVisual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
 
VIII sessão SQL Bahia - Conhecendo o Microsoft SQL Operations Studio
VIII sessão SQL Bahia - Conhecendo o Microsoft SQL Operations StudioVIII sessão SQL Bahia - Conhecendo o Microsoft SQL Operations Studio
VIII sessão SQL Bahia - Conhecendo o Microsoft SQL Operations Studio
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
 
[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs
 
[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs[O Palco é Delas!] Azure DevTest Labs
[O Palco é Delas!] Azure DevTest Labs
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na Prática
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e Desafios
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Web components para o seu design system
Web components para o seu design systemWeb components para o seu design system
Web components para o seu design system
 

Último

Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3filiperigueira1
 
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfdanielemarques481
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfTipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfMarcos Boaventura
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 

Último (7)

Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3
 
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfTipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 

Midgard's final presentation

Notas do Editor

  1. Motivação – o que nos levou a fazer este trabalho. Tudo no midgard tem uma razão de ser que é explicado ao longo da apresentação Objectivos – Com o Midgard que problemas pretendemos resolver. Visão Geral – Explica por alto o que é o midgard: Ficheiros de entrada Arquitectura – Blocos constituintes do Midgard Infra-Estrutura – Componentes gerados pelo midgard. Explicação e utilização Conclusão – Pontos fortes e trabalho futuro do Midgard
  2. Cansados de gerar componentes semelhantes sempre que se desenvolve uma aplicação Web. Alguns destes elementos são: - Bases de dados, - Acesso a dados - internacionalização - Controlos para mostrar dados - Gestão de Excepções - Backoffice Solução – geração automática
  3. Baixo Acoplamento – os componentes gerados são independentes entre sim (baixo acopolamento), ou seja, não possuem dependências entre eles o que significa que a alteração num dos componentes não afecta os restantes. Alta Coesão – Cada componente gerado realiza apenas a função a que foi destinado Com estes dois princípios temos código de baixa dependência, pouco impacto na mudança e reutilizável. Desenvolvimento rápido – grande parte do código é gerado pela ferramenta, remetendo o programador para tarefas que requeiram mais desafio. Menos Código para o Programador Escrever e Diminuição dos erros – como grande parte do código é gerado, menos código o programador faz, reduzindo assim a possibilidade de erros Combate à Redundância - Don't Repeat Yourself - Perceber o máximo a partir do minimo possível. Independência – O código gerado ao nível do acesso a dados é independente do SGDB, ou seja, o mesmo código dá suporte ao acesso a vários SGBD’s bastando para isso mudanças ao ficheiro de configuração e à connection string. Isto é possível graças à biblioteca NHibernate. Esta biblioteca é a responsável por a gestão deste acesso e oferece-nos todas estas facilidades.
  4. Descrição do Modelo de dados – descrição das entidades da aplicação Web que se pretende gerar. Este ficheiro pode ter um qualquer formato. Nativamente o Midgard suporta descrição na linguagem XMI. Ficheiro de configuração – Descrição de dados no formato XML. Este ficheiro possui 4 secções: - plugins de Loader – onde são especificados os plugins que vão ler a descrição do modelo de dados. - plugins de Codegenerator – onde são registados quais os plugins gerados de código que vão ser executados. Cada plugin destes corresponde a um componente. Por exemplo: mecanismo de acesso a dados, Interface de Administração, Gestão de excepções, etc... - plugins de BuildGenerator – onde são registados os plugins de geração de ficheiros de projecto (Visual Studio, ficheiro de build de nant) NHibernate e NVelocity - Bibliotecas que apoiam a geração e funcionalidades presentes no código gerado. NHibernate dá suporte a toda a infra-estrutura de acesso a dados. É este que simplifica os acessos à base de dados, NVelocity é uma framework de templates que permite de forma fácil fundir os dados (obtidos dos ficheiros de input) e os templates de ficheiros por forma a gerar todos os ficheiros de output.
  5. Tiago – Inputs e Output O porquê desta arquitectura: Como são criados os plugins dinamicamente através das factories; Os diferentes tipos de plugins e a suas funções; A necessidade de ter objectos de suporte; Conseguir a expansibilidade através desta arquitectura. O Midgard recebe 2 inputs e produz uma aplicação web. Os inputs são: o ficheiro de configuração/projecto que parametriza os componentes gerados, assim como outras parametrizações como a directoria de destino ou o tipo de SGBD utilizada; e o ficheiro contendo a informação do modelo de dados. Através da informação do ficheiro de configuração as factories criam dinamicamente os plugins necessários. O plugin do tipo Loader carrega a informação contida no modelo de dados e cria os objectos de suporte à informação contida no modelo de dados. Finalmente os plugins de Generate pegam na informação dos objectos de suporte e juntamente com os templates produzem os outputs.
  6. - Tiago - Explicar as diferentes fases do processo/fluxo de geração. Porquê dividir a leitura do ficheiro XML em duas fases. Porquê os plugins CodeGenerator terem diferentes fases de geração. Este diagrama representa o fluxo de geração. Inicialmente são carregados os parâmetros do projecto e identificados dos plugins a carregar. De seguida as factories carregam os plugins. O Processo de load e dividido em duas fases, uma primeira fase onde são passadas as parametrizações e a segunda onde é lido o modelo de dados e produzidos os objectos de suporte. Neste ponto é lido novamente o ficheiro de configuração, pois este contem informação relativa às entidades que só faz sentido depois dos objectos de suporte terem sido criados, por exemplo o campo name da tabela image só pode ter 10 caracteres. A partir deste momento está recolhida toda a informação necessária e pode ser inicializado o processo de geração.
  7. - Tiago - Utilização do padrão factory. O que fazer para acrescentar uma nova fábrica.
  8. - Tiago - Explicar a arquitectura de plugins. Diferentes tipos de plugins. O que fazer para acrescentar um novo plugin.
  9. - Tiago - A necessidade desta arquitectura (necessidades de informação para a geração). Raciocínio a utilizar se se pretendesse gerar outro tipo de informação. O que fazer para acrescentar nova informação à que já é gerada. Para descrever um diagrama UML que é a nossa descrição do modelo de dados o que é necessário? Um UML é composto por classes e Interfaces, logo uma entity é uma destas duas definições. Por sua vez uma classe ou interface pode implementar/derivar de outras interfaces. Uma entity pode conter campos e métodos e métodos podem ter parametros. No caso de se achar necessário retirar + informação do UML de entrada isso teria de se reflectir nesta arquitectura. Por exemplo se se desejasse acrescentar atributos às classes ou métodos teria de existir outra classe que tivesse uma associação múltipla com EntityClass e EntityMethod
  10. A forma automática como gera código. Num projecto pequeno (como os que vamos apresentar a seguir) pode dar origem a mais de 300 ficheiros. Adapta-se facilmente à mudança de requisitos – qualquer projecto tem mudança de requisitos. O Midgard permite a alteração de requisitos com simplicidade. O código gerado pelo utilizador é mantido, e os novos requisitos são adicionados. Há que esclarecer que o código gerado não é um código fechado. O código gerado pode ser alterado – acrescentar ou estender funcionalidade. Controlos ASP.NET versáteis que cobrem quase todas as funcionalidades que se pretende. Quando a funcionalidade gerada não é suficiente, a framework permite a sua extensão ( tal como o Pedro já referiu ). Independência do SGBD - Isto é bastante importante visto que não limita a utilização do Midgard. Especificação do Fluxo das páginas – ter uma maneira simples (talvez por meio de mais um ficheiro de input) de especificar o fluxo de páginas (quais são e como se relacionam) e também especificar, por página, o que é que esta vai fazer. Esta funcionalidade é mérito do NHibernate que disponibiliza esta funcionalidade de borla. Como o código gerado é dependente de templates de texto, significa que alterações podem ser feitas aos templates de geração sem necessidade de compilação da ferramenta. Isto permite não só personalização do código gerado, como facilidade de resolução de eventuais bugs e tudo sem tocar numa linha de código. Com esta funcionalidade implementada, ainda menos código é necessário o utilizador(programador) escrever, automatizando ainda mais o processo de desenvolvimento de uma aplicação web. “O objectivo de um programador é acabar com o seu trabalho” Independência de ferramentas exteriores– interessante mas não obrigatório