PDA

View Full Version : [Java] Pet project (Web application)


mindwings
25-10-2009, 08:58
Ciao a tutti, ho bisogno di espandere le mie conoscenze di java relativamente alla costruzione di applicazioni web :) quello che ho intenzione di fare è costruire una semplice applicazione che può essere uno store oppure un blog engine, in ogni caso vorrei costruire qualcosa utilizzando pochi o zero framework mi piacerebbe capire tutto quello che c'è dietro non voglio utilizzare qualche astrazione che mi facilita il lavoro ma poi mi lascia sempre ignorante... Qualche consiglio? Magari qualche link utile a studiare le web application. Premetto che tutto è a mero scopo didattico e che le mie conoscenze sono pari a 0 in ambito web.

Grazie.

^TiGeRShArK^
25-10-2009, 09:03
:mbe:
Che intendi "senza utilizzare qualche framework"? :fagiano:
L'unico modo per fare qualche applicazione web senza utilizzare alcun framework è usare le Servlet, ma è come spararsi sulle palle con un cannone.. :fagiano:
Se vuoi usare i framework messi a disposizione da java invece scaricati la versione JEE e inizia ad imparare gli EJB 3.0 (che non sarebbero altro che hibernate praticamente).
Ah, ti consiglio almeno di usare le Java Server Faces al posto delle JSP semplici.
Se poi vuoi fare una cosa completa forse Jboss Seam + Richfaces ad oggi è la scelta migliore.
Ma imho puoi anche dimenticarti di fare web application in java senza usare questi framework. :p

mindwings
25-10-2009, 09:12
:mbe:
Che intendi "senza utilizzare qualche framework"? :fagiano:
L'unico modo per fare qualche applicazione web senza utilizzare alcun framework è usare le Servlet, ma è come spararsi sulle palle con un cannone.. :fagiano:
Se vuoi usare i framework messi a disposizione da java invece scaricati la versione JEE e inizia ad imparare gli EJB 3.0 (che non sarebbero altro che hibernate praticamente).
Ah, ti consiglio almeno di usare le Java Server Faces al posto delle JSP semplici.
Se poi vuoi fare una cosa completa forse Jboss Seam + Richfaces ad oggi è la scelta migliore.
Ma imho puoi anche dimenticarti di fare web application in java senza usare questi framework. :p

Grazie della risposta Tiger, diciamo che non vorrei complicarmi la vita a studiare un mega-framework per poi utilizzare si e no il 5% delle potenzialità messe a disposizione. È a scopo didattico, vorrei impadronirmi dei concetti generali non di particolari tecnologie, concetti che poi possono servirmi in X altre tecnologie o linguaggi.

^TiGeRShArK^
25-10-2009, 09:17
beh...
Java EE è immenso...
se vuoi c'è il tutorial ufficiale:
http://java.sun.com/javaee/5/docs/tutorial/doc/

che dovrebbe superare le 1000 pagine nella versione pdf se non erro.. :stordita:

Comunque è l'unico modo sensato per fare web application in java.
Se vuoi qualcosa di meno complesso e più produttivo fin da subito perchè non dai un'occhiata a Ruby on rails che dovrebbe darti anche una buona base?

mindwings
25-10-2009, 09:25
beh...
Java EE è immenso...
se vuoi c'è il tutorial ufficiale:
http://java.sun.com/javaee/5/docs/tutorial/doc/

che dovrebbe superare le 1000 pagine nella versione pdf se non erro.. :stordita:

Comunque è l'unico modo sensato per fare web application in java.
Se vuoi qualcosa di meno complesso e più produttivo fin da subito perchè non dai un'occhiata a Ruby on rails che dovrebbe darti anche una buona base?

L'avevo appena scaricato e mi sono spaventato :( , a proposito di ruby on rails sul sito ufficiale c'è uno screencast che mostra come costruire un blog in 15 minuti, non dico che voglio quell'immediatezza ma nemmeno le 1000 pagine di manuale... Non vorrei utilizzare un altro linguaggio al posto di java in quanto poi sarei costretto a imparere 2 cose allo stesso tempo. Poi preferisco a pelle la sintassi di python ma vabbè divago.

khelidan1980
25-10-2009, 09:40
L'avevo appena scaricato e mi sono spaventato :( , a proposito di ruby on rails sul sito ufficiale c'è uno screencast che mostra come costruire un blog in 15 minuti, non dico che voglio quell'immediatezza ma nemmeno le 1000 pagine di manuale... Non vorrei utilizzare un altro linguaggio al posto di java in quanto poi sarei costretto a imparere 2 cose allo stesso tempo. Poi preferisco a pelle la sintassi di python ma vabbè divago.

piu che altro rails è bello perchè,come dice il suo nome sono proprio dei binari che ti fanno fare applicazioni web in una data maniera(e cioè come devono essere fatte),non è dispersivo come JEE e i concetti generali della programmazione web li acquisici forse anche meglio,però poi se andrai a utilizzare solo applicazioni java forse tanto vale inizi da quelle

