<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
 <channel>
  <title>.NET Developers Blog</title>
  <link>http://www.enderminh.com/netdev/</link>
  <description>An aggregated blog of .NET developers.</description>
  <language>en-us</language>
  <item>
   <title><![CDATA[That Splitting Thing]]></title>
   <link>http://feeds.sturmnet.org/~r/sturmnet/~3/1yZKiv3KscY/that-splitting-thing</link>
   <description><![CDATA[<p>I just twittered a few minutes ago, saying &#8220;Seems like VS 2010 can still not show the same file twice in panels next to one another. Am I missing something?". I&#8217;m still interested in the answer, if there is one, but meanwhile I thought I&#8217;d blog about something I&#8217;ve found interesting for a long time: the way our heads seem to work differently when it comes to applications of the words &#8220;horizontally&#8221; and &#8220;vertically".</p>

<p>You see, in Visual Studio (and that has been the same thing with MDI windows before that), they have a thing called a &#8220;Tab Group", which comes in horizontal and vertical varieties. These days the difference is illustrated in little icons at least, defining it like this:</p>

<p>Horizontal group (exhibit A):</p>

<pre><code>+--------------------+
|                    |
+--------------------+
|                    |
+--------------------+
</code></pre>

<p>Vertical group (exhibit B ):</p>

<pre><code>+-------+-------+
|       |       |
|       |       |
|       |       |
|       |       |
|       |       |
|       |       |
+-------+-------+
</code></pre>

<p>Now here&#8217;s my gripe with that: <strong>it&#8217;s the wrong way round!</strong></p>

<p>In my eyes, exhibit A might be described as &#8220;a tab group with a horizontal splitter", but it is not a horizontal tab group. These things are not the same. A horizontal tab group is one where the tabs, the defining feature of a tab group, surely, are shown &#8220;horizontally", i.e. next to each other in horizontal direction. Just like exhibit B, in fact. And vice versa, of course.</p>

<p>I don&#8217;t know what somebody was thinking when they came up with those names, or maybe it&#8217;s just my head that works differently. It doesn&#8217;t make sense to me, in any case. And that&#8217;s the important point of this post: if you never realized that these terms might be confusing to somebody, here you are now!</p>

<p>One important factor in successful communication is about understanding misunderstanding &#8211; which is why, in my tweet, I was avoiding the terms &#8220;horizontal&#8221; and &#8220;vertical&#8221; as being confusing in the context. Of course the first and so far only reply I got to my tweet (and I&#8217;m not naming any names here &lt;g&gt; ) went &#8220;hey, do you mean vertically?&#8221; Hmpf.</p>

<p>Oh, and yes, according to the MS definition I mean vertically, yes. A tab group with a vertical splitter, that has been split in vertical direction, or whatever. A tab group with the tabs showing horizontally next to one another. And the same file on both sides of the splitter. Not possible, is it?</p>
]]></description>
   <dc:creator>Oliver Sturm</dc:creator>
   <dc:date>3/12/2010 10:43:28 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Silverlight Analytics Framework #MIX10]]></title>
   <link>http://tomicic.de/2010/03/12/SilverlightAnalyticsFrameworkMIX10.aspx</link>
   <description><![CDATA[<p>
Eine weitere Ankündigung im Vorfeld der MIX-Konferenz: <em>Microsoft Silverlight Analytics
Framework</em> wird als Open Source Framework nächste Woche auf Codeplex veröffentlicht.
Folgende Anwendungsszenarien und Themen werden mit dem Framework addressiert:
</p>
<ul>
<li>
Out-Of-Browser Szenarien</li>
<li>
Offline Szenarien</li>
<li>
Mehrfache&nbsp;Analytics Services gleichzeitig ohne Performanz-Einbüßen 
</li>
<li>
Designer-Unterstützung für Microsoft Expression Blend&nbsp; 
</li>
<li>
A/B Testing 
</li>
<li>
SketchFlow Prototyping</li>
<li>
Logging&nbsp;und Video Experience mit Microsoft Silverlight Media Framework [2]</li>
</ul>
<p>
In der Session&nbsp;[1]&nbsp;erläutern Michael Scherotter und&nbsp;Alfonso Corretti
die Details des neuen Frameworks zur Integration von Web Analytics Lösungen in die
Silverlight-Applikationen. Eine weitere Session auf meiner Agenda.
</p>
<p>
[1] <a href="http://live.visitmix.com/MIX10/Sessions/CL24">http://live.visitmix.com/MIX10/Sessions/CL24</a>
<br>
[2] <a href="http://smf.codeplex.com/">http://smf.codeplex.com/</a>
<br>
<a href="http://blogs.msdn.com/synergist/archive/2010/03/10/the-microsoft-silverlight-analytics-framework-at-mix.aspx"></a>
</p>
<p>
<img border=0 src="http://tomicic.de/content/binary/damir_goes_vegas.png">
</p>
<img width="0" height="0" src="http://tomicic.de/aggbug.ashx?id=f700f800-e79e-4288-91d7-1b5a645648f7" />]]></description>
   <dc:creator>Damir Tomicic</dc:creator>
   <dc:date>3/12/2010 9:20:55 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[SUS or WSUS 70-291? Can anyone tell me if ... (1384 views)]]></title>
   <link>http://www.ms-faqs.com/content/18/7/en/sus-or-wsus-70_291-can-anyone-tell-me-if-the-291-exam-questions-relate-to-the-old-redundant-sus-or-the-new-wsus-or-will-i-have-to-cover-both-to-be-safe.html</link>
   <description><![CDATA[[1.] SUS or WSUS 70-291?
Can anyone tell me if the 291 exam questions relate to the old redundant SUS or the new WSUS or will I have to cover both to be safe? (1384 views)]]></description>
   <dc:creator>Amanda</dc:creator>
   <dc:date>3/12/2010 7:34:51 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[UGIdotNET @ Roma]]></title>
   <link>http://blogs.ugidotnet.org/pape/archive/2010/03/12/ugidotnet-roma.aspx</link>
   <description><![CDATA[<p>Ok, ricapitoliamo:</p>  <ul>   <li>Domani saremo a Roma in occasione del <a href="http://www.dotnetcampus.it/" target="_blank">DotNetCampus</a>: l’agenda è molto varia e tocca un “sacchissimo” (unità di misura da poco entrata nel S.I. &lt;g&gt;) di argomenti interessanti. ‘nzomma, se fa ancora troppo freddo per andare in giro a caXXeggiare, potreste pensare di venirci a trovare :-)</li>    <li>Il prossimo mese torneremo a Roma grazie alla ospitalità di <a href="http://www.bastaitalia.it/" target="_blank">BASTA! Italia</a>, che anche quest’anno ci permette di organizzare un <a href="http://www.communitydays.it/events/communitynight2010.aspx" target="_blank">“Community After Hour”</a> gratuito in combutta con i ragazzi di <a href="http://www.aspitalia.com" target="_blank">ASPItalia</a>. 3 sessioni, 2 delle quali già in agenda e potenzialmente “rissose” giacché dedicate a temi in merito ai quali crediamo che il formato “open” possa portare grande valore aggiunto. E ricordatevi che i soci UGIdotNET hanno uno <a href="http://www.ugidotnet.org/Member/Benefits" target="_blank">sconto sulla iscrizione all’evento diurno</a></li> </ul>  <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:3b5120cf-7688-49e0-8ab7-d0a332aa3603" class="wlWriterEditableSmartContent">Technorati Tag: <a href="http://technorati.com/tags/community" rel="tag">community</a>,<a href="http://technorati.com/tags/BASTA!+Italia" rel="tag">BASTA! Italia</a>,<a href="http://technorati.com/tags/DotNetCampus" rel="tag">DotNetCampus</a>,<a href="http://technorati.com/tags/Roma" rel="tag">Roma</a>,<a href="http://technorati.com/tags/UGIdotNET" rel="tag">UGIdotNET</a></div><img src="http://blogs.ugidotnet.org/pape/aggbug/98179.aspx" width="1" height="1" />]]></description>
   <dc:creator>Andrea Saltarello</dc:creator>
   <dc:date>3/12/2010 3:36:55 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[FIT vs SLIM]]></title>
   <link>http://gojko.net/2010/03/12/fit-vs-slim/</link>
   <description><![CDATA[I got this question from a blog reader recently:
I just wanted your opinion on SLIM as opposed to standard FIT/Fitnesse. Are there things that can only be done via the FIT/Fitnesse route that cannot be done via SLIM? So for acceptance tests and integration tests can I just use SLIM?
We want to exploit the BDD [...]]]></description>
   <dc:creator>gojko</dc:creator>
   <dc:date>3/12/2010 1:05:09 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[EntitySpaces 2010 Release Schedule]]></title>
   <link>http://www.entityspaces.net/blog/2010/03/12/EntitySpaces+2010+Release+Schedule.aspx</link>
   <description><![CDATA[<p>
The dates are as follows:
</p>
<h3>March 29th - Early Adopter Program
</h3>
<p>
The early adopter release will be available to a limited set of EntitySpaces customers
who have a real need for some of the new or enhanced EntitySpaces 2010 features (such
as Silverlight, WCF, Smart Proxies, SQLite, JSON serialization). We are looking for
customers who desire to upgrade to ES2010 now and continue developing through to release.
Prime candidates are new customers working on projects that haven’t shipped yet who
can easily upgrade and begin working with ES2010. If you are interested in participating
in our Early Adopter Program please send an email to <a href="mailto:earlyadopter@entityspaces.net">earlyadopter@entityspaces.net</a> with
your EntitySpaces user id and how you plan to use EntitySpaces 2010. Not everyone
who sends an email will be chosen to participate. Again, we are looking for users
who are really going to use this version for development. We are seeking about 20
users to participate and they will be hand picked based on the email we receive explaining
how ES2010 will be used. For example, we are interested in Windows Forms, ASP.NET,
Silverlight, and so on, in other words, a good cross section of development. Current
forum participation will also help in being chosen (active users). 
</p>
<p>
Keep in mind that EntitySpaces 2010 will not support .NET 2.0, it’s .NET 3.5 and forward.
We are unsure at this point if .NET 4.0 assemblies will be included in the Early Adopter
Program.
</p>
<h3><strong>April 19th</strong>&nbsp; – Public Beta (customers only)
</h3>
<p>
We are planning on only one beta. This beta will be available to all customers. We
realize that the beta window looks short here but this release will have passed all
of our unit tests and will have been pretty heavily used by those participating in
the Early Adopter Program.
</p>
<h3>Ap<strong>ril 29th</strong> – Official Release
</h3>
<p>
This is our official release. The EntitySpaces 2010 Trial version will also be available
as well for the general public.
</p>
<p>
&nbsp;
</p>
<p>
<a href="http://www.entityspaces.net/blog/ct.ashx?id=038f06f1-26c1-401c-8e8b-50d4e5eb4ce0&amp;url=http://www.entityspaces.net/blog/ct.ashx?id=e7740cd5-f5b1-4914-997b-d37ec7426772&amp;url=http%3a%2f%2fwww.entityspaces.net%2fblog%2fct.ashx%3fid%3d2676e564-5b8c-4378-ac7e-7e56431e64b7%26url%3dhttp%253a%252f%252fwww.entityspaces.net%252fblog%252fct.ashx%253fid%253dd5be1367-24f9-4b7b-9cea-52485f6b01d0%2526url%253dhttp%25253a%25252f%25252fwww.entityspaces.net%25252fblog%25252fct.ashx%25253fid%25253d915037c7-923f-4590-bee1-6286854f199f%252526url%25253dhttp%2525253a%2525252f%2525252fwww.entityspaces.net%2525252fblog%2525252fct.ashx%2525253fid%2525253d77f66dd3-0e04-4e94-8ad8-dfac8e2b2921%25252526url%2525253dhttp%252525253a%252525252f%252525252fwww.entityspaces.net%252525252fblog%252525252fct.ashx%252525253fid%252525253d04570b37-56c1-4a64-b64f-544c252b1b06%2525252526url%252525253dhttp%25252525253a%25252525252f%25252525252fwww.entityspaces.net%25252525252f"><img border="0" alt="EntitySpaces" src="http://www.entityspaces.net/images/es.png"></a> 
<p>
From <strong>Mobile Devices</strong> to large scale enterprise solutions in need of
serious transaction support, EntitySpaces can meet your needs. Whether you’re writing
an ASP.NET application with <strong>Medium Trust</strong> requirements, a <strong>Silverlight/WCF</strong> application,
a <strong>Mono</strong> application, or a <strong>Windows.Forms</strong> application,
the EntitySpaces architecture is there for you. EntitySpaces is provider independent,
which means that you can run the same binary code against any of the supported databases.
EntitySpaces is available in both C# and VB.NET. EntitySpaces uses no reflection,
no XML files, and sports a tiny foot print of less than 200k. Pound for pound, EntitySpaces
is one tough, dependable .NET architecture. 
<p>
EntitySpaces LLC<br>
<strong>Persistence Layer and Business Objects for Microsoft .NET<br>
</strong><a href="http://www.entityspaces.net/">http://www.entityspaces.net</a>]]></description>
   <dc:creator>Mike Griffin</dc:creator>
   <dc:date>3/11/2010 10:29:58 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Low-level SolrNet]]></title>
   <link>http://feedproxy.google.com/~r/bugsquash/~3/up9RNNc9AnY/low-level-solrnet.html</link>
   <description><![CDATA[<p>I recently got a question about how to handle <a href="http://wiki.apache.org/solr/SimpleFacetParameters#LocalParams_for_faceting">multi-faceting</a> in <a href="http://code.google.com/p/solrnet/">SolrNet</a>, a nice feature of Solr that can be very useful to the end-user. eBay uses a kind of multi-faceting interface.     <br />If you know nothing about Solr or SolrNet, read on, this article isn't so much about Solr as API design.</p>  <p>The Solr wiki has an example query with multi-faceting:</p>  <pre>q=mainquery&amp;fq=status:public&amp;fq={!tag=dt}doctype:pdf&amp;facet=on&amp;facet.field={!ex=dt}doctype</pre>

<p>For those of you that are not into Solr, this is just a regular URL query string that is passed to the Solr endpoint. The final URL looks like this (modulo encoding):</p>

<pre>http://localhost:9983/solr/select/?q=mainquery&amp;fq=status:public&amp;fq={!tag=dt}doctype:pdf&amp;facet=on&amp;facet.field={!ex=dt}doctype </pre>

<p>And this is how you represent this query in the SolrNet object model:</p>
<!-- code formatted by http://manoli.net/csharpformat/ -->

<pre class="csharpcode">var solr = ServiceLocator.Current.GetInstance&lt;ISolrOperations&lt;Document&gt;&gt;(); 
ISolrQueryResults&lt;Document&gt; results = solr.Query(<span class="str">&quot;mainquery&quot;</span>, <span class="kwrd">new</span> QueryOptions { 
    FilterQueries = <span class="kwrd">new</span>[] { 
        Query.Field(<span class="str">&quot;status&quot;</span>).Is(<span class="str">&quot;public&quot;</span>), 
        <span class="kwrd">new</span> LocalParams {{<span class="str">&quot;tag&quot;</span>, <span class="str">&quot;dt&quot;</span>}} + Query.Field(<span class="str">&quot;doctype&quot;</span>).Is(<span class="str">&quot;pdf&quot;</span>) 
    }, 
    Facet = <span class="kwrd">new</span> FacetParameters { 
        Queries = <span class="kwrd">new</span>[] { 
            <span class="kwrd">new</span> SolrFacetFieldQuery(<span class="kwrd">new</span> LocalParams {{<span class="str">&quot;ex&quot;</span>, <span class="str">&quot;dt&quot;</span>}} + <span class="str">&quot;doctype&quot;</span>) 
        } 
    } 
});</pre>

<p>We build object models like this one because they're <em>programmable</em>, objects and methods can be programmatically combined to <em>build (or compose)</em> our intention. Like <a href="http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querycriteria.html">Hibernate's Criteria API</a>. </p>

<p>Opposed to this is the string, and most of the time <a href="http://blog.eleutian.com/2007/01/30/WeHateStringLiterals.aspx">we</a> <a href="/2008/03/strongly-typed-nhibernate-criteria-with.html">hate</a> <a href="/2008/07/in-same-spirit-as-my-previous-post-i.html">it</a> because it's opaque, it doesn't have any syntactical meaning within our object-oriented code. It has no programmability, no composability. We use very generic classes to build strings, like StringBuilders or StringWriters, which don't convey any syntactical information about what we're actually doing. If we need to extract information from a string, we have to write a parser, which is not a trivial task. But the string also has its advantages: it's naturally serializable (or should I say <em>already serialized</em>), it can be more readable and more concise. And those are some of the reasons why Hibernate also provides the <a href="http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html">HQL API</a>. You might be thinking that this dichotomy of objects and strings is really a matter of serialization and deserialization, but I'm talking about human-readable strings here, whereas a serialized format is frequently for machine consumption only.</p>

<p>So if we already know what the query string is, how can we simplify the chunk of code above? Thanks to IoC, we can easily tap into some of SolrNet's &quot;internal&quot; components without worrying about what dependencies they need:</p>
<!-- code formatted by http://manoli.net/csharpformat/ -->

<pre class="csharpcode">Func&lt;<span class="kwrd">string</span>, <span class="kwrd">string</span>, KeyValuePair&lt;<span class="kwrd">string</span>, <span class="kwrd">string</span>&gt;&gt; kv = (k, v) =&gt; <span class="kwrd">new</span> KeyValuePair&lt;<span class="kwrd">string</span>, <span class="kwrd">string</span>&gt;(k, v); 
var connection = ServiceLocator.Current.GetInstance&lt;ISolrConnection&gt;(); 
var xml = connection.Get(<span class="str">&quot;/select&quot;</span>, <span class="kwrd">new</span>[] { 
    kv(<span class="str">&quot;q&quot;</span>, <span class="str">&quot;mainquery&quot;</span>), 
    kv(<span class="str">&quot;fq&quot;</span>, <span class="str">&quot;status:public&quot;</span>), 
    kv(<span class="str">&quot;fq&quot;</span>, <span class="str">&quot;{!tag=dt}doctype:pdf&quot;</span>), 
    kv(<span class="str">&quot;facet&quot;</span>, <span class="str">&quot;on&quot;</span>), 
    kv(<span class="str">&quot;facet.field&quot;</span>, <span class="str">&quot;{!ex=dt}doctype&quot;</span>), 
}); 
var parser = ServiceLocator.Current.GetInstance&lt;ISolrQueryResultParser&lt;Document&gt;&gt;(); 
ISolrQueryResults&lt;Document&gt; results = parser.Parse(xml); </pre>

<p>ISolrConnection is just a wrapper over the HTTP request, we give it the querystring parameters and get Solr's XML response, then we feed the response to the parser component and voil&#224;, we have our results.</p>

<p>And since it's just a regular HTTP request, we can go even lower:</p>
<!-- code formatted by http://manoli.net/csharpformat/ -->

<pre class="csharpcode"><span class="kwrd">using</span> (var web = <span class="kwrd">new</span> WebClient()) { 
    var xml = web.DownloadString(<span class="str">&quot;http://localhost:9983/solr/select/?q=mainquery&amp;fq=status%3Apublic&amp;fq=%7B!tag%3Ddt%7Ddoctype%3Apdf&amp;facet=on&amp;facet.field=%7B!ex%3Ddt%7Ddoctype&quot;</span>);
    var parser = ServiceLocator.Current.GetInstance&lt;ISolrQueryResultParser&lt;Document&gt;&gt;(); 
    ISolrQueryResults&lt;Document&gt; results = parser.Parse(xml); 
} </pre>

<p>I'll leave it to you to decide which one to use. Like the choice between HQL and Criteria, sometimes you might prefer one over the other depending on the context. Just keep in mind that these components' interfaces are not as stable as the &quot;really public&quot; documented interfaces, they might have breaking changes more often.</p>  <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8643857899806162280-4833878851750504789?l=bugsquash.blogspot.com' alt='' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/e96xBruhQ42rUbsRK1nH20jiz38/0/da"><img src="http://feedads.g.doubleclick.net/~a/e96xBruhQ42rUbsRK1nH20jiz38/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/e96xBruhQ42rUbsRK1nH20jiz38/1/da"><img src="http://feedads.g.doubleclick.net/~a/e96xBruhQ42rUbsRK1nH20jiz38/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/bugsquash/~4/up9RNNc9AnY" height="1" width="1"/>]]></description>
   <dc:creator>Mauricio Scheffer</dc:creator>
   <dc:date>3/11/2010 10:28:08 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[WikiPlex v1.3 Released]]></title>
   <link>http://weblogs.asp.net/mhawley/archive/2010/03/12/wikiplex-v1-3-released.aspx</link>
   <description><![CDATA[<p><em>[In addition to blogging, I am also using Twitter. Follow me: <a href="http://www.twitter.com/matthawley">@matthawley</a>]</em></p>  <p>It's been a many months since the last release of <a href="http://wikiplex.codeplex.com/">WikiPlex</a>, but its only because there hasn't been a lot of churn recently.&#160; I've very happy where WikiPlex is at, and it continues to be a very… (<a href="http://blog.eworldui.net/post/2010/03/WikiPlex-v13-Released.aspx">read more</a>)</p><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7379353" width="1" height="1">]]></description>
   <dc:creator>Matt Hawley</dc:creator>
   <dc:date>3/11/2010 6:35:51 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Converting from Blogger to Wordpress]]></title>
   <link>http://feedproxy.google.com/~r/Iserialized/~3/wS0k06PNNJ8/</link>
   <description><![CDATA[This week I started the hard shift from my old Blogger blog to my new Wordpress blog on my new domain ISerialized.com. There are a couple of aspects of such a shift that makes this a hard decision to do:

Allot of hard work
Leaving the old familiar Blogger tool
Learning Wordpress
Trying to convert my old Feedburner readers [...]<img src="http://feeds.feedburner.com/~r/Iserialized/~4/wS0k06PNNJ8" height="1" width="1"/>]]></description>
   <dc:creator>Notorious N.E.R.D</dc:creator>
   <dc:date>3/11/2010 11:20:13 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[System Center Capacity Planner 2007]]></title>
   <link>http://weblogs.asp.net/coltk/archive/2010/03/11/System-Center-Capacity-Planner-2007.aspx</link>
   <description><![CDATA[<P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">With a recent case that I need to design the system infrastructure as well as the hardware specification of a SharePoint farm for a client, so I go and find the SharePoint Capacity Planner (CP) 2007 to stimulate a user model.</SPAN></P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Before installting the SharePoint CP 2007, System Center CP is a prerequisite but unfortunity&nbsp;the <A href="http://www.microsoft.com/systemcenter/en/us/capacity-planner.aspx" target=_blank mce_href="http://www.microsoft.com/systemcenter/en/us/capacity-planner.aspx">Microsoft download page</A> is _blank_:<o:p></o:p></SPAN><A href="http://weblogs.asp.net/blogs/coltk/2010-03-11_094049.jpg"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; TEXT-DECORATION: none; text-underline: none; mso-no-proof: yes"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></SPAN></A><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><o:p></o:p></SPAN> 
<P mce_keep="true"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><A href="http://weblogs.asp.net/blogs/coltk/2010-03-11_094049.jpg"><IMG border=0 src="http://weblogs.asp.net/blogs/coltk/2010-03-11_094049.jpg"></A>&nbsp;</SPAN></P><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Alternatively, I get&nbsp;the installer&nbsp;from a&nbsp;colleague. However, I face another problem while installing it:<o:p></o:p></SPAN> 
<BLOCKQUOTE><EM><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">The installer has encountered an unexpected error installing this package. This may indicate a problem with the package. The error code is 2738.</SPAN></EM><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><o:p></o:p></SPAN></BLOCKQUOTE><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">This issue is happened only in Vista, and the details and solution had been posted on <A href="http://technet.microsoft.com/en-us/library/cc507083.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/cc507083.aspx">TechNet</A>:<o:p></o:p></SPAN> 
<BLOCKQUOTE><EM><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">C:\Windows\System32\regsvr32 vbscript.dll</SPAN></EM><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><o:p></o:p></SPAN></BLOCKQUOTE>
<P mce_keep="true"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">I can download the <A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=dbee0227-d4f7-48f8-85f0-e71493b2fd87" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=dbee0227-d4f7-48f8-85f0-e71493b2fd87">SharePoint CP</A> and continue my work now. :)</SPAN></P><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7378070" width="1" height="1">]]></description>
   <dc:creator>Colt Kwong</dc:creator>
   <dc:date>3/11/2010 9:29:43 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[The new ASP.NET website]]></title>
   <link>http://feedproxy.google.com/~r/jongalloway/~3/jN8VfDELUvY/the-new-asp-net-website.aspx</link>
   <description><![CDATA[<p><a title="ASP.NET - Home - New" href="http://www.flickr.com/photos/36836555@N00/4423727087/"><img style="display: inline; margin-left: 0px; margin-right: 0px" border="0" alt="ASP.NET - Home - New" align="right" src="http://static.flickr.com/4019/4423727087_1996b6419b.jpg" width="361" height="324" /></a>We launched a major refresh of the <a href="http://asp.net">ASP.NET website</a> today. It was really exciting to be a part of the update process, working with lots of very talented people including <a href="http://weblogs.asp.net/scottgu/">Scott Guthrie</a> and <a href="http://www.hanselman.com/blog/WeMovedYourASPNETWebsiteCheeseInAGoodWay.aspx">Scott Hanselman</a>. It’s a pretty major update, including:</p>  <ul>   <li>New site-wide design</li>    <li>Redesigned Home page and Getting Started sections which streamline the experience for those who are new to ASP.NET</li>    <li>Revised and updated content areas for both ASP.NET Web Forms and MVC</li>    <li>Reviewed, re-categorized, and where appropriate, archived tutorial and video content. That was a pretty major undertaking, as some of that content had been around since ASP.NET 2.0</li> </ul>  <p>As you’d expect, Scott Hanselman has a great overview of <a href="http://www.hanselman.com/blog/WeMovedYourASPNETWebsiteCheeseInAGoodWay.aspx">what’s changed site-wide</a>, but I’d like to highlight a few areas I was most involved with – the MVC Content area and a major update to the Community Projects / Open Source page.</p>  <h3>ASP.NET/MVC changes</h3>  <p>The ASP.NET MVC section was the new kid on the block on the ASP.NET website, so the asp.net/mvc page had less of a visual change than many of the other top-level pages. A lot of the work was in streamlining and prioritizing content, so you can (hopefully) find what you want faster, and there are new video introductions like Scott’s <a href="http://www.asp.net/learn/videos/video-9636.aspx">How Best To Learn ASP.NET MVC</a>.</p>  <p>Here’s what it used to look like – content links on top, blog posts on the bottom, book links on the right.</p>  <p><a title="ASP.NET MVC - Old" href="http://www.flickr.com/photos/36836555@N00/4423727105/"><img border="0" alt="ASP.NET MVC - Old" src="http://static.flickr.com/4071/4423727105_075ca81195.jpg" width="349" height="388" /></a></p>  <p>In addition to cleaning up and updating the top content, we merged in the top asp.net/mvc/learn content now, and moved the blog content to the community page. This should increase the content relevance and point you towards more video / tutorial content by topic.</p>  <p><a title="ASP.NET MVC - New" href="http://www.flickr.com/photos/36836555@N00/4423727073/"><img border="0" alt="ASP.NET MVC - New" src="http://static.flickr.com/4045/4423727073_625973d249.jpg" width="397" height="556" /></a></p>  <p>We some substantial changes to asp.net/mvc/learn. The previous page hit you with a wall of text and links, and the sub-pages were more of the same. It was a lot of information, but it wasn’t really categorized or prioritized in a way that helped you find what you were looking for. I reviewed literally hundreds of pages of content (video and tutorial) to categorize, pick the top content to feature on top level pages, and find outdated content that should be archived.</p>  <p>Here’s how the asp.net/mvc/learn page used to look:</p>  <p><a title="Learn ASP.NET MVC - Old" href="http://www.flickr.com/photos/36836555@N00/4423727159/"><img border="0" alt="Learn ASP.NET MVC - Old" src="http://static.flickr.com/4020/4423727159_0716dd6a26.jpg" width="286" height="652" /></a></p>  <p>Now that we’ve got the categories links on the asp.net/mvc page, they link to specific focus areas, like this <a href="http://www.asp.net/mvc/fundamentals/">asp.net/mvc/fundamentals</a> page:</p>  <p><a title="ASP.NET - Fundamentals - New" href="http://www.flickr.com/photos/36836555@N00/4424492454/"><img border="0" alt="ASP.NET - Fundamentals - New" src="http://static.flickr.com/4012/4424492454_23226f1e14.jpg" /></a></p>  <p>Keeping in mind that ASP.NET MVC 2 is due out soon, you should expect more changes here. For instance, I’ve been working hard on a new tutorial project with Scott Guthrie that will be finished soon, and I’ll be publishing a series of videos and tutorial articles covering that.</p>  <h3>The new Open Source / Community Projects Page</h3>  <p><a title="ASP.NET - Open Source Projects" href="http://www.flickr.com/photos/36836555@N00/4424492306/"><img style="display: inline; margin-left: 0px; margin-right: 0px" border="0" alt="ASP.NET - Open Source Projects" align="right" src="http://static.flickr.com/4063/4424492306_cedd0836bb.jpg" /></a>Honestly, I’m most excited about one page in the site: the <a href="http://www.asp.net/community/projects/">Open Source ASP.NET</a> projects page. I got to run with this one, gathering input from a lot of open sourcey folks at Microsoft, compiling tons of links and project descriptions, and working with project owners when they didn’t have a published “Twitter pitch” description of their site published.</p>  <p>This page is not beautiful – it’s a long list of links and text. We’ve got some future changes to the site that will help us with the presentation, but as it is now, I’ll admit that it’s not a beautiful webpage.</p>  <p>And yet, it’s a thing of beauty. It made my day to see this kind of thing on Twitter: “<em>Wow, an official Microsoft website listing open source tools for .NET. Didn’t think I’d see the day.</em>” There’s a great open source community around ASP.NET open source, and it’s great to get the word out. This kind of thing is what the ASP.NET community is all about.</p>  <p>Yes, this kind of effort is fraught with peril. There are tons of .NET open source projects out there, how do we manage the list, adding relevant projects and keeping them updated as they change names every week (oh, you silly open source folk, you)? I’m still figuring that out. I was warned this would be a challenge, and I accept it wholeheartedly, because it’s important. The alternative – not doing the page because it’s hard – is much worse.</p>  <p>Let me know if I missed any that you think are important. I can’t add every project to the list, or it’ll grow large and useless, but I do want to make sure we capture a good sample.</p>  <p><em>Note: I put a lot of work into this page, but it wouldn’t have been part of this release without </em><a href="http://terrimorton.com/"><em>Terri Morton’s</em></a><em> help. She really saw the value in it and helped push it through when it really could have slipped from this release – thanks, Terri!</em></p>  <h3>Awesome? Awesomer.</h3>  <p>Is the site perfect? No, it’s not. But I hope you’ll agree that it’s a lot better. We’ve got a lot more planned for this year, and this is the first step.</p><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7378370" width="1" height="1"><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/jongalloway?a=jN8VfDELUvY:5Wr621BH-JY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/jongalloway?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jongalloway?a=jN8VfDELUvY:5Wr621BH-JY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/jongalloway?i=jN8VfDELUvY:5Wr621BH-JY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jongalloway?a=jN8VfDELUvY:5Wr621BH-JY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/jongalloway?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jongalloway?a=jN8VfDELUvY:5Wr621BH-JY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/jongalloway?i=jN8VfDELUvY:5Wr621BH-JY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/jongalloway?a=jN8VfDELUvY:5Wr621BH-JY:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/jongalloway?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jongalloway/~4/jN8VfDELUvY" height="1" width="1"/>]]></description>
   <dc:creator>Jon Galloway</dc:creator>
   <dc:date>3/11/2010 1:24:18 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Naming PowerPoint Components With A VSTO Add-In]]></title>
   <link>http://geekswithblogs.net/tmurphy/archive/2010/03/10/naming-powerpoint-components-with-a-vsto-add-in.aspx</link>
   <description><![CDATA[<p><b>Note:</b> Cross posted from <a href="http://codingthedocument.wordpress.com/">Coding The Document</a>. <br />
<a href="http://codingthedocument.wordpress.com/2010/03/11/naming-powerpoint-components-with-a-vsto-add-in/">Permalink</a> <br />
 </p>
<p>Sometimes in order to work with Open XML we need a little help from other tools.  In this post I am going to describe  a fairly simple solution for marking up PowerPoint presentations so that they can be used as templates and processed using the Open XML SDK.</p>
<p>Add-ins are tools which it can be hard to find information on.  I am going to up the obscurity by adding a Ribbon button.  For my example I am using Visual Studio 2008 and creating a PowerPoint 2007 Add-in project.  To that add a Ribbon Visual Designer.  The new ribbon by default will show up on the Add-in tab.</p>
<p>Add a button to the ribbon.  Also add a WinForm to collect a new name for the object selected.  Make sure to set the OK button’s DialogResult to OK. In the ribbon button click event add the following code.</p>
<div id="codeSnippetWrapper" style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px">
<div id="codeSnippet" 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">
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
ObjectNameForm dialog = <span style="color: #0000ff">new</span> ObjectNameForm();</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
Selection selection = Globals.ThisAddIn.Application.ActiveWindow.Selection;</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
 </pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
dialog.objectName = selection.ShapeRange.Name;</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
 </pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color: #0000ff">if</span> (dialog.ShowDialog() == DialogResult.OK)</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
{</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
    selection.ShapeRange.Name = dialog.objectName;</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
}</pre>
<!--CRLF--></div>
</div>
<p>This code will first read the current Name attribute of the Shape object.  If the user clicks OK on the dialog it save the string value back to the same place.</p>
<p>Once it is done you can retrieve identify the control through Open XML via the NonVisualDisplayProperties objects.  The only problem is that this object is a child of several different classes.  This means that there isn’t just one way to retrieve the value.  Below are a couple of pieces of code to identify the container that you have named.</p>
<p>The first example is if you are naming placeholders in a layout slide.</p>
<div id="codeSnippetWrapper" style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px">
<div id="codeSnippet" 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">
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color: #0000ff">foreach</span>(var slideMasterPart <span style="color: #0000ff">in</span> slideMasterParts)</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
{</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
    var layoutParts =  slideMasterPart.SlideLayoutParts;</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
    <span style="color: #0000ff">foreach</span>(SlideLayoutPart slideLayoutPart <span style="color: #0000ff">in</span> layoutParts)</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
    {</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
        <span style="color: #0000ff">foreach</span> (assmPresentation.Shape shape <span style="color: #0000ff">in</span> slideLayoutPart.SlideLayout.CommonSlideData.ShapeTree.Descendants&lt;assmPresentation.Shape&gt;())</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
        {</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
            var slideMasterProperties =</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
                from p <span style="color: #0000ff">in</span> shape.Descendants&lt;assmPresentation.NonVisualDrawingProperties&gt;()</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
                <span style="color: #0000ff">where</span> p.Name == TokenText.Text</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
                select p;</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
 </pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
            <span style="color: #0000ff">if</span> (slideMasterProperties.Count() &gt; 0)</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
                tokenFound = <span style="color: #0000ff">true</span>;</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
        }</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
    }</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
}</pre>
<!--CRLF--></div>
</div>
<p>The second example allows you to find charts that you have named with the add-in.</p>
<div id="codeSnippetWrapper" style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px">
<div id="codeSnippet" 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">
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color: #0000ff">foreach</span>(var slidePart <span style="color: #0000ff">in</span> slideParts)</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
{</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
    <span style="color: #0000ff">foreach</span>(assmPresentation.Shape slideShape <span style="color: #0000ff">in</span> slidePart.Slide.CommonSlideData.ShapeTree.Descendants&lt;assmPresentation.Shape&gt;())</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
    {</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
        var slideProperties = from g <span style="color: #0000ff">in</span> slidePart.Slide.Descendants&lt;GraphicFrame&gt;()</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
            <span style="color: #0000ff">where</span> g.NonVisualGraphicFrameProperties.NonVisualDrawingProperties.Name == TokenText.Text</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
            select g;</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
 </pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
        <span style="color: #0000ff">if</span>(slideProperties.Count() &gt; 0)</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
        {</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
            tokenFound = <span style="color: #0000ff">true</span>;</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
        }</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
    }</pre>
<!--CRLF-->
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;">
}</pre>
<!--CRLF--></div>
</div>
<p> </p>
<p>Together the combination of Open XML and VSTO add-ins make a powerful combination in creating a process for maintaining a template and generating documents from the template.</p><p><a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=138438"><img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=138438" border="0"/></a></p><iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;PageID=31016&amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No>
<script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;Browser=NETSCAPE4&amp;NoCache=True&PageID=31016&amp;SiteID=1"></script>
<noscript><a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Click&amp;Mode=HTML&amp;SiteID=1&amp;PageID=31016" target="_blank">
<img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;Mode=HTML&amp;SiteID=1&amp;PageID=31016" width="1" height="1" border="0"  alt=""></a>
</noscript>
</iframe>
<img src="http://geekswithblogs.net/tmurphy/aggbug/138438.aspx" width="1" height="1" />]]></description>
   <dc:creator>Tim Murphy</dc:creator>
   <dc:date>3/10/2010 10:10:13 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Vietnamese films at the 28th San Francisco International Asian American Film Festival]]></title>
   <link>http://enderminh.com/blog/archive/2010/03/10/4238.aspx</link>
   <description><![CDATA[<P>Folks,</P>
<P>&nbsp;&nbsp;&nbsp; The San Francisco International Asian American Film Festival, one of my most favorite film festivals, is kicking off tomorrow. Here are the Vietnamese-related films:</P>
<P>The Fading Light/Theo Huong Den Ma Di<BR><A href="http://filmguide.festival.asianamericanmedia.org/tixSYS/2010/films/1030">http://filmguide.festival.asianamericanmedia.org/tixSYS/2010/films/1030</A></P>
<P>Unidentified Vietnam No.18<BR><A href="http://filmguide.festival.asianamericanmedia.org/tixSYS/2010/films/1101">http://filmguide.festival.asianamericanmedia.org/tixSYS/2010/films/1101</A></P>
<P>A Village Called Versailles<BR><A href="http://filmguide.festival.asianamericanmedia.org/tixSYS/2010/films/1103">http://filmguide.festival.asianamericanmedia.org/tixSYS/2010/films/1103</A></P>
<P>Voices<BR><A href="http://filmguide.festival.asianamericanmedia.org/tixSYS/2010/films/1120">http://filmguide.festival.asianamericanmedia.org/tixSYS/2010/films/1120</A></P>
<P>I am very much looking forward to Versailles, since I missed to see that at the Vietnamese International Film Festival, and it has been much talked about.</P>
<P>Cheers,<BR>Minh T. Nguyen.</P><img src ="http://enderminh.com/blog/aggbug/4238.aspx" width = "1" height = "1" />]]></description>
   <dc:creator>Minh T. Nguyen</dc:creator>
   <dc:date>3/10/2010 9:53:30 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Capture a memory dump using Adplus 'hang' dump.]]></title>
   <link>http://weblogs.asp.net/steveschofield/archive/2010/03/10/capture-a-memory-dump-using-adplus-hang-dump.aspx</link>
   <description><![CDATA[<P mce_keep="true">Here is the syntax to capture a memory dump using adplus (part of the debugging tools).&nbsp;&nbsp; FYI if you need to capture a ultra large w3wp process, you will need to increase the ping timeout&nbsp;inside IIS so&nbsp;the dump doesn't fail.&nbsp; IIS will detect a ping failure, and recycle before the memory dump&nbsp;has&nbsp;finished writing to disk.&nbsp; I've used this since IIS DebugDiag doesn't work on 64 bit of windows server 2008.</P>
<TABLE width=550>
<P>adplus -hang -p &lt;PID&gt; -o path to file&nbsp; 
<P><A href="http://support.microsoft.com/kb/286350">http://support.microsoft.com/kb/286350</A></P>
<TBODY></TBODY></P></TABLE><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7378151" width="1" height="1">]]></description>
   <dc:creator>Steve Schofield</dc:creator>
   <dc:date>3/10/2010 9:11:36 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[PowerShell 2.0 – Partial Application of Functions and Cmdlets]]></title>
   <link>http://www.nivot.org/2010/03/11/PowerShell20PartialApplicationOfFunctionsAndCmdlets.aspx</link>
   <description><![CDATA[<p>
This is unashamedly a post for developers, in particular those with an interest in
functional languages. With the advent of PowerShell 2.0, some of you may have noticed
that ScriptBlocks - which I suppose could also be called anonymous functions or lambdas
- gained a new method: <a href="http://blogs.msdn.com/powershell/archive/2009/03/27/get-closure-with-getnewclosure.aspx" target="_blank">GetNewClosure</a>.
Closures are one of the essential tools for functional programming., something I’ve
been trying to learn more about over the last few years. I don’t really have an opportunity
to use it in work other than the hybrid trickery available in C# 3.0, but I have been
tinkering a lot with PowerShell 2.0 to see if some of the tricks of the functional
trade could be implemented. It’s just a shell language, but there are some nice features
in there that enable a wide variety of funky stuff.
</p>
<h3>Partial Application
</h3>
<p>
In a nutshell, partial application of a function is when you pass in only some of
the parameters and get a function back that can accept the remaining parameters:
</p>
<pre class="brush:powershell"># define a simple function
function test {
    param($a, $b, $c);
    "a: $a; b: $b; c:$c"
}

# partially apply with -c parameter
$f = merge-parameter (gcm test) -c 5

# partially apply with -c and -a then execute with -b (papp is an alias)
&amp; (papp (papp (gcm test) -c 3) -a 2) -b 7

# partially apply the get-command cmdlet with -commandtype
# and assign the result to a new function
si function:get-function (papp (gcm get-command) -commandtype function)
</pre>
<p>
This is by no means a complete implementation of a partial application framework for
powershell. The merge-parameter function (aliased to papp) currently only works with
the default parameterset and does not mirror any of the parameteric attributes in
the applied function or cmdlet. I'm not saying it couldn't do that, but this is purely
a proof of concept. The module is listed below and is also available from PoshCode
at <a href="http://poshcode.org/1687" target="_blank">http://poshcode.org/1687</a> 
</p>
<pre class="brush:powershell"># save as functional.psm1 and drop into your module path
Set-StrictMode -Version 2

$commonParameters = @("Verbose",
                      "Debug",
                      "ErrorAction",
                      "WarningAction",
                      "ErrorVariable",
                      "WarningVariable",
                      "OutVariable",
                      "OutBuffer")

&lt;#
.SYNOPSIS
    Support function for partially-applied cmdlets and functions.
#&gt;
function Get-ParameterDictionary {
    [outputtype([Management.Automation.RuntimeDefinedParameterDictionary])]
    [cmdletbinding()]
    param(
        [validatenotnull()]
        [management.automation.commandinfo]$CommandInfo,
        [validatenotnull()]
        [management.automation.pscmdlet]$PSCmdletContext = $PSCmdlet
    )
    
    # dictionary to hold dynamic parameters
    $rdpd = new-object Management.Automation.RuntimeDefinedParameterDictionary

    try {
        # grab parameters from function
        if ($CommandInfo.parametersets.count &gt; 1) {
            $parameters = $CommandInfo.ParameterSets[[string]$CommandInfo.DefaultParameterSet].parameters
        } else {
            $parameters = $CommandInfo.parameters.getenumerator() | % {$CommandInfo.parameters[$_.key]}
        }        
                
        $parameters | % {
            
            write-verbose "testing $($_.name)"
                                    
            # skip common parameters        
            if ($commonParameters -like $_.Name) {                                  
                
                write-verbose "skipping common parameter $($_.name)"
                
            } else {
                
                $rdp = new-object management.automation.runtimedefinedparameter
                $rdp.Name = $_.Name
                $rdp.ParameterType = $_.ParameterType
                
                # tag new parameters to match this function's parameterset
                $pa = new-object system.management.automation.parameterattribute
                $pa.ParameterSetName = $PSCmdletContext.ParameterSetName
                $rdp.Attributes.Add($pa)
                
                $rdpd.add($_.Name, $rdp)
            }
            
        }
    } catch {
    
        Write-Warning "Error getting parameter dictionary: $_"
    }
    
    # return
    $rdpd
}

&lt;#
.SYNOPSIS
    Function that accepts a FunctionInfo or CmdletInfo reference and one or more parameters
    and returns a FunctionInfo bound to those parameter(s) and their value(s.)
.DESCRIPTION
    Function that accepts a FunctionInfo or CmdletInfo reference and one or more parameters
    and returns a FunctionInfo bound to those parameter(s) and their value(s.)
    
    Any parameters "merged" into the function are removed from the available parameters for
    future invocations. Multiple chained merge-parameter calls are permitted.
.EXAMPLE

    First, we define a simple function:
    
    function test {
        param($a, $b, $c, $d);
        "a: $a; b: $b; c:$c; d:$d"
    }
    
    Now we merge -b parameter into functioninfo with the static value of 5, returning a new
    functioninfo:
    
    ps&gt; $x = merge-parameter (gcm test) -b 5
    
    We execute the new functioninfo with the &amp; (call) operator, passing in the remaining 
    arguments:
    
    ps&gt; &amp; $x -a 2 -c 4 -d 9
    a: 2; b: 5; c: 4; d: 9
    
    Now we merge two new parameters in, -c with the value 3 and -d with 5:
    
    ps&gt; $y = merge-parameter $x -c 3 -d 5
    
    Again we call $y with the remaining named parameter -a:
    
    ps&gt; &amp; $y -a 2
    a: 2; b: 5; c: 3; d: 5
.EXAMPLE

    Cmdlets can also be subject to partial application. In this case we create a new
    function with the returned functioninfo:
    
    ps&gt; si function:get-function (merge-parameter (gcm get-command) -commandtype function)
    ps&gt; get-function
    
<lists  ?function? commandtype of commands all>
.PARAMETER _CommandInfo The FunctionInfo or CmdletInfo into which to merge (apply)
parameter(s.) The parameter is named with a leading underscore character to prevent
parameter collisions when exposing the targetted command's parameters and dynamic
parameters. .INPUTS FunctionInfo or CmdletInfo .OUTPUTS FunctionInfo #&gt; function
Merge-Parameter { [OutputType([Management.Automation.FunctionInfo])] [CmdletBinding()]
param( [parameter(position=0, mandatory=$true)] [validatenotnull()] [validatescript({
($_ -is [management.automation.functioninfo]) -or ` ($_ -is [management.automation.cmdletinfo])
})] [management.automation.commandinfo]$_Command ) dynamicparam { # strict mode compatible
check for parameter if ((test-path variable:_command)) { # attach input functioninfo's
parameters to self Get-ParameterDictionary $_Command $PSCmdlet } } begin { write-verbose
"merge-parameter: begin" # copy our bound parameters, except common ones $mergedParameters
= new-object 'collections.generic.dictionary[string,object]' $PSBoundParameters #
remove our parameters, leaving only target function/CommandInfo's args to curry in
$mergedParameters.remove("_Command") &gt; $null # remove common parameters $commonParameters
| % { if ($mergedParameters.ContainsKey($_)) { $mergedParameters.Remove($_) &gt; $null
} } } process { write-verbose "merge-parameter: process" # temporary function name
$temp = [guid]::NewGuid() $target = $_Command # splat our fixed named parameter(s)
and then splat remaining args $partial = { [cmdletbinding()] param() # begin dynamicparam
dynamicparam { $targetRdpd = Get-ParameterDictionary $target $PSCmdlet # remove fixed
parameters $mergedParameters.keys | % { $targetRdpd.remove($_) &gt; $null } $targetRdpd
} begin { write-verbose "i have $($mergedParameters.count) fixed parameter(s)." write-verbose
"i have $($targetrdpd.count) remaining parameter(s)" } # end dynamicparam process
{ $boundParameters = $PSCmdlet.MyInvocation.BoundParameters # remove common parameters
(verbose, whatif etc) $commonParameters | % { if ($boundParameters.ContainsKey($_))
{ $boundParameters.Remove($_) &gt; $null } } # invoke command with fixed parameters
and passed parameters (all named) . $target @mergedParameters @boundParameters if
($args) { write-warning "received $($args.count) arg(s) not part of function." } }
} # emit function/CommandInfo new-item -Path function:$temp -Value $partial.GetNewClosure()
} end { # cleanup rm function:$temp } } new-alias papp Merge-Parameter -force Export-ModuleMember
-Alias papp -Function Merge-Parameter, Get-ParameterDictionary 
</pre>
<p>
Have fun[ctional]!
</p>
<img width="0" height="0" src="http://www.nivot.org/aggbug.ashx?id=d670cb31-373a-41bc-8633-c5d102fd308d" />]]></description>
   <dc:creator>Oisin Grehan</dc:creator>
   <dc:date>3/10/2010 6:36:33 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Eindrücke vom dotnetpro powerday zum Thema CCD]]></title>
   <link>http://devtechblog.blogspot.com/2010/03/eindrucke-vom-dotnetpro-powerday-zum.html</link>
   <description><![CDATA[Ein professioneller Softwareentwickler - was kennzeichnet ihn eigentlich? Mit dieser Frage starten <a target="_blank" href="http://www.ralfw.de/">Ralf Westphal</a> und <a target="_blank" href="http://www.lieser-online.de/">Stefan Lieser</a>, wenn sie erklären, worum es bei der <a target="_blank" href="http://www.clean-code-developer.de/">Clean-Code-Developer-Initiative</a> eigentlich geht. Und genau so beginnt auch die Keynote des dotnetpro powerdays zum Thema CCD, der am 09.03.2010 in München. Die Antworten aus dem Publikum sind sehr vielseitig: "Man hat Erfahrung.", "Man schreibt wiederverwendbaren Code", "Jemand ist bereit, einem Geld für die Leistung zu geben", "Man schreibt Code, den andere verstehen" hört man Wortmeldungen aus allen Richtungen. Aber sind das wirklich die Kriterien? "Wiederverwendbarkeit? - Ich möchte keinen Klempner, der Dinge wieder verwendet, weil das professionell ist", meint Ralf und macht damit klar: Nicht das sind die Kriterien für Professionalität, sondern eine Mischung aus Bewusstheit und Prinzipien. Mit viel Witz und mehren verschenkten Mausmatten als Belohnung für interessante Antworten führen die beiden durch die Keynote und bringen so jedem das Thema näher.<br /><br />Klar ist, die beiden wissen was sie rüberbringen wollen und vertreten da auch ihre Meinung recht konsequent. Selbst langjährige und erfahrene Entwickler betrachten Probleme mal aus einem anderen Blickwinkel, wenn Aussagen wie "Wozu brauche ich einen Debugger – meine Tests zeigen mir doch, wo der Fehler ist", "Zum Erstellen einer Softwarearchitektur braucht man keine Tools – nur ein Flipchart" im Raum stehen - und wenn uns jemand nach einer Software-Architektur für ein Warenwirtschaftssystem gefragt hat, haben wir dann nicht alle mit einem einzigen "großen Kreis mit Bubbel in der Mitte" auf dem Flipchartpapier geantwortet?<br />"Wie vermeide ich Abhängigkeiten?", war die Frage, die einen Abstecher in Richtung Event Based Programming mit den Hauptakteuren "Paula Portal", "Anton Adapter", "Frieda Filter" und "Zacharias Zähler" bescherte, die gemeinsam die Codezeilen einer Datei zählten, während "König Kunde" sich einen neuen Kaffee holte.<br /><br />Der Nachmittag bestand dan darin, eine "Brownfield-Anwendung" mit Gummistiefeln zu betreten und im Sinne von CCD sauber zu machen. Leider musste ich nach der Ermittlung der guten und schlechten Eigenschaften der Anwendung die Veranstaltung verlassen, weil sonst mein Flieger ohne mich gestartet wäre, aber ich denke das anschließende Refactoring der Anwendung war auch noch sehr interessant.<br /><br />Ja, ich mag die Art von Stefan und Ralf, wie sie solche Veranstaltungen durchführen - mal ganz unabhängig davon, ob es eine kostenpflichtige Veranstaltung wie der CCD-Powerday oder eine kostenfreie wie Usergroup-Treffen oder OpenSpaces sind. Durch diese Art wird man abseits vom täglichen Geschäft mal dazu animiert, neue Wege einzuschlagen oder anders an ein Thema heranzugehen. Und unabhängig davon, ob man CCD unterstützt oder nicht - die Notwendigkeit professionell zu arbeiten gibt es durchaus und die sollte auch immer im Hinterkopf sein. Und die Initative hin zur Professionalität unterstütze ich aus vollster Überzeugung.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8163282460106371512-2269722158463595868?l=devtechblog.blogspot.com' alt='' /></div><img src="http://feeds.feedburner.com/~r/discoveringmicrosofttechnologies/~4/dsBX5QCLL38" height="1" width="1"/>]]></description>
   <dc:creator>Martin Hey</dc:creator>
   <dc:date>3/10/2010 12:48:34 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[MongoDB provider for Blogengine.net, saving a Post – Part 2]]></title>
   <link>http://feedproxy.google.com/~r/TheDynamicProgrammer/~3/UUSuJJi3x0U/MongoDBProviderForBlogenginenetSavingAPostPart2.aspx</link>
   <description><![CDATA[<body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday we created our first method in the MongoDbProvider, our implementation of
BlogProvider. We created a few supporting classes, but we don’t have test for those
classes. We recognize that we went a little bit too far in our coding. We got carry
away and we started to implement a little bit more than needed to make the test pass.
</p>
        <p>
So let’s fix that. First we need to see our first test passing. We run it expecting
to fail to save and load the post but we have a different Exception thrown.
</p>
        <p>
          <a href="http://blog.dynamicprogrammer.com/content/binary/WindowsLiveWriter/MongoDBproviderforBl.netsavingaPostPart2_8480/server_null_failing_test.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="server_null_failing_test" border="0" alt="server_null_failing_test" src="http://blog.dynamicprogrammer.com/content/binary/WindowsLiveWriter/MongoDBproviderforBl.netsavingaPostPart2_8480/server_null_failing_test_thumb.png" width="545" height="182"></img>
          </a>
        </p>
        <p>
If we look at the code we notice that we made a big mistake in the Mongo class. We
declared a _server private field but we are initializing a local server variable. 
<br>
So when calling Disconnect on _server inside the Dispose method we get the NullReferenceException. 
<br>
Let’s write a test to reproduce that bug at the unit level and see what else we can
fix in that class.
</p>
        <p>
Looking at it we discover a few dependencies that can be brake. First we create an
IMongoMapperFactory interface and we make MongoMapperFactory to implement it. 
<br>
There is another dependency, the name of the database to use. We made both parameters
for the constructor <a href="http://en.wikipedia.org/wiki/Dependency_inversion_principle" target="_blank">inverting
the dependencies</a>.
</p>
        <pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  1:         <span style="color: #0000ff">public</span> MongoDb(IMongoMapperFactory
mongoMapperFactory, <span style="color: #0000ff">string</span> dbName) </pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  2:         {
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  3:             _mongoMapperFactory = mongoMapperFactory;
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  4:             _dbName = dbName;
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  5:         }</pre>
        </pre>
        <p>
We also changed the Insert method:
</p>
        <pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  1:         <span style="color: #0000ff">public</span><span style="color: #0000ff">void</span> Insert&lt;TEntity&gt;(TEntity
entity) </pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  2:         {
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  3:             var document = _mongoMapperFactory.GetMapper&lt;TEntity&gt;().Map(entity);
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  4:             Db(db=&gt; db.GetCollection(entity.GetType().Name+"<span style="color: #8b0000">Docs</span>").Insert(document)); </pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  5:         }</pre>
        </pre>
        <p>
Notice that the private Db method now takes an Action&lt;Database&gt;
</p>
        <pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  1:         <span style="color: #0000ff">private</span><span style="color: #0000ff">void</span> Db(Action&lt;Database&gt;
action) </pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  2:         {
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  3:             <span style="color: #0000ff">using</span> (var
server = getServer()) </pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  4:             {
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  5:                 var db = server.getDB(_dbName);
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  6:                 action.Invoke(db);
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  7:             }
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  8:         }
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  9: 
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 10:         <span style="color: #0000ff">private</span> Mongo
getServer() </pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 11:         {
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 12:             var server = <span style="color: #0000ff">new</span> Mongo(); </pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 13:             server.Connect();
</pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 14:             <span style="color: #0000ff">return</span> server; </pre>
          <pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"> 15:         }</pre>
        </pre>
        <p>
And the newly created getServer() helper method to clean up the code. We also made
some changes on the query method but I will leave that for the next post.
</p>
        <p>
Our passing test result indicates some success.
</p>
        <p>
          <a href="http://blog.dynamicprogrammer.com/content/binary/WindowsLiveWriter/MongoDBproviderforBl.netsavingaPostPart2_8480/passing_test.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="passing_test" border="0" alt="passing_test" src="http://blog.dynamicprogrammer.com/content/binary/WindowsLiveWriter/MongoDBproviderforBl.netsavingaPostPart2_8480/passing_test_thumb.png" width="576" height="108"></img>
          </a>
        </p>
        <p>
Next: Mapping from Document to Entity and back.
</p>
        <img width="0" height="0" src="http://blog.dynamicprogrammer.com/aggbug.ashx?id=b3238ce0-14f5-4bdb-a671-118b9804e389"></img>
      </body>
<p><a href="http://feedads.g.doubleclick.net/~a/BzgRT4UrFOw3bjSITuwdNCsgly0/0/da"><img src="http://feedads.g.doubleclick.net/~a/BzgRT4UrFOw3bjSITuwdNCsgly0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BzgRT4UrFOw3bjSITuwdNCsgly0/1/da"><img src="http://feedads.g.doubleclick.net/~a/BzgRT4UrFOw3bjSITuwdNCsgly0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/TheDynamicProgrammer/~4/UUSuJJi3x0U" height="1" width="1"/>]]></description>
   <dc:creator>Hernan Garcia</dc:creator>
   <dc:date>3/10/2010 12:31:09 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[More Analytics, Analysis, and Correlation]]></title>
   <link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/wN4ib68YX20/post.aspx</link>
   <description><![CDATA[<p>I was listening away to some ear blistering metal, as I often do, and an ad really jumped out at me.</p>  <p><img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://adronhall.smugmug.com/Not-Me-Totally-Random/Amazing-Advertisements/HTCHeroonSprint/HTC-Ad-on-Pandora/752581431_u5T8q-M.png" border="0" alt="" /></p>  <p>If you can?t see what is written in the HTC ad to the right, click on the image.&nbsp; What is displayed is a cross-correlation of several points of analytics data.&nbsp; Before I jump right in and start explaining each point, think about what is going on with this ad.&nbsp; This is by no means just some simple ad, there are a number of things going on here.</p>  <p>First data point.&nbsp; Sprint &amp; HTC, or whoever it is that put this ad together, has retrieved my listening favorites from Pandora.&nbsp; Just looking at the bands listed shows that to be self evident.&nbsp; This also seems to be the most obvious piece of data they could have collected about me, since I am logged into Pandora.&nbsp; This is probably achieved by some web services or other API that Pandora provides advertisers.</p>  <p>The second data point is not immediately noticeable.&nbsp; I am still at a loss to explain where they retrieved this data point.&nbsp; What is it?&nbsp; Concert dates for bands.&nbsp; Each of the bands listed in the HTC app that is displayed is a coming show.&nbsp; Matter of fact, it almost seemed like they had shown me my own HTC, except I don&#39;t own one.&nbsp; :)</p>  <p>Now my location data, I am suspecting probably came from Pandora too, but it is the third point regardless.&nbsp; All together the ad utilizes geo-positional location, my Pandora music preferences, and pulls local concerts from another source (maybe a Pandora listing too?).&nbsp; This is a perfect use of preferences to display things that are truly relevant to me.</p>  <p>In addition, they may have just helped to sell me on a new phone for my personal line.&nbsp; I am up for a replacement and anything that runs Google Droid seems cool, but I?ll admit, with the sneak peaks at Windows 7 Mobile that I&#39;ve seen and the proposed ability to use Silverlight ? I WILL BE switching from the iPhone when that is released.</p><div class="socialBookmarksContainer"><a rel="nofollow" href="http://digg.com/submit/?url=http://adronbhall.com/blogs/technology__software_development/post/2010/03/10/More-Analytics-Analysis-and-Correlation.aspx" target="_blank" title="Digg It!"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/digg_24.png" style="border: 0;" alt="Digg It!" /></a><a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://adronbhall.com/blogs/technology__software_development/post/2010/03/10/More-Analytics-Analysis-and-Correlation.aspx&amp;title=More Analytics, Analysis, and Correlation" target="_blank" title="DZone It!"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/dzone_24.png" style="border: 0;" alt="DZone It!" /></a><a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://adronbhall.com/blogs/technology__software_development/post/2010/03/10/More-Analytics-Analysis-and-Correlation.aspx" target="_blank" title="StumbleUpon"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /></a><a rel="nofollow" href="http://technorati.com/ping?url=http://adronbhall.com/blogs/technology__software_development/" target="_blank" title="Technorati"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/technorati_24.png" style="border: 0;" alt="Technorati" /></a><a rel="nofollow" href="http://reddit.com/submit?url=http://adronbhall.com/blogs/technology__software_development/post/2010/03/10/More-Analytics-Analysis-and-Correlation.aspx&amp;title=More Analytics, Analysis, and Correlation" target="_blank" title="Reddit"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/reddit_24.png" style="border: 0;" alt="Reddit" /></a><a rel="nofollow" href="http://del.icio.us/post?url=http://adronbhall.com/blogs/technology__software_development/post/2010/03/10/More-Analytics-Analysis-and-Correlation.aspx&amp;title=More Analytics, Analysis, and Correlation" target="_blank" title="Del.icio.us"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/delicious_24.png" style="border: 0;" alt="Del.icio.us" /></a><a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://adronbhall.com/blogs/technology__software_development/post/2010/03/10/More-Analytics-Analysis-and-Correlation.aspx" target="_blank"title="NewsVine"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/newsvine_24.png" style="border: 0;" alt="NewsVine" /></a><a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/furl_24.png" style="border: 0;" alt="Furl" /></a><a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"><img src="/blogs/technology__software_development/themes/darkblog/images/socialbookmarks/square/blinklist_24.png" style="border: 0;" alt="BlinkList" /></a></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:63t7Ie-LG7Y"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=63t7Ie-LG7Y" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=wN4ib68YX20:0Utb7ZCj4oo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=wN4ib68YX20:0Utb7ZCj4oo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=wN4ib68YX20:0Utb7ZCj4oo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=wN4ib68YX20:0Utb7ZCj4oo:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=wN4ib68YX20:0Utb7ZCj4oo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=wN4ib68YX20:0Utb7ZCj4oo:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/wN4ib68YX20" height="1" width="1"/>]]></description>
   <dc:creator>Adron Hall</dc:creator>
   <dc:date>3/10/2010 7:26:28 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Flattening a Jagged Array with LINQ]]></title>
   <link>http://feedproxy.google.com/~r/dotnetmvp/~3/_o5w_cXbYyY/flattening-a-jagged-array-with-linq.aspx</link>
   <description><![CDATA[<p>Today I had to flatten a <a href="http://msdn.microsoft.com/en-us/library/2s05feca.aspx" target="_blank">jagged array</a>.&#160; In my case, it was a string[][] and I needed to make sure every single string contained in that jagged array was set to something (non-null and non-empty).&#160; LINQ made the flattening very easy.&#160; In fact, I ended up making a generic version that I could use to flatten any type of jagged array (assuming it's a T[][]):</p>  <div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">   <div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">     <pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> IEnumerable&lt;T&gt; Flatten&lt;T&gt;(IEnumerable&lt;T[]&gt; data)</pre>

    <pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">{</pre>

    <pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    <span style="color: #0000ff">return</span> from r <span style="color: #0000ff">in</span> data from c <span style="color: #0000ff">in</span> r select c;</pre>

    <pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">}</pre>
  </div>
</div>

<p>Then, checking to make sure the data was valid, was easy:</p>

<div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
  <div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
    <pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">var flattened = Flatten(data);</pre>

    <pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">bool</span> isValid = !flattened.Any(s =&gt; String.IsNullOrEmpty(s));</pre>
  </div>
</div>

<p>You could even use method grouping and reduce the validation to:</p>

<div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
  <div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
    <pre style="border-bottom-style: none; 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: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">bool</span> isValid = !flattened.Any(String.IsNullOrEmpty);</pre>
  </div>
</div>

<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:ba7f4c45-7b79-4bcc-9704-248b0416735c" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/.NET" rel="tag">.NET</a>,<a href="http://technorati.com/tags/LINQ" rel="tag">LINQ</a>,<a href="http://technorati.com/tags/Jagged+Array" rel="tag">Jagged Array</a></div><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7376735" width="1" height="1"><img src="http://feeds.feedburner.com/~r/dotnetmvp/~4/_o5w_cXbYyY" height="1" width="1"/>]]></description>
   <dc:creator>Patrick Steele</dc:creator>
   <dc:date>3/9/2010 7:27:07 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[USA Driving Tour, Day 2ish: Shopping, Frys and Mystere]]></title>
   <link>http://notgartner.wordpress.com/2010/03/09/usa-driving-tour-day-2ish-shopping-frys-and-mystere/</link>
   <description><![CDATA[I traded up my crutches for a wheelchair today as our credit card came under heavy fire taking advantage of the strong Australian dollar and getting down to some serious shopping. My strong suspicion is that the only reason Shelley suggested the wheelchair was so that she would have someone to pile the boxes of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=notgartner.wordpress.com&blog=307844&post=3048&subd=notgartner&ref=&feed=1" />]]></description>
   <dc:creator>Mitch Denny</dc:creator>
   <dc:date>3/9/2010 4:13:40 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[GWB | Administrator Blog Is Back To Life]]></title>
   <link>http://geekswithblogs.net/jjulian/archive/2010/03/09/138420.aspx</link>
   <description><![CDATA[<p><a href="￼http://geekswithblogs.net/administrator"><img src="http://geekswithblogs.net/images/geekswithblogs_net/jjulian/PastedGraphic.6FEuISyEKSv8.jpg" alt="PastedGraphic.6FEuISyEKSv8.jpg" width="181" height="163" /></a></p><p>We are bringing back the <a href="http://geekswithblogs.net/administrator">administrator’s blog</a> for <a href="http://Geekswithblogs.net">Geekswithblogs.net</a> as a place to get information for what is going on with GWB.  Couple reasons we are doing this.  One, I post a lot of information on my blog that is not <a href="http://Geekswithblogs.net">Geekswithblogs.net</a> related.  Most the time it isn’t even developer related and I know I need to work on that too, but in an effort to keep the signal much higher than the noise, we are moving the information over there.  The blog URL is <a href="http://geekswithblogs.net/administrator">http://geekswithblogs.net/administrator</a>.  The other reason we are doing it is I am not the only member of the GWB staff.  So please subscribe to that blog and let us know what you think about <a href="http://Geekswithblogs.net">Geekswithblogs.net</a> and how we can make the site better.</p><p><span style="font-size: 18pt;"><strong><a href="http://geekswithblogs.net/administrator">http://geekswithblogs.net/administrator</a></strong></span></p><p><a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=138420"><img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=138420" border="0"/></a></p><iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;PageID=31016&amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No>
<script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;Browser=NETSCAPE4&amp;NoCache=True&PageID=31016&amp;SiteID=1"></script>
<noscript><a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Click&amp;Mode=HTML&amp;SiteID=1&amp;PageID=31016" target="_blank">
<img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;Task=Get&amp;Mode=HTML&amp;SiteID=1&amp;PageID=31016" width="1" height="1" border="0"  alt=""></a>
</noscript>
</iframe>
<img src="http://geekswithblogs.net/jjulian/aggbug/138420.aspx" width="1" height="1" />]]></description>
   <dc:creator>Jeff Julian</dc:creator>
   <dc:date>3/9/2010 1:33:18 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[TQuery and RequestLive in Delphi 7:]]></title>
   <link>http://ginktage.com/?p=445</link>
   <description><![CDATA[<!-- Easy AdSense V2.83 -->
<!-- Post[count: 4] -->
<div class="ezAdsense adsense adsense-leadin" style="float:left;margin:-12px;"><script type="text/javascript">
<!-- 
lqm_channel=1;
lqm_publisher=517;
lqm_zone=1;
lqm_format=2;
//-->
</script>
<script type="text/javascript" src="http://a.lakequincy.com/s.js"></script>
<script type="text/javascript">
<!-- 
lqm_channel=1;
lqm_publisher=517;
lqm_zone=1;
lqm_format=8;
//-->
</script>
<script type="text/javascript" src="http://a.lakequincy.com/s.js"></script>
<script type="text/javascript"><!--
google_ad_client = "pub-2541293085579121";
/* 728x15, created 12/26/09 */
google_ad_slot = "1239205608";
google_ad_width = 728;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br/>
<br/></div>
<!-- Easy AdSense V2.83 -->



















TQuery component in Delphi enables your applications to use SQL syntax to access data from the database like paradox,Oracle etc.
We perform the following steps to use the TQuery component .
1. Create the TQuery Component.This can be done either by dropping the component on top the designer or during the runtime
Eg :
var
Query1 : TQuery;
Query1 := TQuery1.Create(nil);
2.  <a href="http://ginktage.com/?p=445" class="more-link">More &#62;</a><!-- Easy AdSense V2.83 -->
<!-- Post[count: 5] -->
<div class="ezAdsense adsense adsense-leadout" style="float:left;margin:-12px;">
<br/>
<script type="text/javascript"><!--
google_ad_client = "pub-2541293085579121";
/* 728x90, created 12/28/09 */
google_ad_slot = "8679204119";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<script type="text/javascript"><!--
google_ad_client = "pub-2541293085579121";
/* 728x15, created 12/26/09 */
google_ad_slot = "1239205608";
google_ad_width = 728;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br/>
<br/></div>
<!-- Easy AdSense V2.83 -->

]]></description>
   <dc:creator>Senthil Kumar B</dc:creator>
   <dc:date>3/9/2010 10:48:38 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Top 5 Featured Silverlight Partner Worldwide]]></title>
   <link>http://blogs.axinom.de/tomicic/Top5FeaturedSilverlightPartnerWorldwide.aspx</link>
   <description><![CDATA[<p>
   Eine besondere Ehre wurde uns im Vorfeld der MIX-Konferenz zuteil: Axinom wurde unter
   den Top 5&nbsp;Featured Silverlight Partner [1] gewählt und wird auf der internationalen
   Microsoft Silverlight-Startseite promotet.
</p>
<p>
   Freude herrscht! :-)
</p>
<p>
   [1] <a href="http://tomicic.de/ct.ashx?id=20cb88ab-1a5e-4986-b19c-55c63667a105&amp;url=http%3a%2f%2fwww.microsoft.com%2fsilverlight%2fpartner%2fdirectory%2f"><font color=#999999>http://www.microsoft.com/silverlight/partner/directory/</font></a>
</p>
<p>
   <img border=0 src="http://tomicic.de/content/binary/Silverlight_Partner.JPG">
</p>
<img width="0" height="0" src="http://blogs.axinom.de/tomicic/aggbug.ashx?id=449105d3-ff21-466c-b476-b3dd3f4048bd" />
<br />
<hr />
This weblog is sponsored by <a href="http://www.Axinom.de">Axinom GmbH</a>. ]]></description>
   <dc:creator>Damir Tomicic on Architecture</dc:creator>
   <dc:date>3/9/2010 4:33:49 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[When SharePoint Matters: OneResponse]]></title>
   <link>http://weblogs.asp.net/jan/archive/2010/03/08/when-sharepoint-matters-oneresponse.aspx</link>
   <description><![CDATA[<P mce_keep="true">Two weeks ago I was in Iceland, talking about SharePoint 2010 at <A href="http://www.tmsoftware.is/english/" mce_href="http://www.tmsoftware.is/english/">TM Software</A>&nbsp;(<A href="http://jantielens.wordpress.com/" mce_href="http://jantielens.wordpress.com/">some photos here :-)</A> ). During the course, some students showed me a pretty cool public SharePoint 2007 site that they have been working on: OneResponse (<A href="http://oneresponse.info/">http://oneresponse.info</A>). OneResponse is the site the United Nations uses to collaborate and share information during catastrophes such as the recent earthquake in Haiti. Besides of the fact that the site is implemented really well, it must be pretty cool to know that your work will have such a big impact. Well done guys, it was a pleasure to be your guest!</P><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7374858" width="1" height="1">]]></description>
   <dc:creator>Jan Tielens</dc:creator>
   <dc:date>3/8/2010 2:21:15 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[NET Framework 3.5 & NET Framework 4.0]]></title>
   <link>http://rndinfo.com/dot-net-microsoft-developer-india.html</link>
   <description><![CDATA[The .NET Framework is an integral Windows component that supports building and running the next generation of applications and XML Web services. The .NET Framework is hearty of development now & tomorrow for business applications.<br />
<br />

  Our dot.net consultant hides technical complexity & ensures deliver of better application. Radix has started development on net framework 4.0 to influence best technology for client projects.<br />
<br />

 Explore technical verticals of Radix consulting & development services from following sections.<br />]]></description>
   <dc:creator>Anand Patel</dc:creator>
   <dc:date>3/7/2010 10:28:09 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Goodbye Http Handler, Hello FileResult]]></title>
   <link>http://feedproxy.google.com/~r/codecapers/~3/SmP7fNJy-BI/post.aspx</link>
   <description><![CDATA[<p>If you have been developing applications in ASP.NET MVC then you are probably familiar with the ActionResult class. The <strong>ActionResult</strong> is the most common type of object returned from an action. When building MVC apps, most of time you will use the ActionResult class. </p>  <ul>Last week while I was working on my open source project <a href="http://weblog.codeplex.com/" target="_blank">WeBlog</a>, I built an HTTP Handler to serve up images. I started using an HTTP Handler for images because I needed a mechanism to prevent <a href="http://en.wikipedia.org/wiki/Inline_linking" target="_blank">bandwidth leeching</a>. The only bad thing about using an HTTP handler for images is that you end up with some pretty ugly URLS. In my case the URL ended up looking like this:</ul>  <p><strong>/Image.axd?image=sample.png</strong></p>  <p>Luckily, my friend Ron noticed my new HTTP Handler and mentioned that I could have accomplished the same thing with a controller action that returned a FileResult instead. After a bit of investigation, I realized that Ron was absolutely right. I deleted my HTTP Handler and replaced it with this code, which was added to the Home Controller:</p>  <pre class="brush: csharp;">private string GetContentType(string filename) {
    FileInfo file = new FileInfo(filename);            
    switch (file.Extension.ToUpper()) {
        //images
        case &quot;.PNG&quot; : return &quot;image/png&quot;;                                
        case &quot;.JPG&quot; : return &quot;image/jpeg&quot;;                    
        case &quot;.JPEG&quot;: return &quot;image/jpeg&quot;;                    
        case &quot;.GIF&quot; : return &quot;image/gif&quot;;                    
        case &quot;.BMP&quot; : return &quot;image/bmp&quot;;                    
        case &quot;.TIFF&quot;: return &quot;image/tiff&quot;;
        default:
            throw new NotSupportedException(&quot;The Specified File Type Is Not Supported&quot;);
    }            
}

public FileResult GetImage(string id) {
    string path = Path.Combine(Engine.GetImageDirectory().FullName, id);            
    return base.File(path, GetContentType( path ) );
}</pre>

<pre class="brush: csharp;">&#160;</pre>

<p>Since this code resides in my Home controller I would need to use the URL like “/Home/GetImage/sample.png” to display an image. Admittedly this URL is still a big ugly, so I decided to use a custom route to clean it up. The new custom route is named “Images” and is mapped it to the Home controller’s GetImage method. Here is the entry used in the global.asax file:</p>

<pre class="brush: csharp;">routes.MapRoute(&quot;Images&quot;,
    &quot;Images/{id}&quot;,
    new { controller = &quot;Home&quot;, action = &quot;GetImage&quot;, id = &quot;&quot; });</pre>

<p>Now I can display images by using the following URL:</p>

<p><strong>”/Images/sample.png”</strong></p>

<p>To the end user, this looks like a traditional file path. However, in reality there is no “Images” folder in the root directory. “Images” is just the name of the route being used. In reality, the image files are actually stored in the App_Data/Images folder. </p>

<p>By using a FileResult object with MVC you not only get a pretty URL but you also get a lot of flexibility on where you want your images to reside. You can store images anywhere you want and the URL will never need to change!</p>
<p><a href="http://feedads.g.doubleclick.net/~a/Ui5CAGWCT07WLzRW3g09ez2V_yw/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ui5CAGWCT07WLzRW3g09ez2V_yw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ui5CAGWCT07WLzRW3g09ez2V_yw/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ui5CAGWCT07WLzRW3g09ez2V_yw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codecapers?a=SmP7fNJy-BI:pb_PZ7NE4TU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/codecapers?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codecapers?a=SmP7fNJy-BI:pb_PZ7NE4TU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/codecapers?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codecapers?a=SmP7fNJy-BI:pb_PZ7NE4TU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codecapers?i=SmP7fNJy-BI:pb_PZ7NE4TU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codecapers?a=SmP7fNJy-BI:pb_PZ7NE4TU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codecapers?i=SmP7fNJy-BI:pb_PZ7NE4TU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codecapers?a=SmP7fNJy-BI:pb_PZ7NE4TU:G79ilh31hkQ"><img src="http://feeds.feedburner.com/~ff/codecapers?d=G79ilh31hkQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/codecapers/~4/SmP7fNJy-BI" height="1" width="1"/>]]></description>
   <dc:creator>Michael Ceranski</dc:creator>
   <dc:date>3/7/2010 4:46:51 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Introducing Typemock Test Lint]]></title>
   <link>http://feedproxy.google.com/~r/Iserializable/~3/IRxtCIs-Qj0/introducing-typemock-test-lint.aspx</link>
   <description><![CDATA[<p>We just released a new, free product -&#160; Typemock Test Lint, <a href="http://site.typemock.com/test-lint">click here for all the gory details</a>.</p>  <p>It’s a just-in-time unit testing coach that looks at your code as you type and looks for common unit testing errors.</p>  <p>Or, you can just watch this movie:</p> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler_aa16326b"><param name="movie" value="http://www.viddler.com/player/aa16326b/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/aa16326b/" width="437" height="370" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_aa16326b"></embed></object><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7373811" width="1" height="1"><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Iserializable?a=IRxtCIs-Qj0:qwWwIul8qJA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Iserializable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Iserializable?a=IRxtCIs-Qj0:qwWwIul8qJA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Iserializable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Iserializable?a=IRxtCIs-Qj0:qwWwIul8qJA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Iserializable?i=IRxtCIs-Qj0:qwWwIul8qJA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Iserializable/~4/IRxtCIs-Qj0" height="1" width="1"/>]]></description>
   <dc:creator>Roy Osherove</dc:creator>
   <dc:date>3/7/2010 3:52:03 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[New and Notable 400]]></title>
   <link>http://feedproxy.google.com/~r/SamGentile/~3/48bH0iA4R4k/</link>
   <description><![CDATA[<p>Number 400!</p>
<p>SOA/REST/M/Oslo</p>
<ul>
    <li><a href="http://www.infoq.com/news/2010/02/SOANutshell">SOA in a Nutshell</a> - A new JP Morgenthal&rsquo;s post &ldquo;The Busy Executive&rsquo;s Service Oriented Architecture Reference Guide&rdquo; is a great starting point for gaining a quick understanding of what SOA is without getting too deep into technology jargon and hype</li>
    <li><a href="http://www.infoq.com/interviews/box-soap-xml-rest-m;jsessionid=0569CEC1542B22A7CCEE888ACC27C5CF">Don Box Discusses SOAP, XML, REST and M</a> - In this interview from QCon San Francisco 2009, Don Box discusses the history of SOAP, XML, XML Schema, RELAX NG, SOAP and WSDL, REPL, opinions on REST, REST at Microsoft, coexistence of REST and WS-*, the M programming language, M and DSLs, M versus XML/XML</li>
    <li><a href="http://www.infoq.com/news/2010/02/odata-protocol-collaboration">Is OData the Ubiquitous Language for Application Collaboration?</a> - The Open Data Protocol (OData) specification opens up possibilities to a lot of interesting collaborative use-cases and scenarios. Some of which are highlighted by Douglas Purdy, Pablo Castro and Jon Udell.</li>
    <li><a href="http://weblogs.asp.net/cibrax/archive/2010/01/04/actas-in-ws-trust-1-4.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+cibrax+%28Pablo+M.+Cibraro+%28aka+Cibrax%29%29">ActAs in WS-Trust 1.4</a> - Pablo Cibraro talks about a new feature in WS-Trust 1.4;&nbsp; new feature called as &ldquo;ActAs&rdquo; for addressing common scenarios where an application needs to call a service on behalf of the logged user or a service needs to call another service on behalf of the original caller.</li>
</ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SamGentile?a=48bH0iA4R4k:I2HEDGeEkXw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SamGentile?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=48bH0iA4R4k:I2HEDGeEkXw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SamGentile?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=48bH0iA4R4k:I2HEDGeEkXw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SamGentile?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=48bH0iA4R4k:I2HEDGeEkXw:63t7Ie-LG7Y"><img src="http://feeds.feedburner.com/~ff/SamGentile?d=63t7Ie-LG7Y" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=48bH0iA4R4k:I2HEDGeEkXw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SamGentile?i=48bH0iA4R4k:I2HEDGeEkXw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=48bH0iA4R4k:I2HEDGeEkXw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SamGentile?i=48bH0iA4R4k:I2HEDGeEkXw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=48bH0iA4R4k:I2HEDGeEkXw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SamGentile?i=48bH0iA4R4k:I2HEDGeEkXw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=48bH0iA4R4k:I2HEDGeEkXw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/SamGentile?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SamGentile/~4/48bH0iA4R4k" height="1" width="1"/>]]></description>
   <dc:creator>Sam Gentile</dc:creator>
   <dc:date>3/7/2010 12:41:11 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[美军方重新评估屏蔽社交类等Web2.0网站]]></title>
   <link>http://www.wewill.cn/n36347c43.aspx</link>
   <description><![CDATA[美军方重新评估屏蔽社交类等Web2.0网站]]></description>
   <dc:creator>Huang</dc:creator>
   <dc:date>3/7/2010 9:24:46 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[On Small Applications]]></title>
   <link>http://feedproxy.google.com/~r/UdiDahan-TheSoftwareSimplist/~3/T0LwFfAXX-M/</link>
   <description><![CDATA[I hear this too often: &#8220;X sounds like a great pattern, but it&#8217;s overkill for small applications&#8221;. Many patterns have been subjected to this including (but not limited to): SOA, DDD, CQRS, ORM, etc. Often the statement is made by a person without experience in the given pattern (though possibly experienced in other patterns). Let&#8217;s [...]]]></description>
   <dc:creator>Udi Dahan - The Software Simplist</dc:creator>
   <dc:date>3/7/2010 5:23:10 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Parallelism in .NET – Part 12, More on Task Decomposition]]></title>
   <link>http://feedproxy.google.com/~r/ReedCopsey/~3/ZaJvW0Ctlbg/</link>
   <description><![CDATA[Many tasks can be decomposed using a Data Decomposition approach, but often, this is not appropriate.&#160; Frequently, decomposing the problem into distinctive tasks that must be performed is a more natural abstraction.
However, as I mentioned in Part 1, Task Decomposition tends to be a bit more difficult than data decomposition, and can require a bit [...]]]></description>
   <dc:creator>Reed Copsey, Jr.</dc:creator>
   <dc:date>3/5/2010 6:32:38 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[SQL Saturday #44 – First In California!]]></title>
   <link>http://dbalink.wordpress.com/2010/03/05/sql-saturday-44-first-in-california/</link>
   <description><![CDATA[CALL For Speakers
The  SQL Saturday event in Southern California is finally here! Call for Speakers is officially open. According to the official record, this is the first ever SQL Saturday event in California and the first one set up since the transfer of SQLSaturday to PASS. I am just happy to be part of this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbalink.wordpress.com&blog=2487604&post=1177&subd=dbalink&ref=&feed=1" />]]></description>
   <dc:creator>Marlon Ribunal</dc:creator>
   <dc:date>3/5/2010 1:28:45 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Upcoming Speaking Engagements]]></title>
   <link>http://aspnetresources.com/blog/2010_1_upcoming_speaking_engagements.aspx</link>
   <description><![CDATA[<p>This is a short notice, but still&#8230; I&#39;m giving my
<a href="http://www.aspnetresources.com/articles/real_world_ioc_and_di_with_webforms.aspx">
IoC and DI with WebForms</a> presentation at the
<a href="http://nyc.codecamp.us/">New York Code Camp</a> tomorrow. Instead of walking away with a &quot;this is only a demo; don&#39;t try it at home&quot; excuse, I actually have a read-world example to go through.</p>

<p class="note">There exists an entrenched belief that there&#39;s only one way to develop with WebForms, i.e. rely on the crunch of view state, postbacks, session, etc. <strong>I beg to differ</strong>. You can write cleaner, cohesive, more testable code, and I intend to prove it.</p>

<p>At my session, we will</p>

<ul>
 <li>talk about what it takes to write highly cohesive, loosely coupled code</li>
 <li>see what <strong>Inversion of Control (IoC)</strong> and <strong>Dependency  Injection (DI)</strong> are all about</li>
 <li>look at appropriate ways of using an IoC container</li>
</ul>

<p>If accepted, I also plan on giving this talk at the
<a href="http://www.utahcodecamp.com/">Utah Code Camp</a> on <strong>March 27</strong>  and <a href="http://richmondcodecamp.org">Richmond Code Camp</a> on <strong>May 
22</strong>. If you are &quot;in the area,&quot; please stop by. ;)</p>
     
    <hr />
    <span style="color: #333;">ASP.NET consulting with imagination and passion. 
    <a href="http://aspnetresources.com/consulting.aspx" target="_blank">Hire me!</a></span>
    
]]></description>
   <dc:creator>Milan Negovan</dc:creator>
   <dc:date>3/5/2010 9:41:09 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Beta release of Microsoft Visual Studio Team Explorer 2010 codename “Eaglestone”]]></title>
   <link>http://blog.svencipido.be/Blog/Beta+Release+Of+Microsoft+Visual+Studio+Team+Explorer+2010+Codename+Eaglestone.aspx</link>
   <description><![CDATA[<p>
   Yesterday Microsoft announced the beta release of Microsoft Visual Studio Team Explorer
   2010 codename “Eaglestone”.&nbsp; This is an eclipse plug from Teamprise (acquired
   in November 2009).&nbsp; Read the whole article on Brian harry's blog : <a href="http://blogs.msdn.com/bharry/archive/2010/03/04/microsoft-visual-studio-team-explorer-2010.aspx">http://blogs.msdn.com/bharry/archive/2010/03/04/microsoft-visual-studio-team-explorer-2010.aspx</a>
</p>
<img width="0" height="0" src="http://blog.svencipido.be/Blog/aggbug.ashx?id=7c6876ad-8a2e-4b7e-ad75-ae4595de89b5" />
<br />
<hr />My thoughts, shares,... with .Net and Microsoft - The blog of Sven Cipido]]></description>
   <dc:creator>Sven Cipido</dc:creator>
   <dc:date>3/5/2010 12:42:47 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Silverlight Vs HTML 5]]></title>
   <link>http://weblogs.asp.net/sonyram/archive/2010/03/04/silverlight-vs-html-5.aspx</link>
   <description><![CDATA[<P mce_keep="true">Very good artilce on silverlight myths.</P>
<P mce_keep="true"><A href="http://www.wintellect.com/CS/blogs/jlikness/archive/2010/02/23/top-10-silverlight-myths-and-the-facts-to-bust-them.aspx">http://www.wintellect.com/CS/blogs/jlikness/archive/2010/02/23/top-10-silverlight-myths-and-the-facts-to-bust-them.aspx</A></P>
<P mce_keep="true">Similarly, here is&nbsp;another googd article on why &nbsp;<A class="" title="Why HTML 5 Won’t Kill Flash or Silverlight" href="http://blog.iqinteractive.com/?p=338" mce_href="http://blog.iqinteractive.com/?p=338">Why HTML 5 Won’t Kill Flash or Silverlight</A></P>
<P mce_keep="true">&nbsp;</P>
<P mce_keep="true">&nbsp;</P>
<H2>&nbsp;</H2><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7369958" width="1" height="1">]]></description>
   <dc:creator>Sriram Vaidyanathan</dc:creator>
   <dc:date>3/4/2010 7:02:31 AM</dc:date>
  </item>
 </channel>
</rss>