Quando mi vengono rivolti gli auguri, io li accetto, perchè so che chi me li rivolge lo fa con affetto e con gentilezza. Ma vorrei tanto un mondo dove alla donna non fosse dedicata una giornata, perchè, pur nelle evidenti cose che ci differenziano dagli uomini, noi donne nelle realtà sociali e lavorative in cui operiamo non dobbiamo essere soggette ad alcuna discriminazione.
La conoscenza ti rende libero! Ma le informazioni prese singolarmente non hanno nessuna utilità. Devono essere combinate nella maniera opportuna, analizzate sotto il giusto profilo, viste in un ottica complessiva. Ecco allora che la conoscenza diventa per me l'alchimia dell'informazione.
lunedì 8 marzo 2010
8 Marzo: giornata internazionale della donna
Quando mi vengono rivolti gli auguri, io li accetto, perchè so che chi me li rivolge lo fa con affetto e con gentilezza. Ma vorrei tanto un mondo dove alla donna non fosse dedicata una giornata, perchè, pur nelle evidenti cose che ci differenziano dagli uomini, noi donne nelle realtà sociali e lavorative in cui operiamo non dobbiamo essere soggette ad alcuna discriminazione.
OrangeDotNet è membro di Ineta.
E' da oggi ufficiale che anche noi di OrangeDotNet ne siamo entrati a far parte. Non vi nascondo il pizzico di emozione quando specificando in questa pagina il nostro nome, e avviando la ricerca, è apparso il nostro logo con accanto la scritta:
domenica 7 marzo 2010
Mentre contiamo prepariamoci alle novità
Non si può certo arrivare impreparati alle novità che verranno presentante nel corso di questo evento, così ho pensato bene di condividere nel mio blog giornalmente (almeno spero), ciò che di nuovo arriva con il framework 4.0 e con Visual Studio 2010.
Ho pensato di cominciare questo appuntamento, parlando del nuovo tipo che verrà reso disponibile con il 4.0 e che si chiama System.Tuple, che è una collezione di dati tipizzati ma eterogenei.
object[] vettoreDatiEterogenei = new object[]{"Laura", 10}
giovedì 4 marzo 2010
OrangeDotNet & Radio Zammù continua...
Continua il nostro appuntamento con radio Zammù.
Oggi parleremo della nuova frontiera dei controller per i dispositivi elettronici, con particolare riferimento al progetto skininput.
Scopriremo invece, come sfruttando dei servizi online gratuiti, è possibile evitare il triste rito di: mando la mail, scarico il documento, lo confronto, poi lo aggiorno, poi creo una nuova mail, allego il file modificato, mando la mail…etc…
lunedì 1 marzo 2010
Articolo su No Repro Bug
Per capire come poter limitare il suo impatto nel ciclo di vita del software utilizzando Visual studio 2010, vi consiglio di leggere l'articolo che Giancarlo ha pubblicato su questa rivista.
domenica 28 febbraio 2010
Microsoft Community Tour 2010
Per il momento posso però solo confermare la location
Viale Andrea Doria, 6 - Cittadella Universitaria (Catania)
Sull'agenda e sulle modalità per le prenotazioni all'evento, dobbiamo ancora aspettare qualche giorno.
Behaviors e prestazioni in WCF
Quando si progetta un sistema, qualunque sia la sua natura, le prestazioni rientrano quasi sempre tra i vincoli progettuali che devono essere rispettati.
Qualsiasi applicazione software è un sistema, e quindi anche per essa esistono dei parametri per valutarne la bontà. Se poi questa applicazione è un applicazione distribuita, le performance, insieme alla sua scalabilità, diventano delle caratteristiche fondamentali, che possono decretarne il successo o il fallimento.
Per non creare ambiguità, e sebbene il loro significato sia noto, iniziamo dando la definizione di
- Concorrenza: misura quanti tasks (richieste, jobs, transazioni) possono essere eseguiti contemporaneamente;
- Tempo di esecuzione: misura quanto tempo occorre per completare un task;
Per una applicazione WCF, uno dei parametri che può essere usato per stabilirne le prestazioni è il throughput, ovvero al quantità di task che vengono eseguiti in uno specifico intervallo di tempo.
N.Task/tempo di esecuzione
Da questa definizione si capisce come per aumentare il throughput si può intervenire o sulla velocità di esecuzione dei task, o sul numero di task che possono essere eseguiti parallelamente.
La velocità di esecuzione dipende dall'algortimo con il quale il task è implementato o dall'hardware su cui esso è eseguito, pertanto WCF non può migliorarlo.
Quello su cui invece può agire WCF è il numero di task eseguiti nell'unità di tempo, ovvero la concorrenza, che è controllabile attraverso i behaviors IstanceContextMode e ConcurrencyMode.
Il primo è usato per controllare le istanze del servizio e può assumere tre valori:
- Single: tutte le richieste vengono gestite da un'unica istanza del servizio, che implementa un singleton;
- PerCall: per ogni richiesta viene creata un istanza del servizio;
- PerSession:viene creata un istanza del servizio per ogni sessione del client.
Il ConcurrencyMode è un behaviors utilizzato per controllare la concorrenza di un thread all'interno dell'istanza di un servizio e può assumere i valori:
- Single: un solo thread alla volta può accedere al servizio;
- Reentrant: solo un thread alla volta può accedere al servizio, ma può lasciarlo e ritornare dopo;
- Multiple: thread multipli possono accedere al servzio simultaneamente.
Per default un servizio wcf ha uno stato che gestisce un solo thread sul servizio (ConcurrencyMode.Single), ed il servizio viene istanziato per ogni nuova sessione (InstanceContextMode.PerSession)
Per creare invece un servizio che possa migliorare le sue performance, si può settare il suo behaviors in modo che su una singola sua istanza possano accere più thread:
[ServiceBehavior (InstanceContextMode= InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]