^TiGeRShArK^
25-10-2009, 09:47
L'avevo appena scaricato e mi sono spaventato :( , a proposito di ruby on rails sul sito ufficiale c'è uno screencast che mostra come costruire un blog in 15 minuti, non dico che voglio quell'immediatezza ma nemmeno le 1000 pagine di manuale... Non vorrei utilizzare un altro linguaggio al posto di java in quanto poi sarei costretto a imparere 2 cose allo stesso tempo. Poi preferisco a pelle la sintassi di python ma vabbè divago.

..è la reazione tipica di chi vede per la prima volta quel manuale. :asd:
Comunque senza usare dei framework è praticamente impossibile avere qualcosa di anche lontanamente paragonabile all'immediatezza di ruby on rails con JEE mi sa... :fagiano:
Prova a dare un occhiata a Seam (http://docs.jboss.com/seam/latest/reference/en-US/html/Book-Preface.html) che è + semplice se vuoi rimanere per forza in ambito java.

mindwings
25-10-2009, 09:49
piu che altro rails è bello perchè,come dice il suo nome sono proprio dei binari che ti fanno fare applicazioni web in una data maniera(e cioè come devono essere fatte),non è dispersivo come JEE e i concetti generali della programmazione web li acquisici forse anche meglio,però poi se andrai a utilizzare solo applicazioni java forse tanto vale inizi da quelle

java è il linguaggio che al momento conosco meglio, poi vorrei realizzare un progettino nei ritagli di tempo, anche perchè con l'università non c'è assolutamente modo di imparare queste cose.

mindwings
25-10-2009, 09:57
..è la reazione tipica di chi vede per la prima volta quel manuale. :asd:
Comunque senza usare dei framework è praticamente impossibile avere qualcosa di anche lontanamente paragonabile all'immediatezza di ruby on rails con JEE mi sa... :fagiano:
Prova a dare un occhiata a Seam (http://docs.jboss.com/seam/latest/reference/en-US/html/Book-Preface.html) che è + semplice se vuoi rimanere per forza in ambito java.

Grazie Tiger, ecco ora iniziamo a ragionare :D sto dando un'occhiata e non sembra male oltre che mooolto comprensibile.
Edit: 700 pagine di manuale xD

TorpedoBlu
07-11-2009, 13:19
:mbe:
Che intendi "senza utilizzare qualche framework"? :fagiano:
L'unico modo per fare qualche applicazione web senza utilizzare alcun framework è usare le Servlet, ma è come spararsi sulle palle con un cannone.. :fagiano:


effettivamente è ostico, ma secondo me una volta nella vita (la prima) bisogna farlo (almeno creare una pagina hello pippo!), bisogna capire cosa è una servlet, poichè incarna il senso del protocollo http, è semplice e introduce a riflettere se conosciamo concetti come request, session, application web server, servlet container.....

e soprattutto appunto http. capire bene cosa è "lato server" e cosa è "lato client"... Sembra banale ma moltissime persone (non solo i novizi) a volte scrivono enormi cavolate appunto perchè hanno sottovalutato i concetti basilari delle applicazioni client-server.

una volta capito che qualsiasi framework costruisce (o quasi) delle servlet per lo sviluppatore, ma nonostante lo sviluppatore web non le veda deve aver ben chiaro i concetti di cui sopra.

Solo così si apprezzeranno le caratteristiche di strumenti pronti all'uso ma allo stesso tempo si saprà come governarli. Per questo io consiglio di scaricarsi netbeans (come ide preferisco eclipse, ma netbeans è meglio a scopo didattico ed è pronto all'uso). e iniziare a creare una webapp da zero (sul sito di netbeans trovi i tutorial, molto ben fatti.

A questo punto puoi usare qualche prodotto che ti aiuti nello scrivere la tua applicazione (Struts o JSF solitamente, ma ce ne sono a bizzeffe)

Ma prima darei uno sguardo a come si struttura un'applicazione web con il classico pattern MVC che è la base di ogni web app java e soprattutto il pattern su cui si basa qualsiasi framework web.

Come vedi sono stato molto teorico perchè secondo me se perdi un pomeriggio a darti delle solide basi su questi concetti poi potrai districarti tranquillamente attraverso innumerevoli scelte/prodotti/scenari. Potrai scegliere tu cosa usare enon chiedere a noi ;)




Se vuoi usare i framework messi a disposizione da java invece scaricati la versione JEE e inizia ad imparare gli EJB 3.0 (che non sarebbero altro che hibernate praticamente).
...
Se poi vuoi fare una cosa completa forse Jboss Seam + Richfaces ad oggi è la scelta migliore.
Ma imho puoi anche dimenticarti di fare web application in java senza usare questi framework. :p

ehm.. attenzione:
1) prima di passare a J2EE ce ne vuole, J2EE è lo standard per costruire applicazioni enterprise, quindi enormi trattori basati su application server (il web server è solo un piccolo modulo di un application server).
Lo scopo di J2EE è fornire uno standard per avere applicazioni enterprise (transazionali, sicure, performanti, robuste ecc...) con innumerevoli funzionalità che non servono alla web app del nostro amico, quindi direi di non nominarlo neanche :)

