<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: The LINQ to SQL Metamodel</title>
	<atom:link href="http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/</link>
	<description>A Developer's Melting Pot</description>
	<pubDate>Wed, 07 Jan 2009 00:04:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: David DeWinter &#187; Blog Archive &#187; DBML Fixup Preview</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-698</link>
		<dc:creator>David DeWinter &#187; Blog Archive &#187; DBML Fixup Preview</dc:creator>
		<pubDate>Mon, 25 Aug 2008 03:50:18 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-698</guid>
		<description>[...] http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/" rel="nofollow">http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David DeWinter</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-451</link>
		<dc:creator>David DeWinter</dc:creator>
		<pubDate>Wed, 09 Jul 2008 02:44:10 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-451</guid>
		<description>I actually found &lt;a href="http://msdn.microsoft.com/en-us/library/bb425822.aspx" rel="nofollow"&gt;this&lt;/a&gt; to be an excellent resource on the DBML file structure. It helped significantly when building this model.

I agree that interactions with the DBML designer could have been better from an API level, but frankly developers who are "hacking" the designers are probably last on the LINQ to SQL team's priority list. I'm not sure if there is &lt;i&gt;any&lt;/i&gt; current designer that offers a cleaner API.</description>
		<content:encoded><![CDATA[<p>I actually found <a href="http://msdn.microsoft.com/en-us/library/bb425822.aspx" rel="nofollow">this</a> to be an excellent resource on the DBML file structure. It helped significantly when building this model.</p>
<p>I agree that interactions with the DBML designer could have been better from an API level, but frankly developers who are &#8220;hacking&#8221; the designers are probably last on the LINQ to SQL team&#8217;s priority list. I&#8217;m not sure if there is <i>any</i> current designer that offers a cleaner API.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kris</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-450</link>
		<dc:creator>Kris</dc:creator>
		<pubDate>Wed, 09 Jul 2008 01:36:03 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-450</guid>
		<description>Yes, the name is a bit confusing.

Overall I think MSFT could have done a better job at:
1) documenting DBML
2) exposing an object model behind the DBML designer for add-ins to hook into instead of having to update the dbml file directly</description>
		<content:encoded><![CDATA[<p>Yes, the name is a bit confusing.</p>
<p>Overall I think MSFT could have done a better job at:<br />
1) documenting DBML<br />
2) exposing an object model behind the DBML designer for add-ins to hook into instead of having to update the dbml file directly</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David DeWinter</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-446</link>
		<dc:creator>David DeWinter</dc:creator>
		<pubDate>Tue, 08 Jul 2008 12:57:25 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-446</guid>
		<description>Kris, I agree with your interpretation of its meaning. However, it could've been named more appropriately, no?</description>
		<content:encoded><![CDATA[<p>Kris, I agree with your interpretation of its meaning. However, it could&#8217;ve been named more appropriately, no?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kris</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-438</link>
		<dc:creator>Kris</dc:creator>
		<pubDate>Tue, 08 Jul 2008 03:07:14 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-438</guid>
		<description>The IsForeignKey attribute on associations just indicates what direction a foreign key goes, i.e. is this table referenced, or is it referencing another table. The reason for this is that a foreign key will result in associations on both sides so this attribute is needed to know in what direction it goes...</description>
		<content:encoded><![CDATA[<p>The IsForeignKey attribute on associations just indicates what direction a foreign key goes, i.e. is this table referenced, or is it referencing another table. The reason for this is that a foreign key will result in associations on both sides so this attribute is needed to know in what direction it goes&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Orion Bühler</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-207</link>
		<dc:creator>Orion Bühler</dc:creator>
		<pubDate>Fri, 22 Feb 2008 16:30:05 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-207</guid>
		<description>Now that I look more closely, I can see the information that would be lost transforming figure 3 into the subtype patten I'd mentioned.

The diagram implies that a 'Return Type' may indeed play a role those other entities (Access Modifier, ClassModifier, ETC) given that it does not reference a typeID. (Having that optional does complicate things!)

What would you think of objectifying the 'Type is Return Type for Function' fact, and naming it "Return Type"? Not that that would make the diagram simpler... Then there's introducing a third subtype, "return type without typeID reference"...  thinking on the fly here. :]

Could you send me that .orm file? I think I'd enjoy mulling it over. It would be a welcome diversion from this medicaid model, and may even give me some fresh ideas for it.

My email is my first name (dot) my last name (at) gmail</description>
		<content:encoded><![CDATA[<p>Now that I look more closely, I can see the information that would be lost transforming figure 3 into the subtype patten I&#8217;d mentioned.</p>
<p>The diagram implies that a &#8216;Return Type&#8217; may indeed play a role those other entities (Access Modifier, ClassModifier, ETC) given that it does not reference a typeID. (Having that optional does complicate things!)</p>
<p>What would you think of objectifying the &#8216;Type is Return Type for Function&#8217; fact, and naming it &#8220;Return Type&#8221;? Not that that would make the diagram simpler&#8230; Then there&#8217;s introducing a third subtype, &#8220;return type without typeID reference&#8221;&#8230;  thinking on the fly here. :]</p>
<p>Could you send me that .orm file? I think I&#8217;d enjoy mulling it over. It would be a welcome diversion from this medicaid model, and may even give me some fresh ideas for it.</p>
<p>My email is my first name (dot) my last name (at) gmail</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David DeWinter</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-206</link>
		<dc:creator>David DeWinter</dc:creator>
		<pubDate>Thu, 21 Feb 2008 02:57:18 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-206</guid>
		<description>Orion, good to hear from you again. I believe we worked on NORMA together in Spring 2006. Regarding your comments:

1) Yeah, Figure 3 is a bit messy. :( I wanted to keep the images scrunched enough so they could fit on this page but still be clear. Also, for that page, the semantics of the exclusion constraints are exactly what I need. Unfortunately, a ReturnType may either reference some TypeId or play any of those other roles. I don't think I can reduce the number of external constraints with subtyping, unless you have any other ideas?

2) Another frustration with this domain is that I can't subtype here either. If you get a connection string from the XML, then you can still specify a SettingsObjectName and SettingsPropertyName, and if you get a connection string from the application settings, then you can still specify a connection string.

3) I chose to leave primary identifiers off the main object types in this model because they didn't match the XML representation. I didn't want people who viewed the model to be confused between a Type's TypeId (an explicit attribute in the XML which is unfortunately optional) and a surrogate identifier like Type_id. There are also instances of this with FunctionId.

4) Yep, I enjoy the Alignment feature as well. I admit that I should go back and make the models a bit cleaner.

Thanks again for your comments!</description>
		<content:encoded><![CDATA[<p>Orion, good to hear from you again. I believe we worked on NORMA together in Spring 2006. Regarding your comments:</p>
<p>1) Yeah, Figure 3 is a bit messy. <img src='http://blogs.rev-net.com/ddewinter/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> I wanted to keep the images scrunched enough so they could fit on this page but still be clear. Also, for that page, the semantics of the exclusion constraints are exactly what I need. Unfortunately, a ReturnType may either reference some TypeId or play any of those other roles. I don&#8217;t think I can reduce the number of external constraints with subtyping, unless you have any other ideas?</p>
<p>2) Another frustration with this domain is that I can&#8217;t subtype here either. If you get a connection string from the XML, then you can still specify a SettingsObjectName and SettingsPropertyName, and if you get a connection string from the application settings, then you can still specify a connection string.</p>
<p>3) I chose to leave primary identifiers off the main object types in this model because they didn&#8217;t match the XML representation. I didn&#8217;t want people who viewed the model to be confused between a Type&#8217;s TypeId (an explicit attribute in the XML which is unfortunately optional) and a surrogate identifier like Type_id. There are also instances of this with FunctionId.</p>
<p>4) Yep, I enjoy the Alignment feature as well. I admit that I should go back and make the models a bit cleaner.</p>
<p>Thanks again for your comments!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Orion Buhler</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-205</link>
		<dc:creator>Orion Buhler</dc:creator>
		<pubDate>Wed, 20 Feb 2008 18:25:46 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-205</guid>
		<description>It is always good to see someone else cognizant of ORM diagrams!

I've been using ORM for modelling for a few years now, and have a few comments about the models I see:

Figure 3 looks a bit messy. It could be improved by introducing a second subtype of Type, perhaps named "Non-Return Type" or "Regular Type". Then, attach the facts that do not apply to a return type to it, obviating the need for so many disjunctive exclusion constraints.

Figure two might benefit from a similar subtyping. By introducing an entity to represent the type of location the connection string comes from, (connection string source type) the model becomes more flexible, should there ever be a source introduced that isn't XML /OR/ application settings.

There were also several entities for which I couldn't find a primary identifier. I'm thinking you left those off to keep the diagrams from becoming more complex. :]


