<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Corrado's BLogs</title>
        <link>http://blogs.ugidotnet.org/corrado/Default.aspx</link>
        <description>Online thoughts of a .NET Funatic</description>
        <language>it-IT</language>
        <copyright>Corrado Cavalli</copyright>
        <generator>Subtext Version 2.1.0.3</generator>
        <image>
            <title>Corrado's BLogs</title>
            <url>http://blogs.ugidotnet.org/images/RSS2Image.gif</url>
            <link>http://blogs.ugidotnet.org/corrado/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/corrado" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
            <title>Data validation in WPF,Silverlight and .NET RIA Services</title>
            <category>WPF</category>
            <category>Silverlight</category>
            <link>http://feedproxy.google.com/~r/corrado/~3/bSE4vw3_t7M/data-validation-in-wpfsilverlight-and-.net-ria-services.aspx</link>
            <description>&lt;p&gt;Col SP1 del framework 3.5 è stato introdotto il namespace &lt;strong&gt;System.ComponentModel.DataAnnotations&lt;/strong&gt; il quale ha al suo interno degli interessanti attributi di validazione (dettagli &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx"&gt;qui&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Ad esempio, volendo validare una proprietà del nostro ViewModel, quello che dobbiamo fare è semplicemente scrivere del codice come quello che segue dopo aver aggiunto un riferimento a System.ComponentModel.DataAnnotations:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MyViewModel:INotifyPropertyChanged&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;    {      &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; userName;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;       [StringLength(10)]&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; UserName&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;       {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;          get&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;          {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.userName;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;          }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;          set&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;          {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Validate(&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;, &lt;span style="color: #006080"&gt;"UserName"&lt;/span&gt;);           &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.userName = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.OnPropertyChanged(&lt;span style="color: #006080"&gt;"UserName"&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt;          }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;       }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Validate(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; propertyName)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt;       {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt;          Validator.ValidateProperty(&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ValidationContext(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) { MemberName = propertyName });&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt;       }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ValidateAll()&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt;       {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt;          Validator.ValidateObject(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ValidationContext(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt;       }      &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum30"&gt;  30:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum31"&gt;  31:&lt;/span&gt;        &lt;span style="color: #008000"&gt;//Other stuff removed for brevity...&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum32"&gt;  32:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum33"&gt;  33:&lt;/span&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;A questo punto usando un DataForm in Silverlight 3 oppure questo XAML in WPF:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;TextBox&lt;/span&gt;  &lt;span style="color: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="{Binding UserName, ValidatesOnExceptions=true, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;           &lt;span style="color: #ff0000"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Left"&lt;/span&gt;                 &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;           &lt;span style="color: #ff0000"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Top"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p /&gt;

&lt;p&gt;quando il contenuto della TextBox supera i 10 caratteri ottengo la classica segnalazione di errore di validazione:
  &lt;br /&gt;

  &lt;br /&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/DatavalidationinWPFSilver.NETRIAServices_13235/image_2.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/DatavalidationinWPFSilver.NETRIAServices_13235/image_thumb.png" width="135" height="38" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Interessante vero? 
  &lt;br /&gt;Peccato che Microsoft si sia dimenticata di inserire questa assembly nel client profile del .NET FX 4.0 che è la configurazione predefinita quando create una nuova applicazione WPF 4.0, ciò significa dovere passare al full profile solo per poter sfruttare questa interessante opportunità.

  &lt;br /&gt;Non tutto è però perduto, potete andare qui: &lt;a title="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=508846" href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=508846"&gt;https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=508846&lt;/a&gt; e mostrare tutto il vostro disappunto votando affinchè venga incluso nella RTM.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:42b0cb75-9ec7-4b45-a8d0-71f5380fe6f7" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DataAnnotations" rel="tag"&gt;DataAnnotations&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Client+Profile" rel="tag"&gt;Client Profile&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97473.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/11/07/data-validation-in-wpfsilverlight-and-.net-ria-services.aspx</guid>
            <pubDate>Sat, 07 Nov 2009 20:46:31 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/corrado/comments/97473.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/11/07/data-validation-in-wpfsilverlight-and-.net-ria-services.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97473.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97473.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/11/07/data-validation-in-wpfsilverlight-and-.net-ria-services.aspx</feedburner:origLink></item>
        <item>
            <title>WPF4: KeyBinding e MouseBinding improvements</title>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/corrado/~3/LzCz9MRHGk4/wpf4-keybinding-e-mousebinding-improvements.aspx</link>
            <description>&lt;p&gt;Usare delle combinazioni di tasti oppure il mouse come shortcut per alcune funzionalità tipo Apri, Stampa, Salva etc è un requisito abbastanza comune, peccato che gestire questo aspetto utilizzando il pattern Model-View-ViewModel non sia proprio banale a causa di una piccola limitazione: &lt;em&gt;la proprietà Command dell’oggetto KeyBinding non è una dependency property.     &lt;br /&gt;&lt;/em&gt;Il workaround ovviamente esiste, è però un peccato che si debba reinventare la ruota per realizzare banalità del genere.    &lt;br /&gt;Con WPF4 finalmente la proprietà Command di MouseBinding e  KeyBinding diventano delle dependency properties questo significa che è possibile mappare delle gestures verso dei comandi in questo modo:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Window.InputBindings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;KeyBinding&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Command&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="{Binding ExitCommand}"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;                     &lt;span style="color: #ff0000"&gt;Key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="{Binding ExitCommand.GestureKey}"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;                     &lt;span style="color: #ff0000"&gt;Modifiers&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="{Binding ExitCommand.GestureModifier}"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MouseBinding&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Command&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="{Binding ExitCommand}"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;                       &lt;span style="color: #ff0000"&gt;MouseAction&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="{Binding ExitCommand.MouseGesture}"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Window.InputBindings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p /&gt;

&lt;p&gt;Notate inoltre come Key,Modifiers e MouseAction siano anch’esse delle dependency properties percui è possibile definirle direttamente all’interno del Command esposto dal ViewModel&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:64fe43df-cd0a-474d-a44d-eaa32eee681c" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WPF4" rel="tag"&gt;WPF4&lt;/a&gt;,&lt;a href="http://technorati.com/tags/KeyBinding" rel="tag"&gt;KeyBinding&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MouseBinding" rel="tag"&gt;MouseBinding&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97466.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/11/07/wpf4-keybinding-e-mousebinding-improvements.aspx</guid>
            <pubDate>Sat, 07 Nov 2009 10:28:24 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/corrado/comments/97466.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/11/07/wpf4-keybinding-e-mousebinding-improvements.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97466.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97466.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/11/07/wpf4-keybinding-e-mousebinding-improvements.aspx</feedburner:origLink></item>
        <item>
            <title>WPF4: Full trust XBap applications</title>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/corrado/~3/enzllofP1tw/wpf4-full-trust-xbap-applications.aspx</link>
            <description>&lt;p&gt;Nel preparare il corseware per il corso “&lt;a href="http://www.facebook.com/event.php?eid=158254653951&amp;amp;ref=mf"&gt;Mastering WPF&lt;/a&gt;” che terrò insieme a &lt;a href="http://blogs.ugidotnet.org/topics/Default.aspx"&gt;Mauro&lt;/a&gt; tra qualche settimana, ho dato un occhio alla novità di WPF 4.0 che riguarda le XBAP application.    &lt;br /&gt;Fino alla versione 3.5 malgrado sia possibile impostare una applicazione XBAP come ‘full trust’:    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/WPF4FulltrustXBapapplications_E6C5/image_4.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/WPF4FulltrustXBapapplications_E6C5/image_thumb_1.png" width="244" height="104" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Lanciando l’applicazione si ottiene questo errore:   &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/WPF4FulltrustXBapapplications_E6C5/image_2.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/WPF4FulltrustXBapapplications_E6C5/image_thumb.png" width="244" height="95" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Questo perchè la permission elevation di ClickOnce non è disponibile.    &lt;br /&gt;In realtà il problema è facilmente aggirabile installando il relativo certificato sulla macchina locale, ma questa non è sicuramente un operazione comoda e tantomeno intuitiva.    &lt;br /&gt;Con WPF4.0 anche per le applicazioni XBAP come le applicazioni ClickOnce è la permission elevation è stata reintrodotta, questo significa che eseguendo la stessa applicazione compilata col framework 4.0 si ottiene questo messaggio:    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/WPF4FulltrustXBapapplications_E6C5/image_6.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/WPF4FulltrustXBapapplications_E6C5/image_thumb_2.png" width="275" height="168" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;/p&gt;&lt;p /&gt;    &lt;p&gt;e premendo Run (&lt;strong&gt;a nostro rischio e pericolo&lt;/strong&gt; ovviamente) possiamo lanciare un applicazione ospitata nel browser che hanno pieno accesso alle risorse della macchina.      &lt;br /&gt;Se si accettano le relative limitazioni (Windows Only, dipendenza dal .NET Framework etc…) la XBAP application posso rappresentare un ottima strategia di deployment.&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d5c776a6-4795-4e97-975f-e780c48abff5" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WPF+4.0" rel="tag"&gt;WPF 4.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/XBAP" rel="tag"&gt;XBAP&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97425.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/11/03/wpf4-full-trust-xbap-applications.aspx</guid>
            <pubDate>Tue, 03 Nov 2009 18:39:15 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/corrado/comments/97425.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/11/03/wpf4-full-trust-xbap-applications.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97425.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97425.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/11/03/wpf4-full-trust-xbap-applications.aspx</feedburner:origLink></item>
        <item>
            <title>Prism 2.1</title>
            <category>WPF</category>
            <category>Silverlight</category>
            <category>Model-View-ViewModel</category>
            <link>http://feedproxy.google.com/~r/corrado/~3/wBPoqkh_acI/prism-2.1.aspx</link>
            <description>&lt;p&gt;A tutti gli estimatori di Prism segnalo il rilascio della versione 2.1, le principali novità sono:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;All Visual Studio projects (Composite Application Library, reference implementation, and Quickstarts) were migrated to use Silverlight 3.&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;&lt;strong&gt;TabRegionControlAdapter&lt;/strong&gt; was modified to support binding in the &lt;strong&gt;TabItem&lt;/strong&gt;’s control header in Silverlight 3.&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;&lt;strong&gt;CreateXap.bat&lt;/strong&gt; file was modified to search for Silverlight 3 assemblies if the Silverlight 2 reference assemblies cannot be found.&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Implemented the &lt;a href="http://msdn.microsoft.com/en-us/library/aa970850.aspx"&gt;WeakEvent Pattern&lt;/a&gt; for the &lt;strong&gt;DelegateCommand&lt;/strong&gt;’s and &lt;strong&gt;CompositeComand&lt;/strong&gt;’s&lt;/em&gt; (more on this below)&lt;em&gt;.&lt;/em&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Download: &lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=387c7a59-b217-4318-ad1b-cbc2ea453f40" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=387c7a59-b217-4318-ad1b-cbc2ea453f40"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=387c7a59-b217-4318-ad1b-cbc2ea453f40&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b8ae14bc-b5d2-41f3-8f60-bcac9e25274d" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Prism" rel="tag"&gt;Prism&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97419.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/11/02/prism-2.1.aspx</guid>
            <pubDate>Mon, 02 Nov 2009 21:32:39 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/corrado/comments/97419.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/11/02/prism-2.1.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97419.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97419.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/11/02/prism-2.1.aspx</feedburner:origLink></item>
        <item>
            <title>Un gradito omaggio&amp;hellip;</title>
            <category>Silverlight</category>
            <link>http://feedproxy.google.com/~r/corrado/~3/EzHPbhlqjbU/un-gradito-omaggiohellip.aspx</link>
            <description>&lt;p&gt;Ricevere un regalo fa sempre piacere, ma quando a farti un regalo sono 4 amici e professionisti del settore la soddisfazione aumenta, ringrazio quindi ufficialmente &lt;a href="http://www.aspitalia.com/autori/Daniele_Bochicchio.aspx"&gt;Daniele&lt;/a&gt;,&lt;a href="http://www.aspitalia.com/autori/Cristian_Civera.aspx"&gt;Cristian&lt;/a&gt;,&lt;a href="http://www.aspitalia.com/autori/Alessio_Leoncini.aspx"&gt;Alessio&lt;/a&gt; e &lt;a href="http://www.aspitalia.com/autori/Marco_Leoncini.aspx"&gt;Marco&lt;/a&gt; per avermi omaggiato di una copia della loro ultima fatica: “&lt;a href="http://books.aspitalia.com/Silverlight-3.0/"&gt;Silverlight 3 Guida completa per sviluppatori e designers&lt;/a&gt;”.    &lt;br /&gt;Ho dato una sfogliata veloce ieri sera e, con la giusta sintesi, mi pare che copra tutto quello che c’è da sapere per iniziare a sviluppare con Silverlight 3.    &lt;br /&gt;Ottimo lavoro ragazzi! &lt;img alt="smile_wink" src="http://spaces.live.com/rte/emoticons/smile_wink.gif" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/Ungraditoomaggio_678F/image_2.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/Ungraditoomaggio_678F/image_thumb.png" width="160" height="221" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:60e9ed1b-d2d6-42d9-bc82-191bdd26b4d1" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Silverlight+3" rel="tag"&gt;Silverlight 3&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97379.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/10/28/un-gradito-omaggiohellip.aspx</guid>
            <pubDate>Wed, 28 Oct 2009 06:21:42 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/10/28/un-gradito-omaggiohellip.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97379.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97379.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/10/28/un-gradito-omaggiohellip.aspx</feedburner:origLink></item>
        <item>
            <title>ByteSnap SnapUI</title>
            <link>http://feedproxy.google.com/~r/corrado/~3/NUly-bbxj34/bytesnap-snapui.aspx</link>
            <description>&lt;p&gt;Sempre nell’attesa di avere WPF/Silverlight utilizzabile da linguaggi managed ecco un altra alternativa per realizzare UI moderne in Windows CE&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.bytesnap.co.uk/windows-ce-user-interface-tool-snapui/" href="http://www.bytesnap.co.uk/windows-ce-user-interface-tool-snapui/"&gt;http://www.bytesnap.co.uk/windows-ce-user-interface-tool-snapui/&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c74623bf-4fd0-49c4-a1e9-04f2f99b8285" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows+CE" rel="tag"&gt;Windows CE&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Mobile" rel="tag"&gt;Mobile&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97314.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/10/21/bytesnap-snapui.aspx</guid>
            <pubDate>Wed, 21 Oct 2009 13:30:19 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/10/21/bytesnap-snapui.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97314.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97314.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/10/21/bytesnap-snapui.aspx</feedburner:origLink></item>
        <item>
            <title>Visual Studio 2010: WPF Visualizer</title>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/corrado/~3/p9blgKDv-Vk/visual-studio-2010-wpf-visualizer.aspx</link>
            <description>&lt;p&gt;Tra le svariate novità di Visual Studio 2010 c’è un tool che permette di visualizzare velocemente la posizione di un elemento nel suo Visual Tree (se questo vi ricorda &lt;a href="http://www.codeproject.com/KB/WPF/MoleForWPF.aspx"&gt;Mole&lt;/a&gt; non state sbagliando…) per visualizzarlo basta posizionare il cursore su una variabile che rappresenta un elemento di UI:    &lt;br /&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/VisualStudio2010WPFVisualizer_1129D/image_4.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/VisualStudio2010WPFVisualizer_1129D/image_thumb_1.png" width="566" height="64" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;selezionare &lt;strong&gt;WPF Tree Visualizer&lt;/strong&gt; per ottenere una rappresentazione gerarchica dello stato del visual tree:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/VisualStudio2010WPFVisualizer_1129D/image_6.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/WindowsLiveWriter/VisualStudio2010WPFVisualizer_1129D/image_thumb_2.png" width="398" height="286" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Purtroppo a differenza di &lt;a href="http://blois.us/Snoop/"&gt;Snoop&lt;/a&gt;, non è possibile modificare valori delle proprietà.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:77d487a2-8486-4882-a2d4-8cd8683aeafc" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Visual+Studio+2010" rel="tag"&gt;Visual Studio 2010&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WPF+Visualizer" rel="tag"&gt;WPF Visualizer&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97301.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/10/20/visual-studio-2010-wpf-visualizer.aspx</guid>
            <pubDate>Tue, 20 Oct 2009 17:31:43 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/10/20/visual-studio-2010-wpf-visualizer.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97301.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97301.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/10/20/visual-studio-2010-wpf-visualizer.aspx</feedburner:origLink></item>
        <item>
            <title>Silverlight toolkit: October 2009 release</title>
            <category>Silverlight</category>
            <link>http://feedproxy.google.com/~r/corrado/~3/_s8aENMTGas/silverlight-toolkit-october-2009-release.aspx</link>
            <description>&lt;p&gt;Come se non ci fosse già abbastanza roba da installare, ecco il &lt;strong&gt;Silverlight3 Toolkit October 2009&lt;/strong&gt; installation: &lt;a title="http://silverlight.codeplex.com/" href="http://silverlight.codeplex.com/"&gt;http://silverlight.codeplex.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Tra le principali novità: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Il supporto a VS2010 (che include finalmente il designer per Silverlight &lt;img alt="smile_regular" src="http://spaces.live.com/rte/emoticons/smile_regular.gif" /&gt;) &lt;/li&gt;    &lt;li&gt;Supporto da parte di alcuni controlli della MouseWheel&lt;/li&gt;    &lt;li&gt;La gestione integrata (ovviamente nel browser) del drag and drop, per quest’ultima feature consiglio questo post: &lt;a title="http://themechanicalbride.blogspot.com/2009/08/new-with-silverlight-toolkit-drag-and.html" href="http://themechanicalbride.blogspot.com/2009/08/new-with-silverlight-toolkit-drag-and.html"&gt;http://themechanicalbride.blogspot.com/2009/08/new-with-silverlight-toolkit-drag-and.html&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;u&gt;Tutti i controlli sono ora Silverlight3 only&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;   &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5bf587a9-ef11-4e5e-96f2-1af9ab97c0e8" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Silverlight+Toolkit" rel="tag"&gt;Silverlight Toolkit&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97287.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/10/19/silverlight-toolkit-october-2009-release.aspx</guid>
            <pubDate>Mon, 19 Oct 2009 19:54:02 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/10/19/silverlight-toolkit-october-2009-release.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97287.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97287.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/10/19/silverlight-toolkit-october-2009-release.aspx</feedburner:origLink></item>
        <item>
            <title>Visual Studio 2010 Beta2: How to improve WPF/Silverlight designer performances</title>
            <category>WPF</category>
            <category>Silverlight</category>
            <link>http://feedproxy.google.com/~r/corrado/~3/FDE3L4rIn3U/visual-studio-2010-beta2-how-to-improve-wpfsilverlight-designer-performances.aspx</link>
            <description>&lt;p&gt;Dopo avere installato Visual Studio 2010 Beta2 è possibile migliorare le performance del designer WPF/Silverlight modificando il registry in questo modo:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;1. Close any open VS instances     &lt;br /&gt;2. Open RegEdit (as an administrator as needed)      &lt;br /&gt;3. Select the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0 key      &lt;br /&gt;4. Right click and add key, type ClrHost      &lt;br /&gt;5. In the newly created key, right click and add a DWORD32 with the name StartupFlags      &lt;br /&gt;6. Set its value to 5      &lt;br /&gt;7. Close RegEdit      &lt;br /&gt;8. Start up Visual Studio and use as normal&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Fonte: &lt;a title="http://bit.ly/1RymVU" href="http://bit.ly/1RymVU"&gt;http://bit.ly/1RymVU&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4ecb7410-d2ee-47d4-8fbd-bafb38454a68" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Visual+Studio+2010" rel="tag"&gt;Visual Studio 2010&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97285.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/10/19/visual-studio-2010-beta2-how-to-improve-wpfsilverlight-designer-performances.aspx</guid>
            <pubDate>Mon, 19 Oct 2009 19:43:29 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/10/19/visual-studio-2010-beta2-how-to-improve-wpfsilverlight-designer-performances.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97285.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97285.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/10/19/visual-studio-2010-beta2-how-to-improve-wpfsilverlight-designer-performances.aspx</feedburner:origLink></item>
        <item>
            <title>Visual Studio 2010 Beta2</title>
            <link>http://feedproxy.google.com/~r/corrado/~3/qZ1GkuB-Ohs/visual-studio-2010-beta2.aspx</link>
            <description>&lt;p&gt;E’ ora disponibile sul sito MSDN Subscribers: &lt;a title="http://msdn.microsoft.com/en-us/subscriptions/default.aspx" href="http://msdn.microsoft.com/en-us/subscriptions/default.aspx"&gt;http://msdn.microsoft.com/en-us/subscriptions/default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5aa4c7fc-1e32-468c-99ce-e84a75ac8766" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Visual+Studio+2010" rel="tag"&gt;Visual Studio 2010&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/97283.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Corrado Cavalli</dc:creator>
            <guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2009/10/19/visual-studio-2010-beta2.aspx</guid>
            <pubDate>Mon, 19 Oct 2009 15:31:38 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/corrado/archive/2009/10/19/visual-studio-2010-beta2.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/97283.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/97283.aspx</trackback:ping>
        <feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2009/10/19/visual-studio-2010-beta2.aspx</feedburner:origLink></item>
    </channel>
</rss>
