Come devo affrontare lo sviluppo di un'applicazione client-server basata su Java?

2

Mi è stato chiesto di sviluppare un'applicazione client-server (richiede un database) per un'azienda.

Sono molto pratico con java, quindi mi piacerebbe farlo. Sta a me come sviluppo l'applicazione. Può essere un'applicazione web JSP o un'applicazione basata su GUI Java Swing.

Ho seguito domande / dubbi.

Quindi, se svilupperò un'applicazione web, devo insegnare al personale della società

  1. Come installare Tomcat
  2. Come caricare l'applicazione Web Tomcat
  3. Come avviare il server per avviare l'applicazione.

Se continuerò a sviluppare un'applicazione basata su GUI Java Swing,

  1. Dovrebbe iniziare all'avvio del computer. Dovrebbe essere aggiunto automaticamente all'avvio del servizio del sistema operativo all'installazione
  2. Avere collegamento all'applicazione in avvio rapido, barra delle applicazioni durante l'installazione.

Sulla parte del database:

Mi piacerebbe avere l'accesso MS come DB ma gratis. Questo perché,

  1. Non c'è bisogno di preoccuparsi dell'installazione del motore DB (come noi dobbiamo fare attenzione nel caso di MySQL).
  2. DB sarebbe mantenuto in alcuni Drive (come il file .mdb in caso di MS-Acess) illeso anche se il loro sistema operativo si blocca.

Per favore, guidami come devo avvicinarmi allo sviluppo del software.

    
posta Venkattesh B 05.06.2011 - 19:58
fonte

6 risposte

4

Sono necessari molti più dettagli di quelli che fornisci per rispondere adeguatamente a questa domanda.

Le tecnologie che utilizzi saranno guidate dalle tue esigenze specifiche, sia funzionali che non funzionali. Quindi, per sapere cosa si adatta meglio alle tue esigenze, devi eseguire l'ingegneria dei requisiti. Scopri esattamente cosa vuole l'utente finale, e quindi avrai un'idea migliore di quali strumenti puoi utilizzare per arrivare da dove sei ora dove devi essere. Ma è importante concentrarsi sugli attributi di qualità e sui requisiti non funzionali in quanto sono i requisiti funzionali.

Se non hai mai fatto ingegneria dei requisiti, ti consiglio vivamente di leggere i lavori di Karl Wiegers. Ha pubblicato due libri chiave: Requisiti software e Ulteriori informazioni sui requisiti software . Il primo libro è stato richiesto durante la lettura del corso di ingegneria dei requisiti del software. Wiegers ha anche un sito web chiamato Impatto sui processi , che potrebbe avere alcune risorse e informazioni utili.

Una volta soddisfatti i requisiti, sarà molto più facile determinare quale stack tecnologico può risolvere al meglio i tuoi problemi.

Tuttavia, ho alcuni suggerimenti per te, nel frattempo:

Hai esperienza con Java, quindi attaccare con l'ambiente Java è probabilmente una scommessa sicura. Non usare una tecnologia per risolvere tutti i problemi che ti capitano solo perché sei familiare e ti senti al sicuro, comunque. Assicurati che possa effettivamente risolvere i problemi che stai cercando di risolvere. Altrimenti, stai solo creando più lavoro per te stesso e per chiunque altro debba mantenere il tuo software.

Indipendentemente dalla soluzione scelta, la società si aspetta la documentazione. A seconda dei termini di lavoro, ci si aspetta almeno che forniscano istruzioni su come distribuire il software e poi le istruzioni su come l'utente finale può effettivamente utilizzare il sistema che hai creato. Tuttavia, ci sono molte altre cose che devono essere documentate, come i requisiti concordati, il design o lo stato finale di implementazione quando lo si rigira, i report dei difetti, i report orari e così via. Assicurati di sapere cosa devi consegnare, oltre al software di lavoro.

In termini di database, puoi scegliere tra server di database (come MySQL e PostgresSQL) e database incorporati (come SQLite e HSQLDB). Esistono anche soluzioni NoSQL (come Hadoop) per gli archivi di dati. Potresti voler esaminare le capacità di ciascuno e vedere come puoi soddisfare al meglio le tue esigenze. Potrebbe essere necessario distribuire entrambi, anche, a seconda dei requisiti specifici. Tuttavia, non puoi scegliere finché non hai i requisiti.

