<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>.NET</title>
        <link>http://geekswithblogs.net/tmurphy/category/4231.aspx</link>
        <description>.NET</description>
        <language>en-US</language>
        <copyright>Tim Murphy</copyright>
        <managingEditor>twmurph@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Wire Framing WP7 Apps With Cacoo</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/11/21/wire-framing-wp7-apps-with-cacoo.aspx</link>
            <description>&lt;p&gt;While looking for a free alternative to Sketchflow I landed on the Cacoo web site.  Any developer who decides to use the free Visual Studio tools may find themselves doing the same search.  The base functionality of Cacoo is free although there are certain features that have fees attached to them such as extended stencils and templates.&lt;/p&gt;  &lt;p&gt;Cacoo doesn’t seem to have a template for WP7.  It does have templates for iOS and Android development so I started with the Android template and started modidfying it for WP7.  Funny thing is since Android has the same hardware vendors as Windows Phone the basic frame looks just right (I would swear I was looking at my Samsung Focus).&lt;/p&gt;  &lt;p&gt;Below is the start of a new mockup for the user group that I help run.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Wire-Framing-WP7-Apps-With-Cacoo_9360/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/Wire-Framing-WP7-Apps-With-Cacoo_9360/image_thumb.png" width="489" height="257" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I found that while Cacoo doesn’t have all the icons I need I am able to insert them from the Windows Phone Toolkit folder.  If I put them off to the side as you can see above.  I can simply copy and paste them into the appropriate place as needed.  &lt;/p&gt;  &lt;p&gt;Beyond that I have customized the main frame frame so I can have my base to work from.  In the future I intend to create this as a stencil and if it looks good enough I would consider making it public.&lt;/p&gt;  &lt;p&gt;My use of this product is still in it’s early phase, but it seems like a great way to start.  Maybe if you use this to get going you can earn enough from your resulting apps to pay for something with more bells and whistles in the future.&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:a80dde6e-25bc-4836-b2d9-9af30eafc5cf" 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+development" rel="tag"&gt;Windows Phone 7 development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/design" rel="tag"&gt;design&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Cacoo" rel="tag"&gt;Cacoo&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/wire+frame" rel="tag"&gt;wire frame&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/147788.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/11/21/wire-framing-wp7-apps-with-cacoo.aspx</guid>
            <pubDate>Mon, 21 Nov 2011 22:21:20 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/147788.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/11/21/wire-framing-wp7-apps-with-cacoo.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/147788.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/147788.aspx</trackback:ping>
        </item>
        <item>
            <title>Styling Windows Phone Silverlight Applications</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/11/10/styling-windows-phone-silverlight-applications.aspx</link>
            <description>&lt;p&gt;If you have not developed with styles in Silverlight/XAML then it can be challenging and resources can be sparse depending on how deep you get.  One thing that you need to understand is what level you can apply styles and how much they can cascade.  What I am finding is that this doesn’t go to the level that we are used to in HTML and CSS.&lt;/p&gt;  &lt;p&gt;While styles can be defined at a page level if you want to share styles throughout your application they should be defined in the App.xaml file.  This is of course analogous to placing a style in your HTML file versus an external CSS file.  This is the type of style I will concentrate on in this post.&lt;/p&gt;  &lt;p&gt;The first thing to look it how styles associate to elements.  TargetType defines the object type that your style will apply to.  In the example below the style is targeting the TextBlock object type.&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;&amp;lt;Style x:Key=&lt;span style="color: #006080"&gt;"TextBlockSmallGray"&lt;/span&gt; TargetType=&lt;span style="color: #006080"&gt;"TextBlock"&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Next we use a Setter which allows you to apply values for specific attributes of the target object type.  The setters can be a simple value or complex.  The first example here is simply applying a color to the background property of the target.&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;&amp;lt;Setter Property=&lt;span style="color: #006080"&gt;"Background"&lt;/span&gt; Value=&lt;span style="color: #006080"&gt;"White"&lt;/span&gt;/&amp;gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;The second setter example here is for the same property, but we are applying a the definition of a LinearGradientBrush.&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;&amp;lt;Setter Property=&lt;span style="color: #006080"&gt;"Background"&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;Setter.Value&amp;gt;&lt;br /&gt;                    &amp;lt;LinearGradientBrush&amp;gt;&lt;br /&gt;                        &amp;lt;GradientStop Offset=&lt;span style="color: #006080"&gt;"0"&lt;/span&gt; Color=&lt;span style="color: #006080"&gt;"Black"&lt;/span&gt;/&amp;gt;&lt;br /&gt;                        &amp;lt;GradientStop Offset=&lt;span style="color: #006080"&gt;"1"&lt;/span&gt; Color=&lt;span style="color: #006080"&gt;"White"&lt;/span&gt;/&amp;gt;&lt;br /&gt;                    &amp;lt;/LinearGradientBrush&amp;gt;&lt;br /&gt;                &amp;lt;/Setter.Value&amp;gt;&lt;br /&gt;            &amp;lt;/Setter&amp;gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;The last thing I want to cover here is that you can leverage the system styles and then override or extend them.  The BasedOn attribute of the Style tag allows this sort of inheritance.  In the example below I am going to start with the PhoneTextTitleStyle and then override properties as needed.&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;&amp;lt;Style x:Key=&lt;span style="color: #006080"&gt;"TextBlockTitle"&lt;/span&gt; BasedOn=&lt;span style="color: #006080"&gt;"{StaticResource PhoneTextTitle1Style}"&lt;/span&gt; TargetType=&lt;span style="color: #006080"&gt;"TextBlock"&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;So now that we have our styles defined applying it is fairly straight forward.  Add the style name as a static resource to the style property of the element in your page and off you go.&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;&amp;lt;Grid x:Name=&lt;span style="color: #006080"&gt;"LayoutRoot"&lt;/span&gt; Style=&lt;span style="color: #006080"&gt;"{StaticResource PageGridStyle}"&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;So this is one step in creating consistency in your application’s look.  In future posts I will dig a little deeper.&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:ff829b5e-6c5e-4cd6-b4d2-6f6c84f21413" 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/mobile+development" rel="tag"&gt;mobile development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/windows+phone+7+development" rel="tag"&gt;windows phone 7 development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/software+development" rel="tag"&gt;software development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/design" rel="tag"&gt;design&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/UX" rel="tag"&gt;UX&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/147644.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/11/10/styling-windows-phone-silverlight-applications.aspx</guid>
            <pubDate>Thu, 10 Nov 2011 12:56:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/147644.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/11/10/styling-windows-phone-silverlight-applications.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/147644.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/147644.aspx</trackback:ping>
        </item>
        <item>
            <title>October 2011 Chicago IT Architects Group Recap</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/10/19/october-2011-chicago-it-architects-group-recap.aspx</link>
            <description>&lt;p&gt;It was another engaging presentation at this month’s CITAG meeting as Joe Hummel presented functional programming and its implementation using F#.  Some times it is fun to attack a mind bending problem and this was one of those times.  Leaning about functional programming caused about the same brain cramps as moving from procedural to object oriented for the first time.  Of course when you start to get it the effect is almost euphoric.  I would suggest that if you haven’t looked into functional programming that you should check out Joe’s information below.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Joe’s information&lt;/strong&gt;    &lt;br /&gt;&lt;a href="http://www.joehummel.net/downloads.html"&gt;http://www.joehummel.net/downloads.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Please be sure to join us for our next presentation and if you enjoyed this month please bring your colleagues next time.&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:33f97519-f264-41e6-9ffe-1c9b9c0b7a57" 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/Joe+Hummel" rel="tag"&gt;Joe Hummel&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Functional+Programming" rel="tag"&gt;Functional Programming&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/F%23" rel="tag"&gt;F#&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/147376.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/10/19/october-2011-chicago-it-architects-group-recap.aspx</guid>
            <pubDate>Wed, 19 Oct 2011 13:48:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/147376.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/10/19/october-2011-chicago-it-architects-group-recap.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/147376.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/147376.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Phone Silverlight Poor Man's Double-Tap</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/10/07/windows-phone-silverlight-poor-mans-double-tap.aspx</link>
            <description>&lt;p&gt;I have seen a lot of articles about gestures but they require third party libraries or complex coding approaches.  What I am going to present here isn’t strictly elegant or necessarily the best approach, but this is the way we would catch this type of event when we were still dealing with message loops.&lt;/p&gt;  &lt;p&gt;For the app that I have been working on I need to take action on the double-tap of a list item. The first question you have to ask your self is what a double-tap really is. It is in simplest terms it is two taps within a specified amount of time.  Given that I created a page level variable that holds a DateTime.  If you set it each time the MouseEnter event fires and check it against the previous value you can imply a double tap.  The code below is about as simple as it gets.&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;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; list_MouseEnter(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, MouseEventArgs e)&lt;br /&gt;{&lt;br /&gt;    DateTime tempTapTime = DateTime.Now;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(tempTapTime.Subtract(_lastTapTime).TotalMilliseconds &amp;lt; 250)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (listEvaluations.SelectedIndex &amp;gt; -1)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #008000"&gt;// Do something&lt;/span&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        _lastTapTime = tempTapTime;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;This may be kicking it old school but it gets the job done.  Evaluate it against the other options out there and see what works best for the particular situation.&lt;/p&gt;

&lt;p&gt;
  &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0b51e77a-d0c7-4779-a692-0a648a3f9efa" 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/software+development" rel="tag"&gt;software development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/silverlight" rel="tag"&gt;silverlight&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/147212.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/10/07/windows-phone-silverlight-poor-mans-double-tap.aspx</guid>
            <pubDate>Fri, 07 Oct 2011 05:22:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/147212.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/10/07/windows-phone-silverlight-poor-mans-double-tap.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/147212.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/147212.aspx</trackback:ping>
        </item>
        <item>
            <title>Laying Out Windows Phone 7 ListBoxes</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/09/02/laying-out-windows-phone-7-listboxes.aspx</link>
            <description>&lt;p&gt;A listbox can be a very boring display surface, but it doesn’t have to be.  Ok, so it may never be exciting.  At least we can create a more flexible output.&lt;/p&gt;  &lt;p&gt;The first element you need to learn about his the ItemTemplate which is in turn composed of a DataTemplate. As this combo implies it is bound to each item/data row.  We will start organizing your base layout with a Grid control. &lt;/p&gt;  &lt;p&gt;Within the Grid you can add a RowDefintions group.  A RowDefinition helps when you want components to be stacked for a particular data row.  The main attribute for a RowDefinition is it’s Height.  There is no name attribute, but we will get to that point toward the end of this article.&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;&amp;lt;Grid.RowDefinitions&amp;gt;&lt;br /&gt;    &amp;lt;RowDefinition Height=&lt;span style="color: #006080"&gt;"Auto"&lt;/span&gt;/&amp;gt;&lt;br /&gt;    &amp;lt;RowDefinition Height=&lt;span style="color: #006080"&gt;"*"&lt;/span&gt;/&amp;gt;&lt;br /&gt;&amp;lt;/Grid.RowDefinitions&amp;gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;The other main layout organization is kept in the ColumnDefinitions group.  ColumnDefinition elements are best used for defining the width. I only created column definitions where they differ from full width of the row.  In the case of this example the first of the two rows.&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;&amp;lt;Grid.ColumnDefinitions&amp;gt;&lt;br /&gt;     &amp;lt;ColumnDefinition Width=&lt;span style="color: #006080"&gt;"300"&lt;/span&gt;/&amp;gt;&lt;br /&gt;     &amp;lt;ColumnDefinition Width=&lt;span style="color: #006080"&gt;"90"&lt;/span&gt;/&amp;gt;&lt;br /&gt; &amp;lt;/Grid.ColumnDefinitions&amp;gt;&lt;br /&gt; &lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Now that you have all of definition setup lets put it to use.  In this example we have a project list.  Each project has a name, a score and a description.  We will add a group of TextBlock controls for each data element.  They do not need to be in any particular order and I will show why next.&lt;/p&gt;

&lt;p&gt;Now we can assign row and column associations to each TextBlock. Both rows and columns are assigned using a zero based index from the sequence they are defined in the XMAL.  At this point the layout is set.&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;Grid.Row=&lt;span style="color: #006080"&gt;"0"&lt;/span&gt; Grid.Column=&lt;span style="color: #006080"&gt;"0"&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;The last thing we need to do is Databind the components of the list.  Set the Text attribute of each TextBlock to an appropriate field of the object your are binding to each object.&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;Text=&lt;span style="color: #006080"&gt;"{Binding ProjectName}"&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;The final code is listed below.&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;&amp;lt;ListBox Height=&lt;span style="color: #006080"&gt;"330"&lt;/span&gt; HorizontalAlignment=&lt;span style="color: #006080"&gt;"Left"&lt;/span&gt; Margin=&lt;span style="color: #006080"&gt;"32,20,0,0"&lt;/span&gt; Name=&lt;span style="color: #006080"&gt;"listEvaluations"&lt;/span&gt; VerticalAlignment=&lt;span style="color: #006080"&gt;"Top"&lt;/span&gt; Width=&lt;span style="color: #006080"&gt;"397"&lt;/span&gt; ItemsSource=&lt;span style="color: #006080"&gt;"{Binding}"&lt;/span&gt; MouseEnter=&lt;span style="color: #006080"&gt;"listEvaluations_MouseEnter"&lt;/span&gt;&amp;gt; &lt;br /&gt;    &amp;lt;ListBox.ItemTemplate&amp;gt;&lt;br /&gt;        &amp;lt;DataTemplate&amp;gt;&lt;br /&gt;            &amp;lt;Grid&amp;gt;&lt;br /&gt;                &amp;lt;Grid.RowDefinitions&amp;gt;&lt;br /&gt;                    &amp;lt;RowDefinition Height=&lt;span style="color: #006080"&gt;"Auto"&lt;/span&gt;/&amp;gt;&lt;br /&gt;                    &amp;lt;RowDefinition Height=&lt;span style="color: #006080"&gt;"*"&lt;/span&gt;/&amp;gt;&lt;br /&gt;                &amp;lt;/Grid.RowDefinitions&amp;gt;&lt;br /&gt;                &amp;lt;Grid.ColumnDefinitions&amp;gt;&lt;br /&gt;                    &amp;lt;ColumnDefinition Width=&lt;span style="color: #006080"&gt;"300"&lt;/span&gt;/&amp;gt;&lt;br /&gt;                    &amp;lt;ColumnDefinition Width=&lt;span style="color: #006080"&gt;"90"&lt;/span&gt;/&amp;gt;&lt;br /&gt;                &amp;lt;/Grid.ColumnDefinitions&amp;gt;&lt;br /&gt;                &amp;lt;TextBlock HorizontalAlignment=&lt;span style="color: #006080"&gt;"Left"&lt;/span&gt; Grid.Row=&lt;span style="color: #006080"&gt;"0"&lt;/span&gt; Grid.Column=&lt;span style="color: #006080"&gt;"0"&lt;/span&gt; Name=&lt;span style="color: #006080"&gt;"ProjectName"&lt;/span&gt; Text=&lt;span style="color: #006080"&gt;"{Binding ProjectName}"&lt;/span&gt; FontSize=&lt;span style="color: #006080"&gt;"{StaticResource PhoneFontSizeLarge}"&lt;/span&gt;&amp;gt;&amp;lt;/TextBlock&amp;gt;&lt;br /&gt;                &amp;lt;TextBlock HorizontalAlignment=&lt;span style="color: #006080"&gt;"Right"&lt;/span&gt; Grid.Row=&lt;span style="color: #006080"&gt;"0"&lt;/span&gt; Grid.Column=&lt;span style="color: #006080"&gt;"1"&lt;/span&gt; Name=&lt;span style="color: #006080"&gt;"ProjectTotal"&lt;/span&gt; Text=&lt;span style="color: #006080"&gt;"{Binding Total}"&lt;/span&gt; FontSize=&lt;span style="color: #006080"&gt;"{StaticResource PhoneFontSizeLarge}"&lt;/span&gt;&amp;gt;&amp;lt;/TextBlock&amp;gt;&lt;br /&gt;                &amp;lt;TextBlock Name=&lt;span style="color: #006080"&gt;"ProjectDescription"&lt;/span&gt; Grid.Row=&lt;span style="color: #006080"&gt;"1"&lt;/span&gt; Text=&lt;span style="color: #006080"&gt;"{Binding Description}"&lt;/span&gt; FontSize=&lt;span style="color: #006080"&gt;"{StaticResource PhoneFontSizeSmall}"&lt;/span&gt;&amp;gt;&amp;lt;/TextBlock&amp;gt;&lt;br /&gt;            &amp;lt;/Grid&amp;gt;&lt;br /&gt;        &amp;lt;/DataTemplate&amp;gt;&lt;br /&gt;    &amp;lt;/ListBox.ItemTemplate&amp;gt;&lt;br /&gt;&amp;lt;/ListBox&amp;gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;And here is what the result looks like.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Laying-Out-Windows-Phone-7-ListBoxes_14415/image_2.png"&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="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Laying-Out-Windows-Phone-7-ListBoxes_14415/image_thumb.png" width="244" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a lot more you can do with this approach by using other controls in your template, but this should give you the basic concepts you need.&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:326376e1-fb07-436c-948f-e6f754e1ad7b" 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/Software+Development" rel="tag"&gt;Software Development&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/146743.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/09/02/laying-out-windows-phone-7-listboxes.aspx</guid>
            <pubDate>Fri, 02 Sep 2011 05:24:14 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/146743.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/09/02/laying-out-windows-phone-7-listboxes.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/146743.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/146743.aspx</trackback:ping>
        </item>
        <item>
            <title>WCF Deployment To IIS</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/08/29/wcf-deployment-to-iis.aspx</link>
            <description>&lt;p&gt;If you are developing you WCF service for web service deployment under IIS and coding with the Visual Studio web server you are in for a rude awakening when it comes time to deploy your solution.  Ok, so that is a little over dramatic, but there are a few steps and precautions you need to know about.&lt;/p&gt;  &lt;p&gt;Below are the main steps to deploying your application to IIS assuming WCF is already installed and registered.&lt;/p&gt;  &lt;p&gt;The first step is to create an application pool.  Make sure that for your .NET 3.5 WCF service that the application pool is set to the 2.0 .NET framework.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/WCF-Deployment_7A37/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 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/WCF-Deployment_7A37/image_thumb.png" width="236" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Next you need to create a new site.  The application pool for this site should be the one that you just created.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/WCF-Deployment_7A37/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/WCF-Deployment_7A37/image_thumb_1.png" width="318" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So here is that precaution I was talking about earlier.  You run into a number of hurdles if you try to share a site with a WCF service and another application.  The easiest way around that is to deploy each service project to its own site.  I am still working on how to get them to co-exist and will post that information when I have it resolved.&lt;/p&gt;  &lt;p&gt;Lastly, at a minimum you need to copy the bin directory, web.config and .svc files to the physical directory that your new site references.  This configuration should work in most cases.  In the future I will address some of the common alternate configuration.  Stay tuned.&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:00ff1181-534a-4203-9c3e-bbf87078dae5" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/WCF" rel="tag"&gt;WCF&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Communication+Foundation" rel="tag"&gt;Windows Communication Foundation&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Deployment" rel="tag"&gt;Deployment&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/146694.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/08/29/wcf-deployment-to-iis.aspx</guid>
            <pubDate>Mon, 29 Aug 2011 11:03:54 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/146694.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/08/29/wcf-deployment-to-iis.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/146694.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/146694.aspx</trackback:ping>
        </item>
        <item>
            <title>Creating Emails For Windows Phone 7</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/08/22/creating-emails-for-windows-phone-7.aspx</link>
            <description>&lt;p&gt;There are many reasons that you may want to add email capability to your Windows Phone 7 application.  There are a number of ways you can communicate information out from an application.  &lt;/p&gt;  &lt;p&gt;The mechanism for sending email from your WP7 application is the EmailComposeTask API.  The difference between this API and the one that you would use for an ASP.NET application is that it opens a screen to allow the user to select an account to use and then creates a message which the user then has to send.  This makes sense since the we are talking about end user applications and not server processes.&lt;/p&gt;  &lt;p&gt;Below is a quick look at the code required to send an email using the EmailComposeTask.&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;EmailComposeTask emailTask = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EmailComposeTask();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// Not setting the "To" property will prompt the user&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;//emailTask.To = "jqsample@somemail.com";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;emailTask.Subject = &lt;span style="color: #006080"&gt;"Your subject"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;emailTask.Body = &lt;span style="color: #006080"&gt;"Here is where the body goes."&lt;/span&gt;;&lt;br /&gt;emailTask.Show();&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;There are two drawbacks that I would like to see addressed.  The first is that you cannot create a HTML body.  The second is that you can’t attach a file.  Hopefully these will be addressed in future versions.&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:3ea9eecd-7001-40e1-b8d0-4de77ad08dea" 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/Software+Development" rel="tag"&gt;Software Development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Email" rel="tag"&gt;Email&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/146636.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/08/22/creating-emails-for-windows-phone-7.aspx</guid>
            <pubDate>Mon, 22 Aug 2011 20:31:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/146636.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/08/22/creating-emails-for-windows-phone-7.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/146636.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/146636.aspx</trackback:ping>
        </item>
        <item>
            <title>The Power Of Windows Phone 7 Tasks</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/08/19/the-power-of-windows-phone-7-tasks.aspx</link>
            <description>&lt;p&gt;One of the things that is important to learn when you are developing any application is how it will interact with the environment it lives in.  I’m not talking about simply interacting with files or database but with major resources.  With WP7 there are a number of things such as the photos, browser, maps and the phone itself that your application may be concerned with. &lt;/p&gt;  &lt;p&gt;The WP7 development API includes a number of access points to give your application greater reach.  These APIs can be found &lt;a href="http://msdn.microsoft.com/en-us/library/ff428753(v=VS.92).aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;They APIs fall into the following main areas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Contacts&lt;/li&gt;    &lt;li&gt;Bing Maps&lt;/li&gt;    &lt;li&gt;Camera&lt;/li&gt;    &lt;li&gt;Email&lt;/li&gt;    &lt;li&gt;Market Place&lt;/li&gt;    &lt;li&gt;Messaging&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In future posts I will explore some of these APIs.  Stay tuned.&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:28180176-63f5-454e-802c-f3adb91a8583" 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/Software+Development" rel="tag"&gt;Software Development&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/.NET" rel="tag"&gt;.NET&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/146598.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/08/19/the-power-of-windows-phone-7-tasks.aspx</guid>
            <pubDate>Fri, 19 Aug 2011 14:04:59 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/146598.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/08/19/the-power-of-windows-phone-7-tasks.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/146598.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/146598.aspx</trackback:ping>
        </item>
        <item>
            <title>WCF Service Development Basics</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/08/18/wcf-service-development-basics.aspx</link>
            <description>&lt;p&gt;Part of the fun of being a consultant is that the technology you use changes from day to day.  Recently it is WCF which, while knowing the concepts of since it came out I haven’t used up until now.&lt;/p&gt;  &lt;p&gt;The nice thing is that it really isn’t any harder to develop for than a normal ASP.NET web service.  A couple of the attributes change and which project type you start with is different, but it is still message based services.&lt;/p&gt;  &lt;p&gt;Just like the method of a web service needs a Webmethod attribute a method in a WCF service requires a OperationContract attribute.  The main difference is that you start by defining your operations in an interface.  Once you have an interface like the extract below you simply create an implementation class based on the interface.&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;[ServiceContract]&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;interface&lt;/span&gt; IMyServices&lt;br /&gt;{&lt;br /&gt;    [OperationContract]&lt;br /&gt;    MyCustomReturn GetMyData(MyDataRequest dataRequest);&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;To get your WSDL and its associated XSD to generate in a way that is intelligible by other developers you need to effectively use the DataContract and DataMember attributes.  The resulting class will look similar to the extract below.&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;[DataContract]&lt;br /&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MyCustomReturn&lt;br /&gt;{&lt;br /&gt;    [DataMember]&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; UserEmail;&lt;br /&gt;    [DataMember]&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; BusinessUnitId;&lt;br /&gt;    [DataMember]&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; ClientAddressInfo ClientAddressInformation;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Once you have this base the rest of the development is straight up .NET.  The other thing you need to know is how to get at your WSDL and XSD.  The WSDL is the easy part.  Add “?wsdl” to the URL for your .svc file.&lt;/p&gt;

&lt;p&gt;Finding the XSD isn’t that difficult.  If you look in the WSDL definition there is a tag for &amp;lt;wsdl:types&amp;gt;.  Within this tag you will find an &amp;lt;xsd:imports&amp;gt; that ties back to your service’s namespace.  Normally this is just adding a query string of “?xsd=xsd2” to your service URL.&lt;/p&gt;

&lt;p&gt;Lastly you need to learn how to use the WCF Test Client.  The one way I have found to launch it is to make sure your service code file is active in the Visual Studio editor and hit F5.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/WCF_143AD/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/WCF_143AD/image_thumb.png" width="495" height="290" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This tool will allow you to do most of you basic testing of the service you just built.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p&gt;
  &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:285866d2-0e2a-4103-b9ca-4af767ff006a" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/WCF" rel="tag"&gt;WCF&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Windows+Communication+Foundation" rel="tag"&gt;Windows Communication Foundation&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/.NET+Development" rel="tag"&gt;.NET Development&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/146578.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/08/18/wcf-service-development-basics.aspx</guid>
            <pubDate>Thu, 18 Aug 2011 07:44:35 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/146578.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/08/18/wcf-service-development-basics.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/146578.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/146578.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Phone 7 TextBox InputScope</title>
            <link>http://geekswithblogs.net/tmurphy/archive/2011/08/17/windows-phone-7-textbox-inputscope.aspx</link>
            <description>&lt;p&gt;I originally started looking for how to make a TextBox have autocomplete capability.  Strangely all the articles said that it couldn’t be done.  The last thing you want is for your applications to make your users struggle entering information when every other application gives them a quicker entry method.  So what is the solution?&lt;/p&gt;  &lt;p&gt;The TextBox tag has an InputScope property which if you set it to Text it builds a dictionary list as the user types.  For &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.input.inputscopenamevalue(VS.95).aspx" target="_blank"&gt;the other InputScope types&lt;/a&gt; it mainly changes the keyboard defaults.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/tmurphy/Windows-Live-Writer/Windows-Phone-7_12F46/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/Windows-Phone-7_12F46/image_thumb.png" width="357" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In all this one small change can have a large impact on the usability of your app.&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:1c4babd0-98c6-4386-a790-6ac8bf76b2c5" 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/Software+Development" rel="tag"&gt;Software Development&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/tmurphy/aggbug/146575.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Murphy</dc:creator>
            <guid>http://geekswithblogs.net/tmurphy/archive/2011/08/17/windows-phone-7-textbox-inputscope.aspx</guid>
            <pubDate>Wed, 17 Aug 2011 20:16:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/tmurphy/comments/146575.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/tmurphy/archive/2011/08/17/windows-phone-7-textbox-inputscope.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/tmurphy/comments/commentRss/146575.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/tmurphy/services/trackbacks/146575.aspx</trackback:ping>
        </item>
    </channel>
</rss>
