Vastra-Gotalandsregionen / oppna-program-deprecated

To oppna-program main page:
http://vastra-gotalandsregionen.github.io/oppna-program/
5 stars 1 forks source link

Introducera FreeMarker som templatespråk #48

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Referensarkitekturen saknar ett templatespråk. I vissa fall så som vid 
utveckling av WCM-mallar och teman till Liferay krävs att man använder ett 
templatespråk och i många andra fall kan det vara fördelaktigt att använda 
ett templatespråk istället för alternativa lösningar. Jag föreslår 
därför att referensarkitekturen kompletteras med ett rekommenderat 
templatespråk.

Som standard templatespråk föreslår jag FreeMarker. FreeMarker är en 
java-baserad template-motor med fokus på MVC-arkitektur i webbapplikationer, 
men FreeMarker har inget beroende på Servlet API:t och kan användas för att 
generera alla former av text. Den genererade texten kan lika gärna vara 
källkod eller css som en html-vy i en webbapplikation.

FreeMarker är en väl etablerad teknik och dagens version av FreeMarker har 
varit under utveckling sedan 2002. Vidare har endast Apache Velocity en bredare 
användarbas. Apache Velocity kan emellertid inte tillämpas lika brett enligt 
min mening. Dessutom gillar jag FreeMarkers strikta syntax, bra dokumentation 
och tydliga felmeddelanden.

Grundinfo:

Licens: BSD-style (vissa delar Apache License v2)
Aktuell version: 2.3.18, släppt 21 maj 2011
Hemsida: freemarker.sourceforge.net
IDE-stöd: Inbyggt i IntelliJ IDEA, plugins finns till Eclipse och Netbeans

Några exempel på användningsområden:

Alternativ till JSP
Det är enkelt att i Spring MVC gå över till att använda FreeMarker 
istället för JSP. Det går vidare att använda JSP-taggar i 
FreeMarker-mallar, vilket gör att det inte är en särskilt stor omställning 
att gå från att köra JSTL till att köra FreeMarker. En fördel med 
FreeMarker kontra JSP är att det enkelt går att ladda mallarna från en rad 
källor som databas, classpath, filsystem, repo med versionshantering som 
Alfresco, osv. Detta gör det möjligt att hantera vyer som content som kan 
förändras utan att applikationen behöver deployas på nytt.

Förfrågan rör dock inte ett allmänt skifte från JSP till FreeMarker, utan 
jag tar upp möjligheten för att det kan påverka valet av template-språk.

Liferay WCM
I Liferays WCM skapas WCM-mallar i FreeMarker, XSLT eller Velocity. För att 
kunna skapa något mer än triviala mallar krävs det att man behärskar ett av 
dessa språk.

Liferay temautveckling
Temautveckling för Liferay görs normalt med Liferays Plugins SDK och Velocity 
eller FreeMarker. Den tillgängliga funktionaliteten i Liferay är i princip 
den samma för båda template-språken, så när som på möjligheten att 
använda jsp-taggar i de teman som tas fram med FreeMarker. Liferay har en 
omfattande uppsättning jsp-taggar vilket gör att detta är en viktig 
skillnad. Vidare blir det möjligt att göra overrides av vyer i Liferay och 
Liferay-plugins från temat och skapa unika vyer av portalens funktioner för 
olika teman utan att behöva röra portalens källkod.

Mallar i Alfresco
Alfresco använder FreeMarker för sina mallar och man behöver lära sig 
FreeMarker om man som utvecklare vill jobba med Alfresco.

Alternativ till XSLT för presentation av XML
FreeMarker har ett bra stöd för att jobba med XML och ses normalt som 
lättare att ta till sig än XSLT. I iFeed-projektet tog vi beslutet att fram 
en JAX-RS provider för FreeMarker istället för att använda XSLT för att 
möta ett krav på att användarna skulle kunna applicera mallar på de iFeeds 
de konfigurerat.

Original issue reported on code.google.com by bjorn.ry...@gmail.com on 15 Aug 2011 at 5:11

GoogleCodeExporter commented 9 years ago
In progress

Original comment by Hans.Gyl...@gmail.com on 16 Aug 2011 at 12:22

GoogleCodeExporter commented 9 years ago
After todays Governance Council meeting we decided to further investigate the 
current use of Velocity within the Oppna-Program projects.

Original comment by Hans.Gyl...@gmail.com on 22 Aug 2011 at 2:21

GoogleCodeExporter commented 9 years ago
Status:
*******
Declined

Decision and limitation:
************************
Velocity is the appointed template technology

Clarification Note:
*******************
We have been using Velocity as template language in the projects we have run so 
far.
(e.g. of projects using Velocity: oppna-program-ros, oppna-program-webbisar, 
gothia_theme, Resebokning, portalramverk/liferay_vgr_theme etc).
Since Velocity and FreeMarker both are well established standards and are 
similar in level of functionality
there is currently no driving business case to change to FreeMarker.

Original comment by Hans.Gyl...@gmail.com on 6 Sep 2011 at 2:55

GoogleCodeExporter commented 9 years ago
Status:
*******
Declined

Decision and limitation:
************************
Velocity is the appointed template technology

Clarification Note:
*******************
We have been using Velocity as template language in the projects we have run so 
far.
(e.g. of projects using Velocity: oppna-program-ros, oppna-program-webbisar, 
gothia_theme, Resebokning, portalramverk/liferay_vgr_theme etc).
Since Velocity and FreeMarker both are well established standards and are 
similar in level of functionality
there is currently no driving business case to change to FreeMarker.

Original comment by Hans.Gyl...@gmail.com on 6 Sep 2011 at 2:55