BlogServiceHost.Create()

WCF & Azure - Il blog di Fabio Cozzolino

Recent Posts

Tags

My

Twitter

Community

Archives

Email Notifications

Social Bar Widget

March 2007 - Posts

.NET Data Management in ... BARI !?!?

Ma certo!! E' il prossimo evento targato .netSide e, come gli altri ... IMPERDIBILE !!!

Metti una giornata con Lorenzo, Giancarlo, Michele, TizianaVito che ci diranno come (pre)occuparci Stick out tongue della gestione dei dati nelle nostre applicazioni, affrontando il tema "in tutte le salse" ...

Non basta? Mi voglio rovinare: "non mancheranno regali e gadget tra cui 1 licenza di Windows Vista Business e 10 licenze del .NET Productivity Pack (che insclude il famoso Resharper e dotTrace) offerto dalla JetBrains!!!"

Ora non vi resta che venire a trovarci ...

Io sarò presente per tutta la giornata e se avete qualsiasi dubbio su WCF ... mi fermate, vi fate riconoscere, mi offrite un caffè Big Smile e ne parliamo ...  Stick out tongue

Screencast su WCF - update

Qualche giorno fa ho pubblicato il primo screencast di livello introduttivo su WCF. Purtroppo, però, alcuni files non erano disponibili ed il download risultava difficoltoso se non impossibile. Di seguito alla segnalazione di fastlink30 - che ringrazio - ho risistemato il tutto e ora non dovrebbero esserci difficoltà.

Ovviamente, inviatemi i vostri commenti soprattutto per migliorare la qualità degli screencast prodotti ... li aspetto ...

