<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>IUpdateable from Eric Nelson</title><link>http://blogs.msdn.com/ericnel/default.aspx</link><description>Cross posted from my primary blog http://geekswithblogs.net/iupdateable/</description><dc:language>en-GB</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>UK MSDN Flash Poll for December 2nd: REST or SOAP in 2010?</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/29/uk-msdn-flash-poll-for-december-2nd-rest-or-soap-in-2010.aspx</link><pubDate>Sun, 29 Nov 2009 22:17:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9929912</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9929912.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9929912</wfw:commentRss><description>&lt;iframe height="300" src="http://zohopolls.com/external/ericnel/rest-or-soap-in-2010" frameborder="0" width="450"&gt;&lt;/iframe&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9929912" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Poll_2F00_Survey/default.aspx">Poll/Survey</category></item><item><title>Getting Started with Entity Framework 4 – Lazy Loading</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/26/getting-started-with-entity-framework-4-lazy-loading.aspx</link><pubDate>Thu, 26 Nov 2009 10:26:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9929025</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9929025.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9929025</wfw:commentRss><description>&lt;p&gt;[This is the fifth in a &lt;a href="http://geekswithblogs.net/iupdateable/category/10944.aspx"&gt;series of posts&lt;/a&gt; on getting started with the new features in Entity Framework 4 based on the demos I did in my session at TechEd Europe in Berlin last week (Nov 2009).]&lt;/p&gt;  &lt;p&gt;Entity Framework v1 did not support a commonly implemented ORM feature called &lt;a href="http://en.wikipedia.org/wiki/Lazy_loading"&gt;Lazy Loading&lt;/a&gt;. Entity Framework 4 adds that feature. In Beta 1 it was known (confusingly IMHO) as Deferred Loading. In Beta 2 it is (thankfully IMHO) known as Lazy Loading.&lt;/p&gt;  &lt;p&gt;You run up against the absence of Lazy Loading in v1 when you start moving across associations between Entities (Objects). Imagine for instance you had an instance of &lt;em&gt;Order&lt;/em&gt; from Northwind and wanted to access its &lt;em&gt;Order_Details, &lt;/em&gt;perhaps to do something as simple as return a count of the number of &lt;em&gt;Order_Details&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;You would be tempted to write:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;order.Order_Details.Count&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;However this will return 0 unless you have already explicitly loaded the related &lt;em&gt;Order_Details &lt;/em&gt;into the &lt;em&gt;ObjectContext&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;In v1 you could either explicitly project in your query (stating up front that you were interested in the count of &lt;em&gt;Order_Details&lt;/em&gt;) or you could use explicit loading :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Orders.Include(“Order_Details”)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Either approach would ultimately give you the correct value instead of a dreaded 0.&lt;/p&gt;  &lt;p&gt;However Lazy Loading ensures that in situations like the above, “It just works” and the beauty is that it requires a single statement to turn it on. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;context.ContextOptions.LazyLoadingEnabled = true;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Check out my primary blog for a &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/26/getting-started-with-entity-framework-4-ndash-lazy-loading.aspx"&gt;simple code sample&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9929025" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>QandA: Is the ADO.NET Entity Data Model designer fixed in .NET 4?</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/24/qanda-is-the-ado-net-entity-data-model-designer-fixed-in-net-4.aspx</link><pubDate>Tue, 24 Nov 2009 13:25:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9927926</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9927926.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9927926</wfw:commentRss><description>&lt;p&gt;[I haven’t done &lt;a href="http://geekswithblogs.net/iupdateable/category/9480.aspx"&gt;QandAs&lt;/a&gt; for a long while – very remiss of me.]&lt;/p&gt;  &lt;p&gt;Anyway, I have been asked this one so many times lately that I felt a more public answer was needed.&lt;/p&gt;  &lt;p&gt;The short answer is: Mostly. Certainly it is good enough to get work done.&lt;/p&gt;  &lt;p&gt;The longer answer is below…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;History&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the first version of Entity Framework (which came with .NET Framework 3.5 SP1), the Entity Framework Designer was… bad. I mean very bad. I mean dumbly bad. We had a decent enough runtime but the design surface just wasn’t up to the job, instead hiding away much of the capabilities of the Entity Framework as well as just poorly supporting the lifecycle of an EDM. &lt;/p&gt;  &lt;p&gt;Many folks needed to either directly edit the underlying xml file (.edmx) or switch to their own tooling or alternative products such as the &lt;a href="http://www.devart.com/entitydeveloper/"&gt;Devart Entity Developer&lt;/a&gt;. This was a huge shame and IMHO (and in my experience) the designer proved to be a huge factor in turning some folks away from the Entity Framework. &lt;/p&gt;  &lt;p&gt;Hence, we have waited with crossed fingers to see what Visual Studio 2010 brings.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Visual Studio 2010 Beta 2 brought us…&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Well, at first glance it brought us the same designer… because it is fundamentally the same designer. &lt;/p&gt;  &lt;p&gt;But this time around the team have had a chance to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Remove most of the rough edges &lt;/li&gt;    &lt;li&gt;Add functionality into the designer to support more of the capabilities of the runtime &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There is a lot of good improvements in the designer such as support for &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/17/getting-started-with-entity-framework-4-ndash-simple-model-first.aspx"&gt;Model First&lt;/a&gt;, &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/24/getting-started-with-entity-framework-4-ndash-complex-types-and.aspx"&gt;Complex Types&lt;/a&gt;, &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/19/getting-started-with-entity-framework-4---templated-code-generation.aspx"&gt;Templated code gen&lt;/a&gt;, Stored Procedure, Pluralization/Singularization plus much improved search and delete capabilities. (Check out the appropriate section of my&amp;#160; &lt;a title="http://bit.ly/ef4resources" href="http://bit.ly/ef4resources"&gt;http://bit.ly/ef4resources&lt;/a&gt; list).&lt;/p&gt;  &lt;p&gt;However, there are still (as of Beta 2) many missing capabilities in the designer including&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Multiple entity sets per type. &lt;/li&gt;    &lt;li&gt;Creating entity sets for non-root types. &lt;/li&gt;    &lt;li&gt;Table-per-concrete class mapping. &lt;/li&gt;    &lt;li&gt;Using EntityType properties in mapping conditions. &lt;/li&gt;    &lt;li&gt;Unmapped abstract types. When you create an abstract entity type with the Entity Designer, the type must be mapped to a table or view. &lt;/li&gt;    &lt;li&gt;Creating conditions on association mappings. &lt;/li&gt;    &lt;li&gt;Mapping associations directly to stored procedures. Mapping many-to-many associations is not supported. You can indirectly map other associations to stored procedures along with entity types by mapping the appropriate navigation properties to stored procedure parameters. &lt;/li&gt;    &lt;li&gt;Creating conditions on Function Import mappings. &lt;/li&gt;    &lt;li&gt;Annotations. &lt;/li&gt;    &lt;li&gt;Query views. &lt;/li&gt;    &lt;li&gt;Models that contain references to other models. &lt;/li&gt;    &lt;li&gt;Creating associations without corresponding navigation properties. &lt;/li&gt;    &lt;li&gt;Adding or editing storage model objects. (Deleting storage model objects is supported.) &lt;/li&gt;    &lt;li&gt;Adding, editing, or deleting functions that are defined in the conceptual model. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The above list is pulled straight from the documentation. In some ways it is a list that actually reflects just how powerful the runtime now is, however that can not disguise the fact that the designer is still playing catch-up with the runtime.&lt;/p&gt;  &lt;p&gt;I would add to the above the following none exhaustive list:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;“Odd” way of working with complex types across Entities &lt;/li&gt;    &lt;li&gt;Model First requiring a database connection &lt;/li&gt;    &lt;li&gt;Model First not allowing mapping before first schema gen &lt;/li&gt;    &lt;li&gt;Model First is destructive on generate &lt;/li&gt;    &lt;li&gt;Lack of support for very large models/schemas &lt;/li&gt;    &lt;li&gt;Lack of versioning support &lt;/li&gt;    &lt;li&gt;Lack of support for team development of a model &lt;/li&gt;    &lt;li&gt;Lack of granularity of operations e.g. just re-generate the mapping of a single entity (or exclude an entity) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Overall, the designer in .NET 4 is a welcome improvement to what we get in v1 and is certainly now a useful tool for working with EDMs. But… there is still plenty of room for improvement.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927926" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Q_2600_amp_3B00_A/default.aspx">Q&amp;amp;A</category></item><item><title>Getting Started with Entity Framework 4 – Complex Types and Entities</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/24/getting-started-with-entity-framework-4-complex-types-and-entities.aspx</link><pubDate>Tue, 24 Nov 2009 12:49:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9927905</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9927905.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9927905</wfw:commentRss><description>&lt;p&gt;[This is the fourth in a &lt;a href="http://geekswithblogs.net/iupdateable/category/10944.aspx"&gt;series of posts&lt;/a&gt; on getting started with the new features in Entity Framework 4 based on the demos I did in my session at TechEd Europe in Berlin last week (Nov 2009).]&lt;/p&gt;  &lt;p&gt;Complex Types make it easier to work with objects, allowing the grouping of related properties in Entities and the reuse of these groupings across Entities.&lt;/p&gt;  &lt;p&gt;The first release of Entity Framework included Complex Type support but did not expose this capability through the Entity Data Model Designer. The good news is … it now does.&lt;/p&gt;  &lt;p&gt;You can check out the MSDN documentation on using the &lt;a href="http://msdn.microsoft.com/en-us/library/cc716685(VS.100).aspx"&gt;ADO.NET Entity Data Model Designer&lt;/a&gt; with complex types:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd456820(VS.100).aspx"&gt;How to: Create and Modify Complex Types&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd456823(VS.100).aspx"&gt;How to: Add a Complex Type to an Entity Type&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd456824(VS.100).aspx"&gt;How to: Map a Function Import to a Complex Type&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd456822(VS.100).aspx"&gt;How to: Map Complex Type Properties to Table Columns&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In my earlier post on Model First I slipped in a complex type for &lt;em&gt;Product&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_thumb.png" width="565" height="285" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Specifically I used the &lt;em&gt;Refactor into New Complex Type&lt;/em&gt; option of the designer:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_thumb_1.png" width="329" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To take two properties of &lt;em&gt;Product, Description&lt;/em&gt; and &lt;em&gt;Price, &lt;/em&gt;and create a new Complex Type &lt;em&gt;ProductDetails:&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_thumb_3.png" width="196" height="215" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When I then went on to generate the database script, Entity Framework came up with the following physical schema to support my complex type, concatenating the property name &lt;em&gt;Details&lt;/em&gt; with the original property names &lt;em&gt;Description &lt;/em&gt;and &lt;em&gt;Price&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_thumb_2.png" width="539" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The corresponding mapping is:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Comple_B3A0/image_thumb_4.png" width="526" height="101" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Nice and simple.&lt;/p&gt;  &lt;p&gt;The other use of Complex Types is to &lt;a href="http://msdn.microsoft.com/en-us/library/dd456824(VS.100).aspx"&gt;map a Function Import to a Complex Type&lt;/a&gt;. This is worthy of its own post in the future – as this functionality dramatically simplifies working with stored procedures in Entity Framework 4.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927905" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>SQL Azure and Entity Framework sessions from PDC 2009</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/23/sql-azure-and-entity-framework-sessions-from-pdc-2009.aspx</link><pubDate>Mon, 23 Nov 2009 17:07:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9927377</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9927377.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9927377</wfw:commentRss><description>&lt;p&gt;Two areas I am looking at right now are SQL Azure and Entity Framework 4. PDC had plenty of content on both these areas. Just need to find the time to watch some of it! I have added direct links to the standard definition WMV and the PPTs to download (which is what I am doing right now).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SQL Azure&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVC52"&gt;SQL Azure Database: Present and Future&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVC52.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/SVC52.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVC23"&gt;Using the Microsoft Sync Framework to Connect Apps to the Cloud&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVC23.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/SVC23.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVC27"&gt;The Future of Database Development with SQL Azure&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVC27.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/SVC27.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVC12"&gt;Microsoft SQL Azure Database: Under the Hood&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVC12.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/SVC12.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/SVC06"&gt;Scaling out Web Applications with Microsoft SQL Azure Databases&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVC06.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/SVC06.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-14"&gt;Petabytes for Peanuts! Making Sense out of “Ambient” Data&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVC04.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/SVC04.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://microsoftpdc.com/Sessions/P09-08"&gt;Development Best Practices and Patterns for Using Microsoft SQL Azure Databases&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVC03.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/SVC03.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Entity Framework and related technologies&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="ADO.NET Data Services- What’s new with the RESTful data services framework" href="http://microsoftpdc.com/Sessions/FT12"&gt;ADO.NET Data Services- What’s new with the RESTful data services framework&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/FT12.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/FT12.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="Evolving ADO.NET Entity Framework in .NET 4 and Beyond" href="http://microsoftpdc.com/Sessions/FT10"&gt;Evolving ADO.NET Entity Framework in .NET 4 and Beyond&lt;/a&gt;&amp;#160; &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/FT10.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/FT10.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="Data Programming and Modeling for the Microsoft .NET Developer" href="http://microsoftpdc.com/Sessions/P09-04"&gt;Data Programming and Modeling for the Microsoft .NET Developer&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/FT02.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/FT02.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="Microsoft Project Code Name “M”- The Data and Modeling Language" href="http://microsoftpdc.com/Sessions/FT34"&gt;Microsoft Project Code Name “M”- The Data and Modeling Language&lt;/a&gt;&amp;#160; &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/FT34.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="NEW TITLE- SQL Server Modeling Services- Using Metadata to Drive Application Design, Development" href="http://microsoftpdc.com/Sessions/SVR19"&gt;SQL Server Modeling Services- Using Metadata to Drive Application Design, Development&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/SVR19.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/SVR19.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a title="PLINQ- LINQ, but Faster!" href="http://microsoftpdc.com/Sessions/FT21"&gt;PLINQ- LINQ, but Faster!&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a title="Windows Media Video" href="http://ecn.channel9.msdn.com/o9/pdc09/wmv/FT21.wmv"&gt;Windows Media Video&lt;/a&gt;&amp;#160;&lt;a title="PPT" href="http://ecn.channel9.msdn.com/o9/pdc09/ppt/FT21.pptx"&gt;PPT&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927377" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Free Online and Offline .NET, SQL and Azure Training Resources from Microsoft</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/23/free-online-and-offline-net-sql-and-azure-training-resources-from-microsoft.aspx</link><pubDate>Mon, 23 Nov 2009 10:04:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9927184</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9927184.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9927184</wfw:commentRss><description>&lt;p&gt;I was asked a little while back to pull together the best training resources for .NET development to feed into a MSDN UK site. I thought it would be useful to share here as well. By no means everything is listed but sometimes less is more :-). Enjoy:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Top Tip:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Watch out – these are sometimes big downloads. For instance I just downloaded a high def PDC2009 session at 600MB! I recommend you check out &lt;a href="http://www.freedownloadmanager.org/download.htm"&gt;Free Download Manager&lt;/a&gt; – it is a great open source tool for working with large files.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Offline Training&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8BDAA836-0BBA-4393-94DB-6C3C4A0C98A1&amp;amp;displaylang=en"&gt;Visual Studio 2008 and .NET Framework 3.5 Training Kit&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=355C80E9-FDE0-4812-98B5-8A03F5874E96&amp;amp;displaylang=en"&gt;.NET Framework 3.5 Enhancements Training Kit&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1E0BE0B2-910A-4676-9F3A-41E4D9C0FC08&amp;amp;displaylang=en"&gt;ASP.NET MVC Training Kit&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=E9C68E1B-1E0E-4299-B498-6AB3CA72A6D7&amp;amp;displaylang=en "&gt;SQL Server 2008 Developer Training Kit&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;amp;displaylang=en"&gt;Windows Azure Platform Training Kit&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=7992"&gt;C# and XNA Programming Course&lt;/a&gt; – detailed training designed for faculties. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Microsoft sites focused on free training (yep, we have at least 3 of them!)&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft &lt;a href="http://www.microsoft.com/learning/en/us/training/vstudio.aspx "&gt;Visual Studio Training Portal&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/rampup/default.aspx"&gt;Ramp Up&lt;/a&gt; community-based learning (ASP, PHP, SharePoint, Mobile and more) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.msdev.com/"&gt;msdev.com&lt;/a&gt; for free training (Silverlight, Windows 7, Application Compatibility, SQL Server 2008, Azure and more) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Microsoft Shows available on-demand:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Watch the sessions from the &lt;a href="http://microsoftpdc.com/Sessions/"&gt;PDC2009&lt;/a&gt; developer conference (Azure, VS2010 and more) &lt;/li&gt;    &lt;li&gt;Watch the sessions from the &lt;a href="http://channel9.msdn.com/pdc2008/"&gt;PDC2008&lt;/a&gt; developer conference (Azure, VS2010 and more) &lt;/li&gt;    &lt;li&gt;Watch the sessions from the &lt;a href="http://videos.visitmix.com/MIX09/"&gt;MIX09&lt;/a&gt; conference (Silverlight, Web and more)       &lt;ul&gt;       &lt;li&gt;The UK &lt;a href="http://www.microsoft.com/uk/remix08/agenda.aspx"&gt;ReMix&lt;/a&gt; event from Sept 2008 &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Online (Video, ScreenCasts, Webcasts, Tutorials, Labs)&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://channel9.msdn.com/Media/Videos/"&gt;Channel 9 &lt;/a&gt;      &lt;ul&gt;       &lt;li&gt;My teams &lt;a href="http://channel9.msdn.com/unitedkingdom/"&gt;little corner of Channel 9&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-gb/aa570323.aspx"&gt;Virtual Labs for Visual Studio 2008 and more&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb507746.aspx"&gt;“How Do I?” Videos for Visual Studio&lt;/a&gt;. Which includes content from&amp;#160; &lt;ul&gt;       &lt;li&gt;&lt;a href="http://www.asp.net/learn/"&gt;http://www.asp.net/learn/&lt;/a&gt; Videos and Tutorials for ASP.NET &lt;/li&gt;        &lt;li&gt;&lt;a href="http://windowsclient.net/learn/videos_wpf.aspx"&gt;http://windowsclient.net/learn/videos_wpf.aspx&lt;/a&gt; Videos for Windows Presentation Foundation &lt;/li&gt;        &lt;li&gt;&lt;a href="http://silverlight.net/Learn/"&gt;http://silverlight.net/Learn/&lt;/a&gt; Videos for Silverlight &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;And lest we forget:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The excellent MSDN Magazine is available &lt;a href="&amp;bull;	http://msdn.microsoft.com/en-gb/magazine/default.aspx"&gt;free online&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9927184" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/UK/default.aspx">UK</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Events_2F00_Training/default.aspx">Events/Training</category></item><item><title>T4 Templates and the answer to life, the universe and everything</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/20/t4-templates-and-the-answer-to-life-the-universe-and-everything.aspx</link><pubDate>Fri, 20 Nov 2009 09:37:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9926089</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9926089.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9926089</wfw:commentRss><description>&lt;p&gt;[This is the third in a &lt;a href="http://geekswithblogs.net/iupdateable/category/10944.aspx"&gt;series of posts&lt;/a&gt; on getting started with the new features in Entity Framework 4 based on the demos I did in my session at TechEd Europe in Berlin last week (Nov 2009).]&lt;/p&gt;  &lt;p&gt;Entity Framework 4 relies significantly on the Text Template Transformation Toolkit (T4) to generate code from the EDM.&lt;/p&gt;  &lt;p&gt;I thought it would be useful to show a really simple example of T4 in action which is nothing to do with Entity Framework.&lt;/p&gt;  &lt;p&gt;In a Visual Studio 2008/2010 solution, add a new item of type &lt;em&gt;Text Template&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/T4Templates_1372B/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/T4Templates_1372B/image_thumb.png" width="640" height="443" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Edit the “output extension=” pragma to generate a “.cs” file and add some C# code for a very simple class which has a single method &lt;em&gt;TheAnswer &lt;/em&gt;which contains a single &lt;em&gt;WriteLine&lt;/em&gt;. In the WriteLine use a T4 &amp;lt;#= #&amp;gt; block. &amp;lt;#= represents the start of a simple evaluation block, in this case the evaluation is to add 41+1:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/T4Templates_1372B/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/T4Templates_1372B/image_thumb_1.png" width="642" height="194" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;NB: I am using the &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/20/tangible-t4-editor-ndash-a-life-saver.aspx"&gt;Tangible T4 editor&lt;/a&gt; to give me syntax highlighting and intellisense. You will need to add this into Visual Studio &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/20/tangible-t4-editor-ndash-a-life-saver.aspx"&gt;using the Extensions Manager&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Next build the project or click on Transform Templates in the Solution Explorer:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/T4Templates_1372B/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/T4Templates_1372B/image_thumb_3.png" width="331" height="218" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You will now see a new C# file in your project,&lt;em&gt; SimpleTemaplate.cs&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/T4Templates_1372B/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/T4Templates_1372B/image_thumb_2.png" width="642" height="190" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In summary a T4 template is composed of: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Blocks of text: text that simply is copied into the output file(s) &lt;/li&gt;    &lt;li&gt;Directives: meta information for the template such as “output extension=” enclosed in &amp;lt;#@ … #&amp;gt; &lt;/li&gt;    &lt;li&gt;Statements: code enclosed in &amp;lt;#...#&amp;gt; &lt;/li&gt;    &lt;li&gt;Expressions: code that is evaluated to a string &amp;lt;#= …#&amp;gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The above is pretty much the most basic example of T4 I could come up with. However there are plenty of other great resources on T4 out there. &lt;a href="http://www.olegsych.com"&gt;Oleg Sych&lt;/a&gt; has been heavily involved with T4 for many years and has many great posts. You may want to start with &lt;a href="http://www.olegsych.com/2008/09/t4-tutorial-creatating-your-first-code-generator/"&gt;this tutorial&lt;/a&gt; done as a series of posts.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9926089" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Tangible T4 Editor – a life saver</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/20/tangible-t4-editor-a-life-saver.aspx</link><pubDate>Fri, 20 Nov 2009 09:18:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9926080</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9926080.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9926080</wfw:commentRss><description>&lt;p&gt;I have been working with T4 (Text Template Transformation Toolkit) lately thanks to the Entity Framework team &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/19/getting-started-with-entity-framework-4---templated-code-generation.aspx"&gt;moving their code generation model over to T4&lt;/a&gt; in Visual Studio 2010. However by default Visual Studio 2008 and 2010 do not include syntax highlighting or intellisense support for T4 files, which makes it rather difficult to work with them (very difficult at times!). Thankfully there are partners who address this. The one I am using with Beta 2 of Visual Studio 2010 is the &lt;a href="http://t4-editor.tangible-engineering.com/Readme_FMT_B2.htm"&gt;Tangible T4 editor&lt;/a&gt;. You can easily add this into Visual Studio using the Extensions Manager from the Tools menu:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_thumb.png" width="640" height="442" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once added, it will change this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_thumb_1.png" width="518" height="208" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Into this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_thumb_2.png" width="612" height="237" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Sweet!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9926080" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Getting Started with Entity Framework 4 - Templated Code Generation</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/20/getting-started-with-entity-framework-4-templated-code-generation.aspx</link><pubDate>Fri, 20 Nov 2009 07:39:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9926047</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9926047.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9926047</wfw:commentRss><description>&lt;p&gt;[This is the second in a &lt;a href="http://geekswithblogs.net/iupdateable/category/10944.aspx"&gt;series of posts&lt;/a&gt; on getting started with the new features in Entity Framework 4 based on the demos I did in my session at TechEd Europe in Berlin last week (Nov 2009).]&lt;/p&gt;  &lt;p&gt;Code generation from the Entity Data Model (EDM) has changed significantly in version 4 of the Entity Framework. The product does retain a backwardly compatible model of code generation but also now includes T4 templates for code generation. This is a fantastic addition to the Entity Framework as many developers want to (easily) control the code generated from the EDM to meet their specific needs, which was very difficult to do in version 1 as it depended on the &lt;a href="http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx"&gt;CodeDom&lt;/a&gt;. T4 gives us:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Full control over the code generation from an EDM &lt;/li&gt;    &lt;li&gt;The ability for developers to easily customise the templates produced by Microsoft &lt;/li&gt;    &lt;li&gt;The ability for Microsoft to easily add additional templates in the future &lt;/li&gt;    &lt;li&gt;The ability for developers to easily share templates between projects, teams and companies &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;T4 was first introduced in Visual Studio 2008 and stands for Text Template Transformation Toolkit – a code generation tool similar in capabilities to the likes of &lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;T4 was largely overlooked in Visual Studio 2008, in the main because there was no real UI for T4. In general&amp;#160; I come across very very few developers who have heard of or understand the power of T4. However, now that the Entity Framework team (and the ASP.NET MVC team) have adopted T4 wholeheartedly I expect T4 will itself get the attention it deserves.&lt;/p&gt;  &lt;p&gt;The EF team include a single T4 template in Beta 2 but add a further template in CTP2 for self tracking entities&amp;#160; (In Beta 1 they also had a singel template but added an additional two in the companion CTP1).&lt;/p&gt;  &lt;p&gt;By default you are not using T4 if you add a new EDM or if you open a version 1 EDM. You need to enable T4 code gen for your EDM. You do this by right clicking on the EDM design surface and then add in the template(s).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/19/getting-started-with-entity-framework-4---templated-code-generation.aspx"&gt;Read the rest of this post&lt;/a&gt; (with lots of screen grabs) over on my primary blog &lt;a title="http://geekswithblogs.net/iupdateable" href="http://geekswithblogs.net/iupdateable"&gt;http://geekswithblogs.net/iupdateable&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9926047" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category></item><item><title>SQL Azure slides and links from EdgeUG session</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/19/sql-azure-slides-and-links-from-edgeug-session.aspx</link><pubDate>Thu, 19 Nov 2009 11:45:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9925327</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9925327.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9925327</wfw:commentRss><description>&lt;p&gt;A big thanks to all those who attended last night to hear about SQL Azure and SQL Server 2008 R2. I really enjoyed it and once again “Merry Christmas”!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://bit.ly/startazure" href="http://bit.ly/startazure"&gt;http://bit.ly/startazure&lt;/a&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt; takes you to the getting started page for SQL Azure (and Windows Azure) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/11/sql-server-management-studio-now-supports-sql-azure.aspx"&gt;Download SQL Server Management Studio R2&lt;/a&gt; which works with SQL Azure &lt;/li&gt;    &lt;li&gt;Brief &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/13/using-sql-server-management-studio-r2-with-sql-azure.aspx"&gt;walkthrough of using SSMS R2 with SQL Azure&lt;/a&gt; (nice screenshots similar to what I showed in the first demo) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://sqlazuremw.codeplex.com/"&gt;Download the SQL Azure Migration Wizard&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/ericnel"&gt;http://twitter.com/ericnel&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://twitter.com/ukmsdn"&gt;http://twitter.com/ukmsdn&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;The &lt;a href="http://geekswithblogs.net/iupdateable/category/9967.aspx"&gt;UK MSDN Flash Podcast&lt;/a&gt; which I tinker with :-) Slowly moving &lt;a href="http://channel9.msdn.com/tags/UKMSDNPodcast/"&gt;onto Channel 9&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Slides&lt;/strong&gt;&lt;/p&gt;  &lt;div style="text-align: left; width: 425px" id="__ss_2535529"&gt;&lt;a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="SQL Azure Overview - ericnel" href="http://www.slideshare.net/ukdpe/sql-azure-overview-ericnel"&gt;SQL Azure Overview - ericnel&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sqlazure-ericnel-091119053426-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=sql-azure-overview-ericnel" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sqlazure-ericnel-091119053426-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=sql-azure-overview-ericnel" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px"&gt;View more &lt;a style="text-decoration: underline" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline" href="http://www.slideshare.net/ukdpe"&gt;ukdpe&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9925327" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Using SQL Server Management Studio R2 with SQL Azure</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/17/using-sql-server-management-studio-r2-with-sql-azure.aspx</link><pubDate>Tue, 17 Nov 2009 23:56:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9923954</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9923954.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9923954</wfw:commentRss><description>&lt;p&gt;As I &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/11/sql-server-management-studio-now-supports-sql-azure.aspx"&gt;mentioned earlier this week&lt;/a&gt;, we now have a CTP release of a version of SSMS that is SQL Azure aware.&lt;/p&gt;  &lt;p&gt;I thought it might be useful to share my first few minutes with it. First up, I cleared out my SQL Azure account using the portal (dropped all my databases).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_2.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_thumb.png" width="642" height="470" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And I made sure the firewall setting would allow me to connect: (for simplicity I just opened up everything. &lt;strong&gt;Don’t do that&lt;/strong&gt;!)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_16.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_thumb_7.png" width="642" height="320" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Then I downloaded (155MB) SSMS R2 Nov CTP (&lt;a href="http://go.microsoft.com/fwlink/?LinkID=168734&amp;amp;clcid=0x409"&gt;32bit&lt;/a&gt; or &lt;a href="http://go.microsoft.com/fwlink/?LinkID=168735&amp;amp;clcid=0x409"&gt;64bit&lt;/a&gt;) and installed it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/ssms%20installed.jpg" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ssms installed" border="0" alt="ssms installed" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/ssms%20installed_thumb.jpg" width="644" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Which gave me a new menu group for R2:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_6.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_thumb_2.png" width="253" height="246" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Launching SSMS R2 I filled in my server name, admin name and password copied over from the portal:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_8.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_thumb_3.png" width="420" height="315" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Which then gave me the usual catalogue view:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_10.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_thumb_4.png" width="621" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And allowed me to do a Create Database using the new SQL Azure templates (no dialogue boxes):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_12.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_thumb_5.png" width="644" height="343" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Which was there waiting for me in the portal:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_14.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_thumb_6.png" width="642" height="316" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I have not done an exhaustive check – but looks like we have SQL Azure templates for most/all :-)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_18.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/UsingSQLServerManagementStudioR2withSQLA_E25E/image_thumb_8.png" width="642" height="323" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Nice and simple. I also just &lt;a href="http://silverlighthack.com/post/2009/11/11/Connecting-to-SQL-Azure-with-SQL-Server-Management-Studio-2008-R2.aspx"&gt;spotted a similar post&lt;/a&gt; – check that out as well.&lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923954" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Getting Started with Entity Framework 4 – Simple Model First Example</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/17/getting-started-with-entity-framework-4-simple-model-first-example.aspx</link><pubDate>Tue, 17 Nov 2009 22:38:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9923917</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9923917.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9923917</wfw:commentRss><description>&lt;p&gt;This is the first in a series of posts on getting started with the new features in Entity Framework 4 based on the demos I did in my session at TechEd Europe in Berlin last week (Nov 2009). &lt;/p&gt;  &lt;p&gt;When adding an Entity Data Model to a project you are given the option to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Generate the Model from an existing database (SQL Server, Oracle etc) or &lt;/li&gt;    &lt;li&gt;Start with an Empty Model and create your conceptual model (sometimes referred to as Application Model or Domain Model) first – adding new Entities and Associations between Entities. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Unfortunately in version one of the Entity Framework the button &lt;em&gt;“Empty model”&lt;/em&gt; was one of those “buttons that should never be pressed” (Reference the &lt;a href="http://www.drwhoguide.com/who_tv11.htm"&gt;Xmas episode of Dr Who&lt;/a&gt;). Put simply – it took you down a path to many, many issues which were best avoided and the recommendation in the v1 days was to never use it.&lt;/p&gt;  &lt;p&gt;Fortunately in the betas of Entity Framework 4 things have got a lot better. You can now safely click on “Empty Model” and continue to sensibly create a working solution.&lt;/p&gt;  &lt;p&gt;Hence, lets start with an&lt;em&gt;&lt;strong&gt; &lt;/strong&gt;Empty model&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_thumb.png" width="539" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you have your empty model you can add Entities and Associations by right clicking on the design surface:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_thumb_1.png" width="397" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Lets add two Entities – &lt;em&gt;Category&lt;/em&gt; and &lt;em&gt;Product, &lt;/em&gt;which you will likely be used to from the sample database Northwind. Once these are added we can then add a single association between Category and Product which is visualised in the design surface as the &lt;em&gt;Navigation Properties&lt;/em&gt; on each Entity and the 1:Many association:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_thumb_2.png" width="523" height="264" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We now have a “finished” conceptual model but with no mapping to database tables. Interestingly there is no way to start to map Entities to tables until you do at least one &lt;em&gt;“Generate Database from Model”:&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_thumb_3.png" width="338" height="326" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Which gives you the &lt;em&gt;Generate Database Script Wizard&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_thumb_4.png" width="539" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you click &lt;em&gt;Finish&lt;/em&gt; two things will happen. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A DDL script will be written to the file system and will be included into the project. In this case &lt;em&gt;ModelFirstModel.edmx.sql&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;The Entity Data Model will be updated – a new mapping file and store schema file will be generated. Remember that the Entity Data Model (EDM) is made up of three schemas – Conceptual, Mapping and Store &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You get the option to update the Entity Data Model or not – but TBH the only option is to go with &lt;em&gt;Yes. &lt;/em&gt;The update of the EDM is &lt;strong&gt;100% destructive&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_thumb_5.png" width="477" height="133" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Note the DDL script is not automatically run against your database. Which is a good thing as it is also &lt;strong&gt;100% destructive&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/GettingStartedwithEntityFramework4Simple_F17C/image_thumb_6.png" width="485" height="182" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Hence all that is then left to do is to actually execute the DDL script to create the database, which for me I tend to do inside SQL Server Management Studio. You will then see that the Entities and Associations are now mapped and you can begin to customise those mappings.&lt;/p&gt;  &lt;p&gt;That has covered the simple stuff with Model First but I plan to revisit this topic in the near future and look at why and how you might use it in a real solution.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923917" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category></item><item><title>TechEd Europe 2009 Highlights and Lowlights</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/13/teched-europe-2009-highlights-and-lowlights.aspx</link><pubDate>Fri, 13 Nov 2009 11:54:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921894</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9921894.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9921894</wfw:commentRss><description>&lt;p&gt;It is Friday 13th Nov 2009 - which means it is the last day of TechEd Europe in Berlin. Overall I have had a good week – high quality sessions, lots of time with customers and colleagues and a very smooth conference throughout.&lt;/p&gt;  &lt;p&gt;I spent the week doing a bunch of things. 9am Monday I was presenting on Entity Framework 4 after 4 hours of sleep and using a brand new VPC after my original failed to load following yet another blue screen from the host (the machine will be flattened next week – perhaps literally!). Then Monday, Tuesday and Wednesday I manned the .NET Framework pod in the Technical Learning Centre which was great fun – lots of random questions mixed in with some really fun chats with old and new friends. I also managed to record a some short podcasts which will ultimately get published &lt;a href="http://channel9.msdn.com/tags/ukmsdnpodcast/"&gt;here on Channel 9&lt;/a&gt;. They were:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Mike Flasko of the ADO.NET Data Services team talking about Entity Framework 4 and N-Tier (Mikes EF4 session was &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/11/entity-framework-4-at-teched-europe-ndash-standing-room-only.aspx"&gt;standing room only&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;David Robinson of the SQL Azure team talking about SQL Azure today and future and the release this week of a version of SQL Server Management Studio that &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/11/sql-server-management-studio-now-supports-sql-azure.aspx"&gt;works with SQL Azure&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.dotnetwiki.org/default.aspx"&gt;Peli de Halleux&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/nikolait/"&gt;Nikolai Tillmann&lt;/a&gt; of the Pex team talking about Pex, &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/11/did-you-know-microsoft-makes-a-mocking-tool-meet-the.aspx"&gt;Stubs and Moles&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Peli de Halleux and Nikolai Tillmann talking about their sister teams Code Contracts technology &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;My discussions with Mike and David left me feeling positive about the next 12 months for technology areas I spend a lot of time on and the Pex guys impressed me so much with where they were taking their technology. They need developers to keep trying it and to keep giving them feedback. Lets not let them down – &lt;a href="http://msdn.microsoft.com/en-us/devlabs/cc950525.aspx"&gt;install Pex&lt;/a&gt; today.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Highlights&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;All the developer sessions I did attend were good to very good. No bad ones at all. Which is good as I didn’t get to attend that many. &lt;/li&gt;    &lt;li&gt;The conference was smooth and the facility worked well &lt;/li&gt;    &lt;li&gt;The expo area, hands on lab area and TLC area all were great – you could fill the week by taking advantage of those 3 and not attend a single session &lt;/li&gt;    &lt;li&gt;The 6 interactive theatres that delivered sessions even during lunch were a great addition &lt;/li&gt;    &lt;li&gt;It was fun to be in Berlin on the 20th anniversary of the wall coming down. Nice one Microsoft. &lt;/li&gt;    &lt;li&gt;The food and free beer! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Lowlights&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The keynotes on Monday. Awful. Sorry – but they were. &lt;/li&gt;    &lt;li&gt;Lack of “general” development session on .NET Framework 4.0 and Visual Studio 2010. I was told that around 45% of the sessions were dev but it never felt that way. The 45% included “edge sessions” like embedded and windows mobile that I think many of the developers attending would ignore (myself included) which sometimes meant you only had 2 or 3 sessions to choose from in any slot. Shame. Presumably we are “keeping our powder dry”&amp;#160; for PDC next week. &lt;/li&gt;    &lt;li&gt;Distance from conference centre to hotel/central Berlin. For me it required a bus and a train – 45mins door to door, sometimes longer. &lt;/li&gt;    &lt;li&gt;Lack of developer announcements – but to be expected with PDC just around the corner. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Sessions I would recommend watching when they become available:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DAT04-IS Patterns with the Entity Framework – full room! &lt;/li&gt;    &lt;li&gt;DEV314 A lap around Microsoft Visual Basic - Lisa Feigenbaum rocks at putting lots of content into a session slickly &lt;/li&gt;    &lt;li&gt;WIA305 What’s New in ASP.NET MVC – nicely done &lt;/li&gt;    &lt;li&gt;DAT303 Building applications with SQL Azure – well paced session &lt;/li&gt;    &lt;li&gt;DEV204 Unit Testing Best Practice – this was the same slot as DAT303 which I went to – but lots of folks told me at the pod that DEV204 was great &lt;/li&gt;    &lt;li&gt;WIA03-IS Securing Microsoft Silverlight – good interactive session that I dozed through – but that was me, not Shawn Wildermuth who did a great job &lt;/li&gt;    &lt;li&gt;WIA404 Data Driven ASP.NET – Dynamic Data comes of age in .NET 4. Check it out &lt;/li&gt;    &lt;li&gt;WIA303 ASP.NET AJAX – another good session from Stephen Walther &lt;/li&gt;    &lt;li&gt;WIA402 Debugging ASP.NET&amp;#160; - Tess Fernandez rocks at this stuff. I don’t really have the need but it was cool to watch &lt;/li&gt;    &lt;li&gt;There was also a lot of content on SharePoint 2010. SharePoint dev is finally coming of age (and sparked me to &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/11/uk-msdn-flash-poll-for-november-18th-do-you-think.aspx"&gt;create this poll&lt;/a&gt; for next weeks MSDN &lt;a href="http://www.microsoft.com/uk/msdn/flash/"&gt;Flash&lt;/a&gt;. Feel free &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/11/uk-msdn-flash-poll-for-november-18th-do-you-think.aspx"&gt;to vote&lt;/a&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Oh, and I just had a sneak peak at the eval scores for the event and although we are not quite done yet, the top ranked dev session is… drum roll… &lt;strong&gt;DEV307 Parallel Computing for Managed Developers&lt;/strong&gt;.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.msdn.com/ericnel/archive/2009/11/13/teched-europe-2009-highlights-and-lowlights.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.msdn.com/ericnel/archive/2009/11/13/teched-europe-2009-highlights-and-lowlights.aspx&amp;amp;bgcolor=0080C0&amp;amp;fgcolor=FFFFFF&amp;amp;border=000000&amp;amp;cbgcolor=D4E1ED&amp;amp;cfgcolor=000000" alt="DotNetKicks Image" border="0/"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921894" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Events_2F00_Training/default.aspx">Events/Training</category></item><item><title>Pictures of TechEd Europe 2009 – brussel sprouts for the win!</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/12/pictures-of-teched-europe-2009-brussel-sprouts-for-the-win.aspx</link><pubDate>Thu, 12 Nov 2009 18:44:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921511</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9921511.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9921511</wfw:commentRss><description>&lt;p&gt;Some pictures from the awesome TechEd Europe.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;My favourite – “Xmas Lunch” on the Thursday:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00220_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00220" border="0" alt="SNC00220" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00220_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The rather large entrance&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00203_4.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00203" border="0" alt="SNC00203" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00203_thumb_1.jpg" width="244" height="184" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00204_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00204" border="0" alt="SNC00204" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00204_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Berlin wall (outside a restaurant!)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00214_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00214" border="0" alt="SNC00214" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00214_thumb.jpg" width="184" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The amazing hands on lab area:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00216_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00216" border="0" alt="SNC00216" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00216_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00217_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00217" border="0" alt="SNC00217" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00217_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A typical session (AJAX in this case):&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00218_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00218" border="0" alt="SNC00218" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00218_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The expo:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00222_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00222" border="0" alt="SNC00222" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00222_thumb.jpg" width="244" height="100" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The community doodle wall:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00223_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00223" border="0" alt="SNC00223" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00223_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00224_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00224" border="0" alt="SNC00224" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00224_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;I suspect Andrew Fryer was at work:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00225_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00225" border="0" alt="SNC00225" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00225_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;And a panel discussion:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00226_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SNC00226" border="0" alt="SNC00226" src="http://blogs.msdn.com/blogfiles/ericnel/WindowsLiveWriter/PicturesofTechEdEurope2009brusselsprouts_114C0/SNC00226_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921511" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Events_2F00_Training/default.aspx">Events/Training</category></item><item><title>SQL Server Management Studio now supports SQL Azure</title><link>http://blogs.msdn.com/ericnel/archive/2009/11/11/sql-server-management-studio-now-supports-sql-azure.aspx</link><pubDate>Wed, 11 Nov 2009 22:32:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921099</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ericnel/comments/9921099.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ericnel/commentrss.aspx?PostID=9921099</wfw:commentRss><description>&lt;p&gt;I have had a bit of a “SQL Azure” day at TechEd Europe. I sat through David Robinsons excellent intro to SQL Azure development (smooth, on time, great Q&amp;amp;A), caught up with David afterwards to exchange stories on SQL Azure and find out what I will be missing at PDC next week and then grabbed the chance to capture a short 10minute podcast which I will publish up on Channel 9 next week.&lt;/p&gt;  &lt;p&gt;David did his demos using a new version of SQL Server Management Studio which works with SQL Azure and announced that it would be publicly available today. And it is.&lt;/p&gt;  &lt;p&gt;You can download SSMS in &lt;a href="http://go.microsoft.com/fwlink/?LinkID=168734&amp;amp;clcid=0x409"&gt;32bit&lt;/a&gt; and &lt;a href="http://go.microsoft.com/fwlink/?LinkID=168735&amp;amp;clcid=0x409"&gt;64bit&lt;/a&gt; flavours (Unfortunately I can not – as my hotel free internet is blocking it!)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=168734&amp;amp;clcid=0x409"&gt;SQLManagementStudio_x86 Executable&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=168735&amp;amp;clcid=0x409"&gt;SQLManagementStudio_x64 Executable&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These links are taken from the &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c772467d-e45b-43e1-9208-2c7b663d7ad1"&gt;Microsoft® SQL Server® 2008 R2 November Community Technology Preview - Express Edition&lt;/a&gt; download page.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921099" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ericnel/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/ericnel/archive/tags/Azure/default.aspx">Azure</category></item></channel></rss>