<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-8486822413101972100.post5747249071466843072..comments</id><updated>2010-04-17T00:03:29.459+06:00</updated><title type='text'>Comments on .NET tips, tricks and patterns: Making IDisposable more usable, part 1</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tips.x-tensive.com/feeds/5747249071466843072/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default'/><link rel='alternate' type='text/html' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html'/><author><name>Alex Yakunin</name><uri>http://www.blogger.com/profile/13800929290476802273</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8486822413101972100.post-3234025093072059896</id><published>2010-04-17T00:03:29.450+06:00</published><updated>2010-04-17T00:03:29.450+06:00</updated><title type='text'>Concerning Haskell: well, there are lots of practi...</title><content type='html'>Concerning Haskell: well, there are lots of practically good ideas:&lt;br /&gt;- LINQ came from it (monads)&lt;br /&gt;- Parallelism is absolutely free in pure functional languages.&lt;br /&gt;- It syntax is also very nice: short &amp;amp; clean. &lt;br /&gt;&lt;br /&gt;So in fact, C# and F# took a lot from functional languages. But agree, currently usage of imperative style seems inevitable (= practically efficient).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/3234025093072059896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/3234025093072059896'/><link rel='alternate' type='text/html' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html?showComment=1271441009450#c3234025093072059896' title=''/><author><name>Alex Yakunin</name><uri>http://www.blogger.com/profile/13800929290476802273</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09650213915253068470'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html' ref='tag:blogger.com,1999:blog-8486822413101972100.post-5747249071466843072' source='http://www.blogger.com/feeds/8486822413101972100/posts/default/5747249071466843072' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-8486822413101972100.post-6180739016372763197</id><published>2010-04-16T21:14:18.522+06:00</published><updated>2010-04-16T21:14:18.522+06:00</updated><title type='text'>Errrmm... "hence" is not exact word.
it's evoked b...</title><content type='html'>Errrmm... &amp;quot;hence&amp;quot; is not exact word.&lt;br /&gt;it&amp;#39;s evoked by agressive functional programming funs, epic vsl followers.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/6180739016372763197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/6180739016372763197'/><link rel='alternate' type='text/html' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html?showComment=1271430858522#c6180739016372763197' title=''/><author><name>x4m</name><uri>http://www.blogger.com/profile/13936980175380811868</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html' ref='tag:blogger.com,1999:blog-8486822413101972100.post-5747249071466843072' source='http://www.blogger.com/feeds/8486822413101972100/posts/default/5747249071466843072' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-8486822413101972100.post-7511198168666611438</id><published>2010-04-16T20:35:18.272+06:00</published><updated>2010-04-16T20:35:18.272+06:00</updated><title type='text'>&gt;&gt;Nearly the same approach is used in Parallel Ext...</title><content type='html'>&amp;gt;&amp;gt;Nearly the same approach is used in Parallel Extensions \ PLINQ - it also may throw AggregatedException in case of multiple concurrent errors. So I suspect that&amp;#39;s the best option we had.&lt;br /&gt;&lt;br /&gt;I suppose it&amp;#39;s the only considerable option PLINQ have.&lt;br /&gt;&lt;br /&gt;Aggregated exceptions causes separating catches.&lt;br /&gt;I think exception handling is something like tolerance level definition. Also exception handling by design can be used to fight unsuitable API of 3rd party products.&lt;br /&gt;&lt;br /&gt;Btw, Thx God I know imperative programming, hence I don&amp;#39;t like Haskell.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/7511198168666611438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/7511198168666611438'/><link rel='alternate' type='text/html' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html?showComment=1271428518272#c7511198168666611438' title=''/><author><name>x4m</name><uri>http://www.blogger.com/profile/13936980175380811868</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html' ref='tag:blogger.com,1999:blog-8486822413101972100.post-5747249071466843072' source='http://www.blogger.com/feeds/8486822413101972100/posts/default/5747249071466843072' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-8486822413101972100.post-4235400019250285548</id><published>2010-04-14T23:39:51.113+06:00</published><updated>2010-04-14T23:39:51.113+06:00</updated><title type='text'>Nearly the same approach is used in Parallel Exten...</title><content type='html'>Nearly the same approach is used in Parallel Extensions \ PLINQ - it also may throw AggregatedException in case of multiple concurrent errors. So I suspect that&amp;#39;s the best option we had.&lt;br /&gt;&lt;br /&gt;Btw, exception handling in general is really a bit ugly way. Check out how this is implemented in pure functional languages like Haskell.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/4235400019250285548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/4235400019250285548'/><link rel='alternate' type='text/html' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html?showComment=1271266791113#c4235400019250285548' title=''/><author><name>Alex Yakunin</name><uri>http://www.blogger.com/profile/13800929290476802273</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09650213915253068470'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html' ref='tag:blogger.com,1999:blog-8486822413101972100.post-5747249071466843072' source='http://www.blogger.com/feeds/8486822413101972100/posts/default/5747249071466843072' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-8486822413101972100.post-7178029185705034855</id><published>2010-04-14T12:49:48.775+06:00</published><updated>2010-04-14T12:49:48.775+06:00</updated><title type='text'>Interesting stuff, thx.

