BlogServiceHost.Create()

WCF & Azure - Il blog di Fabio Cozzolino

Recent Posts

Tags

My

Twitter

Community

Archives

Email Notifications

Social Bar Widget

October 2008 - Posts

Visual Studio 2010 e .NET Framework 4.0 CTP

Per chi volesse già provare la prossima versione di Visual Studio ecco la pagina con tutti i riferimenti:

https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790&wa=wsignin1.0

Il download è disponibile grazie ad una immagine per Virtual PC, una modalità già percorsa in passato e che ritengo sicuramente migliore rispetto all'installazione su macchine reali, cosa che non mancava mai di "infestarci" il pc ... Big Smile.

Io?? IoC !!!

Da quando uso l'Inversion of Control...vivo meglio. Sembra quasi uno spot pubblicitario Stick out tongue ma è la verità. Anche se di sicuro, purtroppo, non ho vinto i 100milionidieuro, con l'IoC risolvo davvero molti problemi e in un tempo così ridotto da non crederci. Non ho scoperto l'acqua calda, questo è sicuro, ma solo oggi trovo il tempo per iniziare a parlarne.

Giusto qualche link per iniziare:

I tool più diffusi con .NET:

Se ne conoscete altri, fatemelo sapere. Io utilizzo il Windsor Container e magari posto qualcosa nei prossimi giorni. Perchè? Risponde perfettamente alle mie attuali esigenze. Big Smile

Posted: Oct 28 2008, 01:40 PM by Fabio.Cozzolino | with no comments
Filed under:
La strada verso Oslo ...

... è ormai tracciata. E' infatti disponibile la prima CTP pubblica di Oslo, un set di tool per lo sviluppo di applicazioni Model-Driven. Tutto quello che volete sapere su Oslo lo trovate qui:

Oslo Developer Center

Ps.: si vede che c'è la PDC??? Stick out tongue

WCF REST Starter Kit

E' stato da poco rilasciato su codeplex uno starter kit completamente dedicato alla creazione di servizi REST con WCF. Contestualmente un nuovo dev center concentra tutti i link e le risorse (Screencasts, whitepapers, documentation, roadmap, etc...) in un unica pagina. Imperdibili.

Vi ricordo che durante il Community After Hour parleremo proprio di questo e di molto altro...non mancate!!!

Materiale workshop "ASP.NET 3.5 Web Development"

E' disponibile il materiale mostrato da Simone durante il workshop di venerdì:

http://dotnetside.org/content/ASPNET35WebDevelopment.aspx

Un nuovo modo di sviluppare il web: ASP.NET MVC

Credo proprio che siamo riusciti nel nostro intento: l'aver introdotto un nuovo modo di concepire e sviluppare le applicazioni Web. Come ha già anticipato Vito, abbiamo avuto una ottima risposta da parte dei nostri iscritti. Una così alta partecipazione che ripaga ampiamente dei sacrifici fatti, e ne sono davvero tanti, per tutta l'organizzazione dell'evento. Mi ha fatto ampiamente piacere vedere un alto numero di partecipazione femminile, segno questo che il mondo della programmazione è ad oggi un territorio sempre meno maschile.

Ringrazio Simone che si è impegnato davvero tanto per l'ottima riuscita dell'evento in un periodo per lui stracolmo di impegni. La sua professionalità e la sua esperienza sono state fondamentali. Si è riusciti ad introdurre un argomento difficile, forse "ancora" ostico, che porta ad una complessa rivisitazione del modo di scrivere le nostre applicazioni Web. Come già lui ha specificato durante l'evento, ASP.NET MVC non sostituisce WebForms, ma si affianca con lo scopo di fornire una modalità alternativa e più orientata all'applicazione di una metodologia ben precisa.

