<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[dotNetDave - dotNetTips.Utility 3.5 Released]]></title>
   <link>http://blog.steeleprice.net/archive/2009/07/03/1732.aspx</link>
   <description><![CDATA[<p> Dave McCarter has released a great package of Tips and Helpers.</p> <blockquote> <p>After lots new coding, refactoring and upgrading to .NET 3.5, dotNetTips.Utility 3.5 is finally released! This assembly is much of the common code I have been writing for the past 8+ years all wrapped up in a nice package and easy to use. </p></blockquote> <blockquote> <p>read more: <a href="http://dotnettips.com/2009/07/03/dotNetTipsUtility35Released.aspx">dotNetTips.Utility 3.5 Released</a></p></blockquote> <p>What’s great about this is that you will get some serious tools and the VB.Net source to see how they work.&nbsp; Dave is a proponent of Standards and you can see in this library how he implements some of the techniques he talks about.</p> <p>From AvailablePhysicalMemory to UsStateCollection the helpers get you from nowhere to somewhere fast.</p> <p>Highly Recommended!</p> <blockquote> <p>Codeplex Project: <a title="http://dotnettips.codeplex.com/" href="http://dotnettips.codeplex.com/">http://dotnettips.codeplex.com/</a></p></blockquote><img src ="http://blog.steeleprice.net/aggbug/1732.aspx" width = "1" height = "1" />]]></description>
   <dc:creator>Steele Price</dc:creator>
   <dc:date>7/3/2009 4:35:33 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[驻阿美军用Twitter播报军事新闻]]></title>
   <link>http://www.wewill.cn/n36121c43.aspx</link>
   <description><![CDATA[驻阿美军用Twitter播报军事新闻]]></description>
   <dc:creator>Huang</dc:creator>
   <dc:date>7/3/2009 12:35:20 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Redundancy + Dependency injection]]></title>
   <link>http://feedproxy.google.com/~r/bugsquash/~3/kbWp_lTT5WE/redundancy-dependency-injection.html</link>
   <description><![CDATA[<p>= Reliability. </p>  <p>Today, one of the biggest payment gateways, Authorize.Net, went down because of a big power outage caused by a fire. Everyone is <a href="http://search.twitter.com/search?ands=authorize&amp;q=&amp;rpp=15&amp;since=2009-07-03&amp;units=mi&amp;until=2009-07-03&amp;within=15">twittering like crazy</a>, ranting and asking customers to order by phone.</p>  <p>Authorize.Net is also our payment gateway at work, but this wasn't a major issue for us. We just had to swap the payment processing implementation from Authorize.Net with the one that uses a Verisign Payflow Pro account, and that's it. We even didn't have to shut down the site because we have this set up via <a href="/2007/06/dynamicwebconfig.html">dynamic.web.config</a>. </p>  <p>Really, you gotta love dependency injection in times like these!</p>  <div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8643857899806162280-3973782405958628420?l=bugsquash.blogspot.com'/></div><img src="http://feeds.feedburner.com/~r/bugsquash/~4/kbWp_lTT5WE" height="1" width="1"/>]]></description>
   <dc:creator>Mauricio Scheffer</dc:creator>
   <dc:date>7/3/2009 8:58:58 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Creating IT strategy (with a little help from enterprise architecture)]]></title>
   <link>http://weblogs.asp.net/ngur/archive/2009/07/03/creating-it-strategy-with-a-little-help-from-enterprise-architecture.aspx</link>
   <description><![CDATA[<p><span class="Normal"><font size="4">Creating IT strategy is one of the complicated 
task that I know. To create a good IT strategy, you have to use many ingredients 
from different types and sources. Those ingredients<span>&nbsp; </span>should be used 
in unique combination that can be cooked and then be served as a delicious Cake 
to different customers ( IT workers, IT management, Information workers, 
enterprise CxOs and sometimes the board). In this post I'll try to describe 
what, and who I manage to create an IT strategy.</font> 
<p><font size="4">Usually I tend to split my work into 6 main work 
streams:</font></p>
<ol type="1"><li value="1"><span><font size="4">Collecting as-is data</font></span> 
<ol type="a"><li value="1"><span><font size="4">Mapping IT assets: collecting existing IT assets 
to understand what IT manage and to get a hint how.</font></span> 
<ol type="i"><li value="1"><span><font size="4">Information model: information entities and their 
relations. Helps to understand interaction between business units and level of 
integration from business perspective. Information model is also being used as 
an input to Information management.</font></span> 
</li><li value="2"><span><font size="4">Applications and products : applications 
(internal development), External products and relations. Will be used for 
different aspects as well as mapping to core-context model.</font></span> 
</li><li value="3"><span><font size="4">Technologies, Databases and servers : collect 
data about technical component and their relations. Used to understand what 
stand behind each application/product and to find out if resources are balanced 
(from usage point of view) and if new technologies (such as virtualization) are 
applicable. </font></span>
</li><li value="4"><span><font size="4">Communication infrastructures : same as 
technologies, but focused on communication.</font></span> 
</li><li value="5"><span><font size="4">DRP : current design recovery plan. 
</font></span>
</li><li value="6"><span><font size="4">Information security : what procedures and IT 
assets are in place to support information security.</font></span> 
</li><li value="7"><span><font size="4">Information from externals: what type of 
information the enterprise is getting from externals, in what format and how the 
data is being handled by the enterprise.</font></span></li></ol></li></ol>
<ol type="a"><li value="2"><span><font size="4">Information management: how information is 
manage, who own information, who use it, what is each information availability, 
etc'</font></span> 
</li><li value="3"><span><font size="4">Program of Work (POW) management : what is the 
current (if exists), how POW is being prepared, who is involved in this effort, 
what are the inputs for the process, is the POW address IT needs or just 
business needs, is it multiyear plan, is the plan enable prioritization and 
control, do we have milestones, deliverables and time tables, etc'</font></span> 

</li><li value="4"><span><font size="4">Budget management : who current budget is build 
(centralized or separated between business units), how the process is being 
done, who is involved, what are the inputs, is it multiyear budget, do we have 
breakdown of budget chapters, is the budget structure represent the major areas 
of expanses, is the structure enable management queries regarding budget 
behavior, Can we optimize budget without changing IT deliverables, 
etc'</font></span> 
</li><li value="5"><span><font size="4">IT equipment procurement management: are there 
any policies regarding procurement (Tender, predefined suppliers, how the 
process is done, where), what are the relations to other business units (when IT 
purchases), how IT physical assets are managed, any retire principles for IT 
equipment, etc'<span>&nbsp; </span></font></span>
</li><li value="6"><span><font size="4">Project management : is there one and uniform 
process for IT project, is the project follow PRINCE2, PMBOK or any other 
project management methodology.</font></span> 
</li><li value="7"><span><font size="4">IT infrastructure management (ITIL) :<span>&nbsp; 
</span>checking who much ITIL is implemented (even if its not ITIL explicitly) . 
Are we implementing any management of Incident, problem, configuration, release, 
change, capacity, financial, availability, continuity and service 
level.</font></span> 
</li><li value="8"><span><font size="4">Governance: mapping the IT against governance 
frameworks such as COBIT.</font></span> 
</li><li value="9"><span><font size="4">IT organizational structure and Human resources 
management. Existing structure and how it should support current tasks, one shop 
or shop per business unit, duplicated teams, location of teams<span>&nbsp; </span>in 
hierarchy, are teams located in the same physical location, compensation per 
role, etc'. </font></span>
</li><li value="10"><span><font size="4">Training / Education : Current training and 
education plan or opportunities available, are they per role, are they address 
known gap in worker knowledge, are they related to POW, etc'</font></span> 
</li><li value="11"><span><font size="4">IT management - supporting forums:<span>&nbsp; 
</span>Are there any IT or enterprise wide forums that serve IT needs or IT is 
involved in, what is the perception of IT, is the CIO has CEO support, what is 
the CIO location in organization structure, 
etc'</font></span></li></ol></li></ol>
<ol type="1"><li value="2"><span><font size="4">Understand the business, future direction and who 
it impact IT</font></span> 
<ol type="a"><li value="1"><span><font size="4">Business capabilities : what are the functions 
performed by the business to reach goals and objectives. Including new 
capabilities (or changes in capabilities) that support new business directions, 
or any business change. Used to see alignment between IT and business needs 
(current and future)</font></span> 
</li><li value="2"><span><font size="4">End-to-End business processes (Value chain): 
mapping main processes that generate value to the enterprise. Used to see 
interaction and integration between business 
units.</font></span></li></ol></li></ol>
<ol type="1"><li value="3"><span><font size="4">Understand new technology future IT directions 
and how they can Impact the business. </font></span>
</li><li value="4"><span><font size="4">Create TO-BE architecture: Creating new 
architecture (blueprint or high level architecture) based on business 
directions, new technology options, key finding from IT assets mapping and IT 
as-is mapping.</font></span> 
</li><li value="5"><span><font size="4">Identify gaps between as-is and to-be: list all 
gaps in each element that we mapped in the "AS-IS" </font></span>
</li><li value="6"><span><font size="4">Translate gaps into a roadmaps with dependencies 
and assignments : group gaps into projects, write one page of project high level 
analysis, assign resources to projects and<span>&nbsp; </span>creating a road map 
(taking in account dependencies )</font></span></li></ol>
<p><font size="4">Then I translate the work streams data into a word document with 
6 main chapters:</font></p>
<ol type="1"><li value="1"><span><font size="4">Executive summary. Actually I'm writing different 
executive summary for each audience using<span>&nbsp; </span>relevant linkage to 
document paragraphs. I found out that although it's more work it proves to be 
more digestible.<span>&nbsp; </span>This way I can use different lingo and sharp 
different aspects of the strategy for each audience without rewriting the entire 
document and with ability for adjustments on the other hand.</font></span> 
</li><li value="2"><span><font size="4">Description of the as-is + to-be. Describe the 
data as it was collected from different roles. This part should hold just facts. 
I'm using it to build my findings on top of agreed facts.</font></span> 
</li><li value="3"><span><font size="4">Analysis : TO-BE based on analysis of collected 
data.</font></span> 
</li><li value="4"><span><font size="4">Blue-prints and Principles : based on the 
analysis what need to be done, and which principles should be followed by the 
enterprise.</font></span> 
</li><li value="5"><span><font size="4">Roadmap : Translate blueprints and principles 
into defined projects with assignments and dependencies with other projects and 
resources.</font></span></li></ol></span></p><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7139252" width="1" height="1">]]></description>
   <dc:creator>Natty Gur</dc:creator>
   <dc:date>7/3/2009 4:32:18 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[[Tools] New version of UMLet available (9.1)]]></title>
   <link>http://weblogs.asp.net/jtobler/archive/2009/07/02/tools-new-version-of-umlet-available-9-1.aspx</link>
   <description><![CDATA[A newer version of UMLet is available.  UMLet is my "UML as sketch" tool of choice!  You can read *about* a very interesting article on the rationale behind UMLet here:

http://www2.computer.org/portal/web/csdl/abs/proceedings/euromicro/2003/1996/00/19960267abs.htm


Note, however, that the authors require payment for the full article.

UMLet is very capable ... and free, too!

<img src="http://weblogs.asp.net/aggbug.aspx?PostID=7139092" width="1" height="1">]]></description>
   <dc:creator>John Tobler</dc:creator>
   <dc:date>7/2/2009 11:35:43 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Fill out a survey, win a chance for a SharePoint Conference 2009 pass]]></title>
   <link>http://feedproxy.google.com/~r/bsimser/~3/vMwXRvifido/fill-out-a-survey-win-a-chance-for-a-sharepoint-conference-2009-pass.aspx</link>
   <description><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 20px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="Free? Sure, why not?" border="0" alt="Free? Sure, why not?" align="left" src="http://weblogs.asp.net/blogs/bsimser/pablo_7BB55C22.jpg" width="244" height="200" /> Yeah, title says all. <a href="http://www.mindsharp.com/">Mindsharp</a>, <a href="http://www.nintex.com/">Nintex</a>, and <a href="http://www.combined-knowledge.com/">Combined Knowledge</a> are sponsoring a <a href="http://www.sharepointsurvey.com/">Global SharePoint Survey</a>. This is an independent survey that you can fill out to let them know about your experience with adoption and usage of SharePoint from your perspective. The survey is quick (only 15 questions) and most questions are multiple choice. You could probably let your cat or two year old fill it out (I did) but also consider taking a few minutes to put some thought behind it (unlike what I did). </p>  <p>In the end, you get a chance to win a conference pass to the <a href="http://www.mssharepointconference.com/Pages/default.aspx">Microsoft SharePoint Conference 2009</a> (October 19-22) in Las Vegas. This pass is worth $1,119 USD if purchased with real money. A winner will be drawn randomly after the closing of the survey July 17th then notified by email and/or phone. Note the contest is *only* for the conference pass. You still need to provide a way to get there and pay for your hotel, mini-bar, and pub crawl expenses (and trust me, when you hang with SharePoint dudes, the bar bill can get pretty hefty). Still, it’s a short slice out of your life for a chance to make it big in the city that never sleep.</p>  <p>You can fill out the survey <a href="http://www.sharepointsurvey.com/">here</a>. Enjoy and good luck!</p><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7139021" width="1" height="1"><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bsimser?a=vMwXRvifido:7QhwB0d-GSY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bsimser?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bsimser?a=vMwXRvifido:7QhwB0d-GSY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/bsimser?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bsimser?a=vMwXRvifido:7QhwB0d-GSY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bsimser?i=vMwXRvifido:7QhwB0d-GSY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bsimser?a=vMwXRvifido:7QhwB0d-GSY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/bsimser?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></description>
   <dc:creator>Bil Simser</dc:creator>
   <dc:date>7/2/2009 7:31:11 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Pretty Code #1 – Building SelectListItems]]></title>
   <link>http://odetocode.com/Blogs/scott/archive/2009/07/02/13170.aspx</link>
   <description><![CDATA[<p>In ASP.NET MVC, you can use a collection of <a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlistitem.aspx" target="_blank">SelectListItem</a>s to help build an HTML &lt;select&gt;. <a href="http://blog.wekeroad.com/blog/asp-net-mvc-dropdownlist-and-html-attributes/" target="_blank">Just watch out for the HTML helper overloads</a>. The question is – <strong><em>what is the prettiest code that can change a list of Products into a collection of SelectListItems? </em></strong></p> <p>Tonight, you’ll be the judge in this first contest of charm, grace, and readability.</p> <p><strong>Contestant #1</strong> hails from the System.Web.Mvc namespace. It likes pina coladas and string literals, but is turned off by tattoos that look like programming symbols. Let me introduce the <a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist.aspx" target="_blank">SelectList</a> class:</p> <pre class="code"><span style="color: blue;">var </span>products = GetProducts();
<span style="color: blue;">var </span>selectItems = <span style="color: blue;">new </span><span style="color: rgb(43, 145, 175);">SelectList</span>(products, <span style="color: rgb(163, 21, 21);">"ID"</span>, <span style="color: rgb(163, 21, 21);">"Name"</span>);
</pre>


<p><strong>Contestant #2</strong> lives in the System.Linq namespace. It likes whips and method chains. Functional programmers call it “map”, but in .NET we call it "Select": <br></p><pre class="code"><span style="color: blue;">var </span>selectItems = <span style="color: blue;">from </span>product <span style="color: blue;">in </span>GetProducts()
                  <span style="color: blue;">select new </span><span style="color: rgb(43, 145, 175);">SelectListItem 
                  </span>{
                      Text = product.Name,
                      Value = product.ID.ToString()
                  };
</pre>
<br>… or (from the backside) … <br>
<pre class="code"><span style="color: blue;">var </span>selectList = GetProducts().Select(product =&gt;
                    <span style="color: blue;">new </span><span style="color: rgb(43, 145, 175);">SelectListItem
                    </span>{
                        Value = product.ID.ToString(),
                        Text = product.Name 
                    });
</pre>
<p><strong>Contestant #3</strong> lives in the MvcContrib project. It’s turned on by pointy things and practices yoga for extensibility. Introducing the ToSelectList method:</p>
<pre class="code"><span style="color: blue;">var </span>selectItems = GetProducts().ToSelectList(product =&gt; product.ID,
                                             product =&gt; product.Name);
</pre>
<p>Personally, I like #2. While the name of #3 makes its purpose obvious, it sometimes takes a moment to be 100% clear about what property becomes Text, and what property becomes Value. In #2 the Text and Value assignments are obvious, even though the code is a little longer. Setting the Selected properties with either approach is trivial. </p>
<p>What do you think?</p><img src="http://odetocode.com/Blogs/aggbug.aspx?PostID=13170" width="1" height="1">]]></description>
   <dc:creator>K. Scott allen</dc:creator>
   <dc:date>7/2/2009 6:46:45 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Windows Azure and Cloud Computing Posts for 6/15/2009+]]></title>
   <link>http://feedproxy.google.com/~r/SamGentile/~3/9LCCqu_drMg/</link>
   <description><![CDATA[<p>Roger Jennings has his <a href="http://oakleafblog.blogspot.com/2009/06/windows-azure-and-cloud-computing-posts_15.html">latest excellent links</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SamGentile?a=9LCCqu_drMg:xP_d7JGzq8U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SamGentile?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=9LCCqu_drMg:xP_d7JGzq8U:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/SamGentile?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=9LCCqu_drMg:xP_d7JGzq8U:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/SamGentile?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=9LCCqu_drMg:xP_d7JGzq8U: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=9LCCqu_drMg:xP_d7JGzq8U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SamGentile?i=9LCCqu_drMg:xP_d7JGzq8U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=9LCCqu_drMg:xP_d7JGzq8U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SamGentile?i=9LCCqu_drMg:xP_d7JGzq8U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=9LCCqu_drMg:xP_d7JGzq8U:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SamGentile?i=9LCCqu_drMg:xP_d7JGzq8U:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SamGentile?a=9LCCqu_drMg:xP_d7JGzq8U: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/9LCCqu_drMg" height="1" width="1"/>]]></description>
   <dc:creator>Sam Gentile</dc:creator>
   <dc:date>7/2/2009 5:55:45 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[UNC content with IIS 7 and Samba]]></title>
   <link>http://weblogs.asp.net/steveschofield/archive/2009/07/02/unc-content-with-iis-7-and-samba.aspx</link>
   <description><![CDATA[<P mce_keep="true">Here is another thread on forums.iis.net that discusses UNC content, IIS 7 and Samba.&nbsp; </P>
<P mce_keep="true"><A href="http://forums.iis.net/p/1158781/1909100.aspx">http://forums.iis.net/p/1158781/1909100.aspx</A></P>
<P mce_keep="true">Great stuff!</P>
<P mce_keep="true">Steve</P><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7138941" width="1" height="1">]]></description>
   <dc:creator>Steve Schofield</dc:creator>
   <dc:date>7/2/2009 4:41:47 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Azure - My head in the cloud]]></title>
   <link>http://feedproxy.google.com/~r/goeleven/latest/~3/TKkebwJkYQ8/entryDetail.aspx</link>
   <description><![CDATA[You might have noticed it already over the past few months, the focus of my blog is starting to shift, even though I haven't blogged to much... Ever since Azure, Microsoft's cloud platform, has been announced at PDC last year, I have been playing with this new environment. I've been in a learning mode mostly as I try to figure out how to best build systems in an endlessly scalable world where some of the staple products, such as databases, don't exist or don't make sense.<br/><br/>One of the biggest enablers for learning more about this product has been a special interest group that I've set up internally at <a href="http://www.capgemini.be/">Capgemini</a>. In this SIG quite a few of my colleagues teamed up with me to discuss various questions and play around with the bits as new CTP's came out. Some of the most important questions that have been discussed are e.g. 'what kind of enterprise would benefit from cloud computing?', 'how do you deploy a system that has scaled so much that you can't possible take everything down at once?', 'How do I store data if there is no concept of a database?', 'How to maintain integrity if the platform isn't going to support distributed transactions?', 'What kinds of architectures are suitable for such an environment?' and so much more.<br/><br/>Even though I have been in this learning mode mostly, now on I believe I know enough about it to start sharing some of the knowledge I gained during these SIG's and my personal experiments. So expect yourself to see some more blog posts around here on the topic of Azure in the upcoming months...<br/><br/>Note: this also means that I'm very eager to hear any question you might have about the Azure platform. So in case you have any, send me a mail on yves ad goeleven dot com.]]></description>
   <dc:creator>Yves goeleven</dc:creator>
   <dc:date>7/2/2009 1:29:06 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Client App Dev MVP for 2009!]]></title>
   <link>http://feedproxy.google.com/~r/aaguiar/~3/QIzh87GovJw/client-app-dev-mvp-for-2009.aspx</link>
   <description><![CDATA[<P>I'll be an MVP for Client App Development for 2009! </P>
<P>I want to thank to all the people in Microsoft Uruguay and Latinoamerica that kept inviting me to talk in their events. </P>
<P><A href="https://mvp.support.microsoft.com/default.aspx/profile/andres.aguiar" mce_href="https://mvp.support.microsoft.com/default.aspx/profile/andres.aguiar">Here</A> is my almost-empty MVP Profile. I'll complete it during the following days.</P>
<P>Thanks! </P><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7138760" width="1" height="1"><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/aaguiar?a=QIzh87GovJw:AbCf0jsIB9Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/aaguiar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/aaguiar?a=QIzh87GovJw:AbCf0jsIB9Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/aaguiar?i=QIzh87GovJw:AbCf0jsIB9Y:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/aaguiar?a=QIzh87GovJw:AbCf0jsIB9Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/aaguiar?i=QIzh87GovJw:AbCf0jsIB9Y:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/aaguiar/~4/QIzh87GovJw" height="1" width="1"/>]]></description>
   <dc:creator>Andres Aguiar</dc:creator>
   <dc:date>7/2/2009 10:57:00 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[SharePoint Search-as-You-Type with jQuery]]></title>
   <link>http://weblogs.asp.net/jan/archive/2009/07/02/sharepoint-search-as-you-type-with-jquery.aspx</link>
   <description><![CDATA[<p>Already since a long time I’ve been thinking about a web part that would search-as-you-type using SharePoint’s search engine. The idea behind this concept is that while you’re typing a query in the search box, asynchronously the query is already executed and the results are being displayed. Every time the query is changed, the results will be updated dynamically. This will allow users to see the results without going to the Search Results page, and even more: they don’t have to go back to alter their query. In such a scenario you want to avoid full page postbacks of course, so AJAX-techniques have to be used to accomplish this. A while back my first approach would be to make use of <a href="http://ajax.asp.net" mce_href="http://ajax.asp.net">ASP.NET AJAX</a> to build the necessary functionality in a web part for example. But during the last couple of weeks I’ve become a really big fan of using <a href="http://jquery.com" mce_href="http://jquery.com">jQuery</a> Javascript Library in SharePoint sites, and it happens to be that the search-as-you-type functionality can be created with the help of jQuery very easily. The beauty of this solution is that everything is happening on the client (in the web browser), so there is absolutely no requirement to deploy something to the server (nowadays this seems to be called ‘Assembly Free’).</p><p>Before you get too excited; it’s quite obvious that when you use this sample on a production server with lots of users, the SharePoint Search component can be hammered with lots of requests (which can be bad for the performance). So use it wisely! To minimize the impact on the performance of the server, the code will only execute a search query when (by default) three characters are entered, and while the user is still typing no queries are executed at all (there’s a configurable delay).</p><p>So how is all of this implemented? Well the idea is to display an HTML textbox in a Content Editor Web Part. Using the jQuery library, an eventhandler is added to that textbox for every keypress. When there are more than three characters (value is configurable) entered in the textbox, jQuery will make an asynchronous call to the Search web services (/_layouts/search.asmx). The resulting found items are displayed in an HTML div element which is positioned right below the textbox, on top of all other HTML elements. The user can select a result using the arrow keys, or by hovering the mouse over a result. When a result is selected by pressing the enter key or by clicking on it, the user is redirected to the corresponding page or document. You can see the code working in a web part in the following animated screenshot.</p><p><img src="http://storage.tielens.name/SharePointQuickSearchWebPartDemo.gif" mce_src="http://storage.tielens.name/SharePointQuickSearchWebPartDemo.gif">&nbsp;</p><p>If you want to try this out yourself, just follow these steps. Once again, there is absolutely nothing you need to tweak and/or deploy on your server. You can do all of this through the web user interface of SharePoint.</p><ol><li>Download the <a href="http://storage.tielens.name/SharePointQuickSearchWebPartCode.txt" mce_href="http://storage.tielens.name/SharePointQuickSearchWebPartCode.txt">code file here</a>.<br></li><li>Add a new <b>Content Editor Web Part</b>, which is available in SharePoint out-of-the-box, to a page.</li><li>Modify the newly added web part, use the <b>Source Editor</b> button in the properties task pane to add the downloaded code.</li><li>Optionally you can give the web part a meaningful <b>Title </b>in the <b>Appearance </b>group (e.g. <b>Quick Search</b>).<br></li></ol><p>When you check out the code, notice that the first line is a reference to the jQuery library, hosted on Google’s servers. If you plan to use this in production, I’d recommend you to host the jQuery library in your own environment so you have to update the reference with your own URL.<br></p><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7138579" width="1" height="1">]]></description>
   <dc:creator>Jan Tielens</dc:creator>
   <dc:date>7/2/2009 5:28:26 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[My MVP Award is Renewed!]]></title>
   <link>http://geekswithblogs.net/joycsharp/archive/2009/07/02/my-mvp-award-is-renewed.aspx</link>
   <description><![CDATA[<p><a href="http://weblogs.asp.net/blogs/ashraful/mvp_logo_4A3FB0EA.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="mvp_logo" border="0" alt="mvp_logo" src="http://weblogs.asp.net/blogs/ashraful/mvp_logo_thumb_1699D53D.png" width="135" height="204" /></a> </p>  <p><font size="2" face="ve">Yesterday I’ve been informed that I’ve gained the Most Valuable Professional award again for next year, in ASP.NET category. This is the third time I have received this award, which is pretty exciting. </font></p>  <p><font size="2" face="ve">Here is my MVP profile: </font><a title="https://mvp.support.microsoft.com/profile/Ashraful" href="https://mvp.support.microsoft.com/profile/Ashraful"><font size="2" face="ve">https://mvp.support.microsoft.com/profile/Ashraful</font></a></p>  <p><font size="2" face="ve">Special thanks to few Microsoft employees including Technical Fellow <a href="http://blogs.msdn.com/bharry/archive/2009/03/10/lots-of-news.aspx" target="_blank">Brain Harry</a>, Sr. Program Manager <a href="http://www.misfitgeek.com/2009/03/09/EmailReporterVSTS2008LoadTestPlugin.aspx" target="_blank">Joe Stagner</a>, Lead Product Manager <a href="http://channel9.msdn.com/shows/This%20Week%20On%20Channel%209/This-Week-on-C9-Jeff-Sandquist-and-Bill-Gates-stories/" target="_blank">Dan Fernandez</a> and South Asia MVP Lead <a href="http://blogs.technet.com/southasiamvp/archive/2009/03/13/a-vsts-plug-in-by-an-mvp.aspx" target="_blank">Abhishek Kant</a> who encouraged and supported me in several ways last year. </font></p>  <p>Thanks Microsoft for this recognition, which will encourage me to keep my passion on MS products continued with more optimization and greater efforts.</p>  <p>   </p><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:718b61d0-41bd-43f2-bad0-e654652b66df" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/community" rel="tag">community</a>,<a href="http://technorati.com/tags/mvp" rel="tag">mvp</a>,<a href="http://technorati.com/tags/developer" rel="tag">developer</a></div><p><a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=133214"><img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=133214" 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/joycsharp/aggbug/133214.aspx" width="1" height="1" />]]></description>
   <dc:creator>Mohammad Ashraful Alam</dc:creator>
   <dc:date>7/2/2009 12:54:26 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[SQLite for C# – Part 6 – SQLite Connection String Definitions]]></title>
   <link>http://www.csharphacker.com/technicalblog/index.php/2009/07/02/sqlite-for-c-%e2%80%93-part-6-%e2%80%93-sqlite-connection-string-definitions/</link>
   <description><![CDATA[Alright &#8211; so we are now ready to get started in earnest. The first thing we need to do when connecting to a database is setup the connection string. This article covers the various connection string parameters available for the .Net version for SQLite.
Most Simple &#8211; Data Source
Format: &#8220;Data Source=[DBFileName]&#8221;
Example: @&#8221;Data Source=C:\CSharpHackerDemo.db3&#8243;
This connection string will [...]]]></description>
   <dc:creator>Gareth</dc:creator>
   <dc:date>7/2/2009 12:30:52 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[New (Beta) Patterns & Practices from Microsoft released]]></title>
   <link>http://blog.svencipido.be/Blog/New+Beta+Patterns++Practices+From+Microsoft+Released.aspx</link>
   <description><![CDATA[<p>
   Microsoft just released their latest addition to the P&amp;P library.&nbsp; This time
   it's a guidance about Acceptance test (Vol 1).
</p>
<p>
   <img src="http://blog.svencipido.be/Blog/content/binary/clip_image001_2.jpg" border=0>
</p>
<p>
   The book was <a href="http://blog.svencipido.be/Blog/2+New+Microsoft+Patterns++Practices+Guidelines.aspx">previously</a> already
   announced in beta 1, now it's the Beta 2 release.
</p>
<p>
   Find all the info at the Codeplex site : <a href="http://codeplex.com/TestingGuidance">http://codeplex.com/TestingGuidance</a>
</p>
<img width="0" height="0" src="http://blog.svencipido.be/Blog/aggbug.ashx?id=c1d635fa-a56f-449d-aef8-313e096a31a7" />
<br />
<hr />My thoughts, shares,... with .Net and Microsoft - The blog of Sven Cipido]]></description>
   <dc:creator>Sven Cipido</dc:creator>
   <dc:date>7/1/2009 11:58:35 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[The Killer Twitter App Hasn’t Been Built Yet]]></title>
   <link>http://feedproxy.google.com/~r/JustSayinMoreWords/~3/prTCiNZODNo/</link>
   <description><![CDATA[Imagine an application that acts as a super proxy for your Twitter account. The server acts as the client, pulling updates from the API. Updates are relayed to your iPhone and desktop clients in near real-time1 with XMPP. No more multi-device API limitations getting in your way. Add in analytics, trends (specific to your follow [...]]]></description>
   <dc:creator>John Sheehan</dc:creator>
   <dc:date>7/1/2009 10:08:24 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[WPF Localization Guidance]]></title>
   <link>http://feedproxy.google.com/~r/JanivRatsonBlog/~3/ey-VwYD1xFM/wpf-localization-guidance.aspx</link>
   <description><![CDATA[<p>When you limit your product&#39;s availability to only one language, you limit your potential customer base to a fraction of our world’s <a href="http://www96.wolframalpha.com/input/?i=world+population" target="_blank"><font color="#0065e2">6.67 billion population</font></a>. If you want your applications to reach a global audience, cost-effective localization of your product is one of the best and most economical ways to reach more customers. <br />It is imperative to define a globalization strategy early in the development lifecycle, in order to more quickly accommodate demands for future product releases that can reach global markets.</p>
<p>Application localization is not a trivial task for any type of application scenario. The process is based on a few core principles that apply to WPF as they do to any other type of client application with a user interface. <br />It is important for developers to understand the basic concepts of regional data display, locale-specific user interface customization and how to serve localized resources in both static and dynamic fashion. These concepts are very similar for most client applications but the actual process of localizing the static user interface components tends to vary between environments and WPF introduces yet another approach to resource localization for XAML resources. </p>
<p><a href="http://www.west-wind.com/Weblog/" target="_blank"><font color="#0065e2">Rick Strahl</font></a> &amp; <a href="http://msdn.microsoft.com/en-us/asp.net/aa336538.aspx" target="_blank"><font color="#0065e2">Michele Leroux Bustamante</font></a> have published a Localization Guidance whitepaper (June 2009). It starts with a quick review of general localization considerations for completeness, discusses how the .NET Framework handles resources for all applications, and then focuses specifically on localization scenarios for WPF explaining some of the trade-offs within each approach. <br />This whitepaper is complete and may be updated according to YOUR feedbacks. <br />Download it (and some source code) here: <a href="http://wpflocalization.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29389" target="_blank"><font color="#0065e2">WPF Localization Guidance Whitepaper</font></a>.</p>
<p>You may also be interested in Microsoft&#39;s <a href="http://msdn.microsoft.com/en-us/library/ms788718.aspx" target="_blank"><font color="#0065e2">WPF Globalization and Localization Overview</font></a>, which has a lot in common with RIck and Michele&#39;s guidance. <br />And how would you implement the the translation of application resources into localized versions for the specific cultures that the application supports? <br />When you localize in WPF, you use the APIs in the <a href="http://msdn.microsoft.com/en-us/library/system.windows.markup.localizer.aspx" target="_blank"><font color="#0065e2">System.Windows.Markup.Localizer</font></a> namespace. These APIs power the <a href="http://msdn.microsoft.com/en-us/library/ms771568.aspx" target="_blank"><font color="#0065e2">LocBaml Tool Sample</font></a> command-line tool, which was developed by Microsoft to present a sample that uses some of the localization APIs and illustrates how you might write a localization tool. </p>
<p>There is also the CodePlex <a href="http://wpflocalizeextension.codeplex.com/" target="_blank"><font color="#0065e2">WPF Localizationan Extention</font></a> project which is a (FREE) stable extension project to localize any type of DependencyProperties on DependencyObjects.</p>
<p>As you can see, there are many (and good) ways to implement localization in WPF project. If you know any other great localization tools, please share it with us. <br />Thanks, <br />J.</p><img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=352176" width="1" height="1"><img src="http://feeds.feedburner.com/~r/JanivRatsonBlog/~4/ey-VwYD1xFM" height="1" width="1"/>]]></description>
   <dc:creator>Janiv Ratson</dc:creator>
   <dc:date>7/1/2009 4:00:08 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[MVP Award 2009]]></title>
   <link>http://tomicic.de/2009/07/01/MVPAward2009.aspx</link>
   <description><![CDATA[<p>
Gerade erreichte mich eine sehr erfreuliche Nachricht:
</p>
<blockquote style="MARGIN-RIGHT: 0px" dir=ltr> 
<p>
<span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 12pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><font color=#000000><em><img border=0 src="http://tomicic.de/content/binary/Capture.JPG">
<br>
<br>
"... Sehr geehrter Herr Tomicic, herzlichen Glückwunsch! Wir freuen uns, Ihnen den <strong>Microsoft®
MVP Award 2009</strong> verleihen zu können!&nbsp;..." </em></font></span>
</p>
</blockquote> 
<p>
Da freue ich mich aber auch. Vielen herzlichen Dank! 
</p>
<p>
Die MVPs sind eine begeisternde Truppe&nbsp;von Technologie-Enthusiasten. Ich genieße
die Treffen mit den MVPs und die Diskussionen, wie zuletzt beim Software Strategy
Summit in Köln [2]. 
</p>
<p>
Und ich bin froh und fühle mich wirklich geehrt ein weiteres Jahr dazu zählen zu dürfen.&nbsp;Klasse!
:-)
</p>
<p>
[1] <a href="http://mvp.support.microsoft.com">http://mvp.support.microsoft.com</a> 
<br>
[2] <a href="http://blogs.msdn.com/mvpawardprogram/archive/2009/05/18/german-mvp-interviews-steve-ballmer.aspx">http://blogs.msdn.com/mvpawardprogram/archive/2009/05/18/german-mvp-interviews-steve-ballmer.aspx</a>
<br>
</p>
<img width="0" height="0" src="http://tomicic.de/aggbug.ashx?id=e0a5e6ec-ab8c-4690-8c70-c37014d5f1dd" />]]></description>
   <dc:creator>Damir Tomicic</dc:creator>
   <dc:date>7/1/2009 9:43:52 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[304 Your images from a database]]></title>
   <link>http://weblogs.asp.net/jeff/archive/2009/07/01/304-your-images-from-a-database.aspx</link>
   <description><![CDATA[<p>I was reading somewhere about some anecdotal evidence that Google doesn't like to index images that don't have some kind of modification time on them. When I relaunched <a href="http://coasterbuzz.com/" target="_blank" mce_href="http://coasterbuzz.com/">CoasterBuzz</a> last year, I moved all of my coaster pr0n to the database, and I've since noticed that none of the images are in fact indexed. Bummer.</p>

<p>This also pointed out to me that I was doing something annoying. I was reading the data out every time for every image request. Not exactly the most efficient use of resources. Static files come down with information in the headers indicating when they were last modified (IIS, and presumably any other Web server does this), so the next time the browser makes the request, it the server compares the time in the request header with that of the file, and returns a 304 "not modified" response, and no file.</p>

<p>That seemed like an obvious thing to do, even if it has no impact on Google indexing. Fortunately, it just required some refactoring of the IHttpHandler I had doing the work.</p>

<p>Sidebar: This is probably the point at which some people will make a big stink about serving images out of a database, and how it's bad for performance or scalability. That's a fine argument to make, but outside of doing obviously stupid things, this is not an issue here. I'd prefer to address performance and scalability problems if I have them, not when I might have them, or never have them. Seriously, this is a site that does somewhere between a half-million and a million page views a month depending on the season. There are no performance issues here.</p>

<p>So anyway, assuming for a moment that "photo" is a business object in this code, and it was determined by a query value to the handler, this is the meaty part of the ProcessRequest() method of the handler:</p>
<code>if (!String.IsNullOrEmpty(context.Request.Headers["If-Modified-Since"]))<br>{<br>&nbsp;&nbsp;&nbsp; CultureInfo provider = CultureInfo.InvariantCulture;<br>&nbsp;&nbsp;&nbsp; var lastMod = DateTime.ParseExact(context.Request.Headers["If-Modified-Since"], "r", provider);<br>&nbsp;&nbsp;&nbsp; if (lastMod == photo.SubmitDate.AddMilliseconds(-photo.SubmitDate.Millisecond))<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; context.Response.StatusCode = 304;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; context.Response.StatusDescription = "Not Modified";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>&nbsp;&nbsp;&nbsp; }<br>}<br>byte[] imageData = GetImageData(photo);<br>context.Response.OutputStream.Write(imageData, 0, imageData.Length);<br>context.Response.Cache.SetCacheability(HttpCacheability.Public);<br>var adjustedTime = DateTime.SpecifyKind(photo.SubmitDate, DateTimeKind.Utc);<br>context.Response.Cache.SetLastModified(adjustedTime);</code>
<p>Yes, it probably needs to be refactored, and yes, it should probably be used in an IHttpAsyncHandler. But let's go through what's happening, starting at the bottom.</p>
<p>The last few lines write out the actual bytes of the image (MIME type was set in previous code), then set the cacheability and the modification time of the image, which in my case is stored with the bits. The goofy part is where we create a new DateTime to make its kind known. If you don't explicitly state that it's a UTC time, the SetLastModified() method apparently adjusts it. I happen to store most times as UTC, so that was one less thing to worry about. This adds a header in the response called Last-Modified, and gives it a value that looks something like "Sun, 22 Jun 2003 16:27:19 GMT" (note that it truncates milliseconds and ticks, as you may expect).</p>
<p>Now, on subsequent requests for the same image, the browser adds an If-Modified-Since header to the request, with the same date and time as the value. Here we're checking to see if the value is present on the request, and if so, let's see if we should do a 304. If it's there, we parse it into a DateTime and compare the time with the one stored in the business object. We're stripping off the milliseconds because the database will fill them in on our DateTime, and the incoming request doesn't have the same high resolution. If we have a match, we send out the 304 and return, not sending any more data or reading the bytes from the database.</p>
<p>You can do this pretty easily in ASP.NET MVC as well.</p>
<code>public ActionResult Image(int id)<br>{<br>&nbsp;&nbsp; &nbsp;var image = _imageRepository.Get(id);<br>&nbsp;&nbsp; &nbsp;if (image == null)<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;throw new HttpException(404, "Image not found");<br>&nbsp;&nbsp; &nbsp;if (!String.IsNullOrEmpty(Request.Headers["If-Modified-Since"]))<br>&nbsp;&nbsp; &nbsp;{<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;CultureInfo provider = CultureInfo.InvariantCulture;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var lastMod = DateTime.ParseExact(Request.Headers["If-Modified-Since"], "r", provider).ToLocalTime();<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (lastMod == image.TimeStamp.AddMilliseconds(-image.TimeStamp.Millisecond))<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;{<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Response.StatusCode = 304;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Response.StatusDescription = "Not Modified";<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return Content(String.Empty);<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br>&nbsp;&nbsp; &nbsp;}<br>&nbsp;&nbsp; &nbsp;var stream = new MemoryStream(image.GetImage());<br>&nbsp;&nbsp; &nbsp;Response.Cache.SetCacheability(HttpCacheability.Public);<br>&nbsp;&nbsp; &nbsp;Response.Cache.SetLastModified(image.TimeStamp);<br>&nbsp;&nbsp; &nbsp;return File(stream, image.MimeType);<br>}</code>
<p>Let me start by saying that this was something I just prototyped. It's in dire need of refactoring, as much of the logic isn't stuff you'd normally put in a controller action. I think there's a method for returning nothing on the Controller base, but I don't remember off the top of my head. If there is, you'd use that instead of Content() in the 304 case.</p><p>I hope this helps someone out! <br></p>
<img src="http://weblogs.asp.net/aggbug.aspx?PostID=7137681" width="1" height="1">]]></description>
   <dc:creator>Jeff Putz</dc:creator>
   <dc:date>6/30/2009 11:28:56 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Microsoft Community TechED]]></title>
   <link>http://cnetug.wordpress.com/2009/07/01/microsoft-community-teched/</link>
   <description><![CDATA[June 27, 2009
Keynote:
Preethi Narayanan Director,iSOFT
Session I
What’s New in Silverlight 3
Session II
Infragistics
Session III
Windows 7 for Developers
Session IV
Welcome to ASP.NET 4.0 with VS 2010
Session V
Introduction to Microsoft Exchange Server 2010
Session VI
Virtualization 360
Session VII
Windows Server 2008 R2


End Note:
Ravickumar M Senior Technical Manager, iSOFT 
Photographs:
 

Posted in Microsoft Community Tech ED       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cnetug.wordpress.com&blog=8347785&post=19&subd=cnetug&ref=&feed=1" />]]></description>
   <dc:creator>Fredrick J Sahaya</dc:creator>
   <dc:date>6/30/2009 11:19:18 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[VisualStudio.ImmediateWindow = Eclipse.Display]]></title>
   <link>http://community.devpinoy.org/blogs/lamia/archive/2009/06/30/visualstudio-immediatewindow-eclipse-display.aspx</link>
   <description><![CDATA[<p>I had a lot of things to blog during the past 3 months but I just couldn&#39;t get myself to write any of them online.<br /><br />Well, since I&#39;ve been using the Visual Studio.Net immediate window a lot lately so I thought it would be useful for fellow eclipse users to know that an equivalent tool exist in Eclipse.<br /><br /><br />I don&#39;t have to write what&#39;s already written, right? Just follow the link below, it&#39;s pretty much self-explanatory.<br /><br /><a href="http://askville.amazon.com/debugging-Eclipse-Visual-Studio-equivalent-Window-interactive-top-level/AnswerViewer.do?requestId=9072383">http://askville.amazon.com/debugging-Eclipse-Visual-Studio-equivalent-Window-interactive-top-level/AnswerViewer.do?requestId=9072383</a></p><div style="clear:both;"></div><img src="http://community.devpinoy.org/aggbug.aspx?PostID=34945" width="1" height="1">]]></description>
   <dc:creator>DevPinoy.Org</dc:creator>
   <dc:date>6/30/2009 11:14:14 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[@cloudcamppdx]]></title>
   <link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/EOdV5ff2QXI/post.aspx</link>
   <description><![CDATA[<p><a href="http://www.facebook.com/adron" target="_blank"><img style="margin: 0px 0px 15px; display: inline" align="right" src="http://photos-b.ak.fbcdn.net/hphotos-ak-snc1/hs109.snc1/5085_117811106084_604781084_2904049_96365_n.jpg" width="240" height="180" /></a> </p>  <p>Attended Cloud Camp PDX today.&#160; Great overall conversation, with a lot of familiar faces &amp; people of the Portland brain trust participating.</p>  <p><a href="http://www.facebook.com/adron" target="_blank"><img style="margin: 15px 15px 15px 0px; display: inline" align="left" src="http://photos-b.ak.fbcdn.net/hphotos-ak-snc1/hs089.snc1/5085_117809966084_604781084_2904033_2798765_n.jpg" width="240" height="180" /></a></p>  <p>The conference started off with a large group gathering in the main cafeteria room.&#160; There was an unpanel put together with a few cloud gurus.&#160; After a round of questions the main sessions where laid out and everyone started out to the break out session.&#160; Open session conference topics ranges from couchdb to cloud security, to the glorious tips and tricks of Amazon.&#160; Overall a great bunch of discussions really breaking down what a cloud is and what a cloud does.</p>  <p></p>  <p>Overall a lot of fun, great food, and good people with great minds.&#160; One has to love to Portland tech scene.&#160; If there was ever a reason for a company to locate in Portland, this room full of talent discussing the bleeding edge of technology is a prime reason.</p>  <p>After that we all broke into second set sessions.&#160; I went to the &quot;Is Cloud Computing a return to the time share, maintenance model, and what does that mean?&quot;.&#160; I have to say, I don't think it will ever be an honest return to truly dumb terminals and server focus, it will continue to be mixed.</p>  <p>That was it for me, being the host I had cleanup and such, so hope all had fun.&#160; I had a blast as I tend to at nerd events.&#160; All in all, a good day.</p><div class="socialBookmarksContainer"><a rel="nofollow" href="http://digg.com/submit/?url=http://adronbhall.com/blogs/technology__software_development/post/2009/06/30/cloudcamppdx.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/2009/06/30/cloudcamppdx.aspx&amp;title=@cloudcamppdx" 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/2009/06/30/cloudcamppdx.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/2009/06/30/cloudcamppdx.aspx&amp;title=@cloudcamppdx" 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/2009/06/30/cloudcamppdx.aspx&amp;title=@cloudcamppdx" 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/2009/06/30/cloudcamppdx.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><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/EOdV5ff2QXI" height="1" width="1"/>]]></description>
   <dc:creator>Adron Hall</dc:creator>
   <dc:date>6/30/2009 10:56:04 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[What is Unit Testing?]]></title>
   <link>http://www.codethinked.com/post/2009/06/30/What-is-Unit-Testing.aspx</link>
   <description><![CDATA[<p>The title of this post actually isn’t a question that I get asked very often. I think the reason that I don’t get asked this very often is because of two different reasons. The first reason is that people (and programmers especially) are embarrassed to admit when they don’t know something that they feel like they should know. Secondly, many developers out there think they know exactly what you are talking about when someone says “unit testing”.</p>  <p>Of those developers who think they know what unit testing actually means, I would be willing to bet that only about 10% really do. You see, the problem is that when most developers are asked to define unit testing they will say something like “tests that are run against a project using a unit testing framework”. That is kinda right… well… not really. It isn’t really right at all. In fact, calling frameworks like NUnit, xUnit, MbUnit, MSTest, etc… “unit testing frameworks” is inaccurate. They are instead “automated testing frameworks” which can be used to execute any number of kinds of tests. One of these kinds of tests just happens to be unit tests. There are also integration tests, performance tests, load tests, etc…</p>  <p>Okay, so what exactly is a unit test? It is a test which verifies a “unit”, or the smallest piece of an application which is able to be tested. Ideally, when writing a unit test in C#, you’d want to isolate an individual class and write tests against only its functionality. The developers doesn’t want to pull in external dependencies and doesn’t want to access external processes or services. Unit testing is all about testing small pieces in isolation.</p>  <p>So why would we want to write tests like this? Many reasons…</p>  <p><strong>They are fast</strong>. Have you ever worked in a system that mixes unit tests and integration tests? How long did they take to run? I have worked in a handful of systems that weren’t very large and still had suites of tests that took 10+ minutes to run. How often do you think that developers are going to run these? Not very often at all, and being able to run your unit tests quickly and easily is very important to having quick feedback while developing. Forcing developers to sit through minutes of tests will guarantee that your tests will rarely get run. A broken test found after a developer has moved on to another task will take them substantially longer to fix than one they find right away.</p>  <p><strong>They are reliable</strong>. If all of your tests only operate in memory and don’t touch the disk, go across the network, query from a database, etc… then we can be assured that these tests will, for the most part, run smoothly. You won’t have to deal with numerous different settings, connection strings, external processes, etc… Tests which don’t run reliably, or can break frequently will merely frustrate developers and keep them from running them. Remember, tests are useless if they aren’t run.</p>  <p><strong>They are accurate</strong>. By this I mean that since they only test very small pieces of functionality it is often quite easy to tell what has broken when the test fails. In a test that crosses a wide swatch of the application, it can often be much harder to figure out where the breakage actually occurred. Having pinpoint tests makes sure that you can find your regressions quickly.</p>  <p><strong>They are flexible</strong>. Applications are full of unexpected events. But if they are unexpected, then how can we make them happen in a reliable manner? How can we force a database to throw an exception during a query? Well, in many cases we probably can’t. These are the cases where unit tests allow us to fake dependencies in order to raise exceptions or to cause situations that would otherwise not likely come up during normal execution. Sometimes we don’t care about these events, but sometimes we do, and when we do we need to have some way to force them so that we know how our application is going to respond.</p>  <p>Does this mean that if we are writing integrations tests then we don’t need to write integration tests? Of course not! What it does mean is that integration tests need to be separated out from your unit tests so that they can be run in a single environment away from the developer’s desktop. Ideally this would occur on the build server. This way the developer doesn’t have to worry about long running or brittle tests. If all of the unit tests passed, but the integration tests didn’t, then the developers can take the time to figure out why these tests are executing correctly.</p>  <p>This is all great, why isn’t everyone writing unit tests? Well, unfortunately unit tests aren’t a cure-all. Many people complain that writing unit tests is a burden that they just don’t have time for. In fact, <a href="http://sdk.org.nz/2009/02/25/why-unit-testing-is-a-waste-of-time/" rel="nofollow">I came across a post today</a> that said just that. I think that this is a myth that is generally driven by poorly designed software. Now I know that this is a generalization that is made quite frequently, and one that is even harder to back up, but I really think that this is the truth.</p>  <p>In an ideal system you would be writing unit tests as you are writing your classes, and then you would writing your integration tests as you integrate them in with the rest of the system. In some larger systems, units tests can be unavoidable. Often different pieces of the system are being written before their dependencies have even been created. Or they are created by separate teams that are simply developing against an interface. In these cases the unit tests would be written long before integration tests are even possible.</p>  <p>Another complaint that I often see is people complaining about brittle unit tests because they are using facilities such as MSTest’s accessors which allow developers to directly tests private methods (which I personally think is very bad practice, but that is another rant). Either that or they haven’t factored out methods in classes enough and they are trying to test way too much. Getting used to testing public interfaces of classes and not relying on internal implementations will go a long way toward having less brittle tests.</p>  <p>Automated testing is an indispensible tool, and unit testing is just one of the tasks that you should be performing with it. Testing your application from top to bottom is very important, but making sure that the individual pieces of your application work in isolation is often the only way to reliably and quickly exercise a lot of the code in your application.</p>  <p>Next time you are writing an application, give it a shot. Split out your unit tests and integration tests so that they can be easily run separately. You may not notice any advantage at first, but once your suite of tests grows large you’ll find that you are able to write new code much faster because you have almost instant feedback on regressions in your tests.</p><div class="feedflare">
<a href="http://feeds.codethinked.com/~ff/Codethinked?a=vmNV6oUoDYE:QJ4v7aFqwZ0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Codethinked?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.codethinked.com/~ff/Codethinked?a=vmNV6oUoDYE:QJ4v7aFqwZ0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Codethinked?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.codethinked.com/~ff/Codethinked?a=vmNV6oUoDYE:QJ4v7aFqwZ0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Codethinked?i=vmNV6oUoDYE:QJ4v7aFqwZ0:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Codethinked/~4/vmNV6oUoDYE" height="1" width="1"/>]]></description>
   <dc:creator>Justin Etheredge</dc:creator>
   <dc:date>6/30/2009 8:02:32 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Finally, I am now Microsoft Certified!]]></title>
   <link>http://dbalink.wordpress.com/2009/06/30/finally-i-am-now-microsoft-certified/</link>
   <description><![CDATA[June 30, 2009 has been marked in my calendar.  It was on top of my to-do list this year. The item is now marked with a &#8220;check&#8221;. I just passed my first-ever attempt at a Microsoft certification &#8211; MCTS: SQL Server 2005 Implementation and Maintenance.
Although I have some actual experiences on the database (core maintenace [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbalink.wordpress.com&blog=2487604&post=780&subd=dbalink&ref=&feed=1" />]]></description>
   <dc:creator>Marlon Ribunal</dc:creator>
   <dc:date>6/30/2009 6:13:03 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Lifetime of a software methodology]]></title>
   <link>http://feedproxy.google.com/~r/Iserializable/~3/pmDkoDao6E8/lifetime-of-a-software-methodology.aspx</link>
   <description><![CDATA[<p>&#160;</p>  <p>I think I heard Jerry Seinfeld say that the life of an actor are:</p>  <li>Who’s Jerry Seinfeld?</li>  <li>Get me Jerry Seinfeld</li>  <li>Get me a young Jerry Seinfeld</li>  <li>Who’s Jerry Seinfeld?</li>  <p>&#160;</p>  <p><strong>Which really feels these days like:</strong></p>  <ul>   <li>What’s “CMM”</li>    <li>Let’s do “CMM”</li>    <li>Let’s do an adapted version of “CMM”</li>    <li>Here’s a better,lighter “CMM”</li>    <li>What’s “CMM”?</li>    <li></li>    <li>What’s “Agile”</li>    <li>Let’s do “Agile”</li>    <li>Let’s do an adapted version of “Agile”</li>    <li>Here’s a better, lighter “Agile”</li>    <li>What’s “Agile”?</li>    <li></li>    <li>What’s “Scrum”</li>    <li>Let’s do “Scrum”</li>    <li>Let’s do an adapted version of “Scrum”</li>    <li>Here’s a better, lighter “Scrum”</li>    <li>What’s “Scrum”?</li>    <li></li>    <li>What’s “Lean”</li>    <li>Let’s do “Lean”</li>    <li>Let’s do an adapted version of “Lean”</li>    <li>Here’s a better, lighter “Lean”</li>    <li>What’s “Lean”?</li> </ul><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7137395" width="1" height="1"><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Iserializable?a=pmDkoDao6E8:jl5GG2PiQww:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Iserializable?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Iserializable?a=pmDkoDao6E8:jl5GG2PiQww:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Iserializable?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Iserializable?a=pmDkoDao6E8:jl5GG2PiQww:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Iserializable?i=pmDkoDao6E8:jl5GG2PiQww:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Iserializable/~4/pmDkoDao6E8" height="1" width="1"/>]]></description>
   <dc:creator>Roy Osherove</dc:creator>
   <dc:date>6/30/2009 3:17:12 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[LINQ: Quickly Create Dictionaries with ToDictionary]]></title>
   <link>http://feedproxy.google.com/~r/dotnetmvp/~3/lUJLn1BBI2E/linq-quickly-create-dictionaries-with-todictionary.aspx</link>
   <description><![CDATA[<p><a href="http://blog.donnfelker.com/" target="_blank">Donn Felker</a> recently blogged about a neat little <a href="http://blog.donnfelker.com/post/LINQ-Any()-vs-Count().aspx" target="_blank">extension method in LINQ called Any()</a>.&#160; If you simply want to know if a sequence contains any elements, many people use &quot;.Count() &gt; 0&quot; which will walk the entire sequence to compute the count whereas .Any() will stop walking as soon as it finds a single element.&#160; Easy and much more efficient.</p>  <p>It reminded me about another LINQ method I've used from time to time: ToDictionary().&#160; This method will allow you to quickly create a dictionary from any IEnumerable&lt;T&gt;.&#160; Let's start with some sample data that is in a List&lt;T&gt;:</p>  <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">   <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">     <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">IList&lt;Person&gt; people = <span style="color: #0000ff">new</span> List&lt;Person&gt;</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">                       {</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">                        <span style="color: #0000ff">new</span> Person {FirstName = <span style="color: #006080">&quot;Bob&quot;</span>, LastName = <span style="color: #006080">&quot;Smith&quot;</span>, SSN = <span style="color: #006080">&quot;1&quot;</span>},</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">                        <span style="color: #0000ff">new</span> Person {FirstName = <span style="color: #006080">&quot;Jane&quot;</span>, LastName = <span style="color: #006080">&quot;Doe&quot;</span>, SSN = <span style="color: #006080">&quot;2&quot;</span>},</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">                        <span style="color: #0000ff">new</span> Person {FirstName = <span style="color: #006080">&quot;Mike&quot;</span>, LastName = <span style="color: #006080">&quot;Johnson&quot;</span>, SSN = <span style="color: #006080">&quot;3&quot;</span>}</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">                       };</pre>
  </div>
</div>

<p>Converting this to a dictionary is pretty trivial without LINQ.&#160; Suppose we want to index these by SSN:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">var d = <span style="color: #0000ff">new</span> Dictionary&lt;<span style="color: #0000ff">string</span>, Person&gt;();</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">foreach</span>(var p <span style="color: #0000ff">in</span> people)</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">{</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    d.Add(p.SSN, p);</pre>

    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">}</pre>
  </div>
</div>

<p>But why waste our time doing all that when we can simply use LINQ's ToDictionary()?&#160; Just give it a lambda that selects the key and you're all set:</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">var indexedBySSN = people.ToDictionary(k =&gt; k.SSN);</pre>
  </div>
</div>

<p>Or perhaps you don't want the entire Person object.&#160; Maybe you just want a collection of last names indexed by Social Security Number (SSN).&#160; No problem --there's an overload that accepts two lambdas: one to select the key and one to select the value.</p>

<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
  <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
    <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">var lastNamesIndexedBySSN = people.ToDictionary(k =&gt; k.SSN, e =&gt; e.LastName);</pre>
  </div>
</div>

<p></p>

<p></p>

<p></p>

<p>There's also two more overloads that work the same as the two above, but allow you to also provide an IEqualityComparer&lt;T&gt; used to compare your keys.</p>

<p>Everyday I find more and more stuff in LINQ that helps me eliminate the mundane code and make my source more readable.</p>

<div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:92e29cd9-faad-4af7-af30-c8ccb1f3b459" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/.NET" rel="tag">.NET</a>,<a href="http://technorati.com/tags/LINQ" rel="tag">LINQ</a></div><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7137451" width="1" height="1"><img src="http://feeds.feedburner.com/~r/dotnetmvp/~4/lUJLn1BBI2E" height="1" width="1"/>]]></description>
   <dc:creator>Patrick Steele</dc:creator>
   <dc:date>6/30/2009 3:08:30 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Free Web Part (limited time!)]]></title>
   <link>http://geekswithblogs.net/Lance/archive/2009/06/30/free-web-part-limited-time.aspx</link>
   <description><![CDATA[<p>RSSBus (<a href="http://twitter.com/rssbus">@rssbus</a>) is promoting a "limited time offer - one per company" free 10-user site license for the RSSBus SharePoint Web Part.  I don't know how long it will be available, <a href="http://www.rssbus.com/order/options.aspx?sku=RWP2-A">but here is the link</a>.</p>
<p>The timing of this offer is quite nice for me since I have started the blog post series <a href="http://lancerobinson.net/archive/2009/06/29/10-diy-sharepoint-web-parts.aspx">"10 DIY SharePoint Web Parts"</a>.</p>
<p>Tags: <a href="http://technorati.com/tags/SharePoint">SharePoint</a>, <a href="http://technorati.com/tags/RSSBus">RSSBus</a>, <a href="http://technorati.com/tags/WebPart">WebPart</a></p><p><a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=133159"><img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=133159" 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/Lance/aggbug/133159.aspx" width="1" height="1" />]]></description>
   <dc:creator>Lance Robinson</dc:creator>
   <dc:date>6/30/2009 11:30:02 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[A New Role]]></title>
   <link>http://notgartner.wordpress.com/2009/06/30/a-new-role/</link>
   <description><![CDATA[On Monday this week an internal announcement was made about my future at Readify. The big news is that I’m transitioning out of a full-time consulting role to become Readify’s Chief Technology Officer (CTO). On one hand I am really excited about the opportunity but also humbled by the challenge ahead of me.
As a consultant [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=notgartner.wordpress.com&blog=307844&post=2998&subd=notgartner&ref=&feed=1" />]]></description>
   <dc:creator>Mitch Denny</dc:creator>
   <dc:date>6/30/2009 9:01:48 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[The Story Behind NotMyAirport.ca]]></title>
   <link>http://feedproxy.google.com/~r/mastermaq/~3/hISrSwV-Y-k/</link>
   <description><![CDATA[The discussion about what to do with the City Centre Airport has largely been monopolized by the pro-Muni crowd. A majority of the speakers at last week’s public hearings were either in favor of the status quo or of expanding scheduled service at ECCA. I suppose that shouldn’t be a surprise – supporters of the [...]]]></description>
   <dc:creator>Mack D. Male</dc:creator>
   <dc:date>6/30/2009 8:56:00 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Ruby On Rails For Microsoft Developers]]></title>
   <link>http://www.sapphiresteel.com/Ruby-On-Rails-For-Microsoft</link>
   <description><![CDATA[A great many Ruby books seem to work on the assumption that you absolutely must be developing either on a Mac or on Linux. It is refreshing, therefore, to find a book aimed at Windows users. Antonio Cangiano's book, Ruby on Rails for Microsoft Developers, is just such a book. I haven't had a chance to grab a copy yet but I've had a browse on Amazon and it looks just the ticket for Ruby On Rails developers on the MS platform. I must confess that I am also pleased to note (...)]]></description>
   <dc:creator>Huw Collingbourne</dc:creator>
   <dc:date>6/30/2009 7:09:06 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[May Chicago Architects Group Meeting]]></title>
   <link>http://geekswithblogs.net/tmurphy/archive/2009/05/15/may-chicago-architects-group-meeting.aspx</link>
   <description><![CDATA[<p><a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/WindowsLiveWriter/ChicagoArchitectsGroupJanuary2009Meeting_1396E/CAG_2.png"><img title="CAG" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="204" alt="CAG" width="204" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/WindowsLiveWriter/ChicagoArchitectsGroupJanuary2009Meeting_1396E/CAG_thumb.png" /></a> </p>
<p>The Chicago Architects Group will be holding its next meeting on May 28th.  Please come and join us and get involved in our architect community.</p>
<p><a target="_blank" href="http://chicagoarchitectsgroup.eventbrite.com/">Register</a></p>
<p><strong>Presenter</strong>: Sean Blanton <br />
<strong>Topic</strong>: Trends in Continuous Integration and Software Delivery<br />
<strong>Location</strong>: Microsoft - Downers Grove<br />
3025 Highland Pkwy<br />
Suite 300<br />
Downers Grove, IL 60515-5506 <br />
<strong>Time</strong>: 6:00 - Doors open at 5:30 </p><p><a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=132130"><img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&u=132130" 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/132130.aspx" width="1" height="1" />]]></description>
   <dc:creator>Tim Murphy</dc:creator>
   <dc:date>6/30/2009 6:33:22 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Stoners Please Pay First]]></title>
   <link>http://angryhacker.com/blog/archive/2009/06/29/stoners-please-pay-first.aspx</link>
   <description><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG00114-s" border="0" alt="IMG00114-s" src="http://angryhacker.com/blog/images/angryhacker_com/blog/WindowsLiveWriter/StonersPleasePayFirst_104DC/IMG00114-s_3.jpg" width="604" height="454" /></p><img src="http://angryhacker.com/blog/aggbug/45.aspx" width="1" height="1" />]]></description>
   <dc:creator>Angry Hacker</dc:creator>
   <dc:date>6/29/2009 6:43:30 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[Engage: Publish 5.4 Released]]></title>
   <link>http://weblogs.asp.net/christoc/archive/2009/06/29/engage-publish-5-4-released.aspx</link>
   <description><![CDATA[So it’s been way too long, 6 months to be pretty exact, since we had a new release for Engage: Publish . Well last Thursday it finally came! We released Publish 5.4 on our website, though without announcement because of everything else we have had going...(<a href="http://weblogs.asp.net/christoc/archive/2009/06/29/engage-publish-5-4-released.aspx">read more</a>)<img src="http://weblogs.asp.net/aggbug.aspx?PostID=7136818" width="1" height="1">]]></description>
   <dc:creator>Chris Hammond</dc:creator>
   <dc:date>6/29/2009 3:44:41 PM</dc:date>
  </item>
  <item>
   <title><![CDATA[WorkflowInvoker vs WorkflowInstance]]></title>
   <link>http://weblogs.asp.net/sonyram/archive/2009/06/29/workflowinvoker-vs-workflowinstance.aspx</link>
   <description><![CDATA[<p>Here is preview on WorkflowInvoker and WorkflowInstance (available in VS 2010 Beta)<br><a href="http://blogs.msdn.com/bursteg/archive/2009/05/19/wf-4-0-how-to-execute-a-worklflow-workflowinvoker-vs-workflowinstance.aspx" title="http://blogs.msdn.com/bursteg/archive/2009/05/19/wf-4-0-how-to-execute-a-worklflow-workflowinvoker-vs-workflowinstance.aspx" mce_href="http://blogs.msdn.com/bursteg/archive/2009/05/19/wf-4-0-how-to-execute-a-worklflow-workflowinvoker-vs-workflowinstance.aspx">http://blogs.msdn.com/bursteg/archive/2009/05/19/wf-4-0-how-to-execute-a-worklflow-workflowinvoker-vs-workflowinstance.aspx</a></p><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7136598" width="1" height="1">]]></description>
   <dc:creator>Sriram Vaidyanathan</dc:creator>
   <dc:date>6/29/2009 10:12:22 AM</dc:date>
  </item>
  <item>
   <title><![CDATA[Who deserves a free MSDN subscription?]]></title>
   <link>http://weblogs.asp.net/fmarguerie/archive/2009/06/29/who-deserves-a-free-msdn-subscription.aspx</link>
   <description><![CDATA[<p>I have a free one-year MSDN subscription to offer. I believe that it has to be activated before June 30, so, I don't have time to organize a contest or something...</p><p>The offer is <a href="http://msdn.microsoft.com/en-us/subscriptions/subscriptionschart.aspx" mce_href="http://msdn.microsoft.com/en-us/subscriptions/subscriptionschart.aspx">MSDN Premium</a>, which gives you access to a whole set of Microsoft software licensed for design, development, testing, and demonstration of your programs. This includes Visual Studio Team Suite, Windows, Office, SQL Server, etc. Given the releases expected this year, this will give you access to such things as Visual Studio 2010 and Windows 7.<br></p><p>If you think that you deserve to get this subscription, just <a href="http://weblogs.asp.net/fmarguerie/contact.aspx" mce_href="http://weblogs.asp.net/fmarguerie/contact.aspx">contact me and let me know why I should give YOU this gift</a>. I'll make my choice quickly and I'll reply to you.<br>Hint: if you can help me update the content of <a href="http://SharpToolbox.com" mce_href="http://SharpToolbox.com">SharpToolbox.com</a>, that can be a plus for you ;-)<br></p><img src="http://weblogs.asp.net/aggbug.aspx?PostID=7136556" width="1" height="1">]]></description>
   <dc:creator>Fabrice Marguerie</dc:creator>
   <dc:date>6/29/2009 9:39:19 AM</dc:date>
  </item>
 </channel>
</rss>