<?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>Bill Gibson's Blog : Patterns</title><link>http://blogs.msdn.com/billgibson/archive/tags/Patterns/default.aspx</link><description>Tags: Patterns</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Oslo CTP update; Data Modeling Design Patterns in M</title><link>http://blogs.msdn.com/billgibson/archive/2009/01/28/modeling-patterns.aspx</link><pubDate>Thu, 29 Jan 2009 01:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9381956</guid><dc:creator>Bill Gibson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/billgibson/comments/9381956.aspx</comments><wfw:commentRss>http://blogs.msdn.com/billgibson/commentrss.aspx?PostID=9381956</wfw:commentRss><description>&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;As modelers, one of the things we're doing all the time is&amp;nbsp;looking for patterns - trying to distinguish what in each model is truly unique to the domain from that which is more broadly applicable, and then either using&amp;nbsp;or adapting existing patterns or harvesting new patterns to put in our back pocket.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;T&lt;/SPAN&gt;he January Oslo&amp;nbsp;CTP update (&lt;EM&gt;&lt;STRONG&gt;woohoo!!&lt;/STRONG&gt;)&lt;/EM&gt;&amp;nbsp;on the &lt;A href="http://msdn.microsoft.com/en-us/oslo/default.aspx" mce_href="http://msdn.microsoft.com/en-us/oslo/default.aspx"&gt;Oslo Dev Center&lt;/A&gt; includes an initial set of &lt;A href="http://msdn.microsoft.com/en-us/library/dd326765.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd326765.aspx"&gt;data modeling design patterns&lt;/A&gt;.&amp;nbsp; These patterns, described and illustrated in M, include patterns for modeling&amp;nbsp;&lt;SPAN style="mso-spacerun: yes"&gt;enumerations and relationships, &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;including closed type-based enumerations, open extent-based enumerations, and&amp;nbsp;one-to-many, many-to-many and one-to-one relationships.&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;While this may seem like pretty basic stuff&amp;nbsp;you'll likely find some or all of it useful, particularly if you're new to M and coming at&amp;nbsp;it and repository modeling with an OO rather than relational mindset.&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The patterns&amp;nbsp;all have code samples so you may find it&amp;nbsp;useful to have the patterns open&amp;nbsp;while you're coding.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;We'll add &lt;/SPAN&gt;more&amp;nbsp;patterns as&amp;nbsp;our experience grows and the language evolves and is more fully implemented.&amp;nbsp; In&amp;nbsp;the pipeline are patterns for vertical partitioning, including patterns that help when mapping a generalization hierarchy&amp;nbsp;in a conceptual model to a relational&amp;nbsp;design.&amp;nbsp;&amp;nbsp; You can see some early exploration of these kinds of patterns in the domain schemas included in the CTP.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;As always, we'd love to get your&amp;nbsp;feedback.&amp;nbsp; If you have any comments on the patterns and the usefulness of this kind of material let us know.&amp;nbsp; And if you have any broadly useful patterns&amp;nbsp;in your back pocket&amp;nbsp;that&amp;nbsp;might map nicely into M they would be great to hear about also.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9381956" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/billgibson/archive/tags/Modeling/default.aspx">Modeling</category><category domain="http://blogs.msdn.com/billgibson/archive/tags/Oslo/default.aspx">Oslo</category><category domain="http://blogs.msdn.com/billgibson/archive/tags/Patterns/default.aspx">Patterns</category></item></channel></rss>