Si parte!

Dopo tanto studiare, credo sia giunta l'ora di mettersi alla prova.

Voglio creare un piccolo programma di gestione delle attività di campagna per la mia azienda agricola.

Queste le risorse a disposizione:

  • un numeroso team di sviluppo formato da una sola persona: io
  • Visual Studio 2008 Pro

Alcune scelte architetturali

  • Linguaggio di sviluppo: C#
  • Applicazione: .NET 2.0 Windows Form
  • Framework Gestione Dati: ADO.NET 2.0
  • Database: SQL Server 2005
  • Installazione: ClickOnce

L'idea è quella di sviluppare l'applicazione sul mio portatile (Sony Vaio, Vista Ultimate, 160 GB, 2 GB di ram) così posso lavorare a casa e in ufficio.

L'applicazione verà installata ed usata concorrentemente dai tre PC dell'ufficio (di cui due Win XP e uno Vista Ultimate), connessi in rete col server.

Prima di iniziare, però, voglio chiarirmi le idee su alcuni aspetti del ciclo di sviluppo:

  1. Pur essendo da solo (e bye bye al pair programming...) vorrei usare un source control system. Devo montare un VS 2008 TS sul server e un client sul mio portatile? Vado a chiederlo al mitico Lorenzo...
  2. Mi piacerebbe usare un ciclo di rilascio delle versioni molto breve, ma come faccio a gestire le varie versioni della base dati? Devo fare una capatina sul  Forum di UGISS per fare un po' di domande a chi se ne intende.

il progetto, pur piccolino, è per me una scalata al monte Everest:

  1. Non ho mai sviluppato un'applicazione multi utente con ADO.NET 2.0 . Devo abbandonare il modello ACID  in favore di quello disconnesso con la sincronizzazione e la gestione dei conflitti
  2. Sino ad oggi in VS 2005-2008 Pro ho solo scritto programmini di prova per fini di studio. Devo capire come impostare la struttura della soluzione, come suddividere i progetti all'interno della soluzione, come implementare il modello multi layer, il pattern MVC, ecc. ecc. .

Per finire: l'idea è quella di usare questo programma per cercare di fare esperienza su quanto ho appreso e tenere traccia su questo blog dei miei progressi e delle difficoltà incontrate.

Pur essendo da solo, voglio comunque tentare di applicare i principi di sviluppo che normalmente si usano in un team.

posted @ domenica 6 gennaio 2008 17.26

Print

Comments on this entry:

# re: Si parte!

Left by Alessandro Pulvirenti at 06/01/2008 22.35
Gravatar
Certo che con un portatile con soli "2 MB" di memoria non si va molto lontano! :-)
Se non hai mai fatto programmi di una certa complessità, ti consiglio di non mettere troppa carne nel fuoco tutta in una volta, altrimenti rischi di complicarti troppo la vita.
Inizia cercando di fare qualcosa di semplice a cui man mano aggiungerai nuove funzionalità.
Bisogna allenarsi prima di affrontare un grande ostacolo.
Ciao

# re: Si parte!

Left by Nicolò Carandini at 07/01/2008 0.52
Gravatar
LOL!
Ho corretto i due M con due G...

Per il resto, questo programma è un allenamento su un caso reale d'uso, e l'idea è proprio quella di aggiungere le funzionalità poco alla volta.

E proprio perchè è un allenamento per qualcosa di più complesso che ho voglia di realizzare più avanti, mi piace l'idea di applicare metodologie che altrimenti sarebbero troppo "costose" da applicare per un piccolo progetto sviluppato da una sola persona.

Vi farò sapere come va avanti, ogni vostro suggerimento/avvertimento è prezioso.

Ciao!

# re: Si parte!

Left by Andrej Stern at 07/01/2008 8.58
Gravatar
Visto che usi VS2008 e Sql Server 2005, al posto tuo, proverei ad usare Linq to Sql.
Nel progetto sul quale sto lavorando attualmente, Linq to Sql mi ha permesso di risparmiare molto tempo nella scrittura del layer per l'accesso ai dati garantendomi la completa persistenza dei dati.
Ciao e buona fortuna.

# re: Si parte!

Left by Nicolò Carandini at 07/01/2008 13.45
Gravatar
ADO.NET 2.0 l'ho studiato abbastanza bene, anche se come detto non ho ancora un'esperienza valida sul campo.

Temo che usare Linq to Sql sia aggiungere troppa carne sul fuoco, comunque grazie per il suggerimento e per l'incoraggiamento.

# re: Si parte!

Left by raffaeu at 07/01/2008 14.13
Gravatar
Beh io sicuramente mi eviterei la parte di DAL ma non con linq ma con NHibernate, visto che l' entity framework non c'è ancora ...
Poi se vai su codeplex trovi la mitica applicazione NSK che puo' essere un buon spunto per applicare tutto queste conoscenze, in maniera ordinata e n-tier nel vero senso della parola.
L' unica cosa che non mi quadra è: perchè vuoi gestire un versioning se sei l' unico a produrre codice?

# re: Si parte!

Left by Nicolò Carandini at 07/01/2008 17.38
Gravatar
Ciao Raffaele, grazie per i suggerimenti, mi vado subito a vedere NSK...
Per quanto riguarda il versioning, è interessante leggere il post di Jeff Atwood:
http://www.codinghorror.com/blog/archives/000968.html
Come ho già detto, pur lavorando da solo mi piacerebbe utilizzare gli strumenti che si usano in un team.
Comments have been closed on this topic.