<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>hacked.brain</title>
        <link>http://blog.hackedbrain.com/Default.aspx</link>
        <description>Ramblings from a compromised mind.</description>
        <language>en-US</language>
        <copyright>Drew Marsh</copyright>
        <managingEditor>drew@hackedbrain.com</managingEditor>
        <generator>Subtext Version 1.9.4.78</generator>
        <image>
            <title>hacked.brain</title>
            <url>http://blog.hackedbrain.com/images/RSS2Image.gif</url>
            <link>http://blog.hackedbrain.com/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>ADO.NET Entity Framework's CompiledQuery when using anonymous projections shows why C# needs &amp;quot;mumble&amp;quot; types</title>
            <link>http://blog.hackedbrain.com/archive/2008/05/15/6160.aspx</link>
            <description>&lt;p&gt;Ok, that's a really long title for a post, so what the heck do I mean by all that? Well, I've started working with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.objects.compiledquery.aspx"&gt;CompiledQuery class&lt;/a&gt; and I've run into a language limitation problem that almost makes any kind of performance gain I might get from CompiledQuery not worthwhile when using projections due to the fact that they cannot be anonymous so you're forced to define a new class yourself to represent the projection.&lt;/p&gt;  &lt;p&gt;First off, if you're not familiar with CompiledQuery, it's basically an optimization provided by the ADO.NET Entity Framework that enables it to take your LINQ expression once, generate a cached execution plan (not in the SQL sense, but in the entity sense) for it and return you a &lt;a href="http://msdn.microsoft.com/en-us/library/bb534960.aspx"&gt;Func delegate&lt;/a&gt; on the fly that takes parameters to allow you to plug in any dynamic values you might need for the query (e.g. for a where clause).&lt;/p&gt;  &lt;p&gt;Secondly, if you're not familiar with the C# "mumble" type problem, jump on over to &lt;a href="http://www.interact-sw.co.uk/iangblog/2008/03/17/lambda-inference"&gt;this excellent post from Ian Griffiths&lt;/a&gt; where he details the issues quite well and even talks about the language changes that the C# team was thinking about making to support the concept.&lt;/p&gt;  &lt;p&gt;Go ahead... I'll wait. Done yet? K. :) So here's why CompiledQuery suffers from this problem annoying problem. The whole point of CompiledQuery is that you can call Compile once for the LINQ expression and store the resulting Func delegate instance so you can reuse it over and over. So ideally you'd want to store this Func delegate in a static variable or, at bare minimum, a member variable right? Here's how you could create a compiled query that allows you to find all orders for a customer in a specific status. Note that for my examples, I'm assuming we've created an EF model over &lt;a href="http://www.codeplex.com/MSFTDBProdSamples/Wiki/View.aspx?title=%20AdventureWorksLTDiagram&amp;amp;referringTitle=AWSchemaDiag"&gt;the AdventureWorksLT DB&lt;/a&gt;. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;public static Func&amp;lt;AdventureWorksLTEntities, DateTime, &lt;strong&gt;IQueryable&amp;lt;SalesOrderHeader&amp;gt;&lt;/strong&gt;&amp;gt; GetCustomersOrdersByStatus =         &lt;br /&gt;    CompiledQuery.Compile((AdventureWorksLTEntities entities, int customerId, int status) =&amp;gt;         &lt;br /&gt;        from order in entities.SalesOrderHeader         &lt;br /&gt;        where order.CustomerID == customerId         &lt;br /&gt;            &amp;amp;&amp;amp;         &lt;br /&gt;        order.Status == status  &lt;br /&gt;        select &lt;strong&gt;order&lt;/strong&gt;);&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I can then call this function and consume it's results like so:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;using(AdventureWorksLTEntities entities = new AdventureWorksLTEntities())       &lt;br /&gt;&lt;/code&gt;&lt;code&gt;{       &lt;br /&gt;    foreach(var order in &lt;strong&gt;MyCompiledQueries.GetCustomersOrdersByStatus(entities, someCustomerId, someStatusValue)&lt;/strong&gt;)        &lt;br /&gt;    {        &lt;br /&gt;       /* ... do something with the order ... */        &lt;br /&gt;    }        &lt;br /&gt;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now, the above example actually works out just fine because we're selecting the entire SalesOrderHeader entity type so I know the type parameter for my IQueryable&amp;lt;T&amp;gt; is going to be SalesOrderHeader. The problem comes in when you want to do a projection of fields, either from multiple entities or just reducing the number of fields you bring back from a single entity because that results in an anonymous type being generated. For example, assume I want to bring back some data from the customer and just some data from the order for presentation in a list view:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;public static Func&amp;lt;AdventureWorksLTEntities, int, int, &lt;strong&gt;IQueryable&amp;lt;???&amp;gt;&lt;/strong&gt;&amp;gt; GetCustomersOrdersByStatus =         &lt;br /&gt;    CompiledQuery.Compile((AdventureWorksLTEntities entities, int customerId, int status) =&amp;gt;         &lt;br /&gt;        from order in entities.SalesOrderHeader        &lt;br /&gt;        join customer in entities.Customer on order.CustomerId = customer.CustomerId        &lt;br /&gt;        where customer.CustomerID == customerId         &lt;br /&gt;            &amp;amp;&amp;amp;         &lt;br /&gt;        order.Status == status  &lt;br /&gt;&lt;strong&gt;        select new         &lt;br /&gt;        {          &lt;br /&gt;            CustomerId = customer.CustomerID,          &lt;br /&gt;            CustomerFirstName = customer.FirstName,          &lt;br /&gt;            CustomerLastName =&lt;/strong&gt;&lt;/code&gt;&lt;code&gt;&lt;strong&gt; customer.LastName,         &lt;br /&gt;            CustomerCompanyName = customer.CompanyName,          &lt;br /&gt;            OrderSalesOrderId = order.SalesOrderId,          &lt;br /&gt;            OrderDate = order.OrderDate,          &lt;br /&gt;            OrderTotalDue = order.TotalDue&lt;/strong&gt;&lt;/code&gt;&lt;code&gt;       &lt;br /&gt;&lt;strong&gt;        }&lt;/strong&gt;);&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So, as you can see, I'm now trying to project an anonymous type that is composed of values from two separate entity types. The problem is not the LINQ query because it works just fine by itself. The problem is that I can't determine the type parameter type for the IQueryable&amp;lt;T&amp;gt; for the result parameter of my Func variable because that type is anonymous. This is where having the ability to use a "mumble" type and say IQueryable&amp;lt;var&amp;gt; would help out tremendously because the compiler &lt;em&gt;does&lt;/em&gt; know the anonymous type.&lt;/p&gt;  &lt;p&gt;The only solution to this problem today AFAICT is that you actually need to declare a class to represent the projection and use it to type the Func signature and select it instead of an anonymous type in the LINQ query:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;&lt;strong&gt;public sealed class CustomerOrder         &lt;br /&gt;{          &lt;br /&gt;    public int CustomerId          &lt;br /&gt;    {          &lt;br /&gt;        get;          &lt;br /&gt;        set;          &lt;br /&gt;    }&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;&lt;code&gt;&lt;strong&gt;    /* ... declare other properties here ... */         &lt;br /&gt;}          &lt;br /&gt;&lt;/strong&gt;        &lt;br /&gt;public static Func&amp;lt;AdventureWorksLTEntities, int, int, &lt;strong&gt;IQueryable&amp;lt;CustomerOrder&amp;gt;&lt;/strong&gt;&amp;gt; GetCustomersOrdersByStatus =         &lt;br /&gt;    CompiledQuery.Compile((AdventureWorksLTEntities entities, int customerId, int status) =&amp;gt;         &lt;br /&gt;        from order in entities.SalesOrderHeader        &lt;br /&gt;        join customer in entities.Customer on order.CustomerId = customer.CustomerId        &lt;br /&gt;        where order.CustomerID == customerId         &lt;br /&gt;            &amp;amp;&amp;amp;         &lt;br /&gt;        order.OrderDate == orderDate         &lt;br /&gt;        &lt;strong&gt;select new CustomerOrder         &lt;br /&gt;&lt;/strong&gt;        {        &lt;br /&gt;            CustomerId = customer.CustomerID,        &lt;br /&gt;            CustomerFirstName = customer.FirstName,        &lt;br /&gt;            CustomerLastName =&lt;/code&gt;&lt;code&gt; customer.LastName,       &lt;br /&gt;            CustomerCompanyName = customer.CompanyName,        &lt;br /&gt;            OrderSalesOrderId = order.SalesOrderId,        &lt;br /&gt;            OrderDate = order.OrderDate,        &lt;br /&gt;            OrderTotalDue = order.TotalDue&lt;/code&gt;&lt;code&gt;       &lt;br /&gt;        });&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And so depending on how large your projection is this forces you to do a hell of a lot of code generation which as of today is very manual. It would be great to have a tool that could generate a strong type based on the anonymous type syntax. Maybe there's one out there today that I don't know about?&lt;/p&gt;  &lt;p&gt;Anyway, it's still all stuff the compiler should be smart enough to do for you. The annoying thing is it already does this work, but it's limited to local scope only. Perhaps another solution would be that, instead of using the var keyword to "mumble", they actually gave us a way to give the anonymous type a name inline which would basically name the anonymous type instead of the compiler just generating a random type name.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6160.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/05/15/6160.aspx</guid>
            <pubDate>Thu, 15 May 2008 19:28:35 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/05/15/6160.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6160.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6160.aspx</trackback:ping>
        </item>
        <item>
            <title>David Teitlebaum on Channel 9 reviewing WPF 3.5 SP1 features</title>
            <link>http://blog.hackedbrain.com/archive/2008/05/13/6159.aspx</link>
            <description>&lt;p&gt;It's WPF week over on &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt; and a new episode went up yesterday which has David Teitlebaum, a PM on the WPF team, giving an overview and demos of the new lower level features that SP1 brings to the table. You don't want to miss it, so &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=403854"&gt;hop on over and check that out&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I think we all know the Effects stuff is the most sought after feature, but I know a lot of people were looking for the WriteableBitmap feature since WPF 3.0 and now they have it and, judging by the demo, the performance is amazing.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6159.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/05/13/6159.aspx</guid>
            <pubDate>Tue, 13 May 2008 15:48:11 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/05/13/6159.aspx#feedback</comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6159.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6159.aspx</trackback:ping>
        </item>
        <item>
            <title>Greg Schechter begins series on WPF Effects</title>
            <link>http://blog.hackedbrain.com/archive/2008/05/12/6158.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/greg_schechter/archive/2008/05/09/a-series-on-gpu-based-effects-for-wpf.aspx"&gt;Greg Schechter has begun a series&lt;/a&gt; that covers the ins and outs of the new effects API in WPF 3.5 SP1 (3.6??). This is the real effects API we in the WPF community all been waiting for. It's completely GPU based and unlocks an infinite amount of potential for WPF designers.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6158.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/05/12/6158.aspx</guid>
            <pubDate>Mon, 12 May 2008 20:50:21 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/05/12/6158.aspx#feedback</comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6158.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6158.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio 2008 and .NET Framework 3.5 SP1 Beta Now Available</title>
            <link>http://blog.hackedbrain.com/archive/2008/05/12/6157.aspx</link>
            <description>&lt;p&gt;Somasegar broke the news this morning and provides some details of what to expect from the service packs. &lt;a href="http://blogs.msdn.com/somasegar/archive/2008/05/12/visual-studio-2008-and-net-fx-3-5-sp1-beta-available-now.aspx"&gt;Jump on over to his blog to read about it&lt;/a&gt; and then &lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;click here to start downloading&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Also note that if you're using Expression Blend 2.5 preview, there's an update to that which makes it work with the 3.5 SP1. You can &lt;a href="http://blogs.msdn.com/expression/archive/2008/04/18/vs2008sp1.aspx"&gt;read more about that over here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update 6PM (ET):     &lt;br /&gt;&lt;/strong&gt;Even though I've uninstalled all other betas/CTPs that are documented (and then some) I am unfortunately unable to install the .NET Framework service pack due to the following error that occurs about 2 seconds into the installation:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;[05/12/08,18:01:05] Microsoft .NET Framework 2.0SP1 (CBS): [2] Error: Installation failed for component Microsoft .NET Framework 2.0SP1 (CBS). MSI returned error code 1     &lt;br /&gt;&lt;strong&gt;[05/12/08,18:01:16] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0SP1 (CBS) is not installed.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I've done some searching around and this doesn't seem to be a 3.5SP1 specific problem. I've tried some of the suggested solutions out there, but have yet to get anywhere.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6157.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/05/12/6157.aspx</guid>
            <pubDate>Mon, 12 May 2008 17:39:36 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/05/12/6157.aspx#feedback</comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6157.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6157.aspx</trackback:ping>
        </item>
        <item>
            <title>NIN: The Slip</title>
            <link>http://blog.hackedbrain.com/archive/2008/05/06/6156.aspx</link>
            <description>&lt;p&gt;The new Nine Inch Nails album, titled &lt;a href="http://theslip.nin.com/"&gt;The Slip&lt;/a&gt;, was just released. The album is completely free to download. I've just started listening so I haven't formed an opinion yet, but the first two tracks are straight up NIN recipe and I'm liking it so far. Oh and, unlike &lt;a href="http://ghosts.nin.com/"&gt;Ghosts I-IV&lt;/a&gt; (which I also love), this album includes vocals.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6156.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/05/06/6156.aspx</guid>
            <pubDate>Tue, 06 May 2008 16:17:45 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/05/06/6156.aspx#feedback</comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6156.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6156.aspx</trackback:ping>
        </item>
        <item>
            <title>Zune now offers TV shows</title>
            <link>http://blog.hackedbrain.com/archive/2008/05/06/6155.aspx</link>
            <description>&lt;p&gt;Alright, finally! A step in the video direction for Zune. Starting today &lt;a href="http://money.cnn.com/news/newsfeeds/articles/apwire/689181e3aa58dc171452b8713919da78.htm"&gt;Zune now offers a plethora of TV shows&lt;/a&gt; for download from the Zune Marketplace. Microsoft really should have been out of the gate way before Apple's ITunes with this stuff because they already had all the content for the 360. These are pretty much the same shows you can get on XBox 360, though not all of them (yet?). &lt;/p&gt; &lt;p&gt;My biggest question at this point is: If I bought an episode on 360, do I get it for my Zune? Vice versa? If not, why not (other than greed)? It's the same content in a different format.&lt;/p&gt; &lt;p&gt;Oh yeah, there's also a new software and firmware upgrade that comes with this, so make sure to go into settings and click the update software button. In addition to the video stuff, the software update adds &lt;a href="http://www.microsoft.com/presspass/features/2008/may08/05-05zunesocial.mspx"&gt;some new community features&lt;/a&gt; that are pretty nifty.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6155.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/05/06/6155.aspx</guid>
            <pubDate>Tue, 06 May 2008 13:29:41 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/05/06/6155.aspx#feedback</comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6155.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6155.aspx</trackback:ping>
        </item>
        <item>
            <title>A post on Silverlight 2's layout and rendering</title>
            <link>http://blog.hackedbrain.com/archive/2008/04/14/6154.aspx</link>
            <description>&lt;p&gt;I just wanted to link to &lt;a href="http://nerddawg.blogspot.com/2008/04/silverlight-2-layout-and-rendering.html"&gt;this great post on Silverlight 2's layout and rendering features&lt;/a&gt;. Both features borrow heavily from WPF, but there are also important differences. For one, unlike WPF, there is only one tree... no &lt;a href="http://msdn2.microsoft.com/en-us/library/ms753391.aspx"&gt;Logical vs. Visual&lt;/a&gt;. Also very cool mention of Silverlight 2's rendering internals being many-core friendly so it scales well on the CPU. Big difference from WPF where rendering is offloaded to the GPU.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6154.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/04/14/6154.aspx</guid>
            <pubDate>Mon, 14 Apr 2008 23:58:58 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/04/14/6154.aspx#feedback</comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6154.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6154.aspx</trackback:ping>
        </item>
        <item>
            <title>How to do SSL pass-through with WCF (a link for the MVP crowd)</title>
            <link>http://blog.hackedbrain.com/archive/2008/04/14/6153.aspx</link>
            <description>&lt;p&gt;I sat in on a very informative roundtable discussion about WCF tips, tricks and pitfalls this afternoon here at the MVP conference. In that discussion one of the topics that came up was load balancing. After some brief discussion, I chimed in with a pitfall that people would need to watch out for which is that, if they're using something like a &lt;a href="http://en.wikipedia.org/wiki/F5_Networks#BIG-IP"&gt;BIG-IP box from F5&lt;/a&gt;, which proxies SSL communication for them, they will have problems getting their message credentials to flow through to the actual web server since communication between the F5 and the web server is done over just plain HTTP. After I finished talking, people were asking for more detail and whether or not I had written something up on the topic. I thought maybe I never ended up writing anything, but it turns out I did! So for those MVPs who are probably here looking for that info now, or for anyone else who might have missed it, &lt;a href="http://blog.hackedbrain.com/archive/2006/09/26/5281.aspx"&gt;here's a link that write up&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Also, I mentioned it in the original article, but I again wanted to give credit to &lt;a href="https://mvp.support.microsoft.com/profile=69FD8B5D-D577-482B-AB0A-DE5131AA7044"&gt;Pedro Felix&lt;/a&gt; because he was a big help in guiding me down the right path to get this all implemented originally. I finally met Pedro today after he recognized the topic and my URL in the roundtable discussion. Thanks again Pedro, nice to finally put a face to the name!&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6153.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/04/14/6153.aspx</guid>
            <pubDate>Mon, 14 Apr 2008 23:19:15 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/04/14/6153.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6153.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6153.aspx</trackback:ping>
        </item>
        <item>
            <title>Mimeo looking for a Web Services freak of nature</title>
            <link>http://blog.hackedbrain.com/archive/2008/04/14/6152.aspx</link>
            <description>&lt;p&gt;Alright, I'm reaching out via my blog for anyone in the NYC area who has strong experience writing web services and wants to join an awesome team, using awesome, bleeding edge technology to develop an enterprise level API for Mimeo.&lt;/p&gt;  &lt;p&gt;Skills required:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;At least 5 years programming with C# and .NET&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Must understand .NET 2.0 concepts such as generics, anonymous methods, etc.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Strong understanding of and production experience with WCF&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Must be able to explain the ABCs&lt;/li&gt;      &lt;li&gt;Must understand security features&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Familiar with the concept of an Enterprise Service Bus&lt;/li&gt;    &lt;li&gt;Understanding of web service standards such as:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;SAML&lt;/li&gt;      &lt;li&gt;WSDL&lt;/li&gt;      &lt;li&gt;WS-*&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Addressing&lt;/li&gt;        &lt;li&gt;Trust&lt;/li&gt;        &lt;li&gt;Atomic Transaction (implies Coordination)&lt;/li&gt;        &lt;li&gt;Eventing&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;Strong understanding of asynchronous programming patterns in .NET&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Skills desired:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Experience with .NET 3.5&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;LINQ&lt;/li&gt;      &lt;li&gt;Latest WCF enhancements&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Experience with O/R mapping frameworks (ADO.NET Entities a big plus)&lt;/li&gt;    &lt;li&gt;Experience with caching (MemCache a big plus)&lt;/li&gt;    &lt;li&gt;Experience with parallel programming (ParalellFx a big plus)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you think you fit the bill and want to join the team, &lt;a href="mailto:jobs@mimeo.com"&gt;drop our HR department a line&lt;/a&gt; and reference this posting so they know exactly what job you're interested in. For more about Mimeo, &lt;a href="http://www.mimeo.com/aboutus/"&gt;check out our "About Us" page&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6152.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/04/14/6152.aspx</guid>
            <pubDate>Mon, 14 Apr 2008 15:54:57 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/04/14/6152.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6152.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6152.aspx</trackback:ping>
        </item>
        <item>
            <title>Off to 2008 MVP Summit</title>
            <link>http://blog.hackedbrain.com/archive/2008/04/13/6151.aspx</link>
            <description>&lt;p&gt;I'm sitting in JFK waiting for my flight to Seattle to depart as I head to this year's MVP Summit. The MVP Summit is always an interesting event. Sometimes there's some new tech revealed, but it's not like a PDC. Mostly it's about networking and providing feedback to Microsoft on what they could be doing better based on our experience in the field. Either way, it's always worth the trip and, as always, I'm looking forward to it.&lt;/p&gt;&lt;img src="http://blog.hackedbrain.com/aggbug/6151.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Drew Marsh</dc:creator>
            <guid>http://blog.hackedbrain.com/archive/2008/04/13/6151.aspx</guid>
            <pubDate>Sun, 13 Apr 2008 19:50:07 GMT</pubDate>
            <comments>http://blog.hackedbrain.com/archive/2008/04/13/6151.aspx#feedback</comments>
            <wfw:commentRss>http://blog.hackedbrain.com/comments/commentRss/6151.aspx</wfw:commentRss>
            <trackback:ping>http://blog.hackedbrain.com/services/trackbacks/6151.aspx</trackback:ping>
        </item>
    </channel>
</rss>