<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Tim Murphy's .NET Software Architecture Blog</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/tmurphy/Atom.aspx" />
    <subtitle type="html">Adventures in Architecting and Developing .NET Applications</subtitle>
    <id>http://geekswithblogs.net/tmurphy/Default.aspx</id>
    <author>
        <name>Tim Murphy</name>
        <uri>http://geekswithblogs.net/tmurphy/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2012-05-09T13:20:11Z</updated>
    <entry>
        <title>Document Your APIs</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/05/09/document-your-apis.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/05/09/document-your-apis.aspx</id>
        <published>2012-05-09T13:20:11-05:00:00</published>
        <updated>2012-05-09T13:20:11Z</updated>
        <content type="html">&lt;p&gt;I have been working on a Windows Phone application for the user group that I help to run and have been experiencing head ache after head ache.  The problem isn’t the Windows Phone development itself.  The issues are with the external web service APIs that I am trying to use for sites like SlideShare and Box.net.  &lt;/p&gt;  &lt;p&gt;The main issue is that while there is a lot of documentation and examples for the output of the APIs, the input format is sketchy at best.  The web service for SlideShare, for example, requires that a set of values be hashed using SHA1, but there is not example of what the format of those values should be prior to being hashed.  That mean there is a lot of head bashing trial and error and error and error.  &lt;/p&gt;  &lt;p&gt;Anyone who publishes a public API should realize that users of that API are not going to have knowledge of the internal workings of their product (and shouldn’t).  You can’t even expect them to have the same tools either.  Given that this is a web service being used the calling applications could be on any number of platforms using an equally large number of languages.  The only way to ensure proper usage of your tools is to explicitly document the parameters of your interfaces and mountains of examples.  The easier you make it for developers to code against the greater the adoption will be for your API.  Let’s all remember this going forward.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2a187792-489e-472d-88ee-5b1ba631d831" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Windows+Phone+7" rel="tag"&gt;Windows Phone 7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Box.net" rel="tag"&gt;Box.net&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/SlideShare" rel="tag"&gt;SlideShare&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/WP7" rel="tag"&gt;WP7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Phone+development" rel="tag"&gt;Windows Phone development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/API+development" rel="tag"&gt;API development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/documentation" rel="tag"&gt;documentation&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/code+examples" rel="tag"&gt;code examples&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/149576.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/149576.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/149576.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/149576.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Why Do Computer Scientists Need To Understand Software Developers</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/03/14/why-do-computer-scientists-need-to-understand-software-developers.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/03/14/why-do-computer-scientists-need-to-understand-software-developers.aspx</id>
        <published>2012-03-14T13:09:49-05:00:00</published>
        <updated>2012-03-14T13:09:49Z</updated>
        <content type="html">&lt;p&gt;I saw a tweet asking why do we educate computer scientists to get developers and compared this to structural engineers and stone masons.  I believe this is a good question with a flawed premise.  The flaw is in thinking that a developer’s job is as simple and limited in variations as that of a mason.  Almost every problem attacked by a developer requires that they bend their tools and materials in a new way.  This requires that everyone on a team communicate and at least on some level understand each other’s hurdles.  This is not an environment what you create a spec and throw it over the wall.  Even then, I would believe that a structural engineer needs to understand materials and how they are connected in order create new designs.&lt;/p&gt;  &lt;p&gt;There is also the question of what do each of these titles mean?  What is the job that each really does?  Both titles have a wide range of meanings.  Computer scientists to my way of thinking are defined as theory and design driven.  How can you really understand a theory unless you understand its practical application?  Likewise I think developers create better solutions if they understand the theories that govern the environment that they leverage.&lt;/p&gt;  &lt;p&gt;Of course all of this brings us back to traditional argument of users needing to understand software development.  It isn’t the details of each job that you need to be familiar with. You should know enough of how different team members work in order to appreciate when you are told its difficulty or relay requirements at the proper detail level.&lt;/p&gt;  &lt;p&gt;In the end I think we all benefit from knowing how our work affects those that we work with.  Living in a bubble only leads to disaster.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:17b8c0d5-40bb-4f9d-a347-408995fde87d" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Software+Professionals" rel="tag"&gt;Software Professionals&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/developers" rel="tag"&gt;developers&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/computer+scientists" rel="tag"&gt;computer scientists&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/149001.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/149001.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/149001.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/149001.aspx</trackback:ping>
    </entry>
    <entry>
        <title>March 2012 Chicago IT Architects Group Meeting</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/03/13/march-2012-chicago-it-architects-group-meeting.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/03/13/march-2012-chicago-it-architects-group-meeting.aspx</id>
        <published>2012-03-13T16:35:11-05:00:00</published>
        <updated>2012-03-13T16:35:11Z</updated>
        <content type="html">&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/March-2012-Chicago-IT-Architects-Group-M_A0EB/CITAG_logo-02a_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CITAG_logo-02a" border="0" alt="CITAG_logo-02a" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/March-2012-Chicago-IT-Architects-Group-M_A0EB/CITAG_logo-02a_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This year is already accelerating into overdrive.  Business is rocking and the time for the March meeting of the Chicago IT Architects Group has crept up on me all to quickly.  This month we have Paul Ford discussing Collective Intelligence.  Be sure to register and join us on March 20th.&lt;/p&gt;  &lt;p&gt;TechNexus   &lt;br /&gt;200 S Wacker, Suite 500    &lt;br /&gt;Chicago, IL&lt;/p&gt;  &lt;p&gt;&lt;a href="http://citag.eventbrite.com"&gt;http://citag.eventbrite.com&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:72f6f6c5-e179-4a2b-82f5-792fc8baf67d" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Chicago+Information+Technology+Architects+Group" rel="tag"&gt;Chicago Information Technology Architects Group&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/CITAG" rel="tag"&gt;CITAG&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/ChiITArch" rel="tag"&gt;ChiITArch&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148990.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148990.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148990.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148990.aspx</trackback:ping>
    </entry>
    <entry>
        <title>The Hidden Costs Of Offshoring Your IT</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/02/29/the-hidden-costs-of-offshoring-your-it.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/02/29/the-hidden-costs-of-offshoring-your-it.aspx</id>
        <published>2012-02-29T07:29:13-06:00:00</published>
        <updated>2012-02-29T07:29:13Z</updated>
        <content type="html">&lt;p&gt;While I am not a fan of offshoring IT development, I do understand the attraction.  From a rate perspective they look very attractive, but in my experience that is the smallest part of the story when it comes to offshore resources.  There are a number of hurdles you will have to deal with if you are going use developers that are half way around the world.&lt;/p&gt;  &lt;p&gt;The first obstacle is the language and cultural barrier.  I am not talking about just understanding the words, but understanding the meaning behind the words.  A significant amount of time can be required to make sure that requirements are properly understood.  You need to put additional time in your project plan to account for this factor.&lt;/p&gt;  &lt;p&gt;The second thing you are going to run into is the time difference.  In all cases I have been in both teams have had to adjust their schedules just so they have at least a minimal overlap.  Then there is the fact that nothing ever gets done in one day as they would with a team that is entirely in one location.  This will stretch your timelines for task completion.  This could mean the loss of opportunity costs in situations that require a quick turn around.&lt;/p&gt;  &lt;p&gt;Quality is another issue that I have seen in some cases.  This is a problem that happens no matter where the work is done, but the distance makes it harder to keep an eye on quality as development progresses.  I had one case where a remote team indicated that they were done coding and when we tested it we found it was nothing but stubs.  I would hope that this is the exception and not the rule, but it should be a tale of warning.  You may need to allow for additional budget for rewrites and/or to interview the offshore team to determine their competency.&lt;/p&gt;  &lt;p&gt;These cautions are not to say that you shouldn’t use offshore resource, but that you need to understand the costs related to this approach and if you can afford them.  Just as with open source code, there is not free lunch and what you don’t know could kill your project.  Make sure you go into these situations with your eyes open.s&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cd8ff8aa-3ede-4c73-8c81-d8d31bb732c3" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/offshore" rel="tag"&gt;offshore&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/IT+projects" rel="tag"&gt;IT projects&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148838.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148838.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148838.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148838.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Choosing A Windows Based Web Hosting Service</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/02/27/choosing-a-windows-based-web-hosting-service.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/02/27/choosing-a-windows-based-web-hosting-service.aspx</id>
        <published>2012-02-27T22:27:55-06:00:00</published>
        <updated>2012-02-27T22:27:55Z</updated>
        <content type="html">&lt;p&gt;Recently I have gone through the process of selecting a web hosting company for one of my clients.  There are a lot of options out there and a number things you need to be cautious about.  I will go over some of the decision points and questions you will want to ask a company before signing a contract.  &lt;/p&gt;  &lt;p&gt;The first thing you need to do is define the features that make up you site.  Is it made up purely of static content or does not use a database?  If that is the case then you can choose just about any hosting company that supports your favorite development platform (ASP.NET, PHP, etc.).&lt;/p&gt;  &lt;p&gt;If you require a database for your application determining how much control over the database and how much space is required are you next tasks.  Many hosting service will offer either MySQL or a limited access SQL Server.  This will support small databases with simple CRUD requirements.&lt;/p&gt;  &lt;p&gt;If you require full control over the database and need features of the server such as the operating server scheduler you are now looking at leasing a dedicated server.  This will significantly increase your cost per month, but once you get to this level it is either a dedicated server or a cloud service such as Azure.&lt;/p&gt;  &lt;p&gt;One thing that I have found is that if you are getting a dedicated server from a hosting company often your best bet is to purchase your own SQL Server license instead of paying the monthly charges for the hosting service to provide them.  The average I have seen is about $275 per month.  Even if you pay $4000 for a license it will pay for itself in just over a year.&lt;/p&gt;  &lt;p&gt;In the end there aren’t any easy answers, but hopefully some of the guidelines above can help you find the right solution for your hosting needs.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fce177c8-0325-4604-9896-f17fa99ad965" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Web+Hosting" rel="tag"&gt;Web Hosting&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Dedicated+Servers" rel="tag"&gt;Dedicated Servers&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/SQL+Server" rel="tag"&gt;SQL Server&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Licensing" rel="tag"&gt;Licensing&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148825.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148825.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148825.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148825.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Organizing Your Work With OneNote Page Templates</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/02/03/organizing-your-work-with-onenote-page-templates.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/02/03/organizing-your-work-with-onenote-page-templates.aspx</id>
        <published>2012-02-03T15:15:39-06:00:00</published>
        <updated>2012-02-03T15:15:39Z</updated>
        <content type="html">&lt;p&gt;If you have seen the Windows Phone commercial where the father is in the grocery store with the shopping list in OneNote you have gotten you first taste of the flexibility that can be had with OneNote.  I like most consultants have a lot of fires going and once and I am finding that the templates in OneNote are helping me to get a handle on the different projects and tasks I need to track.&lt;/p&gt;  &lt;p&gt;I started using OneNote to do simply what its name suggests: take and organize notes.  Lately though I am finding ways that it can help to centralize things that I had been using multiple applications to accomplish.  Having them all in one place, as with most things makes it easier to not miss something.&lt;/p&gt;  &lt;p&gt;You may find using the tasks feature of Outlook works well for you, but I found that I was in and out of my email so fast that I ignored the tasks.  As simple To Do List template in OneNote seems to be the solution for me since I spend so much time documenting projects.  As an alternative you can use the Prioritized To Do List shown below or the Project To Do List which gives you a list per project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Leveraging-OneNote-Page-Templates_9D86/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Leveraging-OneNote-Page-Templates_9D86/image_thumb_1.png" width="676" height="466" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When starting a project at a new client Project Overview is a great way to organize your thought and make sure that you cover all the essentials.  While I am just starting to use it this template is quickly proving its worth.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Leveraging-OneNote-Page-Templates_9D86/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Leveraging-OneNote-Page-Templates_9D86/image_thumb.png" width="642" height="445" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Of course if you don’t find a template that fits your needs you can create your own templates. Start with one of the standards and edit it.  Then click Save Current Page As A Template.  This is great especially for customizing templates like the project overview to suit you needs.&lt;/p&gt;  &lt;p&gt;There are many other features to this tool for you to explore.  Add to everything above that it is a write once, maintain anywhere product and I can easily access my notes from any browser or even my Windows Phone.  Life is getting just a little better.&lt;/p&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:bb985965-e1ee-4107-843f-4571c33dc5af" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/OneNote" rel="tag"&gt;OneNote&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/ToDo" rel="tag"&gt;ToDo&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Task+Management" rel="tag"&gt;Task Management&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Phone" rel="tag"&gt;Windows Phone&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Office" rel="tag"&gt;Office&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148582.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148582.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148582.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148582.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Implementing Team Foundation Server 2010 In A Mixed Development Environment</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/02/03/implementing-team-foundation-server-2010-in-a-mixed-development-environment.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/02/03/implementing-team-foundation-server-2010-in-a-mixed-development-environment.aspx</id>
        <published>2012-02-03T12:58:05-06:00:00</published>
        <updated>2012-02-03T12:58:05Z</updated>
        <content type="html">&lt;p&gt;Most of us spend our time in Visual Studio writing .NET code within a Visual Studio solution.  Given this situation we find it very easy to integrate with Team Foundation Server for our source control and have a well known work pattern.  But what happens when you want to use TFS as source control for non-Microsoft development?&lt;/p&gt;  &lt;p&gt;The most important thing to remember is that source control should be as transparent as possible to the developer.  If the particular language or product does not have an Integrated Development Environment then having plug-ins to maintain this transparency is not possible and your next concern is making the way the developers interact with TFS as simple as possible.&lt;/p&gt;  &lt;p&gt;Let’s assume that you are facing the latter situation.  The first thing to do is sit down with the team and find out what their normal process is for developing.  You need to find out how the code that becomes their executables are organized.  The key is striking a balance between logical separation and making extra work by creating too many projects.  If they users are accustomed to managing their code in a single folder then you may want to maintain that same structure for your TFS projects.&lt;/p&gt;  &lt;p&gt;Once you get past the structure issues you then need to address the subject of branching and labeling.  I recently ran into a situation where the non-Microsoft development was customization of a packaged software.  This presented additional considerations.  They get a copy of the off the shelf code with each release from the vendor.  There may be features that are actually removed from one release to the next.  This made it easier to start a new project for each release than using labels or branching.  The last thing they wanted was code files creeping back in if they got latest and only new files had been overwritten but the obsolete files were still there.&lt;/p&gt;  &lt;p&gt;In the end it boils down to understanding the needs of your development teams and molding your usage models to those needs.  Maintain as much transparency for your developers as possible by limiting the touch points for TFS and as often as possible allowing them to continue developing the way the always have.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2f4c4316-1007-425c-af02-bea96a2db8ee" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Team+Foundation+Server+2010" rel="tag"&gt;Team Foundation Server 2010&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148581.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148581.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148581.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148581.aspx</trackback:ping>
    </entry>
    <entry>
        <title>PSC Group Releases Project Risk Profiler Windows Phone Application</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/01/31/psc-group-releases-project-risk-profiler-windows-phone-application.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/01/31/psc-group-releases-project-risk-profiler-windows-phone-application.aspx</id>
        <published>2012-01-31T14:30:37-06:00:00</published>
        <updated>2012-02-01T07:07:29Z</updated>
        <content type="html">&lt;p&gt;&lt;a href="http://www.psclistens.com" target="_blank"&gt;PSC Group &lt;/a&gt;is proud to announce that the Windows Phone version of its Project Risk Profiler application is now available in the Marketplace.  This application allows project managers and stakeholders to evaluate the high level risks and benefits associated with proposed project before committing to it.  &lt;/p&gt;  &lt;p&gt;The application is based on a methodology used by PSC when initiating projects and is a port of the &lt;a href="http://itunes.apple.com/us/app/riskprofiler/id422878020?mt=8" target="_blank"&gt;iPhone version&lt;/a&gt; of the application.  Each negative and positive attribute of a project is given a raking value.  Once all the attributes are totaled the negative total is subtracted from the positive total in order to give the project an overall score.  The lower the score the more risk there is to the project and the more caution should be exercised in deciding to the the project on.&lt;/p&gt;  &lt;p&gt;The main features of the application allow you to create a new projection evaluation, maintain your list of projects and email the evaluation results to stakeholders.  Below are some screen shots of the application which can be found in the marketplace &lt;a href="http://www.windowsphone.com/en-US/apps/c50aa6c5-feab-4132-979d-4b19d460e0d0" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/PSC-Group-Releases_6451/MainScreen_2.jpg"&gt;&lt;img style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="MainScreen" border="0" alt="MainScreen" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/PSC-Group-Releases_6451/MainScreen_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/PSC-Group-Releases_6451/NewProject_2.jpg"&gt;&lt;img style="margin: 0px; border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NewProject" border="0" alt="NewProject" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/PSC-Group-Releases_6451/NewProject_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/PSC-Group-Releases_6451/ProjectList_2.jpg"&gt;&lt;img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ProjectList" border="0" alt="ProjectList" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/PSC-Group-Releases_6451/ProjectList_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/PSC-Group-Releases_6451/Evaluation_2.jpg"&gt;&lt;img style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="Evaluation" border="0" alt="Evaluation" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/PSC-Group-Releases_6451/Evaluation_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div style="margin: 0px; padding: 0px; float: none; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b9b465c9-4e73-4339-9121-1952cc84f30e" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/PSC+Group" rel="tag"&gt;PSC Group&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Phone+7" rel="tag"&gt;Windows Phone 7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/RiskProfiler" rel="tag"&gt;RiskProfiler&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Project+Management" rel="tag"&gt;Project Management&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148540.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148540.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148540.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148540.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Changing Team Foundation Server 2010 Workspace Mappings</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/01/26/changing-team-foundation-server-2010-workspace-mappings.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/01/26/changing-team-foundation-server-2010-workspace-mappings.aspx</id>
        <published>2012-01-26T16:36:40-06:00:00</published>
        <updated>2012-01-26T16:36:40Z</updated>
        <content type="html">&lt;p&gt;When you place a Visual Studio solution into TFS or pull it down for the first time a default working path is set in the workspace mappings.  There are times when you need to point source code to a new location.  Once option you have is to simply use the Manage Workspaces dialog to edit the local folder for the your solution.&lt;/p&gt;  &lt;p&gt;Select your workspace.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Changing-Team-Foundation-Server-2010-Wor_63E5/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Changing-Team-Foundation-Server-2010-Wor_63E5/image_thumb.png" width="463" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click on the Local Folder and an ellipse button will appear to allow to set a new folder.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Changing-Team-Foundation-Server-2010-Wor_63E5/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Changing-Team-Foundation-Server-2010-Wor_63E5/image_thumb_1.png" width="470" height="416" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The problem with this approach is that it doesn’t seem to consistently cascade to all the child items.  The alternative is to use the Remove Mapping dialog, change the Local Folder and click the Change button.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Changing-Team-Foundation-Server-2010-Wor_63E5/image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Changing-Team-Foundation-Server-2010-Wor_63E5/image_thumb_2.png" width="472" height="172" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This approach is very affective when remapping child folder locations but be aware of the fact that when you use this approach it will move the files from the original path to the new path.  If it is important that the file stay in the original location you will need to back them up first and copy them back after the remapping.  You will have to work with these options to see which works best for your situation.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:72990ad9-7b78-46e7-816b-919ea5c2c140" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Team+Foundation+Server+2010" rel="tag"&gt;Team Foundation Server 2010&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Team+Foundation+Server" rel="tag"&gt;Team Foundation Server&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148498.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148498.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148498.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148498.aspx</trackback:ping>
    </entry>
    <entry>
        <title>February 2012 Chicago Information Technology Architects Group Presentation</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/01/26/february-2012-chicago-information-technology-architects-group-presentation.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/01/26/february-2012-chicago-information-technology-architects-group-presentation.aspx</id>
        <published>2012-01-26T15:27:37-06:00:00</published>
        <updated>2012-01-26T15:27:37Z</updated>
        <content type="html">&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/February-2012-Chicago-Information-Techno_633A/CITAG_logo-02a_thumb_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CITAG_logo-02a_thumb" border="0" alt="CITAG_logo-02a_thumb" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/February-2012-Chicago-Information-Techno_633A/CITAG_logo-02a_thumb_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So here is try number two.  Mother nature got the best of us last month with the threat of icy roads on our presentation night. Ruben Rotteveel has been gracious enough to reschedule his discussion of Advancements in Messaging Technologies for this month.  Assuming we do not get our usual February blizzard on that day it would be great to see as many of you there as possible. Be sure to register to joins us.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://citag.eventbrite.com"&gt;http://citag.eventbrite.com&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:99e33fcf-11b6-44a8-8314-a042b594db5e" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Chicago+Information+Technology+Architects+Group" rel="tag"&gt;Chicago Information Technology Architects Group&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/CITAG" rel="tag"&gt;CITAG&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Advancements+in+Messaging+Technologyies" rel="tag"&gt;Advancements in Messaging Technologyies&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Ruben+Rotteveel" rel="tag"&gt;Ruben Rotteveel&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148497.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148497.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148497.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148497.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Twitter Search JSON Deserialization</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/01/13/twitter-search-json-deserialization.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/01/13/twitter-search-json-deserialization.aspx</id>
        <published>2012-01-13T12:28:46-06:00:00</published>
        <updated>2012-01-13T12:28:46Z</updated>
        <content type="html">&lt;p&gt;In a previous post I talked about using the JSON to LINQ features of JSON.NET.  Thanks to &lt;a href="http://weblogs.asp.net/bsimser/" target="_blank"&gt;Bil Simser&lt;/a&gt; I was able to do some testing of the deserialization capabilities of this library.  The key was his hint to leverage the &lt;a href="http://json2csharp.com/" target="_blank"&gt;json2csharp&lt;/a&gt; web site.  Below is the C# representation of the search results for a Twitter query created by putting an example of the search result into this site.  &lt;/p&gt;  &lt;div 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: 1000px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100.02%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; height: 960px; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Url&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; url { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; expanded_url { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; display_url { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt;[] indices { get; set; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Entities&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Url[] urls { get; set; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Metadata&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; recent_retweets { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; result_type { get; set; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Result&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; created_at { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Entities entities { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; from_user { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; from_user_id { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; from_user_id_str { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; geo { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; id { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; id_str { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; iso_language_code { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Metadata metadata { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; profile_image_url { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; source { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; text { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; to_user_id { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; to_user_id_str { get; set; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; RootObject&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; completed_in { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;long&lt;/span&gt; max_id { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; max_id_str { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; next_page { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; page { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; query { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; refresh_url { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Result[] results { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; results_per_page { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; since_id { get; set; }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; since_id_str { get; set; }&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;So how do we use this class once it has been created?  First we need to make sure that we are referencing the Newtonsoft.Json assembly.  As with the previous example we will use the WebClient DownloadStringAsync method to call Twitter.  The main difference is the small bit of call that is in the callback function.  &lt;/p&gt;