[WCF#08] Validazione del certificato SSL ... dal client
Può essere necessario talvolta, soprattutto in ambienti di test, bypassare la validazione automatica dei certificati SSL gestita da WCF/SO ed introdurre una personalizzata. Questo meccanismo è possibile definendo una callback di validazione di tipo RemoteCertificateValidationCallback e associandola alla proprietà ServerCertificateValidationCallback fino ad un attimo prima della chiamata al servizio:

ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(CustomCertificateValidation); service.GetName();

questa l'implementazione della callback

private static bool CustomCertificateValidation(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error) { // validazione del certificato if (cert.Subject == "CN=fabio") return true; return false; }

bye ...

Posted: Mar 28 2007, 12:26 AM by Fabio.Cozzolino | with no comments
Filed under:
WCF su .NET Compact Framework 3.5: primi passi ...

Qualcosa inizia a muoversi ... ed era ora !!! Chissà che non riusciremo ad avere qualcosa per l'evento mobile ...

Ottima segnalazione, Paolo

Screencast su WCF

Ieri ho messo online il primo screencast su WCF come parziale riparazione per la mia assenza all'evento di venerdì. Inviatemi qualsiasi commento, suggerimento o "rimprovero" ... sono pronto a tutto Stick out tongue!

bye...

Posted: Mar 27 2007, 12:31 AM by Fabio.Cozzolino | with no comments
Filed under:
[WCF#07] Disable WS-SecureConversation

MSDN riporta un ottimo tip su come disabilitare WS-SecureConversation in WS-Federation. Talvolta rimuovere questa specifica può essere utile anche nell'utilizzo del WSHttpBinding. Rimarcando quanto già scritto nella pagina segnalata, è possibile ottenere lo stesso ed identico risultato anche con il WSHttpBinding. Tecnica utilizzabile solo da codice, ovviamente:

private CustomBinding DisableSecureConversation(WSHttpBinding httpBinding) { // Istanzio il custom binding corrispondente CustomBinding customBinding = new CustomBinding(httpBinding); // Recupero l'elemento contenente il SecureConversation TransportSecurityBindingElement transportSecurity = customBinding.Elements.Find<TransportSecurityBindingElement>(); SecureConversationSecurityTokenParameters secureConversation = transportSecurity.EndpointSupportingTokenParameters.Endorsing[0] as SecureConversationSecurityTokenParameters; // Recupero la posizione del transport security nella collection int securityIndex = customBinding.Elements.IndexOf(transportSecurity); // Sostituisco l'elemento SecureConversation con l'elemento BootstrapSecurity customBinding.Elements[securityIndex] = secureConversation.BootstrapSecurityBindingElement; // Restituisco il custom bindig creato return customBinding; }

Ovviamente questa funzione può essere ottimizzata (eccezioni, ecc...), ma è comunque un punto di partenza.

 

bye ...

Posted: Mar 26 2007, 07:33 PM by Fabio.Cozzolino | with no comments
Filed under:
Le mie scuse

Mi scuso con quanti sono venuti al Community Launch Tour in attesa di vedere la mia sessione su WCF (cioè nessuno ... Smile). Purtroppo per questioni personali e cause di forza maggiore non ho potuto tenere la sessione prevista.

Alcuni di voi sanno quanto ci tenevo, perciò cercherò di rimediare rendendo presto disponibili una serie di screencast in materia e che spero ripaghino, almeno in parte, della mancanza di oggi.

Scusate ancora ...

Teamprise gratuito per gli utenti CodePlex

Annuncio mooolto importante sul blog di Martin Woodward: Teamprise rilascia una licenza free per connettersi ad un progetto open source su CodePlex.

Today, I am pleased to announce that Teamprise are offering complimentary licenses of the Teamprise client suite for anyone wanting to use Teamprise to connect to an open source project on CodePlex.  If you want to take advantage of this offer, see the sign up page.

Teamprise offre un Explorer Client molto potente e alternativo a Team Explorer. Questo consente a molti sviluppatori, anche quelli che utilizzano le versioni Express, di accedere gratuitamente a CodePlex senza dover necessariamente acquisire la licenza client di Team Explorer (necessaria solo se non avete una delle Team Editions).

update: dopo il commento di un anonimo ed acuto osservatore Stick out tongue, correggo il post per dire che non è necessaria una licenza di Team Explorer per accedere a CodePlex, è aggratis... Smile. Maggiori informazioni qui.

Fonte: http://blogs.msdn.com/robcaron/archive/2007/03/20/...

Posted: Mar 21 2007, 11:06 AM by Fabio.Cozzolino | with 2 comment(s)
Filed under:
[WCF#06] Enable Data Binding in WCF

WCF consente la generazione di un proxy client in due modalità:

  • Utilizzando Visual Studio 2005
  • Da riga di comando con svcutil.exe

La prima possibilità è quella più agevole, ma fornisce un controllo molto più limitato sul codice generato. Utilizzando il tool da riga di comando (svcutil.exe) possiamo ottenere risultati ottimali con la combinazione dei diversi parametri.

Mi è capitato di dover abilitare il data binding anche sui tipi generati e che implementano il DataContract. L'operazione è abbastanza semplice e con l'svcutil.exe, manco a dirlo, si risolve con l'uso del parametro /enableDataBinding:

svcutil.exe http://myserver/myservice/service.svc?wsdl /out:generatedClient.cs /enableDataBinding

In questo modo vengono generate le classi per il DataContract con implementata l'interfaccia System.ComponentModel.INotifyPropertyChanged. L'implementazione dell'interfaccia consente di comunicare al controllo collegato l'eventuale variazione del valore di una proprietà.

Posted: Mar 21 2007, 01:28 AM by Fabio.Cozzolino | with no comments
Filed under:
Mannaggia ai traduttori ...

Ma perchè non vengono affiancati a dei tecnici, oppure il loro lavoro non viene validato da tecnici??

Ma perchè "workflow" diventa "flusso di lavoro" ???

Grrr...

Posted: Mar 13 2007, 12:40 AM by Fabio.Cozzolino | with no comments
Filed under:
Specializzarsi o no?

In questi giorni mi è capitato di discutere in più occasioni e con persone differenti di specializzazione. Visto che il ripetersi della discussione, la ripropongo qui Stick out tongue. Cosa intendo per specializzazione? Ognuno di noi sviluppatori si avvicina maggiormente ad una tecnologia particolare. Per quello che riguarda .NET, ad esempio, possiamo dire che siamo tutti specializzati.

Ci sono poi gli sviluppatori Web che sono specializzati in una particolare tecnologia, ASP.NET, e gli sviluppatori Windows che conoscono in tutto e per tutto Windows Forms. Se vogliamo possiamo proseguire all'infinito andando sempre più a fondo. Ma è giusto specializzarsi? E' giusto conoscere a fondo una particolare tecnologia oppure avere una panoramica di tutte quelle disponibili?

La verità, forse, come in molte altre occasioni, sta nel mezzo. E' secondo me giustissimo conoscere a fondo una particolare tecnologia, ma è anche giusto avere una panoramica, almeno orientativa, su ciò che c'è intorno.

Conoscere tutto è francamente impossibile. Parlando di .NET Framework 3.0, per esempio, è quasi impossibile conoscere a fondo tutto quello c'è. WPF, WCF e WF (per non parlare di CardSpace) sono tre tecnologie che aprono tre mondi differenti ma tra loro vicini. Personalmente ho preferito conoscere più a fondo WCF, tecnologia che sento a me più vicina, ma non ho avuto in alcun modo la possibilità di studiare le altre se non per 5 minuti, il tempo di "giocarci" un po.

Giusto? Sbagliato? Non lo so, ma credo che sia semplicemente giusto sapere che esiste una determinata tecnologia che all'occorrenza mi può essere utile per risolvere un determinato problema. Ho bisogno, ad esempio, di un'interfaccia utente avanzata, con determinate caratteristiche e che risulti gradevole all'utente finale? So che WPF può fare questo. Se nel team ho la persona specializzata, mi rivolgo a lui. Se non c'è, la individuo. In mancanza, mi arrangio e me la studio ... Big Smile

Confesso che a volte, però, il fatto di non conoscere determinate tecnologie la sento come una mancanza. Ma le giornate di 48 ore non le hanno ancora inventate ... Stick out tongue

Source Control Explorer e i menù disabilitati

Se, provando ad utilizzare il Source Control Explorer, vi doveste trovare di fronte ai menù disabilitati e ad un inflessibile "No Commands Available" sappiate che la soluzione è abbastanza semplice:

  1. Aprite le Opzioni di Visual Studio
  2. Cercate le opzioni per il Source Control
  3. In Plug-In Selection impostate Visual Studio Team Foundation Server
  4. Cliccate su OK

Me lo segno perchè son già due volte che me lo dimentico ...

Posted: Mar 10 2007, 07:56 PM by Fabio.Cozzolino | with no comments
Filed under:
Ready for a new day is .... SOLD-OUT

E anche i cinque posti in più sono andati via. Con due settimane di anticipo siamo sold-out. Che dire ... GRAZIE !!!

Se alcuni di voi sanno già da ora che non potranno in alcun modo esserci, vi prego di annullare la propria registrazione in modo da consentire la partecipazione ad altri.

Grazie

Community Launch Tour e ....

Mancano ancora due settimane all'evento e siamo quasi sold-out !?!?

Sono veramente pochissimi i posti disponibili, nel momento in cui scrivo rimangono appena 6 posti liberi (se aspettavo ancora qualche minuto eravamo veramente sold-out) ...

Ovviamente l'occasione di sentir parlare di Vista e Office con Gerardo e Laura, ma anche di Windows Workflow e Windows Presentation Foundation con Mighell e Vito, è davvero imperdibile. In mezzo ci sarà un terzo incomodo (WCF) presentato da qualcuno di cui al momento non ricordo il nome ...

Partecipando avrete la possibilità di aggiudicarvi qualche premiuccio. Metteremo infatti in palio una licenza di Windows Vista, 2 voucher per esami di certificazione Microsoft3 licenze del .NET Productivity Pack (che include Resharper e dotTrace). Vi basta?? Se poi ci mettiamo che l'evento, come tutti gli altri targati .netSide, è aggratiss ...

Oltre a condividere le vostre esperienze potrete, chissà, essere tra i pochi fortunati ad aggiudicarvi un premio, chi lo può dire ??

Ci vediamo il 23 ...

[WCF #05] Data Contract Versioning

Nella maggior parte dei casi le applicazioni che scriviamo evolvono e si adattano alle nuove e mutate esigenze dei nostri committenti. E' ovviamente importante garantire continuità alla nostra applicazione e chi ne fa uso deve poter continuare a farlo senza problemi.

Uno dei "tenets" delle architetture Service-Oriented recita a tal proposito:

Services are entities that are independently deployed, versioned, and managed

Con WCF è possibile attuare il versioning sia a livello di ServiceContract che a livello di DataContract utilizzando diverse tecniche a seconda di quella che è l'esigenza. Lavorando adeguatamente con glii attributi ServiceContract, OperationContract, DataContract e DataMember è possibile modellare di conseguenza il comportamento del serializer.

Su MSDN esistono tante risorse che spiegano egregiamente le tecniche utilizzabili, inutile ripetermi Stick out tongue:

Posted: Mar 05 2007, 11:14 PM by Fabio.Cozzolino | with no comments
Filed under:
More Posts Next page »