2) Hibernate è framework che fa persistenza su db (simile alle JPA di J2EE) ma non centra molto con gli EJB, anzi si pome come alternativa alle JPA contenute in J2EE. Se il nostro amico deve andare su un db userà questi strumenti se lo vorrà e se lo richiederà la sua applicazione (se deve fare 2 query meglio non scomodare j2ee ma farsele a mano che è più facile e performante)


piu che altro rails è bello perchè,come dice il suo nome sono proprio dei binari che ti fanno fare applicazioni web in una data maniera(e cioè come devono essere fatte),non è dispersivo come JEE e i concetti generali della programmazione web li acquisici forse anche meglio,però poi se andrai a utilizzare solo applicazioni java forse tanto vale inizi da quelle

Si infatti come dice il nome ti mette su un binario e devi sviluppare come è indicato dal framework.. come abbiamo gia discusso altre volte secondo me è un rebus questo rails, permette di fare le cose in maniera agile e fikissima... ma solo seguendo i suoi dettami :)

^TiGeRShArK^
07-11-2009, 17:12
ehm.. attenzione:
1) prima di passare a J2EE ce ne vuole, J2EE è lo standard per costruire applicazioni enterprise, quindi enormi trattori basati su application server (il web server è solo un piccolo modulo di un application server).
Lo scopo di J2EE è fornire uno standard per avere applicazioni enterprise (transazionali, sicure, performanti, robuste ecc...) con innumerevoli funzionalità che non servono alla web app del nostro amico, quindi direi di non nominarlo neanche :)

2) Hibernate è framework che fa persistenza su db (simile alle JPA di J2EE) ma non centra molto con gli EJB, anzi si pome come alternativa alle JPA contenute in J2EE. Se il nostro amico deve andare su un db userà questi strumenti se lo vorrà e se lo richiederà la sua applicazione (se deve fare 2 query meglio non scomodare j2ee ma farsele a mano che è più facile e performante)




Si infatti come dice il nome ti mette su un binario e devi sviluppare come è indicato dal framework.. come abbiamo gia discusso altre volte secondo me è un rebus questo rails, permette di fare le cose in maniera agile e fikissima... ma solo seguendo i suoi dettami :)

:mbe:
Ma guarda che J2EE ormai è in disuso da ANNI, dato che era ancora legato alla versione 1.4.2 di java.
Ora si usa JEE che contiene gli EJB 3.0 che sono implementati in HIBERNATE 3.

The current version of Hibernate is Version 3.x. This version has new features like a new Interceptor/Callback architecture, user defined filters, and JDK 5.0 Annotations (Java's metadata feature). Hibernate 3 is now a certified implementation of the Java Persistence API 1.0 specification via a wrapper for the Core module which provides conformity with the JSR 220 JPA standard.


Java Persistence with Hibernate


The Java Persistence API is the standard object/relational mapping and persistence management interface of the Java EE 5.0 platform. As part of the EJB 3.0 specification effort, it is supported by all major vendors of the Java industry.

Hibernate implements the Java Persistence object/relational mapping and persistence management interfaces with the Hibernate Annotations and Hibernate EntityManager modules, on top of the mature and powerful Hibernate Core.

The Hibernate modules can be stacked and combined as desired. You can use the Hibernate Java Persistence provider in any environment, Java SE 5.0 or Java EE 5.0. The Hibernate Java Persistence provider is fully certified and passes the Sun TCK.

TorpedoBlu
07-11-2009, 18:03
Ciao, non fare confusione. Ciò che hai riportato è correttissimo, hibernate utilizza come opzione le annotation messe a disposizione da java5 e nello specifico usa le annotation mplementate dalle jpa della versione 3 di j2ee ( che se vogliamo esser pignoli si chiama jee5, ma è un discorso di marchetng). Hibernate non fa parte del container ejb ne tanto meno necessta di quest'ultimo, infatti può essere usato tranquillamente su un web server Java ad esempio asseme a spring. Hibernate è una diversa implementazione delle interfacce jpa, e utilizza gli stess interceptors grazie ad aop che è fornita tramite annotations. ma è profondamente diverso anche se non entro nel dettaglio.
Tra le altre cose hibernate fa solo persistenza, mentre tutto quello che fa jee è mooolto di più.
Per inciso j2ee nella versione 1.4 magari fosse in disuso... Nella banca dove lavoriamo usiamo ancora 1.3