May 2008 Blog Posts

A volte l'eleganza del linguaggio fa la differenza

Poche ore fa stavo rivedendo una 'vecchia' classe che 'simula' il concetto di map. In pratica e' una sorta di dictionary che permette di avere duplicazioni di chiave. Niente di veramente speciale, di fatto usavo una List di KeyValuePair; si pou' fare di meglio, ma qui l'accorcio :-) Per estrarre i valori data una chiave, ho usato il buon vecchio foreach che andava a riempire una lista di stringhe. In altre parole qualcosa del tipo List<string> result = new List<string>(); foreach(KeyValuePair<string, string> parameter in parameters) {   if(parameter.Key.Equals(param))     result.Add(parameter.Value); } return result.ToArray(); Dato che il progetto e' migrato a FX 3.5, ho improvvisato una soluzione LINQ: return parameters.FindAll(kv => kv.Key.Equals(param)).Select(kv...

posted @ Tuesday, May 20, 2008 11:43 PM | Feedback (6)

[ROA] Contratto

Nel precedente post ho parlato della lacuna della definizione del contratto nel mondo ROA rispetto al mondo SOA. E' bene che faccia qualche precisazione, ma prima di parlare di questo fatemi fare un escursus sul concetto di contratto e come questo si applichi oggi nel mondo SOA (Service Oriented Architecture). Se chiediamo ad un avvocato di scrivere un contratto, garantendo un certo introito :-), ci innondera' sicuramente di domande e probabilmente scrivera' 40/50 pagine di documento dove ogni singola parola ha un suo peso specifico. In sostanza la regola e', ogni aspetto non 'normato' o definito rappresenta un threat. In ambito IT...

posted @ Sunday, May 11, 2008 3:08 PM | Feedback (0)

ROA

ROA sta per Resource Oriented Architecture e si contrappone sotto molti punti di vista a SOA, cioe' Service Oriented Architecture. In realta' non c'e' un modello migliore dell'altro e so potrebbe tranquillamente affermare che un 'servizio' e' necessario per creare una 'risorsa' ed una 'risorsa' e' necessaria per fornire un 'servizio'. Ciononostante possiamo altresi' affermare che il contesto delle risorse e' decisamente predominante. Quali sono le caratteristiche di ROA: Addressability: intesa come capacita' di identificare una risorsa addraverso uno URI ben definito Statelessness: mancanza di supporto nativo per la gestione dello stato Connectedness:...

posted @ Saturday, May 10, 2008 8:11 PM | Feedback (8)