Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avThomas Stig Lindberg
1
OpenSource-produkter för programutveckling - en jämförelse ● Byggverktyg (make, Ant, Maven) ● Template Engines (XSLT, Velcity, Freemarker) ● MVC-ramverk (Spring MVC, Struts, MyFaces, Expresso, Turbine) ● Persistens (Java Persistence API, Hibernate, Toplink, JDO)
2
Byggverktyg - make GNU Make, BSD Make, Microsoft nmake Vad tillhandahåller make? ● Möjlighet att bygga stora applikationer för nästan alla kompilerande språk ● Man gör regler som uppdaterar mål-filer, som härleds från andra filer. (exempelvis skall objektfiler uppdateras om källkodsfiler ändras)
3
Byggverktyg - make Begränsningar ● Makefiler ej porterbara ● Krånglig syntax ● Kan ta tid att bygga stora projekt (rekursion)
4
Byggverktyg - make Exempel cd /projects/maketest cat Makefile make./helloworld
5
Byggverktyg - Ant Apache-projekt – ant.apache.org Vad tillhandahåller Ant (Another Neat Tool)? ● Byggverktyg som är oberoende av operativsystem ● Understödjer programutveckling i de flesta språk: Java,.Net, C, C++, Fortran,... och IDE:er: Eclipse, JBuilder, IntelliJ,... ● Enkelt att bygga ut med egna ”tasks”
6
Byggverktyg - Ant Begränsningar ● I stora projekt blir build.xml lång ● Svårt att integrera då man har flera projekt som är beroende av varandra ● Man får hela tiden skriva om grundstrukturen i build.xml
7
Byggverktyg - Ant Exempel /usr/tomcat/bin/startup.sh cd /projects/stockholmstad/mallprojektet/trunk cat build.xml ant stop ant deploy ant start http://localhost:8080/mallar/index.jsp
8
Byggverktyg - Maven Apache-projekt – maven.apache.org Vad tillhandahåller Maven? ● Enkel byggprocess (Man skall inte behöva bry sig om detaljer) ● Enhetligt byggsystem – XML-baserad konfigurationsfil - Project Object Model, POM – plugins som är gemensamma för alla Maven-projekt)
9
Byggverktyg - Maven ● Aktuell projektinformation (site!) – förändringsloggar från v-hanteringssystemet – javadoc – xref till källkoden – maillistor till användare – listor över beroenden – rapporter över enhetstester (inklusive code coverage)
10
Byggverktyg - Maven ● Hjälpmedel för att utveckla bra källkod – enhetstester ingår automatiskt i byggcykeln – tester och källkod i separata källkodsträd – använder case-konvensionerna för enhetstest – rapporter över hur källkodskonvensioner följs
11
Byggverktyg - Maven Exempel: cd /projects/vegas/vegas-server/trunk cat pom.xml mvn site cd target/site file:///projects/vegas/vegas- server/trunk/target/site/index.html
12
Byggverktyg - jämförelse make (+) ● kräver inte Java, finns oftast i OS:et ● enkel byggmodell ● bygger nästan alla kompilerande språk make (-) ● gammalt (1977) => snårig syntax ● kan ej själv analysera beroenden i moderna språk ● en Makefile kan ej porteras till andra OS
13
Byggverktyg - jämförelse Ant (+) ● build.xml ”oberoende” av OS ● Enkelt att utöka med egna tasks ● bygger de flesta språk Ant (-) ● Kräver att java är installerad på maskinen ● build.xml blir lätt stor ● stödjer inte flera projekt som är beroende av varandra bra
14
Byggverktyg - jämförelse Maven (+) ● Gemensam hantering av beroenden för samtliga Maven-projekt ● Uppmuntrar till bra programmering ● Bygger en ständigt aktuell informationssite Maven (-) ● Kräver att java är installerad på maskinen ● Endast för att bygga rena Java-projekt
15
Byggverktyg - referenser Hemsidor för de olika projekten: http://www.gnu.org/software/make/ http://ant.apache.org/ http://maven.apache.org/ Problem med make: http://freshmeat.net/articles/view/1702/
16
Template engines - Introduktion Vad är en template engine? ● Processar mallar och indata och producerar ett måldokument ● Innehåller sätt att processa text (exempelvis: textsubstitution, tilldelning av variabler, villkor, definition av funktioner, loopar eller rekursion, inkludering av andra mallar) ● Exempel: XSLT, JSP, Velocity, Freemarker
17
Template engines - Velocity Apache-projekt – http://velocity.apache.org/ ● Enkelt och kraftfullt mallspråk ● Kan användas fristående eller i en webbapplikation ● Främjar MVC-modellen
18
Template engines - Velocity Exempel cd /usr/velocity-1.5-beta1/examples/app_example1 cat example.vm cat Example.java./example.sh
19
Template engines – Freemarker BSD-licens – http://www.freemarker.org/index.html ● Enkelt och kraftfullt mallspråk ● Kan användas fristående eller i en webbapplikation ● Främjar MVC-modellen
20
Template engines – Freemarker Exempel /usr/tomcat/bin/startup.sh cd /usr/freemarker-2.3.9/examples/webapp1/WEB- INF/templates cat test.ftl
21
Template engines - jämförelse Velocity (+) ● Flexibelt ● Många produkter/ramverk använder sig av det: Turbine (MVC), Spring, Eclipse (code generation), Velosurf (db access tool) Velocity (-) ● Ännu ett eget ”programspråk” ● Finns bara i beta för Java5 (nu finns JDK6)
22
Template engines - jämförelse Freemarker (+) ● Flexibelt ● Många produkter/ramverk använder sig av det: Jooreports, Eclipse, Spring, Alfresco (CM), JForum, Freemarker (-) ● Ännu ett eget ”programspråk” ● Verkar mer optimerat för webbapplikationer
23
Template engines - referenser Lista över olika template engines: http://www.java-source.net/open-source/template-engines Hemsidor för de olika projekten: http://velocity.apache.org/ http://www.freemarker.org/index.html Ramverk/Applikationer/Siter som använder respektive template engine: http://wiki.apache.org/jakarta-velocity/PoweredByVelocity http://www.freemarker.org/poweredBy.html
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.