GisSharpBlog http://blogs.ugidotnet.org/GisSharpBlog/Default.aspx Il blog, non per spettatori, di Diego Guidi. it-IT Diego Guidi Subtext Version 2.6.0.0 GisSharpBlog http://blogs.ugidotnet.org/images/RSS2Image.gif http://blogs.ugidotnet.org/GisSharpBlog/Default.aspx 77 60 6° Workshop DotMetMarche: Windows Presentation Foundation .NET http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/27/89259.aspx <br /><a href="http://dotnetmarche.org/eventi/Default.aspx?IDevento=19">Partecipate</a> numerosi, mi raccomando?<br /><br />Maggiori informazioni nel link di cui sotto :)<br /><br /><a href="http://dotnetmarche.org/eventi/Default.aspx?IDevento=19">6° Workshop DotNetMarche: "Windows Presentation Foundation (WPF)"</a> <br /> <blockquote>Proseguiamo il percorso di studio dei 'building block' che compongono il .Net Framework 3.0 parlando di Windows Presentation Foundation (WPF) con Luca Regnicoli [Devleap], esperto a livello nazionale che ha già realizzato dei webcast per Microsoft su questa tematica (disponibili per la visione qui). Windows Presentation Foundation (WPF) nasce come nuovo sottosistema di presentazione di applicazioni Windows. WPF introduce un nuovo modello di programmazione fornendo un’architettura unificata per la rappresentazione di interfacce utente, documenti e media. Avremo a disposizione due sessioni per mostrare tutte le caratteristiche fondamentali della tecnologia: da semplici applicazioni stand-alone fino alle nuove XAML Browser Application, applicazioni WPF in grado di essere ospitate all’interno di Internet Explorer. Analizzeremo con cura tonnellate di codice e funzionalità quali Style, Template, il nuovo ed efficace Binding, 2D, 3D, servizi documentali. Non mancheranno esempi pratici legati all’utilizzo di WPF in applicazioni gestionali.</blockquote><br /><br />Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/.net" rel="tag">.net</a>, <a class="performancingtags" href="http://technorati.com/tag/dotnetmarche" rel="tag">dotnetmarche</a>, <a class="performancingtags" href="http://technorati.com/tag/workshop" rel="tag">workshop</a>, <a class="performancingtags" href="http://technorati.com/tag/wpf" rel="tag">wpf</a><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/89259.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/27/89259.aspx Sat, 27 Oct 2007 22:27:07 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/27/89259.aspx#feedback 69 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/89259.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/89259.aspx RunSharp - Reflection.Emit has never been easier .NET http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/18/89044.aspx E' o non è una figata?<br />Peccato che ancora sia allo stadio pre-alpha, ma le premesse ci sono tutte :)<br /><br /><a href="http://www.codeproject.com/useritems/runsharp.asp">RunSharp - Reflection.Emit has never been easier - The Code Project - .NET</a> <br /> <blockquote>Many developers have found the magic of emitting code at runtime using Reflection.Emit. Also, many have not used it simply because of the complexity of the API. RunSharp (or Run# if you prefer), aims to bring the simplicity and readability of a high-level language such as C# to runtime code generation. The IL is a great language. However, there are several problems with emitting IL instructions directly. One of them is, that it's quite hard to see the actual structure of the generated code, by just looking at series of Emit() calls. Also, there are strict rules as to what sequences of IL you can emit, unless you want to receive the awful 'Common Language Runtime detected an invalid program' exception. Sometimes, it's hard to find out exactly what IL is needed to achieve some simple C# concept. And there are more. I've created RunSharp to avoid these problems, and I've had a lot of fun writing it. And I hope you will have a lot of fun using it.</blockquote><br /><br />Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/runsharp" rel="tag">runsharp</a>, <a class="performancingtags" href="http://technorati.com/tag/run#" rel="tag">run#</a>, <a class="performancingtags" href="http://technorati.com/tag/reflection.emit" rel="tag">reflection.emit</a><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/89044.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/18/89044.aspx Thu, 18 Oct 2007 03:48:26 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/18/89044.aspx#feedback 137 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/89044.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/89044.aspx Web 2.0 stuff: Refactor My code http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/18/89042.aspx <a href="http://refactormycode.com/">Refactor My Code</a> è il nuovo servizio "webduepuntozzero" pensato dal grande <a href="http://macournoyer.wordpress.com/">Marc-Andrè Cournoye</a>r (che pare oramai aver definitivamente abbandonato .NET per Ruby e Rails...); in soldoni, condividete un pezzo di codice (<a href="http://refactormycode.com/help/code">qui</a> i linguaggi supportati) e insieme agli altri utenti discutete come migliorarlo... :)<br /><br />La sezione <a href="http://refactormycode.com/codes/recent/cs">C#</a> è un pò spoglia, ma <a href="http://refactormycode.com/codes/18-net-busyindicator">qualcosa</a> c'è... <br /><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/89042.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/18/89042.aspx Thu, 18 Oct 2007 03:03:38 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/18/89042.aspx#feedback 96 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/89042.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/89042.aspx Utilities.NET 1.0 .NET http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/01/88668.aspx Pare interessante... :)<br /><br /><a href="http://james.newtonking.com/archive/2007/10/02/utilities-net-1-0-released.aspx">Utilities.NET 1.0 released - James Newton-King</a> <br /> <blockquote>Utilities.NET is a collection of helper classes and components for quickly solving common .NET programming tasks. The library is pretty large, currently 117 classes, 300ish unit tests and many, many methods. When I'm developing I have a habit of throwing what is generic in helper classes and Utilities.NET is a combination of many of them times nearly 5 years of .NET development.</blockquote><br /><br />Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/Utilities.NET" rel="tag">Utilities.NET</a>, <a class="performancingtags" href="http://technorati.com/tag/.NET" rel="tag">.NET</a><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/88668.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/01/88668.aspx Mon, 01 Oct 2007 23:13:36 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/01/88668.aspx#feedback 21 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/88668.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/88668.aspx Workshop DotNetMarche, qualche giorno dopo.. Varie .NET http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/01/88666.aspx Considerazioni sparse sul passato workshop DotNetMarche...<img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/88666.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/01/88666.aspx Mon, 01 Oct 2007 22:18:10 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/10/01/88666.aspx#feedback 5 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/88666.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/88666.aspx [REMINDER] 5° Workshop DotNetMarche: "Workflow Foundation (WF) e CardSpace" .NET Varie http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/09/18/88408.aspx Ci ha già pensato <a href="http://blogs.ugidotnet.org/ste8/">Stefano</a> <a href="http://blogs.ugidotnet.org/ste8/archive/2007/09/06/88164.aspx">qualche giorno fa</a> quindi non mi va di tediarvi a dismisura, al tempo stesso però mi sembra giusto pubblicizzare ancora una volta (visto anche che le iscrizioni non sono tantissime e c'è ancora posto in abbondanza...) che Giovedì 27 Settembre <a href="http://maps.google.it/maps?q=Via+Molino+Mensa,+37,+Osimo&amp;ie=UTF8&amp;ll=43.479519,13.47928&amp;spn=0.00682,0.037165&amp;z=15&amp;iwloc=addr&amp;om=1">in quel di Osimo</a>  noi di <a href="http://dotnetmarche.org/">DotNetMarche</a> avremo il piacere di ospitare <a href="https://mvp.support.microsoft.com/default.aspx/profile/raffaele">Raffaele Rialdi</a> per il primo della serie di workshop dedicati al Framework 3.0.<br />In particolare, in questo primo incontro parleremo di di ben due dei quattro building block che compongono il .NET Fx 3.0, <a href="http://wf.netfx3.com/">Workflow Foundation (WF)</a> e <a href="http://cardspace.netfx3.com/">Windows CardSpace</a>.<br />L'agenda dettagliata dell'evento <a href="http://dotnetmarche.org/eventi/Default.aspx?IDevento=14">la trovate sul sito dotnetmarche</a>, da cui potete procedere pure alla <a href="http://dotnetmarche.org/eventi/Default.aspx?IDevento=14">registrazione</a> e all'iscrizione (moralmente obbligatoria!) alla <a href="http://dotnetmarche.org/forums/p/895/2649.aspx">cena-geek</a> post-evento.<br />Da parte mia aggiungo solamente che anche questa volta avremo premi in abbondanza da distribuire, targati <a href="http://www.microsoft.com/mspress/">Microsoft Press</a> e <a href="http://www.jetbrains.com/">JetBrains</a>, e che soprattutto la qualità dell'agenda e del relatore meritano un'affluenza da primato!<br />Vi aspettiamo in quel di <a href="http://www.comuni-italiani.it/042/034/">Osimo</a> ;)<br /><br />Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/dotnetmarche" rel="tag">dotnetmarche</a>, <a class="performancingtags" href="http://technorati.com/tag/workshop" rel="tag">workshop</a><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/88408.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/09/18/88408.aspx Tue, 18 Sep 2007 03:43:56 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/09/18/88408.aspx#feedback 25 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/88408.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/88408.aspx Io sono un perfezionista... .NET http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/08/21/87898.aspx ...forse pure troppo, vista l'attenzione che ripongo nella formattazione e nel refactoring del codice... ma a quanto pare in fondo non è che sia poi troppo sbagliato :)<br /><br /><a href="http://macournoyer.wordpress.com/2007/08/21/incremental-perfectionism-5-ways-to-write-perfect-code/">Incremental Perfectionism : 5 ways to write perfect code « Marc-André Cournoyer’s blog</a> <br /> <blockquote>If you’ve ever done a couple of interviews, you’ve probably got the “I’m a perfectionist” candidate. When asked about its flaws he says with a fake-hidden smile: “I’m a lil’ bit of a perfectionist”, thinking deep in their mind this is more of a good thing then a bad one. Perfectionist, those people that only craft perfect thing, only the best (by the best), free of any flaw (except being too perfect), a piece of art left to be admired, not touch by anyone even it’s creator!</blockquote>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/refactoring" rel="tag">refactoring</a>, <a class="performancingtags" href="http://technorati.com/tag/code" rel="tag">code</a>, <a class="performancingtags" href="http://technorati.com/tag/coding%20rules" rel="tag">coding rules</a><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/87898.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/08/21/87898.aspx Tue, 21 Aug 2007 20:10:22 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/08/21/87898.aspx#feedback 50 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/87898.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/87898.aspx Uno snippet per la clessidra... .NET http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/07/18/86067.aspx L'idea mi è venuta usando <a href="http://www.eclipse.org/swt/">SWT</a>, che ha una classe <a href="http://europa-mirror2.eclipse.org/eclipse/downloads/documentation/2.0/html/plugins/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/custom/BusyIndicator.html">BusyIndicator</a> atta a "decorare" una qualsiasi <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runnable.html">operazione</a> con il mouse a clessidra...<br /><br />Posto il codice senza formattazione, sorry...<br /><br />namespace Helpers<br />{<br />&nbsp;&nbsp;&nbsp; public static class BusyIndicator<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static readonly AsyncCallback&nbsp;&nbsp; nullCallback&nbsp;&nbsp;&nbsp; = delegate { };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static readonly object[]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyArray&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = new object[] { };<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void ShowWhile(Control control, ThreadStart method)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (method == null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new ArgumentException("Missing method definition", "method");<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (control == null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method.BeginInvoke(nullCallback, emptyArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; control.Cursor = Cursors.WaitCursor;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MethodInvoker callback = delegate&nbsp;&nbsp; { control.Cursor = Cursors.Default; };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AsyncCallback invoke&nbsp;&nbsp; = delegate&nbsp;&nbsp; { control.Invoke(callback); };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method.BeginInvoke(invoke, emptyArray);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />}<br /><br />L'uso è fin troppo banale...<br />BusyIndicator.ShowWhile(this, delegate<br />{<br />&nbsp;&nbsp;&nbsp; // Do stuff<br />}<br /><br />Critiche, suggerimenti, insulti come commenti al post, please :)<br /><br />P.S: è mezz'ora che provo ad inserirlo su <a href="http://www.codekeep.net/">CodeKeep</a>, ma al momento di postare... RuntimeError :(<br /><br />Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/snippet" rel="tag">snippet</a>, <a class="performancingtags" href="http://technorati.com/tag/busyindicator" rel="tag">busyindicator</a><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/86067.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/07/18/86067.aspx Wed, 18 Jul 2007 13:27:00 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/07/18/86067.aspx#feedback 41 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/86067.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/86067.aspx What's wrong with this code? .NET http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/07/17/85902.aspx Segnalo che sul blog di <a href="http://www.ekampf.com/blog/default.aspx">DeveloperZen</a> è iniziata una serie di post per certi versi simile ai mitici <a href="http://blogs.ugidotnet.org/adrian/category/272.aspx">Quiz Sharp</a> di <a href="http://blogs.ugidotnet.org/adrian">Adrian Florea</a>.<br /><br />Il <a href="http://www.ekampf.com/blog/2007/07/09/WhatsWrongWithThisCode1.aspx">primo quiz</a> (sul pattern <a href="http://en.wikipedia.org/wiki/Singleton_pattern">Singleton</a>) l'ho trovato particolarmente interessante, in quanto la soluzione (abbastanza scontata) usando il "Double-Check Locking" pare non essere poi così corretta.<br /><br />La <a href="http://www.ekampf.com/blog/2007/07/15/WhatsWrongWithThisCode1Discussion.aspx">discussione completa</a> sul quiz è a parer mio interessante, e vale la pena leggersela, così come vale la pena dare una occhiata spesso all'homepage di <a href="http://www.dotnetkicks.com/">DotNetKicks</a>, dove vengono segnalati continuamente post interessanti :)<br /><br />Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/dotnet" rel="tag">dotnet</a>, <a class="performancingtags" href="http://technorati.com/tag/quiz%20sharp" rel="tag">quiz sharp</a>, <a class="performancingtags" href="http://technorati.com/tag/dotnetkicks" rel="tag">dotnetkicks</a><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/85902.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/07/17/85902.aspx Tue, 17 Jul 2007 10:15:00 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/07/17/85902.aspx#feedback 18 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/85902.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/85902.aspx Twitter, la droga del millennio... http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/06/12/81426.aspx <img src="http://blogs.ugidotnet.org/GisSharpBlog/aggbug/81426.aspx" width="1" height="1" /> Diego Guidi http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/06/12/81426.aspx Tue, 12 Jun 2007 10:56:00 GMT http://blogs.ugidotnet.org/GisSharpBlog/archive/2007/06/12/81426.aspx#feedback 15 http://blogs.ugidotnet.org/GisSharpBlog/comments/commentRss/81426.aspx http://blogs.ugidotnet.org/GisSharpBlog/services/trackbacks/81426.aspx