gennaio 2006 Entries

Branching e merging

Il branching è una funzionalità estremamente interessante del nuovo Source control targato Microsoft, ma pone problematiche di non poco conto per chi lo deve usare. Questo post aiuta a capire una delle tante vie...

posted @ martedì 31 gennaio 2006 16.41 | Feedback (5)

Quale version di VSTx (Visual Studio Team x)

Guardando le varie versioni di Visual Studio Team System mi chiedo perchè dovrei scegliere la versione developer ! Sinceramente, se acquisto un banalissimo profiler .NET (ne trovo anche gratis anche se non integrati in VS.NET), perchè dovrei rinunciare agli innumerevoli strumenti di testing disponibili nella versione Team Test ? Mi sto sempre più convincendo che la version Team Test è la più interessante delle tre.

posted @ martedì 31 gennaio 2006 16.31 | Feedback (2)

Sql Server Reporting Services 2005 e Windows Communication Foundation

Uno dei nuovi (rispetto alla versione 2000) data source di Reporting Services 2005 è proprio l'XML. L'XML erogato sia attraverso web services ASP.NET (quindi stream SOAP) che su stream XML. Ecco allora che mi è venuto in mente che in WCF è possibile implementare alcune estensioni che permattano di erogare facilmente servizi in modalità POX/REST. Come ? Beh, Clemens ha fatto molto (ma molto) di più. nelle prossime settimane scriverò un piccolo esempio di servizio per agevolare il lavoro a Reporting Services 2005.

posted @ lunedì 30 gennaio 2006 14.45 | Feedback (1)

Webcast in arrivo

L'inizio del 2006 è caratterizzato da una serie imponente di webcast decicati a Visual Studio 2005, Visual Studio 2005 Team System ed all'architecture. Per avere la lista completa vi consiglio queso link e quest'altro. Come molti altri illustri colleghi, farò anch'io un paio di webcast: Introduzione alla metodologia agile MSF 4.0 con Visual Studio 2005 Teammartedì 21 febbraio dalle 14:30 alle 16:00 Progettare il Web Testing nel mondo Enterprise con Visual Studio 2005 Team Testmartedì 28 febbraio dalle 14:30 alle 16:00Per chi ci sarà, a presto :-)

posted @ mercoledì 25 gennaio 2006 10.12 | Feedback (7)

E dopo WindowsWorkflow.net arriva WindowsCommunication.net

Prima nacque windowsworkflow.net, poi venne windowscommunication.net ... ma windowspresentation.net dov'è ?

posted @ mercoledì 18 gennaio 2006 15.53 | Feedback (7)

Quello che il CLR dovrebbe avere

Il CLR è indubbiamente ricco, ma a volte mi chiedo come mai Microsoft non completi, una volte per tutte, il type system con funzionalità banali ma sempre molto utili. Prendiamo il BigDecimal di Java. Ci sono due funzionalità interessanti (fra le altre cose): E' possibile definire la scala E' possibile definire la regola di arrotondamento Mi piacerebbe anche avere un maggior supporto dalla classe DateTime, ma questa è un'altra storia ! Spero sempre nella prossima versione....

posted @ mercoledì 18 gennaio 2006 15.31 | Feedback (3)

