Avatar billede usse Nybegynder
19. august 2008 - 10:53 Der er 20 kommentarer og
1 løsning

Lidt af et dilemma ang valg af teknologi

Det er lidt af et dilemma med valget ang hvilken teknologi man skal benytte til et større eksamens projekt. Der er mange faktorer der spiller ind, såsom hastighed, design-patterns, code-reuse osv..?

Vi er blevet tildelt en opgave for en virksomhed, som drejer sig om at skabe et system til fordeling af kompetencer til de enkelte medarbejdere, altså en oversigt, men nok omkring det.. Det skal selvfølgelig være webbaseret..

Mit spørgsmål går ud på om hvad der ville være mest forsvarligt at bruge hvis man skal rette sig efter alle disse faktorer, for mit eget synspunkt indtil videre ser jeg nu flest fordele i JSP/Servlets, men PHP siges at være hurtigere?

Synes ikke rigtig man har mulighed for at bruge den OOP del i PHP, det kan godt være der en del frameworks derude, som giver "mulighed" for det, men synes langt fra det er optimalt. Synes man får mange flere muligheder med et Servlet/JSP design, men kan jo godt være at jeg tager grueligt fejl, derfor vil jeg gerne høre jeres meninger omkring de forskellige web-teknologier, f.eks. kontra vs pro.
Avatar billede arne_v Ekspert
19. august 2008 - 15:21 #1
I den virkelige verden ville beslutningen nok meget blive truffet udfra hvilken
teknologi virksomheden bruger i forvejen. Applikationen skal jo vedligeholdes og
det er dyrt at have eksperter i alt muligt.

Der er ingen tvivl om at hvis I gerne skal bruge en masse patterns og teoretiske
teknikker, saa er det nemmere at findes noget til en Java EE (JSP) loesning.

Til gengaeld er det altsaa anoget nemmere at gaa i gang med PHP.

Hvis I vil lave det i Java EE med JSP, saa skal I have noget viden om
teknologien i forvejen. Starter i paa bar bund, saa faar i ikke en
loesning faerdig indenfor projekt tidshorisont.

Hvis I ikke har PHP viden, saa faar I heller ikke lavet en god PHP app, men
I kan stadigvaek lave en brugbar PHP app.

Specifikt vil jeg anbefale hvis I gaar Java EE vejen at bruge JSF (bygger
oven paa JSP).

Men altsaa - vigtige faktorer er:
- jeres behov for at vaere "avancerede"
- jeres Java EE viden
- virksomhedens teknologi praeferancer
Avatar billede usse Nybegynder
19. august 2008 - 16:04 #2
Ja det er skam rigtigt nok, men vi må selv vælge hvilken teknologi der skal ligge bag, og ved senere vedligeholdelse af systemet, ser jeg JSP/Servlets som værende en mere gennemtænkt løsning til netop dette formål, da man i PHP har lidt svært ved at fordele kode fra html, hvilket JSP/Servlets kan ved hjælp af Beans og evt. JSF hvis jeg ikke tager fejl?

Vi har sådan ok styr på JSP/Servlets opbygget med en Servlet som controller, hvorved model og tech ligger bagved.

Men hvad synes du om PHPs OOP?
Avatar billede fsconsult.dk Nybegynder
19. august 2008 - 16:14 #3
hmm...  synz JSF mere er blevet et hadebegreb i udviklerkredse.... har dog ikke prøvet det selv endnu...

Kig evt. på AppFuse (appfuse.org), som kan generere forskellige skabeloner af kode til forskellige sammensætning af database/web frameworks .. 
Jeg ville snarere anbefale struts2 (tidl. webwork), men som JSF har den en væsentlig stejlere indlæringskode end php ... så det afhænger også hvor lang tid I har til at sætte jer ind i tingene.
AppFuse mener jeg dog giver et godt afsæt til at se noget køre, og hvordan det hænger sammen..
Avatar billede arne_v Ekspert
19. august 2008 - 16:42 #4
Der er visse muligheder i PHP5. Og der eksisterer ogsaa fornuftige frameworks til PHP.

Men PHP har et stort problem. Det er alt for nemt at kode i PHP. Enhver kan kode i
PHP. Og derfor goer enhver det !!!! Der er saa meget daarlig PHP kode i omloeb.
Avatar billede arne_v Ekspert
19. august 2008 - 16:45 #5
Jeg har altid kunnet lide Struts 1. Jeg synes at den passer fint til web apps.

Men idag er maalsaetningen at web apps ikke skal fungere som web apps men som apps. Det
kraever andre maader at goere tingene paa.

JSF er blivet standardiseret og der findes masser af dejlige JSF implementationer
(med indbygget AJAX etc.).

Struts 2 har aldrig faaet momentum.
Avatar billede fsconsult.dk Nybegynder
19. august 2008 - 17:47 #6
Struts2 har ikke fået momentum ... endnu, og JSF heller ikke rigtigt ...

Wicket er et andet spændende framework i fremmarch, men der mangler stadig et god bog.
Avatar billede arne_v Ekspert
19. august 2008 - 23:24 #7
JSF har faktisk efterhånden fået godt ved. Jeg vil kalde det default valget ved
en ny Java web app.
Avatar billede fsconsult.dk Nybegynder
19. august 2008 - 23:37 #8
Arne> det er vi så ikke helt enige om, med lad det være *s*  ved godt at flere IT chefer er glade for JSF, for det er in på en måde ... men kender mange udviklere der kæmper en kamp for at komme af med det, og overbevise cheferne om at vælge noget andet ...
Men har som sagt ikke erfaringer med det selv..
Avatar billede arne_v Ekspert
20. august 2008 - 00:20 #9
En søgning på dice.com (USA) finder:

