Archivi tag: Java

Tutorial risorse e video corsi per imparare Java JSF in Eclipse – prima PARTE

Tutorial risorse e video corsi per imparare Java JSF  in Eclipse – WTP tools con Apache Tomcat

In questo post, si presenterà un elenco di collegamenti a risorse, tutorial e corsi video utili alla creazione delle java web application (desktop), con Eclipse e Apache Server utilizzando le Facelet di JSF 2.0.

java server pages jsf dynamic web apps java appissue
java server pages jsf
dynamic web apps
java appissue

how to use Java JSF into Eclipse with Apache Tomcat Server ? which are the best practices ?

jse apache tomcat eclipse
appissue: how to use Java JSF into Eclipse with Apache Tomcat Server

Java REST e RESTful: implementazione con Restlet

Proseguendo con l’articolo anteriore nelle  prossime righe verranno illustrati tutte le  diverse implementazione per poter progettare un servizio Rest (applicativi, framework). in particolare implementazione JAX-RS con Apache CXF.

REST_implementations_implementazioni
REST_implementations_implementazioni

Le implementazioni di REST ( implementazione JAX-RS):

Apache CXF Web Service Development
Apache CXF è un Framework open source che permette lo sviluppo di servizi web in forma facile, semplice e basato sugli standard.

Web services possono essere implementati utilizzando i più svariati protocolli tali come SOAP, XML, JSON,RESTful HTTP,  e anche possono supportare varii protocolo di trasporto come HTTP o JMS (JavaMessage Service).

Caraterristiche di CXF (non solo REST)
il servizio CXF ha infinite caratteristiche per facilitare la programmazione delle interfacce (frontEnd); il trasporto e le connessioni fra i dati; il supporto a diversi protocolli e altri concetti avanzati come Features (caratteristiche) e Invokers ( con due componenti principali: una classe Java runnable con public static main mettodo), e una classe loader (che carica), che è utilizzata per istanziare l’altra classe riducendo cosi la complessità dello classpath management)  proporziona un modello di programmazione per creare e distribuire servizi web RESTful.

Tools support
CXF provides different tools for conversion between JavaBeans, web services, and
WSDL. These tools assist developers in generating web service clients like Java and
JavaScript from WSDL or generating a WSDL file from a service implementation.
CXF provides support for Maven and Ant integration for build and dependency
management. Some of the tools supported are as follows:
• Java to web service
• Java to WSDL
• WSDL to Java
• WSDL to JavaScript
• WSDL to Service
• WSDL to SOAP
• WSDL to XML
• WSDL Validator
• XSD to WSDL


per saperne di più … altre fonti

Come diventare uno sviluppatore Android – (android skills 2015)