Difatti sono state davvero tante le domande, un indice di attenzione elevato (sarà che c'erano in palio alcuni libri... Stick out tongue). Il prossimo passo è quello di prenotare ed acquistare il libro di Simone: Beginning ASP.NET MVC.

A breve pubblicheremo il materiale dell'evento, nel frattempo se avete dubbi o perplessità di qualsiasi genere su quanto visto, potete postare direttamente sul nostro forum, non mancheremo di discuterne insieme.

Purtroppo dal mio telefonino ho fatto solo un paio di foto (perchè poi mi sono scatenato con la fotocamera di Vito), eccole comunque:

24102008 24102008(001)

Ora sotto con il prossimo evento durante i Microsoft Days'08 ... vi aspettiamo !!!

Workshop ASP.NET 3.5 Web Development ... manca pochissimo...

Del workshop e dei premi sapete già. Avevamo il limite massimo di 70 posti disponibili ma dato che a tre giorni dall'evento li abbiamo oramai occupati siamo riusciti ad ottenere altri 10 posti.

Avete quindi un piccolo, sottilissimo margine, ma se ancora non l'avete fatto vi consiglio di iscrivervi perchè Simone promette scintille.

Dopo l'evento la serata continua con la tradizionale .NET Pizza.

Vi aspettiamo.

Qualcosa sta per cambiare il mondo ...

... dell'IT, che vi "pensavate"?? Big Smile

Questa è la frase che introduce l'intervista a Mario Fontana sul percorso formativo sulla sicurezza applicativa. Il percorso è basato su macro aree:

  • Security Basics
  • Platform
  • Framework .NET
  • Web Applications
  • Web Service
  • ALM
  • Mobile

Tutte le informazioni le trovate sul sito MSDN ma prima godetevi questo video introduttivo pubblicato su Channel 9 Italia ... con finale a sorpresa.

Posted: Oct 15 2008, 10:54 PM by Fabio.Cozzolino | with no comments
Filed under:
Eseguire Script SQL con ADO.NET

Stamattina avevo la necessità di eseguire degli script SQL direttamente da ADO.NET. Ho fatto una piccola ricerca prima di addentrarmi in soluzioni totalmente personali e ho trovato questo script sul blog di Matt Berther. Ho giusto ripreso l'esempio estendendolo, però, con gli Extension Methods e questo è il risultato:

1 internal static class Extensions 2 { 3 public static void ExecuteComplexQuery(this SqlConnection connection, string query) 4 { 5 bool connectionOpened = (connection.State == ConnectionState.Open); 6 try 7 { 8 if (!connectionOpened) 9 connection.Open(); 10 11 Regex regex = new Regex("^GO", RegexOptions.IgnoreCase | RegexOptions.Multiline); 12 string[] lines = regex.Split(query); 13 14 using (SqlCommand cmd = connection.CreateCommand()) 15 { 16 cmd.Connection = connection; 17 foreach (string line in lines.Where(l => l.Length > 0)) 18 { 19 cmd.CommandText = line; 20 cmd.ExecuteNonQuery(); 21 } 22 } 23 } 24 catch (SqlException) 25 { 26 throw; 27 } 28 catch (Exception) 29 { 30 throw; 31 } 32 finally 33 { 34 if (!connectionOpened && connection.State == ConnectionState.Open) 35 connection.Close(); 36 } 37 }}

Il codice è poi facilmente utilizzabile:

1 using (SqlConnection connection = new SqlConnection(connectionString)) 2 { 3 connection.ExecuteComplexQuery(query); 4 }

Bello vero?? Big Smile

Thanks Matt.

Microsoft Days'08: Noi ci saremo!!

Il periodo è mooolto movimentato e le attività di DotNetSide sembrano non fermarsi. Dopo l'evento ADO.NET Web Development in programma il 24 Ottobre anche .netSide parteciperà ai Microsoft Days'08 con il Community After Hour, un evento serale, come oramai è consuetudine, di ben 3 ore tutte dedicate a sessioni con esempi e casi reali. Parleremo infatti di WPF, WCF e di ADO.NET Data Services.

L'ultimo Community After Hour, in occasione del 2008 Launch Roadshow, è stato davvero un successone come testimoniano anche le foto riportate nel post. Ora è il momento di replicare il successo e non ho dubbi sul fatto che ci riusciremo, anche perchè l'agenda che presentiamo è di tutto rispetto.

Non è obbligatorio partecipare all'intera giornata per poi partecipare al Community After Hour, se avete problemi e non potete seguire le sessioni della mattina, potete tranquillamente raggiungerci e passare una serata tra amici a discutere di tecnologia con la passione e lo spirito "community" che ci contraddistingue Smile.

Info complete le trovate a questo indirizzo: http://dotnetside.org/content/CommunityAfterHourNov08.aspx
Per registrarvi: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032391661&Culture=it-IT

Le registrazioni sono già aperte, venite a trovarci ... è gratis Stick out tongue!!!

Due motivi in più...

... per partecipare al nostro workshop Big Smile. Simone, infatti, presenterà in anteprima il suo primo libro Beginning ASP.NET MVC e durante l'evento, grazie alla partnership con la Wrox, saranno distribuite alcune copie omaggio di libri pubblicati dalla stessa casa editrice e dedicati allo sviluppo web (ASP.NET, Silverlight, etc...). UAOOO!!!

Inoltre, grazie alla rinnovata partnership con JetBrains, regaleremo alcune licenze dei loro più diffusi prodotti di supporto allo sviluppo in .NET.

Quindi, se l'agenda dell'evento non vi ha convinto, se gli argomenti non vi hanno convinto, se il nostro annuncio non vi ha convinto ... questi sono altri due buoni motivi che tenteranno di convircervi a registrarvi e partecipare attivamente al workshop ASP.NET 3.5 Web Development Stick out tongue.

Vi aspettiamo ...

Silver e gli eventi esterni ...

In questi giorni sto "lottando" parecchio con Silver. No, non mi sono convertito a Silverlight Stick out tongue. Silver è il nome utilizzato per identificare il punto di incontro tra WCF e Workflow Foundation (WF). Il tutto viene risolto attraverso il WorkflowServiceHost, un service host che estende quello di base e che si preccupa di aggiungere un particolare ServiceBehavior responsabile di gestire il runtime di WF: il WorkflowRuntimeBehavior.

Giusto per dare un'idea, dopo aver creato il WorkflowServiceHost, possiamo accedere al runtime recuperandolo dalla collezione di ServiceBehaviors:

1 using (WorkflowServiceHost host = new WorkflowServiceHost(typeof(CustomWorkflow))) 2 { 3 WorkflowRuntimeBehavior wrBehavior = host.Description.Behaviors.Find<WorkflowRuntimeBehavior>(); 4 5 ExternalDataExchangeService service = new ExternalDataExchangeService(); 6 service.AddService(new MyClass()); 7 8 wrBehavior.WorkflowRuntime.AddService(service); 9 10 host.Open(); 11 12 // .... 13 14 host.Close(); 15 }

In questo codice sto ospitando un WF (CustomWorkflow) all'interno di WCF. Alla ricezione dei messaggi verrà fatto partire direttamente il nostro Workflow. Mi sono permesso anche di aggiungere un servizio perchè il mio workflow si deve mettere in ascolto di eventi generati dalla classe MyClass.

Ora, senza entrare troppo nel merito del meccanismo di gestione degli eventi esterni e dell'utilizzo della relativa HandleExternalEventActivity, ma data la mia poca conoscenza di WF, e quindi ammetto che potrei sbagliarmi, ma questo sistema soffre di un piccolissimo problema. Trattandosi di un servizio, abbiamo più istanze del CustomWorkflow in esecuzione all'interno dello stesso runtime (WorkflowRuntime). Ma all'interno dello stesso runtime ci sarà soltanto una istanza della classe MyClass responsabile di scatenare l'evento che il mio workflow attende.

Chiaramente non potrò mai e poi mai avere più sottoscrittori, parlando di WF e della HandleExternalEventActivity, dello specifico evento generato dall'unica istanza della classe MyClass. Il risultato è che a "vincere" sarà l'ultima istanza di workflow che si è sottoscritta appena prima che l'evento venisse generato. Tutte le restanti istanze riceveranno una bella eccezione di tipo:

Event <eventName> on interface type <eventInterface> for instance id <workflowInstanceId> cannot be delivered.

Ci ho perso un po di tempo, ma una volta capito il problema ho dovuto risolvere non più attendendo un evento, ma facendo un polling sulla risorsa, una soluzione che certamente avrei voluto evitare.

Non so se ho detto qualche castroneria su WF, ma spero veramente di sbagliarmi e che qualcuno di voi si sia già "scontrato" con questo tipo di problematica, così magari mi da pure una dritta Stick out tongue ...

Ciauz

Posted: Oct 04 2008, 07:22 PM by Fabio.Cozzolino | with 5 comment(s)
Filed under: , ,