Recursos especiais neste artigo:
Artigo no estilo Solução Completa
Vamos abordar um framework chamado mORMot. Nele temos concentrados dois pilares para quem desenvolve um sistema corporativo. Temos um servidor de aplicações REST e um ORM (Object-Relational-Mapper). Esses também são pontos importantes quando se desenvolve soluções voltadas à arquitetura orientada a objetos para projetos multicamadas com SOA (Service Oriented Architecture). Do ponto de vista técnico, o servidor REST do mORMot permite que objetos trafeguem por seu aplicativo enquanto que permite persistir esses mesmos objetos em um banco de dados relacional, já do ponto de vista de negócios, possuir um servidor REST garante que qualquer cliente que implemente o protocolo HTTP pode consumir seu servidor, com total independência de tecnologia, e possuir um ORM à mão traz a independência quanto ao banco de dados.
A arquitetura tem uma grande importância no ciclo de vida de um projeto de software, sendo a principal responsável pela forma como uma aplicação é organizada. Quanto maior o projeto, maior a sua importância. Não se trata de uma fase do desenvolvimento de software, a arquitetura está presente durante toda a vida do projeto e por isso precisa ser constantemente evoluída. Para isso ser possível, é importante que ela seja flexível e extensível, caso contrário, alterações em qualquer base do projeto gerarão uma grande dor de cabeça.
Se analisarmos alguns frameworks e APIs de grande utilização em projetos Delphi, é possível perceber que quem os desenvolveu não estava preocupado com a arquitetura dos softwares que usam essas bibliotecas, em alguns casos, a maior preocupação é ser RAD, ser “fácil” de utilizar, possibilitar a construção rápida de uma aplicação inteira através da interface do IDE, sem a necessidade de digitar qualquer código. Felizmente este cenário está mudando, ao menos, no que diz respeito aos frameworks Open Source para Delphi.
O fato é que grande parte dos projetos Delphi, às vezes por influência da plataforma como um todo, ou simplesmente por falta de opções, são projetos que foram desenvolvidos usando a metodologia RAD. São projetos onde é possível encontrar componentes de acesso a dados na interface gráfica, SQL em baixo de botões, e assim por diante.
Ainda na época em que o Delphi era mantido pela Borland, uma empresa chamada BoldSoft tentou mudar esse cenário, em busca de um apelo mais orientado a objetos e menos RAD, com a criação do projeto Bold, que era um ORM. Infelizmente, a Borland comprou a BoldSoft e matou o projeto. Mais tarde surgiu o ECO que também foi descontinuado.
Na busca por soluções para os problemas de arquitetura de software, uma das primeiras preocupações é a separação em camadas. Entre as camadas comumente utilizadas, está a camada de acesso a bancos de dados ou camada de persistência. Esta costuma apresentar os primeiros desafios para a arquitetura de software de projetos Delphi. Enquanto plataformas como Java e .NET possuem frameworks ORMs maduros, para Delphi temos poucas opções e todas são relativamente novas. Dentre as opções disponíveis, a maioria surgiu após o Delphi 2009 e a adição dos novos recursos à linguagem, como Generics e a nova RTTI. Como não há retro compatibilidade com versões antigas do Delphi, para poder usufruir desses frameworks é necessário migrar as aplicações, o que costuma trazer grandes desafios e nem sempre é viável.
Dentre as principais opções de framework ORM para Delphi, temos o DORM, TMS Aurelius e o mORMot. Tanto o DORM como o Aurelius são frameworks exclusivamente de mapeamento objeto relacional, já o mORMot é mais do que isso, tendo o ORM como uma de suas principais funcionalidades.
Um ORM traz algumas vantagens interessantes, como eliminar em grande parte a necessidade de uso de SQL, diminuir o tempo de desenvolvimento e permitir que uma única estrutura de dados seja usada em mais de um banco de dados. Por outro lado, passam a surgir algumas preocupações, como o desempenho. Um framework ORM pode trazer uma perda de desempenho devido ao processamento que é realizado para a geração de SQL e mapeamento objeto relacional com a base de dados. Essa é uma preocupação que os desenvolvedores do mORMot tem desde o início do projeto e um diferencial do projeto.
O framework
O mORMot é um framework ORM e SOA (BOX 1) que traz consigo uma enorme gama de funcionalidades, como ferramentas de log, MVC, Unicode, internacionalização, cache, testes e etc. Compatível com as versões do Delphi 6 a XE 4 é um dos poucos frameworks que oferecem maior retro compatibilidade, o que é uma boa notícia para quem ainda usa versões antigas e não quer depender de uma migração para usufruir de ferramentas modernas.
SOA é um acrônimo para arquitetura orientada a serviço, mas pode-se também ser considerada uma visão de como aplicações heterogêneas deveriam ser desenvolvidas e integradas. O principal objetivo da SOA é saltar das aplicações monolíticas para um conjunto de serviços reutilizáveis que podem ser compostos para criar aplicações.
As principais funcionalidades do mORMot são o ORM e sua camada de serviços. O ORM traz um conceito diferente e inovador, o qual os autores chamam de ORM cliente-servidor. Isso significa que o framework trabalha em todas as camadas da aplicação. O provedor de serviços permite de uma forma muito simples que serviços sejam disponibilizados através de REST. Assim como o ORM, as funcionalidades de serviços também atuam em todas as camadas da aplicação, simplificando o trabalho do desenvolvedor.
Desenvolvido com pensamento voltado para um design simples (KISS – Keep It Simple Stupid), baseado em Domain Driven Design, o mORMot é um projeto ambicioso e inovador que tem como preocupações centrais a versatilidade e o desempenho. Sua arquitetura e implementação orientada a objetos fogem totalmente do ambiente RAD encontrado na plataforma Delphi, e esse é um dos seus principais diferenciais. Por maior que sejam as diferenças com os frameworks da Embarcadero, como o DataSnap, a adaptação não é um problema para quem conhece os conceitos básicos de OO.
Client-Server ORM / SOA
O mORMot implementa uma arquitetura cliente-servidor RESTFull (BOX 2) seguindo as melhores práticas de MVC, N-Tier, ORM e SOA.
REST (Representational State Transfer) é uma técnica de engenharia de software para sistemas hipermídia distribuídos como a World Wide Web. O termo se originou ...
Confira outros conteúdos:
Instalando o ACBr
Mapeamento Objeto-Relacional com TMS...
Introdução aos componentes JEDI
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.