Presentation laddar. Vänta.

Presentation laddar. Vänta.

OpenSource-produkter för programutveckling - en jämförelse ● Byggverktyg (make, Ant, Maven) ● Template Engines (XSLT, Velcity, Freemarker) ● MVC-ramverk.

Liknande presentationer


En presentation över ämnet: "OpenSource-produkter för programutveckling - en jämförelse ● Byggverktyg (make, Ant, Maven) ● Template Engines (XSLT, Velcity, Freemarker) ● MVC-ramverk."— Presentationens avskrift:

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


Ladda ner ppt "OpenSource-produkter för programutveckling - en jämförelse ● Byggverktyg (make, Ant, Maven) ● Template Engines (XSLT, Velcity, Freemarker) ● MVC-ramverk."

Liknande presentationer


Google-annonser