[Indigo watcher#34] Security Token e Security Token Service

Avete mai sentito parlare di security token e security token service ? Bene, la spiegazione (un pò rozza, ma funziona !) è semplice. Quando abbiamo definito delle claims, ci serve un modo per impachettarle e spedirle. Il pachettino si chiama security token, mentre il servizio che le spedisce si chiama security token service. Semplice no ?

posted @ mercoledì 18 gennaio 2006 14.27 | Feedback (0)

[Indigo watcher#33] Claims

Tutto l'impianto di sicurezza di WCF si basa sul concetto di claim. Partiamo quindi dalla definizione di Claim: "An assertion of the truth of something, typically one which is disputed or in doubt." Possiamo allora pensare ad una claim come il numero della nostra carta d'identità, il numero della patente, la nostra data di nascita, la nostra user name di dominio ecc ecc. Un insieme di claims possono quindi identificarci univocamente oppure classificarci (es. siamo maggiorenni). La classe System.Security.Authorization.Claim fornisce un set di claims predefiniti, come il Dns (CreateDnsClaim) il SID windows (CreateWindowsSidClaim) e così via. Per ogni claim abbiamo 3 proprietà:...

posted @ martedì 17 gennaio 2006 15.50 | Feedback (1)

[Indigo watcher#32] Duplex Service Contract

Molto spesso capita di sentire domande del tipo: "il mio servizio impiega molto tempo ad eseguirsi e spesso la chiamata va in timeout. Come posso risolvere il probema ?" In WCF òa soluzione potrebbe essere quella di utilizzare il duplex service contract. Dico potrebbe perchè non è l'unica soluzione ! Il message pattern duplex è concettualmente semplice. Definisco un contratto per la chiamata e un'altro per la callback. Lato servizio avremmo quindi una cosa del tipo: [ServiceContract(CallbackContract = typeof(IContractCallBack))]public interface IContract{    [OperationContract(IsOneWay=true)]    void SubmitContract(string contractNumber);} [ServiceContract()]public interface IContractCallBack{    [OperationContract(IsOneWay = true)]    void ContractStatus(string contractNumber, bool isSubmitted);} public class ContractService : IContract{    IContractCallBack callback;     public...

posted @ domenica 15 gennaio 2006 15.52 | Feedback (1)

Un bel tool per sviluppatori web

Come sviluppatore web molto spesso guardo i siti altrui e prendo spunto sulla tecnica adottata per raggiungere determinati effetti. Infatti ho sempre pensato che noi (sviluppatori) non creiamo ma trasformiamo :-) Capire come sono stati raggiunti determinati risultati visual con il web significa capire che cosa sta dietro il codice html, javascript, css, .... Firefox fornisce un'estensione molto interessante per lo sviluppatore.

posted @ venerdì 13 gennaio 2006 13.54 | Feedback (3)

Identificazione entità in SOA

SOA si basa essenzialmente su 4 principi fondamentali (Policy-Based Behavior Negotiation, Explicitness of Boundaries, Autonomy e Contract Exchange). All'interno di questi punti si cela il problema dell'identificazione delle entità fra i servizi 8senza ovviamente richiedere la duplicazione delle informazioni). Vediamo un esempio concreto. Immaginiamo di avere un servizio dei contatti ed un al'tro di processazione ordini. Si immagina pertanto che il servizio degli ordini abbia in qualche modo un riferimento alle informazioni dei clienti (contatti). Ma quale informazione ? Basterebbe avere un identificativo univoco, che permetta al servizio degli ordini di cercare puntualmente un determinato cliente. Se andiamo a guardare come censiamo...

posted @ giovedì 12 gennaio 2006 14.50 | Feedback (2)

[Indigo watcher#31] Hosting

WCF permette di hostare i servizi in 3 tipi di applicazioni: IIS (solo protocollo HTTP) Applicazione Windows (Windows Services, Win Form, Console) WAS (Web Service Activation) - aka IIS 7 Un interessante blog di uno degli sviluppatori del team spiega le tre alternative.

posted @ mercoledì 11 gennaio 2006 9.53 | Feedback (1)

INETA local speaker registry

Ho appena ricevuto la conferma che da ieri faccio parte del local speaker registry di INETA. Questa cosa mi fa veramente molto piacere, come potete ben immaginare :-) Sapere poi che l'Italia è rappresentata da Andrea ("Sua Maestà") e Lorenzo ("Human blog") non può che essere motivo orgoglio.

posted @ martedì 10 gennaio 2006 15.23 | Feedback (3)

Le novità di MSMQ 4.0

MSMQ 4.0 propone delle interessanti novità: Transactional remote receive Poison message handling Subqueues Continuo a pensare che MSMQ sia uno dei miglior servizi di Windows e queste nuove funzionalità non fanno altro che potenziarlo.

posted @ lunedì 9 gennaio 2006 12.35 | Feedback (3)

Quale pagina di login ?

Durante le feste natalizie ho dedicato un pò di tempo a girovagare per siti internet (non pensate male !!!). Ad un certo punto ho posta l'attenzione alla logica di navigazione della login, e razionalizzando, ho trovato tre forme comuni (ce ne sono molte altre ma parevano minoritarie): L'home page piena di contenuti contiene anche la maschera di login per l'area riservata L'home page con la sola maschera di login L'home page che richiede l'autenticazione e se mancante ridirige verso una pagina di login Nella nostra (aziendale) ultima creatura abbiamo scelto l'opzione 2, anche se forse, non mi convince più di tanto. Su alcuni siti...

posted @ lunedì 9 gennaio 2006 10.58 | Feedback (9)

[Indigo watcher#30] Quanto è performante WCF ?

Premesso che parlare di performance su un prodotto non ancora uscito potrebbe avere poco senso, è vero però che il tema fa comunque parte del ciclo di sviluppo del prodotto stesso. Quindi, qualcuno in Microsoft ha pensato bene di pubblicare dei dati (e codice degli esempi) di comparazione fra un servizio ASP.NET 2.0 e un servizio WCF. Il risultato è molto interessante.

posted @ domenica 8 gennaio 2006 1.46 | Feedback (4)

Windows Presentation Foundation e Vista

Parlando con Corrado (il nostro guru delle applicazioni windows) in merito e Windows Presentation Foundation siamo convenuti che le nuove API, oltre a cambiare il modello di programmazione cambierà (o si presta a farlo)  anche il modo di intendere la usabilità. Già Office 12, Windows Vista stanno facendo un passo ulteriore, di semplificazione ed ergonomia, ma molto dipenderà dagli sviluppatori. Bisognerà fare uno sforzo e pensare di più all'usabilità, soprattutto nei dettagli. Perchè allora non iniziare a studiare come i maestri della usabilità pensano ?

posted @ sabato 7 gennaio 2006 14.54 | Feedback (4)

Globalizzazione delle applicazioni

Implementare una applicazione che supporti pienamente la globalizzazione è un esercizio abbastanza complesso. E' vero che il framework .NET ci supporta moltissimo, ma purtroppo ancora molte aree rimangono scoperte, come: la formattazione dell'indirizzo, numeri di telefono e così via. Un buon punto di partenza per capire le problematiche ed eventuali soluzioni è il seguente sito.

posted @ venerdì 6 gennaio 2006 14.06 | Feedback (2)

Forum dedicato alle architetture

Dopo molto tempo, e parecchie richieste, finalmente è nato il forum dedicato alle architetture :-)

posted @ venerdì 6 gennaio 2006 10.22 | Feedback (3)

[Indigo watcher#29] WCF Tools per Visual Studio 2005

E' uscita la prima beta degli addin WCF per Visual Studio 2005. Con questi addin è possibile fare due cose: Generare il codice della classe proxy e la configurazione del .config Generare il codice di testing (NUnit), il contratto e la configurazione Per i dettagli ed il download clicca qui. Ogni commento, suggerimento, notifica errori è benvenuto :-)

posted @ giovedì 5 gennaio 2006 12.01 | Feedback (1)

[Indigo watcher#28] REST con WCF

REST è praticamente un modo diverso di intendere servizi web (un giorno ne parlerò più compiutamente). Il concetto alla base di REST è molto semplice: il servizio è erogato su protocollo HTTP con un body interamente XML (non SOAP) e che sfrutta i verbi standard dell'HTTP: GET, PUT, POST e DELETE. Pertanto, se vogliamo informazioni su un contatto potremmo banalmente fare una GET all'URL http://www.miosito.com/servizio/contatti/352453. Una domanda interessante è quella di sapere se è possibile utilizzare un framework service oriented per implementare REST oppure bisogne scendere a basso livello implementandosi modules o handler per ASP.NET. Clemens (http://staff.newtelligence.net/clemensv/) sta pubblicando una serie...

posted @ giovedì 5 gennaio 2006 7.59 | Feedback (4)

[Indigo watcher#27] Dov'è finito il data contract tool

Per chi ha scaricato la CTP di dicembre 2005 di WCF avrà notato (forse) la mancanza del Data Contract Tool (dc.exe). bene, il tool è stato soppresso, ma non la sua funzionalità. Infatti è stato sostituito da un comando di svcutil.exe, ed esattamente svcutil.exe /dconly

posted @ mercoledì 4 gennaio 2006 17.09 | Feedback (1)

[Indigo watcher#26] Articolo sui contratti

Michèle ha scritto un interessante (credo - non l'ho ancora letto tutto) articolo sui contratti in WCF.

posted @ mercoledì 4 gennaio 2006 10.26 | Feedback (3)

Workshop WinFX

Al prossimo workshop farò una sessione dedicata a WCF (Windows Communication Foundation). Dato che ho 1 ora e 15 min. mi stavo chiedendo se aveva più senso far vedere tante demo (e poco codice) che evidenzino le peculiarità di WCF oppure soffermarmi sui concetti base e far vedere molto codice. Suggerimenti ?

posted @ lunedì 2 gennaio 2006 16.36 | Feedback (11)

Problemi di scalabilità con Thread.GetData/Thread.SetData

Riporto AS IS il post che ritengo molto interessante per chi scrive applicazioni multi-threaded. The Whidbey RTM implementation of Thread.GetData/Thread.SetData has several scalability issues caused by global locks being taken. The appdomain-global lock taken in LocalDataStore.SetData is one of them. There is another global lock taken in ThreadNative::GetDomainLocalStore that is even worse since it is process-global.The best workaround is to use [ThreadStatic] variables instead of Thread.GetData/Thread.SetData:         [ThreadStatic]         static Object foo; [ThreadStatic] variables do not suffer from the contention issues. Moreover [ThreadStatic] variables are several times faster compared to Thread.GetData/Thread.SetData.

posted @ domenica 1 gennaio 2006 21.58 | Feedback (1)