&lt;p&gt;In the example below I have created a JsonSerializer and then feed the Deserialize method with a new JsonTextReader and the type of the JSON message class.  Once we get to that point it is a simple act of iterating through the object graph to find the members you are interested in. &lt;/p&gt;

&lt;div 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" id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;JsonSerializer serializer = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; JsonSerializer();&lt;br /&gt;RootObject rootObject = (RootObject)serializer.Deserialize(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; JsonTextReader(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringReader(e.Result)), &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(RootObject));&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var tweet &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; rootObject.results)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Items.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TweetViewModel(tweet.profile_image_url, tweet.text));&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Between the JSON.NET library and the json2csharp web site the process of adding JSON deserialization to your Windows Phone app is much simpler.  Now go and put it to good use.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2e8a8e18-8c5b-4f6a-82c6-1978d6db445c" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/JSON.NET" rel="tag"&gt;JSON.NET&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/JSON" rel="tag"&gt;JSON&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Phone+7" rel="tag"&gt;Windows Phone 7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/WP7" rel="tag"&gt;WP7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Bil+Simser" rel="tag"&gt;Bil Simser&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Twitter" rel="tag"&gt;Twitter&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148336.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148336.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148336.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148336.aspx</trackback:ping>
    </entry>
    <entry>
        <title>January 2012 Chicago Information Technology Architects Group Presentation</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2012/01/12/january-2012-chicago-information-technology-architects-group-presentation.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2012/01/12/january-2012-chicago-information-technology-architects-group-presentation.aspx</id>
        <published>2012-01-12T09:09:00-06:00:00</published>
        <updated>2012-01-12T09:09:00Z</updated>
        <content type="html">&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/January-2012-Chicago-Information-Technol_7D79/CITAG_logo-02a_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="CITAG_logo-02a" border="0" alt="CITAG_logo-02a" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/January-2012-Chicago-Information-Technol_7D79/CITAG_logo-02a_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This post is really late considering that there is less than a week before the event.  Fortunately this is because 2012 is starting out with tons of work to be done.  Not a bad problem to have.  This month we will have Ruben Rotteveel discussing Advancements in Messaging Technologies.  Be sure to register to joins us.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://citag.eventbrite.com"&gt;http://citag.eventbrite.com&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0e6733d4-7ec4-4166-a138-0cae655dcd3d" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Chicago+Information+Technology+Architects+Group" rel="tag"&gt;Chicago Information Technology Architects Group&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/CITAG" rel="tag"&gt;CITAG&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Ruben+Rotteveel" rel="tag"&gt;Ruben Rotteveel&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Messaging" rel="tag"&gt;Messaging&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148323.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148323.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148323.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148323.aspx</trackback:ping>
    </entry>
    <entry>
        <title>New WP7 App: Little League Coach</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2011/12/21/new-wp7-app-little-league-coach.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2011/12/21/new-wp7-app-little-league-coach.aspx</id>
        <published>2011-12-21T08:40:05-06:00:00</published>
        <updated>2011-12-21T08:40:05Z</updated>
        <content type="html">&lt;p&gt;My first Windows Phone app, &lt;a href="http://www.windowsphone.com/en-US/apps/2683fbf3-a049-434d-b6af-dd5702e69b53" target="_blank"&gt;Little League Coach&lt;/a&gt;, has just been released into the marketplace.  If you have ever helped coach a team where every player bats every inning this app should help keep your sanity.  It is a simple application to allow little league coaches to manage the lineup for a game as well as keep track of batter rotation.  As a bonus it tracks pitches and outs during an inning.  Here are a few screen shots from the application.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/New-WP7-App_8B84/Lineup2_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Lineup2" border="0" alt="Lineup2" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/New-WP7-App_8B84/Lineup2_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/New-WP7-App_8B84/AddTeamMember_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="AddTeamMember" border="0" alt="AddTeamMember" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/New-WP7-App_8B84/AddTeamMember_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/New-WP7-App_8B84/GameTracking2_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="GameTracking2" border="0" alt="GameTracking2" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/New-WP7-App_8B84/GameTracking2_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/New-WP7-App_8B84/UmpireCounts2_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="UmpireCounts2" border="0" alt="UmpireCounts2" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/New-WP7-App_8B84/UmpireCounts2_thumb.png" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:76956710-228e-4185-9a7e-3dc7229cb187" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Windows+Phone+7" rel="tag"&gt;Windows Phone 7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/WP7" rel="tag"&gt;WP7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Phone+Marketplace" rel="tag"&gt;Windows Phone Marketplace&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148099.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148099.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148099.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148099.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Ways To Pass Time On Window Phone &amp;ndash; TouchDevelop</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2011/12/20/ways-to-pass-time-on-window-phone-ndash-touchdevelop.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2011/12/20/ways-to-pass-time-on-window-phone-ndash-touchdevelop.aspx</id>
        <published>2011-12-20T08:29:46-06:00:00</published>
        <updated>2011-12-20T08:29:46Z</updated>
        <content type="html">&lt;p&gt;A co-worker was showing me an in phone scripting environment on the iPhone and I knew I had seen one mentioned for the Windows Phone before.  &lt;a href="http://www.touchdevelop.com/" target="_blank"&gt;TouchDevelop&lt;/a&gt; is an app from Microsoft Research that allows you to create small applications that do a wide variety of operations including using most of the capabilities of the device.  So could this be a fun way for us geeks to waste some time while waiting for our oil to be change or a table to open up at your favorite restaurant?&lt;/p&gt;  &lt;p&gt;So what does this language look like?  The structure for TouchDevelop applications is broken into three sections: actions, data and events.  &lt;/p&gt;  &lt;p&gt;Actions are essentially procedures and can be run independently from the user interface as long as they are not marked private.  One action can also execute another action using the “code” section of “expressions” UI.&lt;/p&gt;  &lt;p&gt;Variables that are defined in the Data section.  They are global to the application and are persistent by default.  The variable types include not only basic structures like strings, but also more complex system constructs like JSON, playlist and camera objects.  This isn’t where all of your variables reside as many variables are automatically generated when you create assignment expressions.&lt;/p&gt;  &lt;p&gt;The events that can be handled are somewhat limited but are appropriate for the phone.  As with some of the specialized data types the events are based around the different sensors and services of the phone.&lt;/p&gt;  &lt;p&gt;Now the syntax is a little strange compared to most of the languages that I have used in the past.  It is very plain English which can throw you when you are used to more terse programming languages.  You have to get used to the concept of a “wall” instead of console which uses syntax like the example below.&lt;/p&gt;  &lt;p&gt;var1-&amp;gt;post to wall&lt;/p&gt;  &lt;p&gt;You also aren’t going to get a WYSIWYG experience with the TouchDevelop environment.  You will have to create your own visual controls through code.  It reminds me of righting for the Win16 API in C++, only with less built in UI abilities.  If you get to this point then you probably want to start by copying an application that already has methods to generate buttons, text boxes and other controls.&lt;/p&gt;  &lt;p&gt;Just to give you a flavor of the environment there are a number of screenshots below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-1_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen Capture-1" border="0" alt="Screen Capture-1" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-1_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-2_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen Capture-2" border="0" alt="Screen Capture-2" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-2_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-3_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen Capture-3" border="0" alt="Screen Capture-3" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-3_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-4_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen Capture-4" border="0" alt="Screen Capture-4" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-4_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-5_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen Capture-5" border="0" alt="Screen Capture-5" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Ways-To-Pass-Time-On-Window-PhoneTouchDe_7CC6/Screen%20Capture-5_thumb.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the end it is a bit of a mind bending challenge to learn to develop with TouchDevelop, but getting out of your comfort zone is always a good thing.  Enjoy.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:bd5f29ed-f09f-4a74-aa96-e0337f534ac4" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/WP7" rel="tag"&gt;WP7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Phone+7" rel="tag"&gt;Windows Phone 7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/development" rel="tag"&gt;development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/TouchDevelop" rel="tag"&gt;TouchDevelop&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/script+languages" rel="tag"&gt;script languages&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/scripting" rel="tag"&gt;scripting&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148094.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148094.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148094.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148094.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Using JSON.NET To Load Twitter Search Results In WP7</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/tmurphy/archive/2011/12/14/using-json.net-to-load-twitter-search-results-in-wp7.aspx" />
        <id>http://geekswithblogs.net/tmurphy/archive/2011/12/14/using-json.net-to-load-twitter-search-results-in-wp7.aspx</id>
        <published>2011-12-14T07:27:08-06:00:00</published>
        <updated>2011-12-14T07:27:08Z</updated>
        <content type="html">&lt;p&gt;The main way that Twitter provides feeds is through JSON.  Unfortunately the version of the .NET Framework that is on the phone does not include the System.Runtime.Serialization.Json namespace.  Rather than trying to brute force the JSON feed I have been looking into using the Newtonsoft JSON.NET library.&lt;/p&gt;  &lt;p&gt;The first thing that I ran into with JSON.NET is that the documentation is severely tilted to the serialization side with almost no mention of deserialization.  This would have been my preferred approach considering work I have done with WCF.  In a future posts I intend to explore deserialization in JSON.NET.  Given my time constraints though I ended up using the JSON to LINQ feature of JSON.NET.&lt;/p&gt;  &lt;p&gt;Once I headed down this new road I found that even the LINQ features did not work the way I would have expected them to.  I would have thought that when the library parsed the JSON feed it would be able to drill down like a normal object graph.  In the end I used the base JSON to LINQ ability to get a named set and then loop through it using the SelectToken method to pull individual values.&lt;/p&gt;  &lt;p&gt;Let’s take a look at an example.  The first thing you need to do is open a WebClient object and assign a method to handle the DownloadStringAsync event and call the DownloadStringAsync method.&lt;/p&gt;  &lt;div 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" id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;WebClient client = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WebClient();&lt;br /&gt;&lt;br /&gt;client.DownloadStringCompleted += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DownloadStringCompletedEventHandler(client_DownloadStringCompleted);&lt;br /&gt;&lt;br /&gt;client.DownloadStringAsync(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Uri(&lt;span style="color: #006080"&gt;"http://search.twitter.com/search.json?q="&lt;/span&gt; + searchString));&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Now comes the real work.  You will see that a JObject is used to parse the feed returned from Twitter.  After that you are able to get the “results” array by name.  I was concerned with getting the text and user image so while looping through the results I access the profile_image_url and text fields of each and record the values.&lt;/p&gt;

&lt;div 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" id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;JObject searchResult = JObject.Parse(e.Result);&lt;br /&gt;var results = searchResult[&lt;span style="color: #006080"&gt;"results"&lt;/span&gt;];&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Items.Clear();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var tweet &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; results)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Items.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TweetViewModel(tweet.SelectToken(&lt;span style="color: #006080"&gt;"profile_image_url"&lt;/span&gt;).Value&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt;(),tweet.SelectToken(&lt;span style="color: #006080"&gt;"text"&lt;/span&gt;).Value&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt;()));&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Once I have this List of TweetViewModel items I can bind it to a templated ListBox to render it to the user.  In all this was a very simple piece of code that took a lot of trail and error because of poor documentation.  As I dig deeper into this library I will do my best to augment the official documentation.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6dedd701-f24b-4950-a48e-3786c2736feb" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/JSON" rel="tag"&gt;JSON&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/JSON.NET" rel="tag"&gt;JSON.NET&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/WP7" rel="tag"&gt;WP7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Phone+7" rel="tag"&gt;Windows Phone 7&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Developement" rel="tag"&gt;Developement&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/tmurphy/aggbug/148045.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/tmurphy/comments/148045.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/148045.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/148045.aspx</trackback:ping>
    </entry>
</feed>
