RapportinoMaker cresce, e sfrutta WCF
Vi ho già parlato altre volte (forse troppe) del mio piccolo RapportinoMaker. Eppure, vi dirò, nella sua semplicità mi permette di esplorare, disegnare e sfruttare componenti che altrimenti non avrei mai visto. Vi faccio un piccolo riassunto perchè ci tengo.
RapportinoMaker è un software che gira dalla console di Windows. Accetta al massimo due argomenti: il mese e l’anno di cui si vuole generare il rapportino. Quindi, per esempio, possiamo lanciarlo con una riga simile a questa:
Dopo aver premuto Invio, RapportinoMaker apre il database di Outlook, preleva tutti gli appuntamenti del mese e dell’anno passati come input e conta quanti giorni ho lavorato. Il conteggio si basa sull’oggetto dell’appuntamento: se è una determinata stringa, allora l’appuntamento viene preso in considerazione, altrimenti…nisba.
Determinato il numero di giorni effettivamente lavorati (per esempio 20), posso generare due cose: il rapportino su un foglio Excel e la fattura. Parliamo di quest’ultima. Tutto il database della mia fatturazione è online, adeguatamente protetto, su un server SQL 2005 disponibile via Web. Tecnicamente parlando, se non ci sono firewall o regole particolari, RapportinoMaker potrebbe aprire una connessione verso il server SQL ed aggiungere record nelle tabelle per generare la fattura. Questo può ovviamente essere ottenuto sia con istanze di SqlConnection/SqlCommand, sia con architettura basata su NHibernate.
Capita però di dover utilizzare RapportinoMaker in ambienti dove il mio SQL Server è irraggiungibile. Vuoi per qualche firewall, vuoi per qualche restrizione dei responsabili di rete, RapportinoMaker non riesce a completare il lavoro per cui è stato progettato mesi e mesi fa. Se lo uso a casa, non ci sono problemi, ma quando lo uso sul lavoro, qualcosa non va.
Ecco il motivo per cui ho deciso di studiare WCF. Esponendo un servizio WCF sulla porta 80, RapportinoMaker non comunica più direttamente verso il database, ma sfrutta un servizio che lo fa per lui. RapportinoMaker comunica con il servizio tramite un’interfaccia IFatturazione che espone metodi per caricare e salvare articoli, clienti e fatture. Adesso si è fatto davvero tardi, ma mi riprometto in futuro di parlarvene, se non altro per darvi qualche infarinatura su come creare un servizio WCF, dal momento che potrebbe davvero essere utile a tutti voi. Come al solito, stay tuned!
Technorati Tags: .NET Framework WCF database services