FONTE ORIGINALE (by 

Si sa che le app mobile (applicazioni per mobile)  collegano sempre più gente del pianeta, e permettono agli utenti di tutto il mondo ad interattuare o  interagire  in modo sempre più interessante e innovativo come non si era mai immaginato, il lavoro dello sviluppatore app mobile è diventato sempre più arricchente, appagante, e necessario per l’economia globale moderna.

Le applicazioni per cellulari che usiamo ogni giorno hanno cambiato il nostro modo di comunicare e di consumare intrattenimento, anche il nostro modo di imparare le cose sul mondo.  Non sarebbe male se si pensasi allo sviluppo delle mobile app come ad una delle industrie di lavoro più cool (di moda – più trainante) del momento.

Quindi, come si fa a diventare uno sviluppatore di applicazioni per mobile (appmobile – mobileapp developer ) ?

Ecco la sua versione essenziale : si sceglie una delle piattaforme – come Android ,iOS o Windows Mobile – si apprendono le competenze tecniche di base, se si cimenta  sulle proprie competenze trasversali -migliorandole (soft skills), e ci si diventa.

Come diventare uno sviluppatore Android ?

Ma veniamo in un  po più in dettaglio. Qui, stiamo andando ad affrontare la prospettiva di diventare uno sviluppatore di Android appositamente (dedicato ).

Perché Android?

Android a livello globale, è il leader indiscusso della quota di mercato degli smartphone. Grazie alla crescita dei mercati emergenti come il Messico, la Turchia e il Brasile, quella posizione dominante non tramuterà nel breve periodo.

android developer
android developer

Grafico via 9to5Mac

facendo si che questa preponderanza di mercato si traduca in una grave  difficoltà, per la sicurezza del lavoro degli sviluppatori di Android.

Inoltre, la piattaforma Android è open source (l’intero codice sorgente di Android è consultabile (browsable)  e condivisibile, anche se con un po di software proprietario come Google Play), rendendo l’ecosistema di sviluppatori dinamico e collettivamente arricchente.

Gli sviluppatori di Android condividono consigli, trucchi e tutorial con tutta la comunità Android, e dal momento che Google gli aiuta  con lo sviluppo di strumenti come Google Play Services  per tutte le attività comuni delle app:  come l’accesso, l’autenticazione, la posizione e la archiviazione di dati,  cosi permettendo agli sviluppatori di Android di concentrarsi sulla costruzione delle ‘funzionalità di base’  delle loro applicazioni

In sostanza, si tratta di un momento particolarmente emozionante per lanciare una carriera nello sviluppo di Android. Vi è una fonte sana di posti di lavoro, la domanda di applicazioni Android promette di aumentare in futuro, e le tecnologie – app indossabile e app TV-  stanno intrigantemente avanzando.

Le Abilità o Competenze richieste (Hard Skills): cosa imparare

Per prima cosa: le competenze tecniche. siccome lo Sviluppo di Android può essere fatto su un computer Mac, PC Windows o Linux. Avrete anche bisogno di un dispositivo Android (è possibile utilizzare un emulatore come Genymotion per lo sviluppo, ma alla fine ti consigliamo di provare su un dispositivo reale).

Ecco il breve elenco degli strumenti da conoscere (must-know skills) per diventare uno sviluppatore Android.

Java

L’elemento più fondamentale  per lo sviluppo con Android è il linguaggio di programmazione Java. Per essere un  sviluppatore Android di successo, è necessario stare bene con i concetti di Java come loop, liste, variabili e strutture di controllo.  Java è uno dei linguaggi di programmazione più utilizzati dagli sviluppatori di software di oggi, in modo cheimparare i suoi pro e  contro ci metterà in una buona posizione per trovare lavoro. (qualcuno dal mondo di sviluppo back-end?) Anche al di là della piattaforma Android.

SQL

Avrete anche bisogno di imparare le basi di SQL per gestire e organizzare i database all’interno delle applicazioni Android.   SQL è un linguaggio per esprimere le query (filtri chiamate) e cosi consultare e recuperare dati o informazioni dai database. Una volta imparate a scrivere (filtri e query), non ci saranno domande che non si possano chiedere ai tuoi database (dati).

SDK- Android Software Development Kit e Android Studio

Una delle parti migliori dello sviluppo per Android è che gli strumenti necessari sono gratuiti e facili da ottenere. L’SDK Android è disponibile per il download free-of-charge -gratis -, come lo è anche Android Studio, l’ambiente di sviluppo integrato ufficiale (IDE) per lo sviluppo di applicazioni Android.     Android Studio è il programma principale con cui gli sviluppatori a scrivere codice e assemblare le loro applicazioni da vari pacchetti e le librerie. L’Android SDK include codice di esempio, librerie software, utili strumenti di codifica, e molto di più per aiutarvi a costruire, testare, e debug-gare (mettere appunto)  le vostre applicazioni Android.

Un altro punto rilevante di sviluppare per Android è la facilità del processo di distribuzione (deploy)  delle app. Una volta che si è pronti per inviare la tua applicazione a Google Play Store, basta registrarsi con un account editore/sviluppatore – Google Play publisher account -(che include il pagamento di una tassa di 25 dollari tramite Google Wallet), seguire passo a passo tutte le voci della lista di lancio di Android (launch checklist), pubblicare la app attraverso il Developer Google Play Console, attendere la approvazione di Google, e vederla apparire. Semplice e soddisfacente.

XML

I programmatori usano XML per descrivere i dati. Le basi della sintassi XML sarà utile – a pieno titolo  – nel vostro viaggio  degli sviluppatori Android  per sviluppare diversi compiti, come la progettazione di interfaccie utente (UI), presentazione( layout) e analisi dei dati alimentati o provenienti da internet. Molto di ciò che è necessario per XML può essere fatto attraverso Android Studio, ma è costruttivo essere fondato nelle basi di questo linguaggio di markup.

Le Abilità o Competenze richieste (Hard Skills): Come imparare a dimostrare di averle

Per gli sviluppatori di Android abbondano  le resource (strumenti) per potere cosi affinare le proprie competenze e  condividere suggerimenti e migliori pratiche (best practice).    Alcuni preferiti del settore includono Stack OverflowAndroid Weekly, il  Android Dev subreddit, vogella tutorials, YouTube(lezioni di Youtube), e il sito ufficiale di  Google per gli sviluppatori Android Developers site—specialmente il Building Your First App modulo.    Se sei un allievo della carta stampata, ci sono del libri molto popolari di Android come  Head First Java, Android Programming (programmazione) : Pushing the Limits(superare i limiti), e Java: A Beginner’s Guide( Guida per principianti di Java.)

Quando si inizia a pensare ad attrarre delle nuove  opportunità di lavoro, e alla vendita (migliore presentazione)  di se stessi come validi candidati,  è importante prendere in considerazione di mettere in in mostra il proprio lavoro sviluppato su Android (apps) nei siti come suon LinkedInXing, attraverso un portfoglio – cartella di (app) personale online, o su siti come e BehanceGitHub.    Gomito a gomito, di persona o  in forma virtuale, incontrarsi con altri sviluppatori Android e con molteplici responsabili delle assunzioni o reclutatori tramite Meetup (incontri conferenze) , tali come droidcon, e concentratori di gruppi o reti digitali (hubs) come LinkedIn groups, Twitter chats, e Quora feeds (sviluppi e notizie). Lei non saprà mai cosa potrà imparare, o a chi potrà mai trovare ?

Le competenze e abilità trasversali (soft skills)

Come per qualsiasi lavoro, non è sufficiente essere completo o senza difetti a livello tecnico, devi fare in modo di affinare le proprie abilità interpersonali tanto quanto quelle di codifica (scrittura analisi di codice).

Perseveranza (e pazienza … a.d.t.)

La pratica rende perfetti davvero quando si parla di sviluppo delle applicazioni. Inevitabilmente, si troveranno dei posti di blocco o degli ostacoli nel processo di sviluppo, in particolare agli inizi dello stesso.  Avrete bisogno di un gran cumulo di perseveranza per poterlo utilizzare a dovere nei momenti frustranti. Per fortuna, dal momento che Android è open-source, cosi che gli sviluppatori di Android potranno  usufruire di librerie e di  framework – pieni di lavori condivisi (codice example)  creati e pubblicati su siti come GitHub.

Avere un atteggiamento Collaborativo

L’atteggiamento Collaborativo è una richiesta di vitale importanza, nella maggior parte dei lavori offerti agli sviluppatori.   Anche se si sta lavorando in un solo progetto, sarà inevitabile dovere lavorare  insieme con altre persone, tali come specialisti in grafica e design (grafici) , personale del marketing, o della alta direzione aziendale (top managers).  Inizia a prendere confidenza con l’accettare semplicemente (umilmente a.d.t)  i feedback (appunti, commenti, e/ o suggerimenti migliorativi) sul proprio lavoro, giungendo a compromessi  con i colleghi, e collaborando con gli altri partecipanti  del progetto per cosi  creare dei prodotti eccezionali.

Sete di conoscenza

Tutti i buoni sviluppatori, mobile e non, sono impegnati nella formazione continua e permanente. Soprattutto nel paesaggio del rapido sviluppo di applicazioni mobile:  con l’avvento di app indossabili, app TV, app per le auto, e altro ancora, gli sviluppatori mobile devono tenere gli occhi e le orecchie aperte alle nuove tecnologie e alle mutabilità continua delle “migliori pratiche”.   Non importa il  livello  raggiunto delle loro conoscenze,essi  non si fermano mai nello  indagare, esplorare, giocare attorno, e fare delle domande.

Sintesi (the bottom line)

Le mobile applicazioni hanno una richiesta altissima, oggi più che che mai, il che rende questo momento uno fra il più incredibile  per lanciare propria carriera come sviluppatore Android. Con l’allargamento Androidoltre lo spazio dei consumatori al lavoro e all’istruzione, e continua a spingere le frontiere i limiti consolidando ricche esperienze utente di tipo cross-device(attraverso molteplice dispositivi) con il nuovo Material design language, Sono tempi eccitanti (momento particolarmente emozionante)  per tuffarsi nello sviluppo di Android. Quindi, andare avanti, con i i piedi per prima. L’acqua è calda (tiepida a.d.t.!).

Molte grazie agli sviluppatori esperti per conto di Google: Enrique López-Mañas (eenriquelopez) ed Etienne Caron, e allo sviluppatore per conto di Udacity Eric Gonzalez per i loro contributi e commenti tecnici all’interno di questo articolo.

a.d.t. (annotazione del traduttore Carmen Vargas)

Applicazioni Android con REST client, API ed altro

In questo post vorrei approfondire le tematiche necessarie per comprender meglio la filosofia e  l’importanza degli  web services nello lo sviluppo ottimale delle applicazione Android mobile.  attraverso una serie di collegamenti esterni (links) porterò il lettore ad una più consapevole conoscenza della tematica esposta qui.

json-rest3

#appissue

è importante ricordare che una connessione RESTful web service è una simple connessione a un URI attraverso l’oggetto HttpURLConnection  e anche la parserizzazione (analisi e interpretazione secondo determinate regole)  dei dati della risposta.

 

 

una lista di siti di interesse:

libri:

Java REST e RESTful: implementazione JAX-RS con Apache CXF- parte 1

Proseguendo con l’articolo precedente(java REST RESTful fondamenti)  nelle  prossime righe verranno illustrati tutte le  diverse implementazione per poter progettare un servizio Rest (applicativi, framework).

nei prossimi post si tratteranno altre implementazioni per i servizi REST in Java:

  • Jersey
  • RESTEasy
  • Restlet
  • Spring MVC
  • DROPWIZARD
  • altri

a continuazione Apache CXF Web Service Development

REST_implementations_implementazioni
REST_implementations_implementazioni

Le implementazioni di REST ( implementazione JAX-RS):

Apache CXF Web Service Development
Apache CXF è un Framework open source che permette lo sviluppo di servizi web in forma facile, semplice e basato sugli standard.

Web services possono essere implementati utilizzando i più svariati protocolli tali come SOAP, XML, JSON, RESTful HTTP,  e anche possono supportare varii protocolo di trasporto come HTTP o JMS (JavaMessage Service).

Caraterristiche di CXF (non solo REST)
il servizio CXF ha infinite caratteristiche per facilitare la programmazione delle interfacce (frontEnd); il trasporto e le connessioni fra i dati; il supporto a diversi protocolli e altri concetti avanzati come Features (caratteristiche) e Invokers ( con due componenti principali: una classe Java runnable con public static main mettodo), e una classe loader (che carica), che è utilizzata per istanziare l’altra classe riducendo cosi la complessità dello classpath management)  proporziona un modello di programmazione per creare e distribuire servizi web RESTful.

Strumenti di supporto
CXF supporta diversi strumenti di sviluppo per la conversione fra JavaBeans, web services, and WSDL( Web Services Description Language  linguaggio di definizione dell’interfaccia in XML, viene utilizzato per descrivere le funzionalità offerte da un servizio web . L’acronimo è utilizzato anche per una descrizione WSDL specifica di un web service -indicato anche come un file WSDL- che fornisce una descrizione leggibile dalla macchina come il servizio può essere chiamato, che parametri si aspetta, e quali strutture o quali dati restituisce.)

Questi strumenti assistono i programmatori nella generazione (creazione) dei “clienti”o del lato cliente del servizio web, come Java and JavaScript da WSDL o alla generarazione di un file WSDL dalla implementazione di un servizio.

CXF ha dei supporti per Maven e integrazione per Ant sia per il build come per la gestione delle dependency. alcuni dei tool di supporto sono:
• Java to web service
• Java to WSDL
• WSDL to Java
• WSDL to JavaScript
• WSDL to Service
• WSDL to SOAP
• WSDL to XML
• WSDL Validator
• XSD to WSDL

 Supporto per servizi RESTful
CXF supporta il concetto di servizi RESTful (Representational State Transfer) e le specifiche JAX-RS che specifica la semantica per creare servizi web secondo lo stile architettonico REST. Specifiche JAX-RS non fornisce alcuna Dettagli sui client RESTful.

CXF fa un passo avanti e offre varie opzioni per creare client che possono interagire con il web service JAX-RS. CXF supporta ancheJava Script Object Notation (JSON) formato dei dati che è un formato ampiamente utilizzato lo sviluppo di applicazioni Web 2.0-based.

Supporto per diversi tipi di trasporto e associazioni dati
L’associazione dati (databinding) è la chiave per tutto lo sviluppo del servizio web. Data binding significa mappatura fra oggetti Java e formati di esposizione dei dati o messaggi formatati, i quali possono essere esposti attraverso la implementazione del servizio, per esempio in formati XML o JSON (Java Script Object Notation).
Servizi web basati su SOAP avrebbero usato XML come formato di dati, mentre i servizi RESTful possono usare sia XML che JSON come formato dati.

CXF ha dei componenti  che aiutano il programmatore nella gestione delle mappature (costruzione degli alberi di navigazione) dei dati.

Supporta data binding con formati diversi di xml e CORBA
CXF gestisce non-XML bindings tali come  JavaScript Object Notation (JSON) e CORBA – Common Object Request Broker Architecture.

CXF supporta la architettura Java Business Integration (JBI) e la architettura Service Component (SCAs).

La caratteristica di non XML binding proporziona maggiori facilità per consentire l’integrazione con altre  infrastrutture esistenti che già supportavano altri formati.

per saperne di più … altre fonti

libri

mobile app italia 2014 vargas
mobile app italia 2014 vargas

Java REST e RESTful: fondamenti e filosofia

Nelle prossime righe verranno illustrati un insieme di principi di progettazione che dovrebbero essere rispettati quando si crea una web service RESTful.

java REST AND RESTFUL mobile app Italia 2014
java REST AND RESTFUL

REST è una Representational State Transfer.
REST è lo stile architettonico del web stesso.

REST è uno stile architecturale.

REST si riferisce ad un insieme di principi di architetture di rete, i quali specificanola forma come le risorse sono definite e indirizzate.

Esso si basa su rapporti client-server, utilizzando un protocollo di comunicazione cacheable (in memoria), stateless (comunicazione senza stato) e a livelli.
REST è indipendente dal protocollo. Non è accoppiato ad HTTP. Al giorno d’oggi, molte applicazioni REST
sono costruite utilizzando il protocollo HTTP, tuttavia REST non è legato ad questo specifico protocollo.
Un’applicazione REST può utilizzare qualsiasi protocollo per i quali esista uno schema URI standardizzato.

HTTP e REST Insieme contribuiscono a creare una struttura semplice e leggera, con cui si possono costruire applicazioni web complesse.
Al centro di REST con HTTP, sono i metodi HTTP.

Essi possono essere liberamente pensati come operazioni CRUD,
-creare(Create) leggere(Read) aggiornare(Upload) e cancellare(Delete) dei dati o delle risorse-
Sfruttando i metodi HTTP, un’applicazione REST offre spesso rappresentazioni POST, GET, PUT e DELETE per le operazioni CRUD.

FONDAMENTI DI REST
Identificazione delle risorse
Utilizzo esplicito dei metodi HTTP
Risorse autodescrittive
Collegamenti tra risorse
Comunicazione senza stato

REST NON è:
REST non è la mappatura o rappresentazione CRUD dei metodi HTTP.  REST non è REST senza HATEOAS. REST non è uno stile architetturale solo web/mobile application. ma ha un utilizzo più generale.

CARATTERISTICHE NECESSARIE PER DIVENTARE RESTFUL

Lo stile architetturale REST descrive sei regole caratteristiche per diventare Restfull.

  • Client/Server – Un insieme di interfacce uniformi separa i client dai server. Questa separazione di ruoli e attività significa che, per esempio, il client non si deve preoccupare del salvataggio delle informazioni, che rimangono all’interno di ogni singolo server, in questo modo la portabilità del codice del client ne trae vantaggio. I server non si devono preoccupare dell’interfaccia grafica o dello stato dell’utente, in questo modo i server sono più semplici e maggiormente scalabili. Server e client possono essere sostituiti e sviluppati indipendentemente fintanto che l’interfaccia non viene modificata.
  • Comunicazione libera di stato (senza stato) -La comunicazione client–server è ulteriormente vincolata in modo che in nessun contesto il client venga memorizzato (comunicato)  sul server tra le richieste. Ogni richiesta da ogni client contiene tutte le informazioni necessarie per richiedere il servizio, e lo stato della sessione è contenuto sul lato client. Lo stato della sessione può essere trasferito al server attraverso un altro servizio che controlla la persistenza (stato dei dati di un database).
  • Cacheable (utilizzabile in memoria temporanea) – Come nel World Wide Web, i client possono fare caching delle risposte. Le risposte devono in ogni modo definirsi implicitamente o esplicitamente cacheable o no, in modo da prevenire che i client possano riusare stati vecchi o dati errati. Una gestione ben fatta della cache può ridurre o parzialmente eliminare le comunicazioni client server, migliorando scalabilità e performance.
  • Organizzato a livelli – Un client non può dire se è connesso direttamente ad un server di livello più basso od intermedio, i server intermedi possono migliorare la scalabilità del sistema con load-balancing o con cache distribuite. livelli  intermedi possono offrire inoltre delle politiche di sicurezza.
  • Codice a Richiesta (non obbligatorio) – I server possono temporaneamente estendere o personalizzare le funzionalità del client trasferendo del codice eseguibile. Ad esempio questo può includere componenti compilati come Applet Java o linguaggi di scripting client side come JavaScript.
  • Interfaccia uniforme – Un’interfaccia di comunicazione omogenea tra client e server permette di semplificare e disaccoppiare l’architettura, la quale si può evolvere separatamente.

FILOSOFIA  REST

  • Tutto è una risorsa
  • Ogni risorsa ha un ID.
    L’ID è un URI.
    Un URI può identificare oggetti.
  • Tutte le risorse espongono un’interfaccia standard
  • Tutte le operazioni REST devono essere sicure ( l’operazione non deve avere effetti collaterali ); cacheable ( il risultato può essere memorizzato nella cache, ad esempio da un server proxy); concrete e integre ( L’operazione deve sempre restituire lo stesso – unico risultato).
  • ogni risorse può contenere collegamenti ad altre risorse.comunicazione senza stato Ogni cosa che necessita processare una richiesta deve essere contenuto nella richiesta estesa (conformazione). Non esistono sessioni dei client nel Server.

REST E Risorse: Le risorse sono sostantivi (oggetti – cose – nomi) . Le risorse sono identificate da URI.

      http:/myApp/medici/8456201
      http:/myApp/medici/usl/5

REST E Metodi: I metodi sono verbi (azioni, attività da fare sulle risorse) . Essi svolgono operazioni CRUD.
   metodi sono: POST, GET, PUT, DELETE

REST E Rappresentazione delle risposte/soluzioni:
Il formato per rappresentare le  risorse spesso è XML o JSON, (utilizzabile anche PDF / text / word).

per saperne di più … altre fonti