Indipendentemente dal database che utilizzi, probabilmente dovrai stare tranquillo con cose come JDBC e vari livelli ORM. Se decidi di seguire il percorso delle app Web, dovrai essere familiare e scegliere tra Struts, Spring e una serie di altri framework per applicazioni web. Siate pronti a valutare un numero di strumenti, librerie e framework in competizione con le vostre esigenze. E non aver paura di buttare via le cose. Credo che sia stato un suggerimento in The Pragmatic Programmer - piano di buttarne via uno. Farai degli errori e dovrai imparare da quegli errori durante questo progetto. Ti aiuterà a lungo termine.

Quindi, in breve, scopri esattamente cosa devi costruire prima ancora di provare a pensare alle tecnologie. Dato il tuo post, non fornisci informazioni sufficienti a qualsiasi ingegnere ragionevole per dare suggerimenti. E se non sai o non puoi specificare cosa stai costruendo con un altro ingegnere, non è possibile costruirlo.

    
risposta data 05.06.2011 - 21:24
fonte
1

Se segui lo sviluppo web in JAVA ti consiglio di utilizzare uno dei famosi framework MVC. Il mio preferito è STRUTS2.

struts apache

Perché andare con il framework, perché lo sviluppo con servlet JAVA è lento e inefficiente.

Ora, hai bisogno di un database, ti consiglio di organizzare il tuo codice in base alla progettazione orientata al modello. Dove si avrà il modello separato dall'applicazione web e quindi si può usare il mappatore di oggetti - relazioni per mappare quel modello in un database di relazioni. Il mio mapper O preferito è Hibernate.

hibernate turorial

Fondamentalmente puoi usare la mappatura XML, o le annotazioni java, io di solito uso l'annotazione java perché è più facile farlo funzionare.

Una volta che hai mappato il modello, devi solo creare un file ant (ci sono tutorial sul web) per esportare lo schema nel database che hai scelto. Raccomando MySQL. È facile da usare e ha buone caratteristiche.

Per il lato client ci sono JSP, AJAX, JavaScript, jQuery puoi usare tutto questo a seconda di cosa hai bisogno.

Per il server puoi usare tomcat, jboss ecc. Basta scaricare eclipse jee e import server (c'è una procedura guidata in eclissi) e poi importare la tua app web creata in tomcat. Avvia Tomcat e accedi alla tua applicazione web.

Questo è un breve libro di cucina per applicazioni web basate su java. Spero di aver coperto la maggior parte delle cose.

    
risposta data 05.06.2011 - 20:39
fonte
0

Sembra che tu stia iniziando praticamente da zero senza avere uno sviluppatore esperto che ti supporti. Questa potrebbe non essere la soluzione ottimale in termini di tempo e denaro.

Avrai bisogno di imparare come usare JDBC per parlare con un database da Java e avrai bisogno di un driver JDBC per Access per usare Access come database.

    
risposta data 05.06.2011 - 20:08
fonte
0

Puoi anche scegliere un approccio moderno allo sviluppo web di JAVA.
Ad esempio, se scegli Play framework non hai bisogno di Tomcat, lo avvierai come un'app normale (Over course: un launcher Python ).

Verrà fornito con un file di configurazione che puoi facilmente modificare per connettersi al tuo database. Tutte le dipendenze sono già state prese in considerazione nel caso di una semplice app client-server-db.

Non iniziarei nel 2012, ho visto che questa era una vecchia domanda, ma non avrei avviato un progetto 2011 con STRUTS2 come ti è stato consigliato :) Struts2 è un vecchio framework scelto da molti sviluppatori perché quasi tutti sanno e ha paura del cambiamento. Ma sei libero da questo zaino.

    
risposta data 30.01.2012 - 18:55
fonte
0

Se decidi di scrivere un'app Web ospitata da JVM, ti consiglio di utilizzare Groovy e Grails. Scrivere GSP è molto più semplice rispetto alla scrittura di JSP. Puoi anche utilizzare HAML . Otterrai l'applicazione eseguita con circa il 20% di tante righe di codice.

    
risposta data 31.01.2012 - 00:14
fonte
0

Utilizzare lo stack tecnologico J2EE è un'ottima soluzione. Ma dovrebbe usare anche altre tecnologie.

Consiglierei quanto segue ...

  1. Apache-Tomcat su Linux
  2. Maven - per creare la tua applicazione e gestire la dipendenza dalla libreria
  3. Spring 3 - framework per tutte le applicazioni
  4. Wicket 1.4 - framework web veloce e semplice
  5. Ibernazione - ORM per l'accesso al database
  6. Postgres 9.0

Dopo aver selezionato lo stack tecnologico appropriato, inizia a progettare moduli e livelli dell'applicazione.

    
risposta data 05.06.2011 - 21:14
fonte

Leggi altre domande sui tag