About aggregated exceptio...</title><content type='html'>Interesting stuff, thx.&lt;br /&gt;&lt;br /&gt;About aggregated exception. Exception handling just cannot be done right. Otherwise it&amp;#39;s not exception handling, it&amp;#39;s control flow management. I&amp;#39;ts better to avoid exception features under this angle of view. I suppose something is wrong with exception aggregation...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/7178029185705034855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/7178029185705034855'/><link rel='alternate' type='text/html' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html?showComment=1271227788775#c7178029185705034855' title=''/><author><name>x4m</name><uri>http://www.blogger.com/profile/13936980175380811868</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html' ref='tag:blogger.com,1999:blog-8486822413101972100.post-5747249071466843072' source='http://www.blogger.com/feeds/8486822413101972100/posts/default/5747249071466843072' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-8486822413101972100.post-6168671519775684918</id><published>2010-02-18T18:18:47.721+05:00</published><updated>2010-02-18T18:18:47.721+05:00</updated><title type='text'>"using" statement is limited to the same block of ...</title><content type='html'>&amp;quot;using&amp;quot; statement is limited to the same block of code. But in real life you frequently create IDisposable objects in constructors and dispose them in your own IDisposable.Dispose - so these patterns are designed mainly for this case.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/6168671519775684918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/6168671519775684918'/><link rel='alternate' type='text/html' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html?showComment=1266499127721#c6168671519775684918' title=''/><author><name>Alex Yakunin</name><uri>http://www.blogger.com/profile/13800929290476802273</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09650213915253068470'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html' ref='tag:blogger.com,1999:blog-8486822413101972100.post-5747249071466843072' source='http://www.blogger.com/feeds/8486822413101972100/posts/default/5747249071466843072' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-8486822413101972100.post-1047066703781366804</id><published>2009-08-31T18:36:12.290+06:00</published><updated>2009-08-31T18:36:12.290+06:00</updated><title type='text'>maybe it's a stupid suggestion but why don't you u...</title><content type='html'>maybe it&amp;#39;s a stupid suggestion but why don&amp;#39;t you use the &amp;#39;using ***&amp;#39; pattern?&lt;br /&gt;&lt;br /&gt;if you use a resource with&lt;br /&gt;using (var x = XXX)&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;you don&amp;#39;t have problem about null checks, also about using more objects i think that the &amp;#39;using&amp;#39; is more clear that your solution&lt;br /&gt;&lt;br /&gt;using (var x1 = new x1())&lt;br /&gt;using (var x2 = new x2())&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;i don&amp;#39;t remember but maybe works also&lt;br /&gt;&lt;br /&gt;using (var x1 = new x1(),&lt;br /&gt;                  var x2 = new x2())&lt;br /&gt;{&lt;br /&gt;}</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/1047066703781366804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8486822413101972100/5747249071466843072/comments/default/1047066703781366804'/><link rel='alternate' type='text/html' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html?showComment=1251722172290#c1047066703781366804' title=''/><author><name>korkless</name><uri>http://www.blogger.com/profile/08855871416135911457</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://tips.x-tensive.com/2009/08/making-idisposable-more-usable.html' ref='tag:blogger.com,1999:blog-8486822413101972100.post-5747249071466843072' source='http://www.blogger.com/feeds/8486822413101972100/posts/default/5747249071466843072' type='text/html'/></entry></feed>