28 jobs på
  "struts 2"
(quotes for at undgå hits på Struts hvor tallet 2 optræder andet steds)

687 jobs på
  JSF Java
(Java for at undgå alle Lockheed Martin jobs'ene relateret til kampfly)

Det er ikke fri fantasi at JSF faktisk bruges.
Avatar billede usse Nybegynder
20. august 2008 - 11:35 #10
Ok der er godt nok mange delte meninger omkring dette, har aldrig selv rodet med JSF, Struts, Appfuse, men hvad vil jeres mening være omkring brugen af disse framworks udfra at vi har et godt kendskab til Java, JSP og Servlets, vi har godt og vel 11 uger til projektet. Vil det være en god ide at sætte sig ind i det?
Avatar billede arne_v Ekspert
20. august 2008 - 15:21 #11
Afhaenger lidt af hvor meget tid I har til opgaven.

Er det en 1 maaneds opgave, saa sats paa ren JSP og servlet som I kender.

Et det en 6 maaneders opgave, saa synes jeg at I skulle gaa igang med et par JSF
tutorials og bruge JSF. Er i rimeligt inde i JSP og servlets, saa vil I hurtigt
kunne catche op.
Avatar billede usse Nybegynder
28. august 2008 - 19:28 #12
Jeg tror bare vi holder os til Servlets og Jsp indtil videre, og opbygger alt fra bunden, smid lige nogle svar
Avatar billede arne_v Ekspert
28. august 2008 - 20:19 #13
kommer her
Avatar billede usse Nybegynder
03. september 2008 - 18:33 #14
Tænke på om du ikke lige kunne hjælpe mig med et problem ang. xml og jstl, har hentet standard.jar,  jstl.jar og smidt ind i tomcat/lib mappen, ved ikke helt hvad der sker.. hmm
----- jsp filen
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<c:import var="xmlSource" url="template.xml" />
<x:parse var="xmlTemplate" xml="${template.xml}" />
    <x:out select="$xmlTemplate/info/name" />
----- xml filen
<?xml version="1.0" encoding="ISO-8859-1"?>

<template xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="templateSchema.xsd">
    <info>
        <name>Test template</name>
        <css>xc</css>
    </info>
    <layout>
        <subviews>
            <subview>
                <name>header</name>
                <file>header.jsp</file>
                <css>style.css</css>
            </subview>
        </subviews>
    </layout>
</template>
--- fejl
exception

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: org.xml.sax.SAXParseException: Premature end of file.
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: org.xml.sax.SAXParseException: Premature end of file.
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
    org.apache.jsp.template.template_jsp._jspService(template_jsp.java:84)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

org.xml.sax.SAXParseException: Premature end of file.
    com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:239)
    com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
    org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseInputSource(ParseSupport.java:227)
    org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseInputSourceWithFilter(ParseSupport.java:193)
    org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseReaderWithFilter(ParseSupport.java:199)
    org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseStringWithFilter(ParseSupport.java:206)
    org.apache.taglibs.standard.tag.common.xml.ParseSupport.doEndTag(ParseSupport.java:138)
    org.apache.jsp.template.template_jsp._jspx_meth_x_005fparse_005f0(template_jsp.java:133)
    org.apache.jsp.template.template_jsp._jspService(template_jsp.java:69)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
---
Avatar billede arne_v Ekspert
03. september 2008 - 18:39 #15
Jeg gaetter paa at den leder efter template.xml et forkert sted.

Filen ligger sikkert ikke i default directory (som ikke er web app root).

Proev og angiv en sti til filen (vistnok med file: URL syntax).
Avatar billede usse Nybegynder
03. september 2008 - 18:55 #16
Jamen det virker jo udemærket med bare c out, så den burde da finde xml filen..
Har prøvet at skifte lidt rundt på det uden nogen forandring..
<c:import var="xmlSource" url="template.xml" />
<x:parse var="xmlTemplate" doc="${xmlSource}" />
<c:out value="${xmlSource}" />

stien er apache-tomcat-6.0.18\webapps\playground\template
Avatar billede arne_v Ekspert
04. september 2008 - 04:15 #17
Du har ret. Fejlen lå et andet sted.

Prøv med:

<x:parse var="xmlTemplate" xml="${xmlSource}" />
<x:out select="$xmlTemplate/template/info/name" />
Avatar billede usse Nybegynder
04. september 2008 - 15:57 #18
Der er åbenbart en stor tumult med hvilke versioner af tomcat, jsp, servlet, og jstl man kører med, kører med den nyeste tomcat 6.0.18, jsp 2.5, jstl 1.2 for at kunne løse problemet brugte jeg <%@ page isELIgnored="true" %> på jsp siden.. hmm..
Avatar billede arne_v Ekspert
04. september 2008 - 19:40 #19
Det er ikke saerligt praktisk at ignorere EL.

Proevede du at rette fra:

<c:import var="xmlSource" url="template.xml" />
<x:parse var="xmlTemplate" xml="${template.xml}" />
<x:out select="$xmlTemplate/info/name" />

til:

<c:import var="xmlSource" url="template.xml" />
<x:parse var="xmlTemplate" xml="${xmlSource}" />
<x:out select="$xmlTemplate/template/info/name" />

?
Avatar billede arne_v Ekspert
04. september 2008 - 19:41 #20
forskellen er at den sidste parser en importeret variabel og ikke filnavn
Avatar billede usse Nybegynder
16. oktober 2008 - 23:11 #21
Har jeg prøvet... nå men du fortjener points ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester