<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4228806924509013679</atom:id><lastBuildDate>Sun, 08 Sep 2024 12:16:06 +0000</lastBuildDate><title>Life in the trenches</title><description></description><link>http://bradraulston.blogspot.com/</link><managingEditor>noreply@blogger.com (Brad)</managingEditor><generator>Blogger</generator><openSearch:totalResults>95</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-186773577506170601</guid><pubDate>Tue, 03 May 2022 02:06:00 +0000</pubDate><atom:updated>2022-05-02T22:06:43.841-04:00</atom:updated><title>Build 2022 announced </title><description>Build 2022 will be held May 24th to the 26th. Once again it will be a virtual event. I like the virtual format and it seems that each iteration is getting better. If you&#39;re interested in registering check it out here.
&lt;a href=&quot;https://mybuild.microsoft.com/en-US/home&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Build 2022&lt;/b&gt; &lt;/a&gt;</description><link>http://bradraulston.blogspot.com/2022/05/build-2022-announced.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-8115937999080270687</guid><pubDate>Thu, 13 Apr 2017 01:16:00 +0000</pubDate><atom:updated>2017-04-12T21:16:43.445-04:00</atom:updated><title>Switching Back to Windows</title><description>&lt;p&gt;
About a year and a half ago I bought into the whole Mac ecosystem. It started when I needed to replace my Windows Phone and my carrier no longer had any Windows devices. I was impressed my the number of apps that were available, especially apps for my financial institutions and insurance company and number of utility company apps that made life a bit nicer. These apps did not exist on the Windows Phone and for obvious reasons they still don&#39;t.
&lt;/p&gt;
&lt;p&gt;
 I decided to take the plunge and purchase a MacBook Pro. The first thing that I noticed was that the hardware was very nice and it operated well. I then noticed that there were way fewer apps for the Mac as compared to iOS, but Office was available and this made it semi productive as the Apple apps that come installed are horrible compared to office. 
&lt;/p&gt;
&lt;p&gt;
 I purchased a copy of parallels and installed Windows 10 and my development tools so that I could work in both worlds. I dabbled in Objective C and Swift as well as learned Xcode. I was not impressed at all with developer experience in Xcode. It feels to me like a late 90&#39;s experience where we would sprinkle message boxes around an app to improve the debugging experience and while Swift was modern hip language it still carries a lot of Objective C baggage due to it&#39;s apple heritage.
&lt;/p&gt;
&lt;p&gt;
 Slowly over time my interest in Mac and iOS development waned and I found myself in the Windows VM more that the Mac. At this point I realized that I am a PC and not a Mac and never will be. I began my search for a replacement looking at all the usual suspects, HP, Dell etc. I also looked at the Surface and Surface Book. I had previously used The Surface and I just didn&#39;t like the keyboards, to me it felt like typing on a cardboard box top. I eventually decided on the Surface Book. While it is certainly more expensive, I ended up with the 16GB 512SSD I7, it is absolutely leaps and bound ahead of the MacBook Pro in versatility and performance. 
&lt;/p&gt;
&lt;p&gt;
 I have happily settled back in with my new Widows device and the best development tools hands down and enjoying very much. Off to sell a MacBook Pro... 
&lt;/P&gt;</description><link>http://bradraulston.blogspot.com/2017/04/switching-back-to-windows.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-2064098531151831192</guid><pubDate>Sun, 28 Feb 2016 17:30:00 +0000</pubDate><atom:updated>2016-02-28T12:30:02.755-05:00</atom:updated><title>Nuget - the new dll hell</title><description>
  Back in the early 2000&#39;s, when I first started programming on the Microsoft stack, COM objects were all the rage. This of course had a side effect of something known as dll hell, where an application could change a version of a dll your application depended on, thus breaking your application in the process or causing subtle bugs that where hard to debug.
 .Net was supposed to change all of that with side-by- assemblies and versioning and for the most part that has worked well. Enter Nuget, nuget was intended to centralize project dependencies and libraries. So for example if you needed to parse JSON files in your application, you could locate a package that contained a JSON parsing library and add it. The reference to the nuget package could be easily shared across teams and build systems. The problem is that many of these libraries come with a proliferation of their own dependencies and in some cases those dependencies are older versions. A case in point, on a an application that I&#39;m currently working on, I have a dependency on JSON.Net, I upgraded to the latest version 8.0.2 only to find out that another package that was referenced had a dependency on 6.0.0 so upgrading broke functionality in the other library (the other library BTW is a Microsoft Library). The eventual work around was a binding redirect in the app config. But this still points to a bigger problem that of library maintenance and vetting libraries that are available on nuget. No one to my knowledge vets these packages and updating certainly isn&#39;t enforced. So now we have come full circle in the dll hell story, we are essentially right back were we started in the COM days.
  </description><link>http://bradraulston.blogspot.com/2016/02/nuget-new-dll-hell.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-3443597203168003445</guid><pubDate>Sat, 19 Jan 2013 22:29:00 +0000</pubDate><atom:updated>2013-01-19T17:29:43.681-05:00</atom:updated><title>Restore missing Item templates in Visual Studio 2012</title><description>&lt;p&gt; I’m working on a large Silverlight to WPF project migration and came across a issue where item templates where not being displayed from the Add new Items dialog. After a bit of searching it became apparent that this was a fairly common problem and there are a number of ways to fix the issue. Of the the various suggestions I found one seemed to work the best, although it was originally for Visual Studio 2010. So here is how you can get those missing templates back.&lt;/p&gt; &lt;ul&gt; &lt;li&gt; Navigate to C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE&lt;/li&gt; &lt;li&gt;Delete the ItemTemplatesCache folder&lt;/li&gt; &lt;li&gt;In the ItemsTemplate folder navigate to the templates you want to display and for each template open the vstemplate file in a text editor and set ShowByDefault from false to true&lt;/li&gt; &lt;li&gt;run devenv /installvstemplates &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;You may need to run this as an administrator. Once this is done open your project in Visual Studio and right click “Add New Item” your templates should now appear.&lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2013/01/restore-missing-item-templates-in.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-4113836023030231328</guid><pubDate>Tue, 15 Jan 2013 02:45:00 +0000</pubDate><atom:updated>2013-01-14T21:45:45.359-05:00</atom:updated><title>The Problem with Windows 8 Apps</title><description>&lt;p&gt; I have to admit I was skeptical of Windows 8 when it was announced. Since it was released I’ve migrated my laptop and desktop as well as purchasing a Surface and HTC 8X windows phone. While I’ve been happy with the phone apps I’ve downloaded from the store, the Windows 8 apps are another story.&lt;/p&gt; &lt;p&gt; First let me set the bar, I look for apps where the developer took some time to develop an icon. If I see an app in the store with the default Visual Studio App Store app template you’ve lost me. Even if it is the greatest app since the internet the fact that you could not take a few moments to build even a basic icon tells me you really don’t care about your work. There are literally dozens of these app icons in the store.&lt;/p&gt; &lt;p&gt; I expect the app to be responsive. If the data is stale or not updated or the app just plain says it updated and I can go somewhere and see this in not the case you’ve lost me. A case in point are twitter apps, I can look at twitter on the web and compare what is displayed in the app and I can tell you’ve lied. Both Rowi and Metro Twit done this. Facebook apps have similar issues. If you have an app in the store that uses social networking it better update consistently.&lt;/p&gt; &lt;p&gt;I expect apps to provide the advertised functionality, if your app won’t even provide the advertised functionality you’ve lost me.&lt;/p&gt; &lt;p&gt;I have taken the stand of not paying for a single app until I can be reasonably sure that what I pay for will work. The biggest hurdle that Microsoft needs to overcome is not the number of apps in the store, but the quality. you can have a million garbage apps (ask google) but when you have quality apps that work as advertised and provide value then you only need a few to be profitable and build user loyalty.&lt;/p&gt; &lt;p&gt; Maybe the message to developers should change from “Build apps for the store quick and easy” to “Make quality apps and create revenue”. I’m still skeptical about the future but all it will take is quality in the store.&lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2013/01/the-problem-with-windows-8-apps.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-6568570178911418786</guid><pubDate>Tue, 24 Jul 2012 03:44:00 +0000</pubDate><atom:updated>2012-07-23T23:44:49.223-04:00</atom:updated><title>Some thoughts on the Metro UI in Visual Studio 2012</title><description>&lt;p&gt; The Metro UI in the Visual Studio 2012 is horrible&amp;nbsp; The icons and graphics make navigating a solution nearly impossible. The Light Theme and Dark Theme are equally unreadable. The geniuses that came up with this UI concept should be tarred and feathered. Even with the improvements in search and the solution explorer I still find myself being less productive because I have to study each file to make sure that’s what I want to work with. Lets not even start on the ALL CAPS MENU, really? &lt;/p&gt; &lt;p&gt; I appreciate the IDE improvements but how about a choice? Dear Microsoft, Metro doesn’t work for everything.&amp;nbsp; &lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2012/07/some-thoughts-on-metro-ui-in-visual.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-2953608469889752888</guid><pubDate>Mon, 13 Dec 2010 16:37:00 +0000</pubDate><atom:updated>2010-12-13T11:37:25.706-05:00</atom:updated><title>What a difference a release makes</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt; It&#39;s been pretty hectic the last couple of months for me. I&#39;m now involved in a one man enterprise project (yes they exist) and between vetting requirements, architecting and coding there really hasn&#39;t been a lot of writing time. &lt;br /&gt;&lt;/p&gt;&lt;p&gt; One of the things that is at the top my priority list for this project is to provide a high quality and consistent user experience.  To that end I had planned to use the DevExpress Silverlight toolset. This looked like a good choice as they&#39;re support had been good and the control set looked to be expanding in areas that I would certainly need, such as Charting. But the DevExpress 10.2 release fell flat for me in more areas than it should of. From lack of documentation for new controls (in mean no documentation) to bugs that had not existed in DevExpress 10.1 and where now closed as &quot;Microsoft&#39;s problem&quot; (really it worked fine in the last release) to Themes not working with prisim modules, I decided I needed to rethink my choice.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; I decided to take another look at Telerik. To be honest, I really didn&#39;t want to change, as it&#39;s always hard to say &quot;hey maybe I was wrong&quot;, but sometimes you just have to rethink your approach. I was pleasantly surprised by the depth of the documentation and ease of use of the toolset. The Telerik controls provided a consistent data binding experience, so no longer did I have to ask &quot;ItemsSource or DataSource or is it something more obscure?&quot; or dig through reams of docs to find examples, it worked flawlessly with prisim and provides great support for commanding. The GridView also supports Hierarchical data, which is something that I will need.  Overall I&#39;ve been very impressed with the toolset and in the future will also make use of the MVC extensions as well.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/12/what-difference-release-makes.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-2257959230885509454</guid><pubDate>Thu, 07 Oct 2010 14:16:00 +0000</pubDate><atom:updated>2010-10-07T10:16:10.330-04:00</atom:updated><title>Silverlight and MVVM</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt; I&#39;ve been very heads down lately on a very large .Net project. The project team should be 5 or larger given the scope, but in the spirit of &quot;do more with less&quot;, it&#39;s just me. Part of the application contains an internal facing UI, which is being done in Silverlight. In an effort to streamline the work I decided to go with the MVVM approach. While MVVM is the &quot;end all be all&quot; rage these days I am encountering a number of problems. First is in the application flow. I am working from screen designs rendered in photo shop by an offsite designer (he&#39;s not interested in xaml or learning). These screens tend to be busy and in my opinion very ADD. This makes it extremely difficult to isolate a clean View Model. What I&#39;ve discovered is that a number of views may need to access the same data so you end up creating a Master View to coordinate the children. Also the no code model in the views is very difficult to achieve when complex interactions are required. I know that I can use Unity or any number of other MVVM frameworks to alleviate some of the issues, but  add to the download overhead, which because of the inclusion of third party components is already larger than it need to be.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; So while MVVM may be a panacea to some, I see a number of issues with the approach and until the model is built into the framework core it will continue to be a problem. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;    &lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/10/silverlight-and-mvvm.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-4234844839832234500</guid><pubDate>Wed, 14 Jul 2010 02:50:00 +0000</pubDate><atom:updated>2010-07-13T22:56:03.961-04:00</atom:updated><title>DXWindow and DXDialog as Silverlight a UserControl</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt; Here is a quick example of making a DXDialog or DXWindow a user control in your Silverlight applications.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Add a reference to DevExpress.xpf.Core to you Silverlight application.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Modify the xaml so that it is a DXWindow (or DXDialog).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;color:blue; font-family:Consolas; font-size:10pt&#39;&gt;&amp;lt;&lt;span style=&#39;color:#a31515&#39;&gt;&lt;span style=&#39;background-color:yellow&#39;&gt;dec&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:#a31515&#39;&gt;DXDialog&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#39;color:red&#39;&gt; x&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;Class&lt;span style=&#39;color:blue&#39;&gt;=&quot;DevExpressWindow.Dialog&quot;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;   &lt;span style=&#39;color:red&#39;&gt; xmlns&lt;span style=&#39;color:blue&#39;&gt;=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;   &lt;span style=&#39;color:red&#39;&gt; xmlns&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;x&lt;span style=&#39;color:blue&#39;&gt;=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;   &lt;span style=&#39;color:red&#39;&gt; xmlns&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;d&lt;span style=&#39;color:blue&#39;&gt;=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;   &lt;span style=&#39;color:red&#39;&gt; xmlns&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;mc&lt;span style=&#39;color:blue&#39;&gt;=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;   &lt;span style=&#39;color:red&#39;&gt; &lt;span style=&#39;background-color:yellow&#39;&gt;xmlns&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;dec&lt;span style=&#39;color:blue&#39;&gt;=&quot;clr-namespace:DevExpress.Xpf.Core;assembly=DevExpress.Xpf.Core.v10.1&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;   &lt;span style=&#39;color:red&#39;&gt; mc&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;Ignorable&lt;span style=&#39;color:blue&#39;&gt;=&quot;d&quot;&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;   &lt;span style=&#39;color:red&#39;&gt; d&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;DesignHeight&lt;span style=&#39;color:blue&#39;&gt;=&quot;300&quot;&lt;span style=&#39;color:red&#39;&gt; d&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;DesignWidth&lt;span style=&#39;color:blue&#39;&gt;=&quot;400&quot;&amp;gt;&lt;span style=&#39;color:#a31515&#39;&gt;    &lt;/span&gt;&lt;br/&gt;&lt;span style=&#39;color:#a31515&#39;&gt;    &lt;span style=&#39;color:blue&#39;&gt;&amp;lt;&lt;span style=&#39;color:#a31515&#39;&gt;Grid&lt;span style=&#39;color:red&#39;&gt; x&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:red&#39;&gt;Name&lt;span style=&#39;color:blue&#39;&gt;=&quot;LayoutRoot&quot;&lt;span style=&#39;color:red&#39;&gt; Background&lt;span style=&#39;color:blue&#39;&gt;=&quot;White&quot;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style=&#39;color:#a31515&#39;&gt;        &lt;span style=&#39;color:blue&#39;&gt;&amp;lt;&lt;span style=&#39;color:#a31515&#39;&gt;TextBlock&lt;span style=&#39;color:red&#39;&gt; Text&lt;span style=&#39;color:blue&#39;&gt;=&quot;Your UI here.&quot;&lt;span style=&#39;color:red&#39;&gt; HorizontalAlignment&lt;span style=&#39;color:blue&#39;&gt;=&quot;Center&quot;&lt;span style=&#39;color:red&#39;&gt; VerticalAlignment&lt;span style=&#39;color:blue&#39;&gt;=&quot;Center&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;																																							&lt;/span&gt;&lt;br/&gt;&lt;span style=&#39;color:#a31515&#39;&gt;    &lt;span style=&#39;color:blue&#39;&gt;&amp;lt;/&lt;span style=&#39;color:#a31515&#39;&gt;Grid&lt;span style=&#39;color:blue&#39;&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style=&#39;color:blue&#39;&gt;&amp;lt;/&lt;span style=&#39;color:#a31515&#39;&gt;&lt;span style=&#39;background-color:yellow&#39;&gt;dec&lt;span style=&#39;color:blue&#39;&gt;:&lt;span style=&#39;color:#a31515&#39;&gt;DXDialog&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#39;color:blue&#39;&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;And modify the code behind so that instead of deriving from UserControl, derive from DXwindow (or DXDialog) like so.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&#39;font-family:Consolas&#39;&gt;&lt;span style=&#39;color:blue&#39;&gt;using&lt;/span&gt; System;&lt;br/&gt;&lt;span style=&#39;color:blue&#39;&gt;using&lt;/span&gt; DevExpress.Xpf.Core;&lt;br/&gt;&lt;br /&gt;							&lt;br/&gt;&lt;span style=&#39;color:blue&#39;&gt;namespace&lt;/span&gt; DevExpressWindow&lt;br/&gt;{&lt;br/&gt;    &lt;span style=&#39;color:blue&#39;&gt;public&lt;/span&gt; &lt;span style=&#39;color:blue&#39;&gt;partial&lt;/span&gt; &lt;span style=&#39;color:blue&#39;&gt;class&lt;/span&gt; &lt;span style=&#39;color:#2b91af&#39;&gt;Dialog&lt;/span&gt; : &lt;span style=&#39;color:#2b91af&#39;&gt;DXDialog&lt;/span&gt;&lt;br/&gt;    {&lt;br/&gt;        &lt;span style=&#39;color:blue&#39;&gt;public&lt;/span&gt; Dialog()&lt;br/&gt;        {&lt;br/&gt;            InitializeComponent();&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;And to use it from within the application&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&#39;font-family:Consolas&#39;&gt;  &lt;span style=&#39;color:blue&#39;&gt;private&lt;/span&gt; &lt;span style=&#39;color:blue&#39;&gt;void&lt;/span&gt; btnNewDialog_Click(&lt;span style=&#39;color:blue&#39;&gt;object&lt;/span&gt; sender, &lt;span style=&#39;color:#2b91af&#39;&gt;RoutedEventArgs&lt;/span&gt; e)&lt;br/&gt;  {&lt;br/&gt;            &lt;span style=&#39;color:#2b91af&#39;&gt;Dialog&lt;/span&gt; dlg = &lt;span style=&#39;color:blue&#39;&gt;new&lt;/span&gt; &lt;span style=&#39;color:#2b91af&#39;&gt;Dialog&lt;/span&gt; { Title = &lt;span style=&#39;color:#a31515&#39;&gt;&quot;My Dialog&quot;&lt;/span&gt;,Height=200 };&lt;br/&gt;            dlg.ShowDialog();&lt;br/&gt;  }&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&#39;font-family:Consolas&#39;&gt;The result is a reusable dialog or window.&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&#39;font-family:Consolas&#39;&gt;&lt;br /&gt;						&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/07/dxwindow-and-dxdialog-as-silverlight.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-2470354126906649978</guid><pubDate>Wed, 09 Jun 2010 04:08:00 +0000</pubDate><atom:updated>2010-06-09T00:08:38.443-04:00</atom:updated><title>Controls follow up</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt;I&#39;ve had a chance now to use the DevExpress and Telerik control suites. Here are some observations which may be helpful to those of you in the market for controls.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Installers&lt;br /&gt;&lt;/p&gt;&lt;p&gt; DevExpress wins this hands down. They have a single installer for all products. You can select only the components your licensed for or trial those you don&#39;t own. The installer also updates existing products, so no uninstall reinstall dance.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Coding Tools&lt;br /&gt;&lt;/p&gt;&lt;p&gt; Code Rush beats Telerik Just Code. There is simply no comparison in the functionality between the two products. It&#39;s like comparing an Erector set to Lincoln logs (I may have dated myself).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Updates&lt;br /&gt;&lt;/p&gt;&lt;p&gt; Telerik seems to update like a person with ADHD. Every product has an update at a different time. This is a pain in the backside. Additionally, the highly touted visual studio extensions require you to run Visual Studio 2010 as an Admin to update, and then they fail with a &quot;Program must be removed from Add/Remove Programs&quot;, major fail Telerik. DevExpress as mentioned earlier provides a unified update process which is easier to manage.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Controls&lt;br /&gt;&lt;/p&gt;&lt;p&gt; In this area both vendors are pretty evenly matched in functionality. I&#39;ve found the DevExpress components to be more &quot;Developer Friendly&quot; in that they work as advertised and don&#39;t require any fiddling to get the components to work. As an example I created web applications with grids that rendered a set of image records that were retrieved as binary images from a simple database. The DevExpress Binary Image Column rendered right out of the box, I could never get the Telerik Binary Image column to display anything other than an &quot;X&quot;. If it&#39;s documented somewhere I sure wasn&#39;t able to find it.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Support &lt;br /&gt;&lt;/p&gt;&lt;p&gt; I have had to use the DevExpress support and they are an outstanding group who addressed my issue in a timely and efficient manner. I cannot comment on the Telerik support as I haven&#39;t opened any issues with them at this time. The DevExpress issue was a help installation issue on Windows 2008, which was addressed and resolved in less than 48 hours. Pretty impressive in my opinion.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/06/controls-follow-up.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-8982490269173375777</guid><pubDate>Tue, 11 May 2010 03:01:00 +0000</pubDate><atom:updated>2010-05-10T23:01:59.162-04:00</atom:updated><title>Component Switching Follow up</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt; As I noted in my last post, I had switched component vendors. So far I&#39;m quite happy with DevExpress and the tools I purchased. But I would be remiss if I didn&#39;t mention the follow up from Telerik. As I mentioned in my earlier post, the sales rep from Telerik wanted what amounted to a 2500 word essay.  I was contacted by Brandon Strange the Customer Advocate Manager for Telerik. He stated that the original requirement was for 200 to 300 words total and that the sales rep had misstated the requirements. In addition he said they would evaluate this requirement in the future on a case by case basis. I think it was great that they should reach out like this to potential customers. Telerik is big enough that they could have blown my comments of and that would have been the end of the story. They didn&#39;t and that is very important. Also to make up for lost business, Telerik provide me with a complimentary license, now I have two great sets of components.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; The flip side of course is the vendor I left after nearly 9 years of business. I know based on the traffic reports for this blog that Infragistics has in fact visited over a dozen times since my post. Yet they have not made any attempt to contact me and attempt to win my business back or even find out why I chose another vendor. That is poor customer relations in its most simple form. If you don&#39;t value you customers enough to engage with them, you should close your doors and sell of your assets. I for one will never recommend them, where in the past I would have. Instead I&#39;d recommend DevExpress and Telerik because they take the time to listen and engage and provide quality tools.&lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/05/component-switching-follow-up.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-7426922454501713023</guid><pubDate>Thu, 29 Apr 2010 15:49:00 +0000</pubDate><atom:updated>2010-04-29T11:49:35.524-04:00</atom:updated><title>Switching from Infragistics to DevExpress</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt; I have been an Infragistics customer for a number of years; as a matter of fact it&#39;s been over 9 years since I purchased my first controls from them. Recently though I&#39;ve become quite unhappy with my experience with their products. Over the years they went from having a great set of UI tools to having one of the most complicated and useless sets of tools. Let me elaborate on what I mean; let&#39;s take the ASP.NET components for example. These components come in two flavors, 3.5 and 2.0; a lot of the functionality is similar if not the same. Yet they are not interchangeable. If you add a 3.5 component and then choose to add a 2.0 component your application will break in new and unusual ways. To fix this takes some time and manual intervention on the developer&#39;s part. I also have an issue with their increasing use of the nickel and dime sales approach. When the introduce a new product line , Data Visualization for example you&#39;ll get the first barely functional release for free, but then to maintain and get updates, you&#39;ll be forced to pay for version 2. At the end of the day, this just causes frustration and headache and unnecessary expense.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; Since this is an out of pocket expense, I started with some simple criteria that I used to evaluate the competition.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;What does the toolset contain and the core quality and functionality of the tools?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How responsive is support to inquiries and requests?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How often is the product updated and new functionality added and does it cost extra?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How responsive is sales to inquires?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Do they offer upgrade pricing?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Do they offer flexible Product Licensing?&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;  Armed with this criteria is set out to evaluate the competition. I looked at a fair number of tool sets but, many of them didn&#39;t meet the first criteria, so that left me with two, Telerik and DevExpress. &lt;br /&gt;&lt;/p&gt;&lt;p&gt; Telerik has a decent suite of tools which I had used in the past and they meet all of the criteria except for the upgrade pricing. They wanted an essay 300 – 500 words for 7 questions, a minimum of 2100 words, about why you&#39;re leaving the other vendor in order to qualify for a competitive upgrade. This in my opinion is completely absurd.  First since this was a personal purchase, I shouldn&#39;t also have to elaborate on why, if they don&#39;t want new customers then don&#39;t advertise upgrades. Secondly my time is valuable; I shouldn&#39;t have to justify my decision in writing. &lt;br /&gt;&lt;/p&gt;&lt;p&gt; So that left DevExpress. To be honest, I have used Code Rush and Refactor Pro for almost two years and have been completely satisfied with the sales and support from DevExpress. The tool set is fantastic so far, a really positive change from the hassles I encountered with Infragisitics. They have a complete set of ASP.NET (a single set) WPF, Silverlight, Windows Forms and Reporting. All of the products are easy to use and look great.  The only real issue is documentation, which they have indicated is being updated, but asking a question in the forum yielded an almost instant, accurate, response.  So I&#39;m now using DevExpress going forward and I have some really exciting UI ideas to try out. &lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/04/switching-from-infragistics-to.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-1398934529758835050</guid><pubDate>Mon, 12 Apr 2010 18:01:00 +0000</pubDate><atom:updated>2010-04-12T14:26:03.393-04:00</atom:updated><title>Microsoft burps another launch</title><description>VS2010 and SQL Server 2008 R2 are available to MSDN subscribers. But you&#39;ll be better off to wait. Apparently they once again failed to estimate the bandwidth requirements. Attempting to download will just lead to frustration as the transfer client continually tries to connect, then pops some obscure missing info message. Even after taking MSDN downloads over the weekend to &quot;do maintenance&quot;.&lt;br /&gt;&lt;br /&gt;Follow up 12:05 PM MST, it looks like they have the Akami download manager up and working. So downloads should be smoother</description><link>http://bradraulston.blogspot.com/2010/04/microsoft-blows-another-launch.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-1403144710627083848</guid><pubDate>Thu, 25 Mar 2010 23:32:00 +0000</pubDate><atom:updated>2010-03-25T19:32:10.544-04:00</atom:updated><title>Top 10 reasons to migrate to Visual Studio 2010</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt; The release of Visual Studio 2010 is just weeks away and if your organization is typical, they will take a wait and see upgrade approach. Visual Studio 2010 has so many great productivity enhancements that it makes no sense to wait. The problem is most of the decision makers will not have had much exposure to make an informed decision so here are 10 reasons why you should upgrade immediately.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Multi-Targeting support. Many of us have code in multiple .Net versions and many of spend time switching between Visual studio versions. Visual Studio 2010 greatly enhances multi – targeting between 2.0, 3.0, 3.5 and 4.0. In addition VS2010 can be installed side by side with Visual Studio 2003.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Call Hierarchy. If you&#39;ve ever spent hours staring at a complex piece of legacy code trying determining calls made from it of finding callers to it the Call Hierarchy tool will solve your problems. Select the method in question and it will map all the calls from and to the method.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Zoom. What else can I say zooming in the editor is a great feature for working with just a single block of code or if you have old tired eyes.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Navigate To. Rather than using Find All Navigate to allows you to search on types and filters the list while you type you can then jump directly to the code you&#39;re looking for.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Highlight References. Selecting a reference highlight all instances in the method or class allowing you to quickly navigate between them.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Improved Intellisense. Intellisense now has partial string matching as well as consume first mode.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add Reference Improvements. Anyone whose added references in earlier versions know how painfully slow it was to load. Now it loads asynchronously and starts at the &quot;Projects&quot; tab.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Break point improvements. Break points can now be labeled, imported and exported allowing you to save break point setups and even share them with team members.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Expanded Code Generation. Visual Studio 2010 expands the create method stub functionality allowing you to create classes, enums, structs and interfaces.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;WPF Editor. What else can you say? WPF comes of age in Visual Studio 2010, the font clarity and responsiveness of the editor will make you drool.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;These 10 items are the tip of the iceberg when it comes to Visual Studio, there is some much more that greatly enhances developer productivity. Waiting to migrate to Visual Studio 2010 is like waiting until the 4&lt;sup&gt;th&lt;/sup&gt; of July to open last year&#39;s Christmas presents, there is no reason to wait.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/03/top-10-reasons-to-migrate-to-visual.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-1027430855753940747</guid><pubDate>Tue, 09 Feb 2010 04:57:00 +0000</pubDate><atom:updated>2010-02-08T23:57:17.153-05:00</atom:updated><title>Visual Studio 2010 RC</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt; Visual Studio 2010 RC is available to MSDN subscribers &lt;a href=&#39;https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=18:370&#39;&gt;here&lt;/a&gt;. General availability is set for the 10&lt;sup&gt;th&lt;/sup&gt; of February. The RC includes a &quot;&lt;a href=&#39;http://blogs.msdn.com/jeffbe/archive/2009/10/19/going-live-with-visual-studio-2010-beta-2.aspx&#39;&gt;Go Live License&lt;/a&gt;&quot; and upgrade from RC to RTM.&lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/02/visual-studio-2010-rc.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-7634804922069153936</guid><pubDate>Sun, 07 Feb 2010 04:26:00 +0000</pubDate><atom:updated>2010-02-06T23:38:29.961-05:00</atom:updated><title>Things keep changing</title><description>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt; It&#39;s obviously been a while since the last post. In that time I&#39;ve changed jobs, not by choice, but definitely for the better. My previous employer had an issue managing cash flow and like many other companies, cried recession and let go some of the best talent in the organization. Interestingly enough it appears that all of the development staff including myself found employment within just a few days.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; So the past couple of months have been about integrating into a new organization and attempting to become a contributor as quickly as possible. One of the things that irritate me when changing jobs is that you have to completely reestablish yourself. This is an issue that I never dealt with in my military career.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; I&#39;ll be continuing the workflow series shortly, as Microsoft is set to release VS2010 RC, so I&#39;ll pick up with that release so stay tuned.&lt;/p&gt;&lt;/span&gt;</description><link>http://bradraulston.blogspot.com/2010/02/blog-post.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-178069889022492026</guid><pubDate>Mon, 02 Nov 2009 19:43:00 +0000</pubDate><atom:updated>2009-11-02T15:57:47.986-05:00</atom:updated><title>Workflow foundation 4.0 part 4</title><description>&lt;p&gt;It’s taken a while to get to this point but based on the changes in beta 2 of Visual Studio 2010 and the .Net Framework 4.0 it was probably prudent to wait.&lt;/p&gt; &lt;p&gt;There are a number of changes in beta 2, for one the designer has been revised again. Also there is only a single workflow. To create the the different workflows, sequence or flow chart, you start by dragging the appropriate activity container onto the design surface. The tool box has also been reorganized. The different components are organized by functionality.&lt;/p&gt; &lt;p&gt;In this post, I’m going to build a simple console workflow to read RSS feeds, in future posts I’ll enable WCF communications and workflow persistence. This workflow will read any number of feeds passed in as a workflow argument and returns the results from the workflow instance to the console.&lt;/p&gt; &lt;p&gt;To get started, open Visual Studio and create a new Workflow console application named RSSReaderWorkflow. You can change the name of the workflow to anything you like or leave it as is. I renamed the workflow to ReaderWorkflow for this project. One thing to note, you may have to open the workflow in xml mode to change the class name. The designer seems to pass this by when you rename from the solution explorer.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjduzN1dZctkQ1PpPBxVIwxdWmV5-P7AggcPmqNvNAnSRTdjjwqYF5qP2bYkPa4mY0cgY56NbDRu39nDHOKZKknJf-4puh2K0PrLPUgeyx1GkCqc0iwmLQgSB6e1S8natayQXkYNsptM9g0/s1600-h/NewProj.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 221px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjduzN1dZctkQ1PpPBxVIwxdWmV5-P7AggcPmqNvNAnSRTdjjwqYF5qP2bYkPa4mY0cgY56NbDRu39nDHOKZKknJf-4puh2K0PrLPUgeyx1GkCqc0iwmLQgSB6e1S8natayQXkYNsptM9g0/s320/NewProj.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399611082632550690&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Now we need to a couple of container classes. The first, RSSFeeds contains a list of feed uri’s. This is the list of feeds read.&lt;/p&gt; &lt;div class=&quot;csharpcode&quot;&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Collections.Generic;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;namespace &lt;/span&gt;RSSReaderWorkflow&lt;br /&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSFeeds&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;Uri&lt;/span&gt;&amp;gt; Feeds { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;a href=&quot;http://11011.net/software/vspaste&quot;&gt;&lt;/a&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt; The second class we need to add is the RSSItem class. This class will contain the news items from the rss feeds that we read.&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;csharpcode&quot;&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;namespace &lt;/span&gt;RSSReaderWorkflow&lt;br /&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSItem&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;Title { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }  &lt;br /&gt; &lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;Link { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }     &lt;br /&gt;&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;Description { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;a href=&quot;http://11011.net/software/vspaste&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;With that out of the way, drag a sequence activity from Control Flow section of the tool box. This is going to be a simple sequence workflow, so this activity serves as the container for the other activities we’ll add.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Next we’ll add two arguments one of the input named RssFeeds which is a type of RSSFeeds and is required.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The second argument is an out argument and will be a list of RSSItem. This will contain our feed results which we will display to the console.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCYueSsfAualDRQ-0e6xs29bMiMAR46QUYOcaXYJpQNO33iCo4Os3dmwaeM-N8plq2Ypb-6HpdU9CA20xAKDGrz9fwkT31-ATBRTkUzuEOL2Y7ZDnrabM7S9evXSH1KeZYIpz5s4oEa8u3/s1600-h/ArgsAndSeq.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 192px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCYueSsfAualDRQ-0e6xs29bMiMAR46QUYOcaXYJpQNO33iCo4Os3dmwaeM-N8plq2Ypb-6HpdU9CA20xAKDGrz9fwkT31-ATBRTkUzuEOL2Y7ZDnrabM7S9evXSH1KeZYIpz5s4oEa8u3/s320/ArgsAndSeq.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399611318084744322&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Next drag an If activity from the tool box, we’ll add a condition to check that we have at least one feed to read.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ3KrCL3hflVvZikJcY9SOFbl3pfK9lCOs83cg6SQ3m9Wrb9SxqqV3bcCDztL3lTDbiX1g-PyOiUNgp_X4paZyDepBX4ST5HuKk1WGok8zc0pPsV-vqBM00vivfPn5qeOhcdrMVgQvJxSJ/s1600-h/IfCond.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 169px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ3KrCL3hflVvZikJcY9SOFbl3pfK9lCOs83cg6SQ3m9Wrb9SxqqV3bcCDztL3lTDbiX1g-PyOiUNgp_X4paZyDepBX4ST5HuKk1WGok8zc0pPsV-vqBM00vivfPn5qeOhcdrMVgQvJxSJ/s320/IfCond.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399611759482239138&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Next in the else side of the if activity, we’ll add a throw activity. This activity will throw an argument out of range exception if the feeds count is zero.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Next we need to add a new code activity to read the feeds an populate the results. From the solution explorer right click –&amp;gt; add new item and select workflow and Code activity. Since we want to return the results of the rss feeds we’ll need to derive from TResult and add a bit of code. Here is the ReadFeedActivity class.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZK2fto7SQgQcOGAI66AxLyPjkMvMhDrGN4PEn8rsZfS7_FQAKnBVJttyguqudubURDnDa2r9LNZLveIzTBkei5eoc0JDuGMsfN5uc2deen-LcBZrAFzAAcLyJTFDG9msXrOKV-69i5h4S/s1600-h/AddCodeActivity.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 221px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZK2fto7SQgQcOGAI66AxLyPjkMvMhDrGN4PEn8rsZfS7_FQAKnBVJttyguqudubURDnDa2r9LNZLveIzTBkei5eoc0JDuGMsfN5uc2deen-LcBZrAFzAAcLyJTFDG9msXrOKV-69i5h4S/s320/AddCodeActivity.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399612340116978626&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;csharpcode&quot;&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Collections.Generic;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Linq;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Text;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Activities;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;using &lt;/span&gt;System.Xml.Linq;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;namespace &lt;/span&gt;RSSReaderWorkflow&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public sealed class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;ReadFeedActivity &lt;/span&gt;: &lt;span style=&quot;color: #2b91af&quot;&gt;CodeActivity&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSItem&lt;/span&gt;&amp;gt;&amp;gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style=&quot;color: green&quot;&gt;// Define an activity input argument of type string&lt;br /&gt;        &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;public &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;InArgument&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;Uri&lt;/span&gt;&amp;gt;&amp;gt; FeedUri { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style=&quot;color: green&quot;&gt;// If your activity returns a value, derive from CodeActivity&amp;lt;TResult&amp;gt;&lt;br /&gt;        // and return the value from the Execute method.&lt;br /&gt;        &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;protected override &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSItem&lt;/span&gt;&amp;gt; Execute(&lt;span style=&quot;color: #2b91af&quot;&gt;CodeActivityContext &lt;/span&gt;context)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSItem&lt;/span&gt;&amp;gt; results = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSItem&lt;/span&gt;&amp;gt;();&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;foreach &lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;f &lt;span style=&quot;color: blue&quot;&gt;in &lt;/span&gt;FeedUri.Get(context))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style=&quot;color: #2b91af&quot;&gt;XDocument &lt;/span&gt;doc = &lt;span style=&quot;color: #2b91af&quot;&gt;XDocument&lt;/span&gt;.Load(f.ToString(), &lt;span style=&quot;color: #2b91af&quot;&gt;LoadOptions&lt;/span&gt;.None);&lt;br /&gt;                results.AddRange( (&lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;i &lt;span style=&quot;color: blue&quot;&gt;in &lt;/span&gt;doc.Descendants(&lt;span style=&quot;color: #a31515&quot;&gt;&quot;channel&quot;&lt;/span&gt;).Elements(&lt;span style=&quot;color: #a31515&quot;&gt;&quot;item&quot;&lt;/span&gt;)&lt;br /&gt;                        &lt;span style=&quot;color: blue&quot;&gt;select new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSItem&lt;/span&gt;()&lt;br /&gt;                            {&lt;br /&gt;                                Title = i.Element(&lt;span style=&quot;color: #a31515&quot;&gt;&quot;title&quot;&lt;/span&gt;).Value,&lt;br /&gt;                                Link = i.Element(&lt;span style=&quot;color: #a31515&quot;&gt;&quot;link&quot;&lt;/span&gt;).Value,&lt;br /&gt;                                Description = i.Element(&lt;span style=&quot;color: #a31515&quot;&gt;&quot;description&quot;&lt;/span&gt;).Value&lt;br /&gt;                            }).ToList());&lt;br /&gt;            }&lt;br /&gt;            &lt;span style=&quot;color: green&quot;&gt;// Obtain the runtime value of the Text input argument&lt;br /&gt;            &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;return &lt;/span&gt;results;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;a href=&quot;http://11011.net/software/vspaste&quot;&gt;&lt;/a&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;Now Build the project and the new activity will be avaliable in the tool box. You can simply drag it to the if activity.&lt;/pre&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggm14Po7CtGVNFLyCCYUj7dZAzDk-r9YDa98bIax5FYF5uJ-RRv2zfTZUZWGqz0Ru_lj4DfkPxmXPJFrWY5r-qGYY6lRtIaVp9ls0nBjA-b4Fkr45fwMFevakrr4npcDkEdtz38mqZO1gS/s1600-h/CodeActTB.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 273px; height: 269px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggm14Po7CtGVNFLyCCYUj7dZAzDk-r9YDa98bIax5FYF5uJ-RRv2zfTZUZWGqz0Ru_lj4DfkPxmXPJFrWY5r-qGYY6lRtIaVp9ls0nBjA-b4Fkr45fwMFevakrr4npcDkEdtz38mqZO1gS/s320/CodeActTB.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399612632859230082&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt; Set the FeedUri Property to the RssFeeds.Feeds argument property.&lt;/pre&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrtNKqFSAS0R_b8gPN8BLD8KfUboO7rvfN_8ycTNu6HXzzJxkhNw3SSaXF1NkN44fYqd4tengM2xOJl3_FnavwLLXyPR_yEnTyLXgwVPX6qS58dGdZlv4vJ-CaUeAUAi_IL8mlaQ1s33GO/s1600-h/ActInp.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 170px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrtNKqFSAS0R_b8gPN8BLD8KfUboO7rvfN_8ycTNu6HXzzJxkhNw3SSaXF1NkN44fYqd4tengM2xOJl3_FnavwLLXyPR_yEnTyLXgwVPX6qS58dGdZlv4vJ-CaUeAUAi_IL8mlaQ1s33GO/s320/ActInp.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399613059742618386&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Set the Result to the Results output argument property.&lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYfbN6grU0RS3J9KgTb_BIoaOsS0tRFUOywfXN8pWP9brcHU9vjkfygaTK8y_zwFsXSA0eZqN05pqIPLibQTYEJQelJ5OU4KCaF5pi4mNi9WxmU2FbAjhYWvtRwXFH7gq3jSbfjbBUjeKa/s1600-h/ActOut.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 170px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYfbN6grU0RS3J9KgTb_BIoaOsS0tRFUOywfXN8pWP9brcHU9vjkfygaTK8y_zwFsXSA0eZqN05pqIPLibQTYEJQelJ5OU4KCaF5pi4mNi9WxmU2FbAjhYWvtRwXFH7gq3jSbfjbBUjeKa/s320/ActOut.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399613255981547730&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Now we need to update the main. It will create and pass in the the feeds and display the results.&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;csharpcode&quot;&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Program&lt;br /&gt;   &lt;/span&gt;{&lt;br /&gt;       &lt;span style=&quot;color: blue&quot;&gt;static void &lt;/span&gt;Main(&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;[] args)&lt;br /&gt;       {&lt;br /&gt;           &lt;span style=&quot;color: green&quot;&gt;// set up a list of input feeds&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;,&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt;&amp;gt; wfArgs = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;,&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt;&amp;gt;();&lt;br /&gt;&lt;br /&gt;           &lt;span style=&quot;color: green&quot;&gt;// the workflow is expecting a feed list object&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSFeeds &lt;/span&gt;list = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSFeeds&lt;/span&gt;()&lt;br /&gt;           {&lt;br /&gt;               Feeds =  &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;Uri&lt;/span&gt;&amp;gt;()&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style=&quot;color: green&quot;&gt;//usa today&lt;br /&gt;                   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Uri&lt;/span&gt;(&lt;span style=&quot;color: #a31515&quot;&gt;&quot;http://rssfeeds.usatoday.com/usatoday-NewsTopStories&quot;&lt;/span&gt;),&lt;br /&gt;                   &lt;span style=&quot;color: green&quot;&gt;//cnn&lt;br /&gt;                   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Uri&lt;/span&gt;(&lt;span style=&quot;color: #a31515&quot;&gt;&quot;http://rss.cnn.com/rss/cnn_topstories.rss&quot;&lt;/span&gt;)&lt;br /&gt;                }&lt;br /&gt;           };&lt;br /&gt;           &lt;span style=&quot;color: green&quot;&gt;// add the input to the args dictionary&lt;br /&gt;           &lt;/span&gt;wfArgs.Add(&lt;span style=&quot;color: #a31515&quot;&gt;&quot;RssFeeds&quot;&lt;/span&gt;,list);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           &lt;span style=&quot;color: blue&quot;&gt;try&lt;br /&gt;           &lt;/span&gt;{&lt;br /&gt;               &lt;span style=&quot;color: green&quot;&gt;// the workflow will return a dictionary with the rss items&lt;br /&gt;               &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;IDictionary&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;, &lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt;&amp;gt; wfResults = &lt;span style=&quot;color: #2b91af&quot;&gt;WorkflowInvoker&lt;/span&gt;.Invoke(&lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;ReaderWorkflow&lt;/span&gt;(), wfArgs);&lt;br /&gt;&lt;br /&gt;               &lt;span style=&quot;color: green&quot;&gt;// loop through the keys&lt;br /&gt;               &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;foreach &lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;item &lt;span style=&quot;color: blue&quot;&gt;in &lt;/span&gt;wfResults)&lt;br /&gt;               {&lt;br /&gt;                   &lt;span style=&quot;color: green&quot;&gt;// cast the value as an RSSItem list&lt;br /&gt;                   &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSItem&lt;/span&gt;&amp;gt; res = item.Value &lt;span style=&quot;color: blue&quot;&gt;as &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;List&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af&quot;&gt;RSSItem&lt;/span&gt;&amp;gt;;&lt;br /&gt;&lt;br /&gt;                   &lt;span style=&quot;color: green&quot;&gt;// display the results&lt;br /&gt;                   &lt;/span&gt;res.ForEach(i =&amp;gt; &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(i.Title));&lt;br /&gt;                  &lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;           &lt;span style=&quot;color: blue&quot;&gt;catch&lt;/span&gt;(&lt;span style=&quot;color: #2b91af&quot;&gt;ArgumentOutOfRangeException &lt;/span&gt;e) &lt;span style=&quot;color: green&quot;&gt;// if you comment out the feeds, you can watch the throw in acction&lt;br /&gt;           &lt;/span&gt;{&lt;br /&gt;               &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(e.Message);&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.Read();&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;/pre&gt;&lt;a href=&quot;http://11011.net/software/vspaste&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now we have a simple workflow that reads RSS feeds.&lt;/p&gt;</description><link>http://bradraulston.blogspot.com/2009/11/workflow-foundation-40-part-4.html</link><author>noreply@blogger.com (Brad)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjduzN1dZctkQ1PpPBxVIwxdWmV5-P7AggcPmqNvNAnSRTdjjwqYF5qP2bYkPa4mY0cgY56NbDRu39nDHOKZKknJf-4puh2K0PrLPUgeyx1GkCqc0iwmLQgSB6e1S8natayQXkYNsptM9g0/s72-c/NewProj.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-9001412854602953805</guid><pubDate>Tue, 27 Oct 2009 03:18:00 +0000</pubDate><atom:updated>2009-10-26T23:18:30.789-04:00</atom:updated><title>SKU’d again</title><description>&lt;p&gt; Another Visual Studio Release and another round of SKU’s. It seems the marketing folks in Redmond that had a hand in this where the same ones that brought us the Vista and Windows 7 product line up.&lt;/p&gt;  &lt;p&gt; So here is the basic break down of the Old versus the New SKU’s for Visual Studio 2010.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio Standard and Visual Studio Professional become VS 2010 Professional&lt;/li&gt;    &lt;li&gt;Visual Studio Professional with MSDN Premium and Visual Studio Professional with MSDN Professional become VS 2010 Professional with MSDN&lt;/li&gt;    &lt;li&gt;Visual Studio Team Dev, Database, Architect and Test become VS 2010 Premium with&amp;#160; MSDN&lt;/li&gt;    &lt;li&gt;The Visual Studio Team Suite becomes VS 2010 Ultimate with MSDN&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160; Of course Express is still available as before for the hobbyist, as before one for each language. There is also a combo install for express, but quite frankly I haven’t had time to look at it.&lt;/p&gt;  &lt;p&gt; Microsoft is also offering an upgrade offer for MSDN Premium subscribers during the “transition” time, that will allow you to activate a premium subscription now and get Ultimate when Visual Studio 2010 is released in or around March of 2010.&lt;/p&gt;  &lt;p&gt; In the end I find these marketing name games a pain, I like the seeming simplification, the names are to Windowy for my taste.&lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2009/10/skud-again.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-4669477727867912270</guid><pubDate>Mon, 26 Oct 2009 00:17:00 +0000</pubDate><atom:updated>2009-10-25T20:21:29.110-04:00</atom:updated><title>What&#39;s New in EF 4</title><description>Julie Lerman has posted a Screen cast – What’s new in the Entity Data Model Designer in VS2010. Defiantly worth a look. She covers Complex Types and the new Foreign Key functionality as well as a slew of other changes. The screen cast runs about 20 minutes and can be found at &lt;a href=&quot;http://www.screencast.com/users/JulieLerman/folders/EF4&quot;&gt;http://www.screencast.com/users/JulieLerman/folders/EF4&lt;/a&gt;</description><link>http://bradraulston.blogspot.com/2009/10/whats-new-in-ef-4.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-2313166081222097001</guid><pubDate>Tue, 20 Oct 2009 19:48:00 +0000</pubDate><atom:updated>2009-10-20T15:56:06.512-04:00</atom:updated><title></title><description>Microsoft has released VS 2010 beta 2 to MSDN and Technet subscribers. General availability is set for the 21st of October. &lt;br /&gt;&lt;br /&gt;The UI is greatly improved since beta 1, here are a few screens to wet your appetite while you wait.&lt;br /&gt;&lt;br /&gt;The Install start screen.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYr9Ixhklw_y2L9zoMfDBmg21H32QblvF5qM1dv2FYD-k4_LeIachSNHlxLxKPtKxja79gn5qc06oDb99oh7EKwZl-KIuCnIVEQlPRNurf2rroDUN-ombrHB1Qf7prkYNLD1p4O0QBjmPj/s1600-h/VS2010S1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 246px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYr9Ixhklw_y2L9zoMfDBmg21H32QblvF5qM1dv2FYD-k4_LeIachSNHlxLxKPtKxja79gn5qc06oDb99oh7EKwZl-KIuCnIVEQlPRNurf2rroDUN-ombrHB1Qf7prkYNLD1p4O0QBjmPj/s320/VS2010S1.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394772361788190594&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More install&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFAdWyXREJf071nBZ76LP76l3h99GFKZYCg8dTo2xi53sEiaFSZHRR8Ub3EDVhJ-MzSLnELG4dEQ6qSEUcqxzuBp_1y8QA51mqJE_TUWvDaKgGPmG-ZGl0oi5wNIVFgiPI0Z460FazecTI/s1600-h/VS2010S2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 246px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFAdWyXREJf071nBZ76LP76l3h99GFKZYCg8dTo2xi53sEiaFSZHRR8Ub3EDVhJ-MzSLnELG4dEQ6qSEUcqxzuBp_1y8QA51mqJE_TUWvDaKgGPmG-ZGl0oi5wNIVFgiPI0Z460FazecTI/s320/VS2010S2.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394772607780192882&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Install process&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUyeQiRAdQa1uodFDGqTOVtGXRBUYTeIYW6R9wgrGnUvZOBQsnmhY88v5jzZ7UXszYQ7k1BIopHWY-8_es4icHFrCj-z6z7xceQvIlT8ewOcBoodxHLgvolEOHz9SrbsqAiIg5R5LbQXYo/s1600-h/VS2010S3.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 246px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUyeQiRAdQa1uodFDGqTOVtGXRBUYTeIYW6R9wgrGnUvZOBQsnmhY88v5jzZ7UXszYQ7k1BIopHWY-8_es4icHFrCj-z6z7xceQvIlT8ewOcBoodxHLgvolEOHz9SrbsqAiIg5R5LbQXYo/s320/VS2010S3.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394772816212445474&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The start up screen has been greatly enhanced since beta 1.&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpiKjUv8GWwpw_sC15kWqk2SmrdJbWSWkFVUIOD5jocyMEGDcfO9-G9zz6GNjoF1S4gU2AlLIJc2oqF9JRkTeOenTo1ynNWWTVezjQED_gGXqzAGSpwGH98Fa9mkyKDOCcuyavjA_NiKBW/s1600-h/VS2010Start.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 192px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpiKjUv8GWwpw_sC15kWqk2SmrdJbWSWkFVUIOD5jocyMEGDcfO9-G9zz6GNjoF1S4gU2AlLIJc2oqF9JRkTeOenTo1ynNWWTVezjQED_gGXqzAGSpwGH98Fa9mkyKDOCcuyavjA_NiKBW/s320/VS2010Start.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5394773091452405234&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are a number of changes, in fact too many to list in a single entry. Look forward to the continuation of the workflow series shortly..</description><link>http://bradraulston.blogspot.com/2009/10/microsoft-has-released-vs-2010-beta-2.html</link><author>noreply@blogger.com (Brad)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYr9Ixhklw_y2L9zoMfDBmg21H32QblvF5qM1dv2FYD-k4_LeIachSNHlxLxKPtKxja79gn5qc06oDb99oh7EKwZl-KIuCnIVEQlPRNurf2rroDUN-ombrHB1Qf7prkYNLD1p4O0QBjmPj/s72-c/VS2010S1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-6666998189427623628</guid><pubDate>Fri, 16 Oct 2009 01:20:00 +0000</pubDate><atom:updated>2009-10-15T21:20:41.925-04:00</atom:updated><title>Practicing Scrum or Doing Scrum?</title><description>&lt;p&gt;If your organization is like any other today, they’re looking for ways to cut costs and deliver on time and for many development teams it means Scrum or some variation. &lt;/p&gt;  &lt;p&gt;When you ask your peers what methodology they are using many will say Scrum, but the fact of the matter is Scrum is not a methodology it is a wrapper around existing methodologies. Scrum will work with anything from CMM to XP. &lt;/p&gt;  &lt;p&gt;&amp;#160; In the company I’m with now we do sprints, planning and daily stand up meetings. Even doing those things we’re not really practicing Scrum, we’re doing Scrum. We’re just going through the motions and when you do that quality is the first thing to suffer followed by moral. Each sprint becomes a death march and the developers don’t really pay much attention to what is on the backlog, it’ll be rolled forward if it’s not finished. You also begin to see backlog fudge, where some pet project or desire is added because someone felt like that’s what they wanted to do. Inevitably we no longer release or demo functionality to the users and owners at the end of the sprint. We’ve gone from Scrum and XP to “Scrumterfall”&amp;#160; Waterfall with a Scrum veneer.&lt;/p&gt;  &lt;p&gt;So how do we bring turn around from just going through the motions to reaping the benefits of practicing Scrum?&lt;/p&gt;  &lt;p&gt;&amp;#160; The first thing that needs to be addressed is the backlog. The backlog need to be scrubbed and reprioritized. This process needs to happen on a continual basis, otherwise the backlog becomes stale. &lt;/p&gt;  &lt;p&gt;&amp;#160; Once we have a well prioritized backlog, we need to plan the sprints. Normally we plan sprints for two or three weeks, which honestly is not enough time, especially in a greenfield project, such as the one we’re currently working on. Sprints should ideally be thirty days. I like thirty work days as opposed to thirty calendar days, that way you know exactly what time you have to plan and execute with. Planning shouldn’t be a one or two hour meeting where you grab enough items off the list to fill the available velocity. Rather planning should last for a whole day. The highest priority backlog items should be broken down enough to give a decent effort. Once you’ve selected and planned the backlog based on releasing working functionality you’re halfway there. It is essential that all the team members buy into the work to be performed and agree that it can be accomplished.&lt;/p&gt;  &lt;p&gt;During the sprint the Scrum master needs to play the role of “Heavy” and eliminate interference and remove obstacles from the dev teams goal. He/She needs to insure the backlog doesn’t grow to include “pet” projects or “I feel like doing something else” backlog items. He should lead the daily stand ups using a simple format. What did you do yesterday?, What are you doing today? and What obstacles are preventing you from completing your tasks? The daily stand ups are not optional affairs, they should include everyone always, no excuses. &lt;/p&gt;  &lt;p&gt;&amp;#160; The team should work to accomplish all the tasks planned for the sprint, but realize that you may not always complete all of the backlog items for a given sprint. You may also discover during the course of the sprint that the scope of some backlog items were underestimated or impacted more than originally thought. &lt;/p&gt;  &lt;p&gt;The sprint should be closed out with a demo of the features implemented during the sprint. Invite users and management to come and try the functionality for themselves. Involving the users is key, if they’re not engaged or see no tangible benefit they’ll be less like to support further development. &lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2009/10/practicing-scrum-or-doing-scrum.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-5952011907085794836</guid><pubDate>Mon, 14 Sep 2009 02:21:00 +0000</pubDate><atom:updated>2009-09-13T22:21:23.339-04:00</atom:updated><title>Where’s part 4</title><description>&lt;p&gt; It’s been a while since I last posted and to be honest, I simply haven’t had the time to complete part 4 of the windows workflow series. It looks like that will probably be posted once beta 2 is of VS2010 is available. There are several reasons, one, hopefully beta 2 will be more representative of the final release and two, my workload has been pretty hectic these days.&lt;/p&gt;  &lt;p&gt; On the plus side, I’ve spent a great deal of time in Silverlight 3 these days. I’m moving an existing ASPNET app to SL3 and the difference in performance is night and day. Maybe it’s the no post back thing or just the added richness that can be added quickly at any rate I’m now a SL/WPF convert.&lt;/p&gt;  &lt;p&gt; Anyhow, stay tuned there is more workflow and some silverlight coming up on the blog as soon as I get caught up. &lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2009/09/wheres-part-4.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-6901808664375830569</guid><pubDate>Sat, 11 Jul 2009 03:18:00 +0000</pubDate><atom:updated>2009-07-10T23:18:53.635-04:00</atom:updated><title>More on Visual Studio Magazines demise</title><description>&lt;p&gt; In the comments to my earlier &lt;a href=&quot;http://bradraulston.blogspot.com/2009/07/visual-studio-magazine.html&quot;&gt;post&lt;/a&gt; on the sad state of Visual Studio Magazine I responded to Matt Morollo VP of Publishing for the Redmond Group. I’d like to take the numbers quoted in my response and compare the current issue to the December 2008 issue, which was before the redesign of the magazine.&lt;/p&gt;  &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;400&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;&amp;#160;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;&lt;strong&gt;Current Issue&lt;/strong&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;&lt;strong&gt;December 2008&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;Pages&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;32&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;40&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;Adverts&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;13&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;13&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;Meaningful articles*&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;0&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;3&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;* A meaningful article is defined as one that contains code samples or demonstrates a technology or language feature.&lt;/p&gt;  &lt;p&gt; As you can see we’ve lost 8 pages, 3 articles and manages to keep the same number of advertisements. &lt;/p&gt;  &lt;p&gt;At the end of the day the advertisers are the real losers here. The subscribers will seek out and find new sources of information either through print or on the internet while the advertisers who are footing the bill for the shiny anemic new look will not see much return in terms of revenue. &lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2009/07/more-on-visual-studio-magazines-demise.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-4796226447267750696</guid><pubDate>Fri, 10 Jul 2009 16:10:00 +0000</pubDate><atom:updated>2009-07-10T12:10:21.430-04:00</atom:updated><title>Silverlight 3 tools  released</title><description>&lt;p&gt; Silverlight 3 tools have been released. Unfortunately Blend 3 hasn’t been released to manufacturing yet. You can grab the bits at &lt;a title=&quot;http://silverlight.net/GetStarted/&quot; href=&quot;http://silverlight.net/GetStarted/&quot;&gt;http://silverlight.net/GetStarted/&lt;/a&gt;&lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2009/07/silverlight-3-tools-released.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4228806924509013679.post-2488078708772365721</guid><pubDate>Thu, 09 Jul 2009 18:06:00 +0000</pubDate><atom:updated>2009-07-09T14:06:14.047-04:00</atom:updated><title>Silverlight 3 has been released to the web</title><description>&lt;p&gt;You can get it here. &lt;a title=&quot;http://www.microsoft.com/silverlight/resources/install.aspx&quot; href=&quot;http://www.microsoft.com/silverlight/resources/install.aspx&quot;&gt;http://www.microsoft.com/silverlight/resources/install.aspx&lt;/a&gt;&lt;/p&gt;  </description><link>http://bradraulston.blogspot.com/2009/07/silverlight-3-has-been-released-to-web.html</link><author>noreply@blogger.com (Brad)</author><thr:total>0</thr:total></item></channel></rss>