<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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>Paul Gielens:ThoughtsService : .NET</title><link>http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx</link><description>Tags: .NET</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>DEVs and DBAs Unite</title><link>http://weblogs.asp.net/pgielens/archive/2009/07/02/devs-and-dbas-unite.aspx</link><pubDate>Thu, 02 Jul 2009 08:58:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7138504</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=7138504</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2009/07/02/devs-and-dbas-unite.aspx#comments</comments><description>&lt;P&gt;Some of my clients have/had challenges embracing object-relational mapping data access API’s. I’ve experienced this with introducing Neo, IBATIS, NHibernate, LLBLGen Pro, LINQ to SQL and Entity Framework in projects for our clients.&lt;/P&gt;
&lt;P&gt;As with most things in our field this hasn’t much to do with the technology choices we make. Better collaboration is the key here. I’m glad that Patterns &amp;amp; Practices acknowledges that guidance in this area could help these two groups to leverage each others strengths. I’m confident that enabling a better understanding of both domains will improve the adoption of Microsoft’s data access api’s in the future.&lt;/P&gt;
&lt;P&gt;Please give your feedback on the &lt;A class="" href="http://dataguidance.codeplex.com/Wiki/View.aspx?title=DevsAndDBAs&amp;amp;referringTitle=Home" mce_href="http://dataguidance.codeplex.com/Wiki/View.aspx?title=DevsAndDBAs&amp;amp;referringTitle=Home"&gt;Data Access Guidance wiki&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7138504" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Entity Framework Tutorial</title><link>http://weblogs.asp.net/pgielens/archive/2009/03/24/entity-framework-tutorial.aspx</link><pubDate>Tue, 24 Mar 2009 19:29:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6996723</guid><dc:creator>p.gielens</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6996723</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2009/03/24/entity-framework-tutorial.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;You don’t know anything about the Entity Framework or didn’t get around installing it on your box and pour the Northwind data onto a screen? This book could give you a great jumpstart into the Entity Framework. There are &lt;A class="" href="http://www.amazon.com/s/ref=nb_ss_b?url=search-alias%3Dstripbooks&amp;amp;field-keywords=entity+framework" mce_href="http://www.amazon.com/s/ref=nb_ss_b?url=search-alias%3Dstripbooks&amp;amp;field-keywords=entity+framework"&gt;a lot&lt;/A&gt; of Entity Framework books coming your way, so why should you buy a copy of the &lt;A class="" href="http://www.packtpub.com/entity-framework-tutorial/book" mce_href="http://www.packtpub.com/entity-framework-tutorial/book"&gt;Entity Framework Tutorial&lt;/A&gt; by Joydip Kanjilal? Packt was so kind to send me a copy, but you can always try to &lt;A class="" href="http://www.packtpub.com/free" mce_href="http://www.packtpub.com/free"&gt;get a free&lt;/A&gt; copy as a blogger, reviewer or educator. Otherwise I can definitely advise you to get the ebook and use it to inspire your colleagues.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Because that is what this book is great&amp;nbsp;for: convincing co-workers to start thinking and experimenting with the Entity Framework. Many development teams are still handwriting their data access code.&lt;/P&gt;
&lt;P mce_keep="true"&gt;In the first chapter you’ll learn the key concepts and get an overview of the Entity Framework’s architecture. In the second chapter you’ll learn how to get started with the Entity Data Model and bind some data to a GridView data control. From this point on you’re set to build RAD applications!&lt;/P&gt;
&lt;P mce_keep="true"&gt;It continues with getting down to the nitty gritty details in the Entity Data Model. This is not the strongest part of the book. None the less it provides a great way to learn more detailed concepts driving your Entity Framework based solutions. Stored Procedures are up next together with the lower level API’s in the Entity Framework namely Entity Client and Entity SQL. You’ll learn more about executing CRUD operations against your database with the Entity Framework.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The book successfully saves the best for last; LINQ to Entities and the Object Services Layer. I recon 90% of your projects will utilize both API’s. Creating queries, execution and concurrency conflicts are interesting subjects you’ll learn more about. This book only gives a glimpse of these subjects which each have enough going for them to fill a 200+ page book.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I don’t see the need for a chapter on ADO.NET Data Services but it’s included in the book.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Don’t feel like skimming through MSDN and knot together the loose ends? Don’t feel like reading through Julie's &lt;A class="" href="http://www.amazon.com/Programming-Entity-Framework-Julia-Lerman/dp/059652028X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1237905392&amp;amp;sr=1-1" mce_href="http://www.amazon.com/Programming-Entity-Framework-Julia-Lerman/dp/059652028X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1237905392&amp;amp;sr=1-1"&gt;excellent 800+ pages&lt;/A&gt;? This is a great alternative. I use this book to inspire people about the Entity Framework by letting it floating around the office. For in depth knowledge and to master the Entity Framework’s complexity you’ll be better of with Julie’s &lt;A class="" href="http://www.amazon.com/Programming-Entity-Framework-Julia-Lerman/dp/059652028X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1237905392&amp;amp;sr=1-1" mce_href="http://www.amazon.com/Programming-Entity-Framework-Julia-Lerman/dp/059652028X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1237905392&amp;amp;sr=1-1"&gt;Programming Entity Framework&lt;/A&gt;.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6996723" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Books/default.aspx">Books</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>The PDC Crushed my Old Record</title><link>http://weblogs.asp.net/pgielens/archive/2008/11/03/the-pdc-crushed-my-old-record.aspx</link><pubDate>Mon, 03 Nov 2008 23:11:42 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6718618</guid><dc:creator>p.gielens</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6718618</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/11/03/the-pdc-crushed-my-old-record.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/ThePDCCrushedmyOldRecord_D5A6/stats_2.jpg"&gt;&lt;img height="109" alt="stats" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/ThePDCCrushedmyOldRecord_D5A6/stats_thumb.jpg" width="240" border="0" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/ThePDCCrushedmyOldRecord_D5A6/stats2_2.jpg"&gt;&lt;img height="103" alt="stats2" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/ThePDCCrushedmyOldRecord_D5A6/stats2_thumb.jpg" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Blogging at the PDC08 crushed my good old &lt;a href="http://weblogs.asp.net/pgielens/archive/2005/12/05/432329.aspx" target="_blank"&gt;refactoring is not free series&lt;/a&gt;. In other words, thanks for reading my blog. I hope you enjoyed my somewhat limited live coverage.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6718618" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>What Sets the PDC Apart from Other Conferences</title><link>http://weblogs.asp.net/pgielens/archive/2008/11/03/what-sets-the-pdc-apart-from-other-conferences.aspx</link><pubDate>Mon, 03 Nov 2008 23:01:49 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6718597</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6718597</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/11/03/what-sets-the-pdc-apart-from-other-conferences.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/WhatSetsthePDCApartfromOtherConferences_D348/035.jpg"&gt;&lt;img height="180" alt="034" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/WhatSetsthePDCApartfromOtherConferences_D348/034_thumb.jpg" width="240" border="0" /&gt;&amp;#160;&amp;#160; &lt;img height="180" alt="035" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/WhatSetsthePDCApartfromOtherConferences_D348/035_thumb.jpg" width="240" border="0" /&gt; &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Big thanks goes out to Marjan for sharing these photo's. ps: I'm the guy with his arm under his chin.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;While discussing the Entity Framework future with &lt;a href="http://blogs.msdn.com/adonet/archive/2008/10/31/clarifying-the-message-on-l2s-futures.aspx" target="_blank"&gt;Tim Mallalieu&lt;/a&gt; another guru jumped on the couch. &lt;a href="http://www.pluralsight.com/community/blogs/dbox/default.aspx" target="_blank"&gt;Don Box&lt;/a&gt; shared his definite experience, without going into much detail, wearing a Microsoft speakers shirt and the bathtub scene at Tech Ed Amsterdam (where &lt;a href="http://www.alexthissen.nl/blogs/main/default.aspx" target="_blank"&gt;Alex Thissen&lt;/a&gt; in red assisted). We talked about the future of Olso and language workbenches in specific domain's. Unfortunately I don't have a picture of &lt;a href="http://simplegeek.com/" target="_blank"&gt;Chris Anderson&lt;/a&gt; who also joined in for a couple of minutes. It was great fun being able to spend time on the couch with passionate Microsofties.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6718597" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/Personal+Stuff/default.aspx">Personal Stuff</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>Best Decision to Kill LINQ to SQL</title><link>http://weblogs.asp.net/pgielens/archive/2008/11/03/best-decision-to-kill-linq-to-sql.aspx</link><pubDate>Mon, 03 Nov 2008 22:14:35 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6718551</guid><dc:creator>p.gielens</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6718551</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/11/03/best-decision-to-kill-linq-to-sql.aspx#comments</comments><description>&lt;p&gt;I fully agree with &lt;a href="http://blogs.msdn.com/adonet/archive/2008/10/31/clarifying-the-message-on-l2s-futures.aspx" target="_blank"&gt;Tim Mallalieu&lt;/a&gt; to recommend LINQ to Entities as the data access solution for your application. Sure, for an object-oriented view of the database LINQ to SQL was somewhat useful but in essence this is a scenario that the Entity Framework supports as well. Yes, in some ways the Entity Framework does add a bit of complexity but then again creating a direct mapping with the Entity Framework isn't much more difficult then it would be with LINQ to SQL. Apart from the fact that Microsoft shouldn't have released LINQ to SQL as a product I was quit surprised about the wave of people adopting this piece of technology. A tool for direct mappings misused as an object-relational mapper felt awkward from the start. I hoped for a little while that LINQ to SQL would evolve in a fully fledged object-relational mapper, but the Entity Framework with it's EDM investment had more potential from the start.&lt;/p&gt;  &lt;p&gt;We've spend a good amount of time talking with Tim (@PDC) on the future of the Entity Framework. The team is working hard on better POCO and TDD support and to deliver stories that support Domain-Driven Design over the next two releases. Most scenarios Alex and I explained to Tim have been thought through thoroughly and despite certain design choice which are arguable seen in isolation make perfect sense in a broader scope and the vision for the Entity Framework platform.&lt;/p&gt;  &lt;p&gt;I'm looking forward to V2 and V3 with input from the &lt;a href="http://blogs.msdn.com/dsimmons/archive/2008/06/03/dp-advisory-council.aspx" target="_blank"&gt;dp advisory council&lt;/a&gt;... and can't wait to taste mEntity. To bad since I was looking forward to another &lt;a href="http://www.thedatafarm.com/blog/2008/10/03/TechnologyDeathmatchLINQToSQLVsEntityFramework.aspx" target="_blank"&gt;technology deathmatch with Alex&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6718551" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>Building Textual DSL with Oslo</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/30/building-textual-dsl-with-oslo.aspx</link><pubDate>Thu, 30 Oct 2008 19:51:53 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6712730</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6712730</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/30/building-textual-dsl-with-oslo.aspx#comments</comments><description>&lt;p&gt;Chris Anderson, Giovanni Dell-Libera mention that Microsoft folks are working on transformation languages for at least five years now and how&amp;#160; textual DSL space became more and more prevalent.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&amp;quot;MGrammer&amp;quot; text to data&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&amp;quot;MSchema&amp;quot; Schematizing data&lt;/li&gt;    &lt;li&gt;&amp;quot;MGraph&amp;quot; representing data&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This talk is about MGrammer. You'll build your won DSL's on top of &amp;quot;M&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/BuildingTextualDSLwithOslo_B3F6/Untitled22_2.jpg"&gt;&lt;img height="216" alt="Untitled22" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/BuildingTextualDSLwithOslo_B3F6/Untitled22_thumb.jpg" width="345" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is the basic workflow in through the Intellipad interface to build an MGraph.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/BuildingTextualDSLwithOslo_B3F6/Untitled21_2.jpg"&gt;&lt;img height="262" alt="Untitled21" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/BuildingTextualDSLwithOslo_B3F6/Untitled21_thumb.jpg" width="550" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MGrammer&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Language for creating textual DSL's&lt;/li&gt;    &lt;li&gt;Specification will be released under OSP &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Lot's of cool demos on stage I wasn't able to capture. Download the CTP today at &lt;a href="http://msdn.micosoft.com/oslo"&gt;http://msdn.micosoft.com/oslo&lt;/a&gt; and build your own language.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6712730" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>PDC Lost a bit of it's Magic</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/30/pdc-lost-a-bit-of-it-s-magic.aspx</link><pubDate>Thu, 30 Oct 2008 18:03:48 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6712528</guid><dc:creator>p.gielens</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6712528</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/30/pdc-lost-a-bit-of-it-s-magic.aspx#comments</comments><description>&lt;p&gt;On the way back to our hotel yesterday a college mentioned the PDC will be held again in 2009, also in November. Earlier on that day it confused me to hear the Olso folks mention they would show more cool stuff next year at PDC. Anyway, I think PDC should be somewhat exclusive and focus on the big picture and future of new Microsoft technology/products. The only question I have at the moment is, why? Why not delay another year, why not keep something for under the belt.&lt;/p&gt;  &lt;p&gt;Any clues?&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6712528" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>What's new in XAML?</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/30/what-s-new-in-xaml.aspx</link><pubDate>Thu, 30 Oct 2008 16:19:46 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6712355</guid><dc:creator>p.gielens</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6712355</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/30/what-s-new-in-xaml.aspx#comments</comments><description>&lt;p&gt;I've spend the large part of this morning threatening my persistently bleeding nose. Occasionally this pops up. Left over from years of cycling. I made it on time for the XAML talk.&lt;/p&gt;  &lt;p&gt;XAML lets you say what you want without saying how to do it. This is also referred to as declaring your intent. XAML can be used to create declarative models a simple file format for object-based systems.&lt;/p&gt;  &lt;p&gt;Benefits of designing for XAML:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;XML reading/writing&lt;/li&gt;    &lt;li&gt;Markup==OM&lt;/li&gt;    &lt;li&gt;Consistency with .NET&lt;/li&gt;    &lt;li&gt;Human readable XML&lt;/li&gt;    &lt;li&gt;Easier to tool&lt;/li&gt;    &lt;li&gt;Even-based programming model&lt;/li&gt;    &lt;li&gt;Ride the XAML wave&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Microsoft is investing in XAML in many place. Oslo is a great example with it's importing and exporting XAML capabilities in the repository.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;State of XAML in 2008&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;UI &lt;/li&gt;    &lt;li&gt;Workflow &lt;/li&gt;    &lt;li&gt;Electronic paper &lt;/li&gt;    &lt;li&gt;Runtime: .NET 3.0 &amp;amp; 3.5; silverlight1 &amp;amp; 2 &lt;/li&gt;    &lt;li&gt;Tools: VS 2008 (WPF + WF designer and XAML editor), expression blend &lt;/li&gt;    &lt;li&gt;XAML specifications published &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Customers need more language evolution, make it faster, fundamentals of XAML/BAML need continued investment (compilation, debugging, obfuscation, localization, FxCop, VS integration, and more). There also the need to model more domains in XAML.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What's new in XAML 2009&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In .NET 4.0 XAML will be easier to author application declaratively and feature a more rich vocabulary.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Better name references (&amp;lt;Label target=&amp;quot;firstNameBox&amp;quot;&amp;gt;First Name&amp;lt;Label&amp;gt;) &lt;/li&gt;    &lt;li&gt;Build in types (Most of the CLR types have an XAML equivalent.) &lt;/li&gt;    &lt;li&gt;Support for generic types directly in XAML &lt;/li&gt;    &lt;li&gt;Arbitrary dictionary key types &lt;/li&gt;    &lt;li&gt;Beyond method names (Button Click=&amp;quot;{DelegateCreatingME Foo}&amp;quot; /&amp;gt; &lt;/li&gt;    &lt;li&gt;Better declarative type offering &lt;/li&gt;    &lt;li&gt;Use non-default constructors &lt;/li&gt;    &lt;li&gt;Use static factory methods &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;System.Xaml.dll in .NET 4.0 and will hit the street in the November 2008 CTP.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6712355" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>More Oslo / "M"</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/29/more-oslo-quot-m-quot.aspx</link><pubDate>Wed, 29 Oct 2008 23:04:40 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6710688</guid><dc:creator>p.gielens</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6710688</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/29/more-oslo-quot-m-quot.aspx#comments</comments><description>&lt;p&gt;Core premise of Oslo is executable models. today we've been looking into the customization features of Quadrant (the graphical tool part of Oslo)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Three main components&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/1_2.jpg"&gt;&lt;img height="273" alt="1" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/1_thumb.jpg" width="414" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Yesterday I blogged mainly about the M modeling language. Today we'll focus on Quadrant the design tool and the Repository services in Oslo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;High level &amp;quot;quadrant&amp;quot; architecture&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/qua_4.jpg"&gt;&lt;img height="320" alt="qua" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/qua_thumb_1.jpg" width="550" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Architecture for customizing the shell and service&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/Untitled2_4.jpg"&gt;&lt;img height="297" alt="Untitled2" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/Untitled2_thumb_1.jpg" width="550" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What we've seen:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Quadrant is a flexible tool interacting with diverse data &lt;/li&gt;    &lt;li&gt;Quadrant uses repository for both specification and state&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Let's focus on the repository for now and the different aspects that play a role.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Insight: &lt;/strong&gt;It good to store more and more of our applications in the database, and to build our applications on top of SQL. &lt;/p&gt;  &lt;p&gt;This means that below our modeling language we need to store certain things in our repository.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/2_2.jpg"&gt;&lt;img height="435" alt="2" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/2_thumb.jpg" width="514" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;What specific features should be added on top of the current SQL Server features.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/3_2.jpg"&gt;&lt;img height="254" alt="3" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/f6e572e49af7_C240/3_thumb.jpg" width="550" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Oslo SDK Provides&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;New models: Intellipas, VS.NET languages     &lt;br /&gt;-&amp;#160; Compile models m.exe, msbuild build tasks      &lt;br /&gt;-&amp;#160; Deploy models mx.exe&lt;/li&gt;    &lt;li&gt;Once in the database, it's just SQL&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;How to build applications on top of the repository database&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;After you've expressed a piece of your model in M you can use mx2edmx.exe to generate an .edmx file for use with the Entity Framework. Below a simple example to consume this data.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;class Program       &lt;br /&gt;{        &lt;br /&gt;&amp;#160; static void Main(string[] args)        &lt;br /&gt;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var context = new MicrosoftPDCEntities(..);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; context.AddFriendShips(new Friendship()        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ContextParty = 124,        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ReferenceParty = 328        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }); &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; context.SaveChanges();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach(var f in context.FriendShips)        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;{0} + {1} are friends, &amp;quot;f.ContextParty,         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; f.ReferenceParty);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }        &lt;br /&gt;&amp;#160; }        &lt;br /&gt;}&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Repository core services&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Deployment&lt;/li&gt;    &lt;li&gt;Security&lt;/li&gt;    &lt;li&gt;Catalog&lt;/li&gt;    &lt;li&gt;Versioning&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;mx.ex packages SQL for deployment to repository nodes&lt;/li&gt;    &lt;li&gt;Application models van be used to define applications to be deployed&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Security is claim based     &lt;br /&gt;- Identity becomes just one of several possible claims      &lt;br /&gt;- Claims presented to authorized operations against resources&lt;/li&gt;    &lt;li&gt;Repository tables keep track of claims, resources and operations     &lt;br /&gt;- Triggers implemented on /t:Repository generated views to check claims      &lt;br /&gt;- Views protect against direct access to tables&lt;/li&gt;    &lt;li&gt;Domain specific security containers     &lt;br /&gt;- Folders to partition data      &lt;br /&gt;- Applications decide which data goes into what folder      &lt;br /&gt;- Security checks happen on folder boundaries      &lt;br /&gt;- Must call the field folder for compiler to find it      &lt;br /&gt;- Folder ID must exist in the Item.Folders table&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Catalog&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server has a catalog     &lt;br /&gt;- List tables views stored procedures etc and adds relationships&lt;/li&gt;    &lt;li&gt;Repository has its own catalog     &lt;br /&gt;- Adds information about relationship modules, types and extends.&lt;/li&gt;    &lt;li&gt;Useful for     &lt;br /&gt;- Rich export      &lt;br /&gt;- Impact analysis      &lt;br /&gt;- Enriched SQL data access code generation      &lt;br /&gt;- ..&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Versioning&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Data change synchronization     &lt;br /&gt;- Between nodes using SQL Server replication and occasionally connected systems      &lt;br /&gt;- Import/export using SQL server change tracking, eg repository&amp;lt;-&amp;gt;file system&lt;/li&gt;    &lt;li&gt;Schema evolution     &lt;br /&gt;- Extend M type and provide backwards compat for old clients w/ computed values      &lt;br /&gt;- SQL server integration services for data migration&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;In conclusion&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Repository is optimized for many reads, few writes&lt;/li&gt;    &lt;li&gt;Contains models for Oslo app domain&lt;/li&gt;    &lt;li&gt;Can be extended with M&lt;/li&gt;    &lt;li&gt;Models can be deployed, secured and versioned&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6710688" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>PDC08 Videos</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/29/oslo.aspx</link><pubDate>Wed, 29 Oct 2008 16:20:11 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6710037</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6710037</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/29/oslo.aspx#comments</comments><description>&lt;p&gt;You're not here? No worries see what I've seen at &lt;a href="http://channel9.msdn.com/tags/PDC2008/" target="_blank"&gt;channel9&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6710037" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>Dryhad</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/29/dryhad.aspx</link><pubDate>Wed, 29 Oct 2008 16:15:11 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6710036</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6710036</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/29/dryhad.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/Dryhad_8219/dryad-job_2.png"&gt;&lt;img height="166" alt="dryad-job" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/Dryhad_8219/dryad-job_thumb.png" width="240" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/Dryhad_8219/software-layers_2.png"&gt;&lt;img height="131" alt="software-layers" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/Dryhad_8219/software-layers_thumb.png" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Coolest from MS Research (at least from my pov) is DryadLINQ and Dryhad which harasses the power of cluster computing. A very sophisticated query could be executed over 1000s of nodes in the cloud. How cool is that! See &lt;a href="http://research.microsoft.com/research/sv/Dryad/eurosys07.pdf" target="_blank"&gt;this&lt;/a&gt; for more information.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6710036" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>Another Day in Paradise</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/29/another-day-in-paradise.aspx</link><pubDate>Wed, 29 Oct 2008 15:37:56 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6709993</guid><dc:creator>p.gielens</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6709993</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/29/another-day-in-paradise.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/c36fc03a1206_649B/IMAG0089_2.jpg"&gt;&amp;#160;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="180" alt="IMAG0089" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/c36fc03a1206_649B/IMAG0089_thumb.jpg" width="240" border="0" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/c36fc03a1206_649B/IMAG0094_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="180" alt="IMAG0094" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/c36fc03a1206_649B/IMAG0094_thumb.jpg" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Don't get the me wrong. PDC08 is hard work. I have this constant light headache which is a sign I'm consuming the exact right amount of information my brain is able to process without collapsing. Yesterday we've visited Universal Studio's which was quit an experience. The Simpsons Ride was by far the coolest attraction I've experienced ever in a theme park. Probably because of the amounts of software that was poured into it ;)&lt;/p&gt;  &lt;p&gt;Anyway, I'm getting ready for the walk over to the conference center to get a quick breakfast and another keynote. I really hope this keynote addresses more of Oslo and &amp;quot;M&amp;quot;. Last night I read through most of the draft specification comfortably in my bath tub and all I can say OMFG. Let's start with some coffee and breakfast to pull me through this day.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6709993" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/Personal+Stuff/default.aspx">Personal Stuff</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>The Future of the Entity Framework</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/28/the-future-of-the-entity-framework.aspx</link><pubDate>Wed, 29 Oct 2008 01:01:05 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6708945</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6708945</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/28/the-future-of-the-entity-framework.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;The data platform&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;These are the different scenarios the Entity Framework addresses or should address.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/TheFutureoftheEntityFramework_FD58/dp_4.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="301" alt="dp" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/TheFutureoftheEntityFramework_FD58/dp_thumb_1.jpg" width="575" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;The following layers are the reference architecture used as a starting point for the EF.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/TheFutureoftheEntityFramework_FD58/dp2_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="262" alt="dp2" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/TheFutureoftheEntityFramework_FD58/dp2_thumb.jpg" width="542" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Customer segmentations      &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;V1 of EF didn't really address all personas and the team is now working on supporting the following different personas with tools and frameworks.&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/TheFutureoftheEntityFramework_FD58/ap3_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="245" alt="ap3" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/TheFutureoftheEntityFramework_FD58/ap3_thumb.jpg" width="575" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;New stuff&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You still need meta data, but you don't need no more entity data model XML. For this you have to decorate your classes with attributes.&lt;/p&gt;  &lt;p&gt;New stuff added respecting the different scenarios and customer segmentations.&lt;/p&gt;  &lt;p&gt;If you really don't care about the model you can work without it. You still need to describe your meta-data.&lt;/p&gt;  &lt;p&gt;The demo shows persistence ignorance, code only no XML.&lt;/p&gt;  &lt;p&gt;Model first approach is supported. You can now generate the DDL from the entity data model. Forward only at the moment. So when you update the database from the model it's blow away your existing database.&lt;/p&gt;  &lt;p&gt;The demo shows lazy loading. Nice!&lt;/p&gt;  &lt;p&gt;It also shows model defined functions (think FullName()). User defined functions can also be declared in the entity data model XML.&lt;/p&gt;  &lt;p&gt;Database expressions using the available meta data from the entity data model.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;DbExpression expression = context.EntitySet(&amp;quot;Categories&amp;quot;).Scan();       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where c.Property(&amp;quot;Name&amp;quot;).Equals(&amp;quot;Dennis&amp;quot;);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select c;&lt;/em&gt;&lt;em&gt;       &lt;br /&gt;DbDataReader reader = context.ExecuteQuery(expression);&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6708945" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>More on M directly from the PDC08</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/28/more-on-m-directly-from-the-pdc08.aspx</link><pubDate>Tue, 28 Oct 2008 22:54:32 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6708782</guid><dc:creator>p.gielens</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6708782</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/28/more-on-m-directly-from-the-pdc08.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/MoreonMdirectlyfromthePDC08_DFB5/pic2_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="369" alt="pic2" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/MoreonMdirectlyfromthePDC08_DFB5/pic2_thumb.jpg" width="640" border="0" /&gt;&lt;/a&gt;      &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;Why M?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;We want creating and interacting with Oslo content to be simple and natural. Having a box-and-line design experience is an important enabler. Developers have an emotional band with the text-editor. By not allowing people interacting with text people where not productive. Box and arrows where doomed to fail. This doesn't mean box and arrows aren't useful though. Having a complementary textual experience is equally important.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What is M?&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;M is a language for defining domain models and textual domain-specific languages (DSLs)&lt;/li&gt;    &lt;li&gt;M domain models define schema and query over structure data&lt;/li&gt;    &lt;li&gt;M DSLs define projections form unicode to text based structured data&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;The M language&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;MSchema, domain-specific data models&lt;/li&gt;    &lt;li&gt;MGrammer, domain-specific grammers&lt;/li&gt;    &lt;li&gt;MGraph, abstract data model&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;What M is not&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;An object-oriented language (no polymorphism, virtual dispatch, is a determined based on structural subtyping, not stipulation)&lt;/li&gt;    &lt;li&gt;A data access technology (M domain model compile down to T-SQL. Tool chain support course-grained loading/unloading of schemas and values-not OLTP solution)&lt;/li&gt;    &lt;li&gt;A replacement for T-SQL (Far less expansive feature set. tool change supports linking/invoking T-SQL)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Domain modeling constructs&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Extents declare storage for values&lt;/li&gt;    &lt;li&gt;Types constrain values in a given context&lt;/li&gt;    &lt;li&gt;explicit identity enables references&lt;/li&gt;    &lt;li&gt;Functions name parameterized expressions&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;The M framework&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;M is itself implemented as M DSL (parser exposed using M DSL machinery. Type flow exposed as framework component)&lt;/li&gt;    &lt;li&gt;SDK ships with an evaluator (read evaluate print loops - MrEPL) that builds both&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There where also a lot of very cool demo's displayed I wasn't able to capture with my typing skills. I'll stick around in this room to capture the future of the Entity Framework.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6708782" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>A Lap Around "Oslo"</title><link>http://weblogs.asp.net/pgielens/archive/2008/10/28/a-lap-around-quot-oslo-quot.aspx</link><pubDate>Tue, 28 Oct 2008 21:09:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6708640</guid><dc:creator>p.gielens</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=6708640</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2008/10/28/a-lap-around-quot-oslo-quot.aspx#comments</comments><description>&lt;p&gt;Pretty sad actually. I'm sitting here with Alex Thissen and Dennis van der Stelt on my left. All three of us blogging the same stuff ;)&lt;/p&gt;  &lt;p&gt;Douglas Purdy and Vijaye Raji are about to lap us around Oslo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What is a model?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Basically it's a description of given domain.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drawings (models used to communicate with others; dataflow, use case, ..)&lt;/li&gt;    &lt;li&gt;Model-assisted (models used to understand or manipulate code; static structure, sequence, ..)&lt;/li&gt;    &lt;li&gt;Model-driven (models executed by the runtime, HTML, CSS, XAML, BPEL)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Model-driven platform&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/ALapAroundOslo_C6F7/pic_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="307" alt="pic" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/ALapAroundOslo_C6F7/pic_thumb.jpg" width="438" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;According to Don Box we're making the sort of progression in which we try to solve the impedance mismatch between humans and code COM+, .NET 1.0, webServices, .NET 3.0. Currently we're at the landmark at which we tend to deliver build software which increasingly uses declarative constructs.&lt;/p&gt;  &lt;p&gt;It's not only the programming languages and tools focusing on DLS's. Applications often come with textual or graphical DLS to manage and maintain facets of the applications.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Why is this happening?&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Transparency (better understanding)&lt;/li&gt;    &lt;li&gt;Flexibility (faster changes)&lt;/li&gt;    &lt;li&gt;Productivity (more essence, less ceremony)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;What is Oslo: The platform for model-driven applications&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&amp;quot;M&amp;quot; (the language for authoring models and DSL's)&lt;/li&gt;    &lt;li&gt;&amp;quot;Quadrant&amp;quot; (the tool for interacting with models and DSL's, aimed at developers)&lt;/li&gt;    &lt;li&gt;Repository (the database for storing and sharing models)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Language, tool and repository&lt;/p&gt;  &lt;p&gt;Microsoft recognizes we're living in a model-driven world and is building this technology to bring their products forward. They did the same with OLE back in the days, and are determined to do the same with Oslo. According to Microsoft textual DLS's are the biggest thing to happen in programming looking forward.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Key Oslo concepts&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/ALapAroundOslo_C6F7/pic2_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="478" alt="pic2" src="http://weblogs.asp.net/blogs/pgielens/WindowsLiveWriter/ALapAroundOslo_C6F7/pic2_thumb.jpg" width="623" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;M Example&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;module Microsoft.Samples       &lt;br /&gt;{        &lt;br /&gt;&amp;#160; type MusicItem        &lt;br /&gt;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Id: Integer64 = AutoNumber();        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Album : Text;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Artist : Text;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Rating : Integer32 where value &amp;lt;= 3;        &lt;br /&gt;&amp;#160; } where identity Id;        &lt;br /&gt;        &lt;br /&gt;&amp;#160; MusicLibrary :MusicItem*;        &lt;br /&gt;}&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;With M-schema to database you can, in two steps (m-compiler and the mx-tool) translate this code to T-SQL and add it to the repository. With a standard data tool such as excel you can view this data.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;module Microsoft.Samples       &lt;br /&gt;{        &lt;br /&gt;&amp;#160; MusicLibrary        &lt;br /&gt;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; album = &amp;quot; Four;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Artist = &amp;quot;Led Zeppelin&amp;quot;;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Rating = 3;        &lt;br /&gt;&amp;#160; }        &lt;br /&gt;}&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This code-snippet is enough to write data to the repository and query it using excel. This is called concrete syntax.&lt;/p&gt;  &lt;p&gt;With M-grammar you can translate arbitrary uni-code characters into structure data.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;Led Zeppelin&amp;quot; is awesome!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is a simple way to write textual DSL's using M. The current tooling supports syntax highlighting. In the future the editor will support symantic analysis and intellisense.&lt;/p&gt;  &lt;p&gt;We get to see a sneak peek of quadrant consisting of generic viewers you can see as a series of bundled controls. Stock views are provided out of the box which can be used to create your own editors. Quadrant also has a data flow engine which provides the multiple views of data and updates it accordingly. It also has a nice canvas that can pan, zoom, etc to process the information in a visual way. The same underlying system is used to customize the visualizer and language.&lt;/p&gt;  &lt;p&gt;We've now seen a custom model, textual-DSL and visual DSL, next up is a custom runtime. This is done by transforming the same textual-DSL syntax as seen above into an XML-DSL. Creating a runtime is as simple as reading the XML file into an ASP.NET page with a datagrid component. Incredible!&lt;/p&gt;  &lt;p&gt;This technology will be applied to WPF, the cloud, etc. Microsoft is modeling the Microsoft world.&lt;/p&gt;  &lt;p&gt;Oslo value is one model driven architecture applied to Microsoft particular domains, we can use for our clients and their domains. In the CTP there are about 500 models to review and learn from. The tooling currently also supports debugging your own domain-specific languages.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Development domains&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Web (ASP.NET with &amp;quot;MWeb&amp;quot;), services (WCF/WF (&amp;quot;Dublin&amp;quot;) with &amp;quot;MServices&amp;quot; , entities (Entity Framework with &amp;quot;MEntity&amp;quot;) and database (SQL with &amp;quot;MSchema&amp;quot;).&lt;/p&gt;  &lt;p&gt;What could a domain-specific language for a service look like? Look an shiver...&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;module Service25       &lt;br /&gt;{        &lt;br /&gt;&amp;#160; service Service        &lt;br /&gt;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; operation Echo(str : text) : Text        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .UriTemplate = &amp;quot;echo/{str}&amp;quot;;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WriteLine { Text = &amp;quot;Message : &amp;quot; + str }        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return str;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }        &lt;br /&gt;&amp;#160; }        &lt;br /&gt;}&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Years ago I dreamt on this blog to be able to write domain-driven design constructs directly into our language. &lt;em&gt;public class Customer {}&lt;/em&gt; or &lt;em&gt;public class CustomerRepository {}&lt;/em&gt; now becomes &lt;em&gt;entity Customer&lt;/em&gt; and &lt;em&gt;repository Customer {}&lt;/em&gt;. Guess this is the time to say &amp;quot;we can&amp;quot;!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Two announcements&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Public &amp;quot;Oslo&amp;quot; SDK CTP&lt;/li&gt;    &lt;li&gt;&amp;quot;M&amp;quot; language specification to be released under open specification promise (OPS)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This means that anyone can implement the M language. Microsoft is going to work hard to have third parties and open source communities to implement this particular language and have a rich ecosystem around it. Microsoft want's this to become as large as XML today is.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to get ready for Oslo&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Use model-driven runtimes (WPF, WF, etc)&lt;/li&gt;    &lt;li&gt;use XML or a database to drive applications or services&lt;/li&gt;    &lt;li&gt;Embrace model-driven assisted development VSTA, DSL Toolkit, ..)&lt;/li&gt; &lt;/ol&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6708640" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item></channel></rss>