<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://codebetter.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>Ian Cooper [MVP] - All Comments</title><link>http://codebetter.com/blogs/ian_cooper/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>re: Architecting LINQ To SQL Applications, part 7</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/03/09/architecting-linq-to-sql-applications-part-7.aspx#178260</link><pubDate>Thu, 15 May 2008 18:46:21 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:178260</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;Hi Ian&lt;/p&gt;
&lt;p&gt;I am really enjoying your articles on Linq to SQL - particularly the discussion about DataContext and layers.&lt;/p&gt;
&lt;p&gt;I have plans to teach a first year undergrad &amp;nbsp;web dev. course based on &amp;nbsp;Linq to SQL in September and I have been struggling with these issues for a while ......&lt;/p&gt;
&lt;p&gt;You mentioned that Linq to SQL has a similar pattern using DataContext to Paul Wilson's ORM (WORM) and perhaps you could explain that it more detail. I have used WORM for many years in development and in teaching and thought I understood it - but I am struggling with Linq to SQL DataContext as I can't seem to hide it - in the same way that WORM hides its equivalent.&lt;/p&gt;
&lt;p&gt;WORM was ideal for students as I could hide all the ORM detail in the DAL and gradually expose parts as required (from a teaching perpective) but am finding this hard with DataContext &lt;/p&gt;
&lt;p&gt;Thanks again&lt;/p&gt;
&lt;p&gt;Mike &lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178260" width="1" height="1"&gt;</description></item><item><title>Architecting LINQ to SQL applications - by Ian Cooper</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/03/09/previous-architecting-linq-to-sql-applications-part-5.aspx#177835</link><pubDate>Wed, 07 May 2008 21:55:07 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177835</guid><dc:creator>Gerlei Márton blogja az Architektúra Fórumon</dc:creator><description>&lt;p&gt;Egy LINQ-s probl&amp;#233;m&amp;#225;val k&amp;#252;szk&amp;#246;dve tal&amp;#225;ltam az al&amp;#225;bbi cikksorozatot, &amp;#233;s szerintem el&amp;#233;gg&amp;#233; hasznos. Sok mindenről&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177835" width="1" height="1"&gt;</description></item><item><title>Architecting LINQ to SQL applications - by Ian Cooper</title><link>http://codebetter.com/blogs/ian_cooper/archive/2007/11/29/architecting-linq-to-sql-applications-part-1.aspx#177834</link><pubDate>Wed, 07 May 2008 21:54:54 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177834</guid><dc:creator>Gerlei Márton blogja az Architektúra Fórumon</dc:creator><description>&lt;p&gt;Egy LINQ-s probl&amp;#233;m&amp;#225;val k&amp;#252;szk&amp;#246;dve tal&amp;#225;ltam az al&amp;#225;bbi cikksorozatot, &amp;#233;s szerintem el&amp;#233;gg&amp;#233; hasznos. Sok mindenről&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177834" width="1" height="1"&gt;</description></item><item><title>re: Architecting LINQ To SQL Applications, part 8 </title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/04/06/architecting-linq-to-sql-applications-part-8.aspx#177625</link><pubDate>Sat, 03 May 2008 20:51:57 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177625</guid><dc:creator>mike</dc:creator><description>&lt;p&gt;Any idea when you might have part 9 ready?&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177625" width="1" height="1"&gt;</description></item><item><title>best practices for rdbms</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/04/06/architecting-linq-to-sql-applications-part-8.aspx#177008</link><pubDate>Thu, 24 Apr 2008 11:28:05 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:177008</guid><dc:creator>best practices for rdbms</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;best practices for rdbms&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177008" width="1" height="1"&gt;</description></item><item><title>The role of Architect in Software Development</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/01/02/architects-back-to-the-future.aspx#176734</link><pubDate>Wed, 16 Apr 2008 21:44:06 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176734</guid><dc:creator>Bryan Hinton's Blog</dc:creator><description>&lt;p&gt;Two good articles below that explore what an architect really means in the world of software development&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176734" width="1" height="1"&gt;</description></item><item><title>re: Architecting LINQ to SQL applications, part 3</title><link>http://codebetter.com/blogs/ian_cooper/archive/2007/12/02/architecting-linq-to-sql-applications-part-3.aspx#176609</link><pubDate>Fri, 11 Apr 2008 19:07:30 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176609</guid><dc:creator>Mohammad Azam</dc:creator><description>&lt;p&gt;Hi, &lt;/p&gt;
&lt;p&gt;So, how are you initializing the DataContext and from where are you sending the context. &lt;/p&gt;
&lt;p&gt;public class NorthwindRepository&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;private IQueryable&amp;lt;Customer&amp;gt; customers;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;public NorthwindRepository(DataContext context)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;customers = context.GetTable&amp;lt;Customer&amp;gt;(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;public Customer FindCustomer(string customerId)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (from c in customers&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;where c.CustomerID == customerId&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;select c).Single&amp;lt;Customer&amp;gt;();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;} &lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176609" width="1" height="1"&gt;</description></item><item><title>re: Architecting LINQ To SQL Applications, part 7</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/03/09/architecting-linq-to-sql-applications-part-7.aspx#176597</link><pubDate>Fri, 11 Apr 2008 12:46:41 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176597</guid><dc:creator>Daniel Fernandes</dc:creator><description>&lt;p&gt;Features I see that are &amp;quot;obviously&amp;quot; missing from Linq To Sql (hand coded or not) are:&lt;/p&gt;
&lt;p&gt;- no support of polymorphism for associations, CRUD and queries, at least with the generated code, I guess you can have polymorphic associations with hand coded mapping but that needs to be confirmed.&lt;/p&gt;
&lt;p&gt;- Lack of support to clearly configure cascade behaviour for either create, update or deletes (it's my view that deletions should be handled by code near the domain model and not within the db).&lt;/p&gt;
&lt;p&gt;- Inability to create custom types built from sql datatypes.&lt;/p&gt;
&lt;p&gt;- No clean way to intercept calls to the db. On generated code one has to use partial methods to handle this, not sure how it would works for hand coded and I'm not sure how the GetChangeSet() command actually works, does it return the full set of entities that are going to be affected by the unit of work including entities that will be updated due to cascade ?&lt;/p&gt;
&lt;p&gt;To me the one little gem in NHibernate is support of Many to Any relationship where something on the Many side can be linked to literally anything on the other side using a table in the middle providing all the necessary configuration to act as an object factory.&lt;/p&gt;
&lt;p&gt;PS: I still do very much appreciate your series, I tried to do this very architecture with NHibernate but it didn't quite work out, DDD was confusing me on a daily basis..!&lt;/p&gt;
&lt;p&gt;Daniel&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176597" width="1" height="1"&gt;</description></item><item><title>weekend breaks in scotland</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/03/06/developer-day-ireland.aspx#176594</link><pubDate>Fri, 11 Apr 2008 07:41:57 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176594</guid><dc:creator>weekend breaks in scotland</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;weekend breaks in scotland&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176594" width="1" height="1"&gt;</description></item><item><title>find the best web designer</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/04/06/architecting-linq-to-sql-applications-part-8.aspx#176561</link><pubDate>Thu, 10 Apr 2008 10:07:20 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176561</guid><dc:creator>find the best web designer</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;find the best web designer&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176561" width="1" height="1"&gt;</description></item><item><title>http://nhibernate.codebetter.com/blogs/ian_cooper/archive/2007/12/04/architecting-linq-to-sql-applications-part-4.aspx</title><link>http://codebetter.com/blogs/ian_cooper/archive/2007/12/04/architecting-linq-to-sql-applications-part-4.aspx#176507</link><pubDate>Wed, 09 Apr 2008 15:53:29 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176507</guid><dc:creator>http://nhibernate.codebetter.com/blogs/ian_cooper/archive/2007/12/04/architecting-linq-to-sql-applications-part-4.aspx</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://nhibernate.codebetter.com/blogs/ian_cooper/archive/2007/12/04/architecting-linq-to-sql-applications-part-4.aspx"&gt;nhibernate.codebetter.com/.../architecting-linq-to-sql-applications-part-4.aspx&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176507" width="1" height="1"&gt;</description></item><item><title>re: Architecting LINQ to SQL applications, part 4</title><link>http://codebetter.com/blogs/ian_cooper/archive/2007/12/04/architecting-linq-to-sql-applications-part-4.aspx#176494</link><pubDate>Wed, 09 Apr 2008 13:13:04 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176494</guid><dc:creator>Scott Wojan</dc:creator><description>&lt;p&gt;Ian,&lt;/p&gt;
&lt;p&gt;Not sure if you are familiar with the criteria api in NHibernate but it allows compile time checking for querying objects:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/querycriteria.html"&gt;www.hibernate.org/.../querycriteria.html&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176494" width="1" height="1"&gt;</description></item><item><title>best xml software</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/04/06/architecting-linq-to-sql-applications-part-8.aspx#176470</link><pubDate>Tue, 08 Apr 2008 19:17:16 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176470</guid><dc:creator>best xml software</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;best xml software&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176470" width="1" height="1"&gt;</description></item><item><title>http://development.codebetter.com/blogs/ian_cooper/archive/2008/03/04/some-recommended-books.aspx</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/03/04/some-recommended-books.aspx#176465</link><pubDate>Tue, 08 Apr 2008 15:25:18 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176465</guid><dc:creator>http://development.codebetter.com/blogs/ian_cooper/archive/2008/03/04/some-recommended-books.aspx</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://development.codebetter.com/blogs/ian_cooper/archive/2008/03/04/some-recommended-books.aspx"&gt;development.codebetter.com/.../some-recommended-books.aspx&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176465" width="1" height="1"&gt;</description></item><item><title>Finds of the Week - April 6, 2008 &amp;raquo; Chinh Do</title><link>http://codebetter.com/blogs/ian_cooper/archive/2008/02/17/architecting-linq-to-sql-applications-part-5.aspx#176455</link><pubDate>Tue, 08 Apr 2008 03:26:24 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:176455</guid><dc:creator>Finds of the Week - April 6, 2008 » Chinh Do</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Finds of the Week - April 6, 2008 &amp;amp;raquo; Chinh Do&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176455" width="1" height="1"&gt;</description></item></channel></rss>