Introdução
Para a maioria das empresas é extremamente benéfico ter um sistema de gestão de conteúdos (CMS) para facilitar a gestão dos mesmos dentro do seu website, de forma a manterem o seu conteúdo relevante e interessante. Uma das principais vantagens da utilização do CMS é a sua autonomia nas pequenas alterações de conteúdo – não sendo preciso a intervenção de um programador – facilita e potencializa a gestão interna da empresa.
Existem centenas de sistemas de gestão de conteúdos, como por exemplo o Umbraco, Drupal, Joomla ou o Wordpress, sendo este último o mais popular. Este artigo foca-se no CMS Umbraco – as suas capacidades, vantagens e desvantagens em relação a outros CMS’s. Serão ainda destacadas as vantagens da nova versão 10 e abordadas as suas novidades.
O Umbraco é um dos mais antigos sistemas de gestão de conteúdos open-source disponíveis no mercado, mesmo tendo sido originalmente lançado em 2000. Tem um aspeto e funcionamento moderno devido às suas constantes atualizações. O Umbraco é desenvolvido tendo como base a Framework Microsoft ASP.NET MVC sendo, entre todos, o CMS mais popular a utilizar esta framework.
Existem mais de 400.000 websites (Carlsberg, Peugeot, Sony, Heinz, Vogue, Microsoft, McDonald’s, Mercedes Benz, Amnesty International e outros) alimentados pelo Umbraco CMS – desde startups e instituições de caridade a marcas globais.
No entanto, de acordo com a w3Techs, estes websites representam 0,1% de todos os websites que usam um CMS, tornando assim o Umbraco representante de uma pequena quota face ao mercado.
Como o Umbraco é open source, o seu código está disponível para qualquer pessoa, permitindo às empresas de qualquer dimensão, escala ou orçamento utilizá-lo a um custo razoável. As suas possibilidades de desenvolvimento são ilimitadas, podendo serem utilizadas para construir quase qualquer tipo de aplicação web - intranet’s, portais empresariais, lojas online, websites complexos, soluções web com imensas integrações - ou mesmo apenas sites pessoais ou blogues.
Desenvolvimento
O Umbraco foi concebido de forma a facilitar e encurtar o prazo das tarefas dos programadores como consequência agilizando o desenvolvimento de projetos. Para isso inclui algumas características únicas e funcionalidades out-of-the-box como:
- Uma simples gestão multilingue. Facilita a tradução de páginas e estabelece um processo de aprovação para publicação.
- Uma pesquisa poderosa (Elastic Search).
- Suporte multiutilizador e de perfis.
- Gestão de permissões de utilização e opções de publicação. Existe um controlo total sobre a concessão de acesso específico a editores e grupos de utilizadores tanto a nível de Backend como Frontend.
- Funcionalidade de SEO. Estas garantem tirar o máximo partido dos planos marketing. O SEO é fundamental para o sucesso em casos como lojas online.
- Editor de imagens. Ao fazer upload de imagens e possível otimizá-las imediatamente para as áreas necessárias e até mesmo mudar o seu ponto focal.
- Pré-visualização sofisticada. É possível ver como uma página se irá apresentar através de múltiplos ecrãs/dispositivos antes de a publicar.
- Agendamento, rollback e audit-trail.
- Construtor de Formulários, que permite construir formulários visualmente sem utilizar qualquer código.
- Uma longa lista de extensões. Estas disponibilizam funcionalidades uteis aos projetos e podem ser misturadas entre elas.
Flexibilidade técnica
O Umbraco é construído sobre a framework ASP.NET MVC da Microsoft, uma infra-estrutura robusta que é simultaneamente extensível e flexível, tornando essencialmente tudo possível durante o desenvolvimento de uma solução, estando também preparada para o futuro para o desenvolvimento contínuo de funcionalidades.
O Umbraco potencializa todas as funcionalidades que esta framework oferece, como por exemplo, permitir que formulários complexos e validação de dados sejam implementados facilmente e de forma modular. O padrão de desenho do ASP.NET MVC é o mais adequado ao desenvolvimento da web moderna, o mesmo incentiva principalmente à separation of concerns (SoC), um conceito que melhora a extensibilidade e a capacidade de manutenção do sistema. Isto significa que novos desenvolvimentos ou alterações podem ser feitas sem as preocupações de alterações das funcionalidades correntes.
A utilização desta framework torna o Umbraco bastante seguro em comparação com a maioria das plataformas CMS, pois o mesmo implementa o mecanismo de segurança CAS (Código de Segurança de Acesso) fazendo com que a sua segurança seja baseada na identidade.
As linguagens ‘strongly typed’ da Microsoft permitem aos programadores detetar erros precocemente no momento da compilação, bem como a criação de testes unitários para validar se os componentes do site estão a funcionar como o expectável.
Edição de conteúdos
A interface contém todas as características que se espera de um CMS moderno - é intuitiva e torna a experiência de edição de CMS suave e reativa.
A experiência de utilização é tradicional, pois o funcionamento deste é semelhante ao gestor de ficheiros do Windows. Possui um editor de conteúdos flexível e é bastante simples de utilizar. O conteúdo é organizado numa estrutura semelhante a uma árvore que lhe dá uma hierarquia e torna fácil encontrar o seu conteúdo.
Adicionar tipos de documentos personalizados (exemplo: artigos de notícias, páginas básicas) é simples. As composições, que são conjuntos personalizados de campos que se podem incluir nas páginas ajudam a poupar tempo e esforço para as páginas que utilizam os mesmos campos. Os editores dos campos são construídos em AngularJS permitindo a sua customização.
Integração com outras plataformas
Um CMS moderno precisa de trabalhar em conjunto com uma variedade de software. O Umbraco é suficientemente flexível para se integrar eficientemente com todos os tipos de aplicações e plataformas, tais como:
- Ferramentas de análise e estatística da Web - para recolher dados sobre tráfego online e visitantes do website (ex. Google Analytics, Adobe Analytics).
- Plataformas CRM - para gerir relações com clientes (ex. Salesforce, SugarCRM, Microsoft Dynamics).
- Sistemas ERP - para gerir processos internos tais como contabilidade, facturação, ou folha de pagamentos (ex. SAP Business One, Oracle E-Business Suite).
- Gateways de pagamento - para criar páginas de pagamento seguras, processar transacções (ex. PayPal, PayU).
- Redes sociais - para partilhar conteúdos em redes sociais (ex. Facebook, Twitter, LinkedIn).
- Email marketing software - para criar, enviar, e seguir emails newsletters (ex. MailChimp, SendGrid).
- Ferramentas de automatização de marketing - para gerir o Inbound Marketing (ex. HubSpot, Marketo, Eloqua, Pardot).
- Software de serviço ao cliente - para automatizar o serviço ao cliente (ex. Zendesk, Freshdesk).
- Serviços de business intelligence - para gerir dados e estatísticas comerciais.
- SOAP/REST APIs - para ligar com outro software através de API ou serviços web.
Headless CMS
O Umbraco pode funcionar tanto como um CMS monolítico ou como um CMS Headless. No segundo caso permite construir um sistema de entrega de conteúdos altamente escalável e modular. Em vez de apresentar as páginas por si só, disponibiliza a informação através de uma REST API para ser consumida, renderizada e utilizada por outras aplicações – que podem ser do foro móvel ou interfaces web em tecnologias modernas tais como o React, Angular ou Vue.
Desempenho e Escalabilidade
Quando configurado corretamente, o Umbraco tem um alto desempenho pois utiliza caching e indexação para otimizar o seu desempenho e entrega de conteúdo. Constantes melhorias e otimizações do código base ajudam a assegurar que este funcione o mais rápido possível tanto para os utilizadores de CMS (o que é ótimo para gerir um grande número de páginas), como para os utilizadores do Frontend em todos os browsers e dispositivos modernos. Na últimas versões (v8,v9), o código base foi reformulado e inclui uma nova abordagem de cache para melhorar o desempenho, fiabilidade e estabilidade.
Documentação e comunidade
O Umbraco fornece documentação detalhada e atualizada sobre a sua API. Quando o recurso a esta não é suficiente para ultrapassar diferentes problemas e barreiras, é possível recorrer ao apoio de uma grande comunidade ativa onde as pessoas partilham os seus conhecimentos e experiência.
Apesar do código ser open-source é também possível, quando necessário, contar com o apoio técnico da Equipa Umbraco.
Expansível & rápido
O desempenho do Umbraco torna-se mais evidente quando existem elevados volumes de utilizadores a acederem e este está instalado na cloud, em servidores com configurações avançadas. O Umbraco pode ser configurado num ambiente com load balance em múltiplos websites e está também disponível como um serviço de cloud, o que significa que pode ser facilmente escalado - assegurando que a aplicação seja sempre capaz de satisfazer as exigências com que é confrontada.
Desvantagens
Como qualquer produto existente no mercado o Umbraco também apresenta algumas desvantagens em relação aos seus concorrentes:
- Tempo de desenvolvimento. O Umbraco tem uma curva de aprendizagem rápida para as suas funcionalidades base existentes. No entanto, quando é necessário o desenvolvimento de novas funcionalidades e integrações, o código à medida acaba por demorar mais tempo;
- Extensões. Existe uma longa lista de extensões, mas a maioria não é compatível entre versões do Umbraco e a quantidade é muito inferior a outros CMS como por exemplo o Wordpress;
- Construtores de páginas. O Umbraco é mais virado para os programadores, carecendo por vezes de funcionalidades para outros tipos de perfil, como por exemplo construtores de páginas;
- É ótimo poder-se customizar ou criar componentes no Umbraco recorrendo ao Angular, mas enquanto o Umbraco tem vindo a acompanhar as mais recentes versões do ASP.NET, o Angular continua na versão JS (1.1.5) enquanto a versão mais recente é a 13;
- Muitos sítios desenvolvidos em versões prévias ao Umbraco 8 são lentos, tanto do ponto de vista da edição de conteúdos, como do utilizador de front-end.
Umbraco 8 vs 9
Pela primeira vez, e como um dos poucos CMS' no mercado, o Umbraco está totalmente desenvolvido em .NET 5 e ASP.NET Core. O .NET 5 foi construído a partir do 0 com o desempenho em mente. Tira partido da nova arquitetura de hardware e software de uma forma que as frameworks mais antigas não o fazem. E como o Umbraco está em .NET 5, agora também colhe estes benefícios de desempenho melhorado.
Com esta evolução, o Umbraco é agora mais fácil de aprender e manter, bem como mais flexível e mais fácil de desenvolver do que nunca. Permite aos programadores tirar o máximo partido não só das melhorias de APIs e serviços, como também das melhorias de desempenho fornecidas pelo Microsoft ASP.NET Core. Isso garante-lhe acesso a novas tecnologias como Hosted Services, Razor TagHelpers, MSDI Microsoft Dependency Injection, View Components e .NET CLI.
Devido aos notáveis ganhos de desempenho na nova framework, as soluções em Umbraco são ainda mais rápidas, menos intensivas em recursos, e mais escaláveis.
Dependendo das operações que se estiver a fazer, isto pode significar um aumento percentual de 100s (se não 1000s) no desempenho em comparação com as versões mais antigas de Umbraco. Além disso, a escalabilidade a nível de hardware é muito mais poderosa e efetiva.
A utilização de .Net 5 tornou o Umbraco Cross-Plataform passando a ser compatível com todas as plataformas que funcionam com .NET Core, tais como macOS e Linux. Deixou de ter apenas hosting em máquinas Windows e passou a ter um leque mais vasto de opções, podendo mesmo ser instalado por exemplo num Raspberry PI. Como programador, é possível usar outros editores de código de sistemas não Windows como por exemplo o Rider.
A mudança para .NET Core é um game-changer, traz uma série de benefícios e assegura uma base sólida para permanecer relevante tecnologicamente durante os próximos anos, tornando o Umbraco adaptável ao futuro tecnológico.
De forma a apoiar esta mudança, as extensões mais importantes, como por exemplo o USync, foram revistas e atualizadas para serem compatíveis com a versão 9 e a documentação foi revista e atualizada.
Novidades do Umbraco 10
A 16 de junho de 2022 é lançada aquela que é considerada a melhor versão de Umbraco, com alterações significativas. Com o lançamento desta, são também disponibilizadas as atualizações das bem conhecidas extensões Umbraco Forms 10 e Umbraco Deploy 10, entre uma longa e vasta lista de extensões suportadas pela comunidade. Entre as novidades, destacam-se a:
- Migração completa para .NET 6;
- Possibilidade de utilização de base de dados SQLite;
- Capacidade de utilização de “nullable reference types” nos endpoints da API da plataforma;
- Categorização de suporte a longo termo (LTS – Long Term Support), assegurando assim uma garantia de estabilidade e evolução.
A cadência de releases foi agora atualizada e partilhada com a comunidade, sendo publicadas minor versions a cada seis semanas, e major versions a cada seis meses. Assim, a versão 11 está prevista ser lançada em dezembro já adaptada ao novo .NET 7.
Conclusão
Neste ponto, o Umbraco é um CMS maduro com uma base de código sólida que o torna a solução ideal para aqueles que querem ter controlo sobre todas os aspetos do CMS, e também para o desenvolvimento de soluções altamente personalizadas, únicas e funcionais. É uma solução empresarial que está aberta a infinitas possibilidades tornando possível produtos finais com a aparência e funcionamento exatamente como planeados.