One of my favorite recent additions to the tool is the 'alignment' option - Darren Flynn showed it to me last month. When you select a group of objects on the diagram, select 'Format' from the menu bar, 'Align', and then how you wish to align them: Lefts, middles, centers, etc.</description>
		<content:encoded><![CDATA[<p>It is always good to see someone else cognizant of ORM diagrams!</p>
<p>I&#8217;ve been using ORM for modelling for a few years now, and have a few comments about the models I see:</p>
<p>Figure 3 looks a bit messy. It could be improved by introducing a second subtype of Type, perhaps named &#8220;Non-Return Type&#8221; or &#8220;Regular Type&#8221;. Then, attach the facts that do not apply to a return type to it, obviating the need for so many disjunctive exclusion constraints.</p>
<p>Figure two might benefit from a similar subtyping. By introducing an entity to represent the type of location the connection string comes from, (connection string source type) the model becomes more flexible, should there ever be a source introduced that isn&#8217;t XML /OR/ application settings.</p>
<p>There were also several entities for which I couldn&#8217;t find a primary identifier. I&#8217;m thinking you left those off to keep the diagrams from becoming more complex. :]</p>
<p>One of my favorite recent additions to the tool is the &#8216;alignment&#8217; option - Darren Flynn showed it to me last month. When you select a group of objects on the diagram, select &#8216;Format&#8217; from the menu bar, &#8216;Align&#8217;, and then how you wish to align them: Lefts, middles, centers, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rex</title>
		<link>http://blogs.rev-net.com/ddewinter/2008/02/16/the-linq-to-sql-model/#comment-204</link>
		<dc:creator>Rex</dc:creator>
		<pubDate>Tue, 19 Feb 2008 05:35:48 +0000</pubDate>
		<guid isPermaLink="false">http://dev.rev-net.com/blog/ddewinter/?p=42#comment-204</guid>
		<description>Looks good to me.</description>
		<content:encoded><![CDATA[<p>Looks good to me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
