<?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>Framework Design Guidelines: Powerful and Easy</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx</link><description>Continuing in the series of sharing information from the Framework Design Guidelines … Expert from 2.2 Fundamental Principles of Framework Design Providing a development platform that is both powerful and easy to use is one of the main goals of the .NET</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Framework Design Guidelines: Powerful and Easy</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#478403</link><pubDate>Sat, 08 Oct 2005 01:16:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:478403</guid><dc:creator>Sean Chase</dc:creator><description>throw new System.Exception(&amp;quot;yuck&amp;quot;);</description></item><item><title>re: Framework Design Guidelines: Powerful and Easy</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#478511</link><pubDate>Sat, 08 Oct 2005 09:10:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:478511</guid><dc:creator>Matthew W. Jackson</dc:creator><description>I'll second the Exception one.  If you had it to do again, I'd say make System.Exception abstract, make all the exceptions that shouldn't be caught (such as ThreadAbortException or StackOverflowException) inherit from a single base (like AsyncException), and everything else could be a SystemException.  Also, the ArgumentExceptions would be more consistant and useful.&lt;br&gt;&lt;br&gt;Anyway, the big easy-to-misuse API I stumbled upon yesterday was Type.InvokeMember when late-binding COM objects.  Specifically I'm talking about the &amp;quot;ParameterModifier[] modifiers&amp;quot; argument for marking arguments as by-reference.  The usage of this is simply esoteric.&lt;br&gt;&lt;br&gt;Then again, a lot of things in Reflection are this way.</description></item><item><title>re: Framework Design Guidelines: Powerful and Easy</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#478577</link><pubDate>Sat, 08 Oct 2005 19:32:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:478577</guid><dc:creator>Jonathan Allen</dc:creator><description>I for one have completely given-up on reflection. I need to use late binding because some COM classes are so poorly written that none of their interfaces appear to list all the methods I know exist. &lt;br&gt;&lt;br&gt;Even though out company is mostly C#, we decided to write all the interop code in VB instead of dealing with the reflection directly.&lt;br&gt;&lt;br&gt;For example, Rational's ClearQuest API. None of the interfaces listed in the object browser for the Entity object expose the EditEntity method. But yet VB somehow figures out how to call it anyways.&lt;br&gt;&lt;br&gt;Can tell me how VB does that?&lt;br&gt;&lt;br&gt;Jonathan&lt;br&gt;</description></item><item><title>re: Framework Design Guidelines: Powerful and Easy</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#478987</link><pubDate>Mon, 10 Oct 2005 07:40:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:478987</guid><dc:creator>Abubakar</dc:creator><description>well I wrote a code using anonymous methods, and it was the only time I didnt like my code.</description></item><item><title>re: Framework Design Guidelines: Powerful and Easy</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#479049</link><pubDate>Mon, 10 Oct 2005 11:22:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:479049</guid><dc:creator>Geert Baeyaert</dc:creator><description>I think WeakReference.IsAlive is an example of a mountain of success.  &lt;br&gt;&lt;br&gt;Consider the following example:&lt;br&gt;&lt;br&gt;foreach (WeakReference wr in wrs)&lt;br&gt;{&lt;br&gt;    if (wr.IsAlive)&lt;br&gt;    {&lt;br&gt;        // GC happens here&lt;br&gt;        ((Foo)wr.Target).Bar();&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;Bam, NullReferenceException, hard to reproduce, hard to find.&lt;br&gt;&lt;br&gt;Actually, I can't think of one example where WeakReference.IsAlive is usefull.  You always have to check that the target is not null, as in the following example:&lt;br&gt;&lt;br&gt;foreach (WeakReference wr in wrs)&lt;br&gt;{&lt;br&gt;    Foo foo = (Foo)wr.Target;&lt;br&gt;    if (foo != null)&lt;br&gt;    {&lt;br&gt;       foo.Bar();&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;Therefore, I think WeakReference.IsAlive should be made obsolete.&lt;br&gt;&lt;br&gt;(I have already submitted this on the Feedback center, vote for it if you agree with me)</description></item><item><title>What's wrong with ASP.NET?  HTML encoding</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#649935</link><pubDate>Wed, 28 Jun 2006 21:47:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:649935</guid><dc:creator>I may have joined the wrong side</dc:creator><description>The problem&lt;br&gt;Back when ASP.NET was first introduced, I had pretty high hopes that the new controls would...</description></item><item><title>What's wrong with ASP.NET?  HTML encoding</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#6712729</link><pubDate>Sun, 09 Dec 2007 16:10:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6712729</guid><dc:creator>I may have joined the wrong side</dc:creator><description>&lt;p&gt;The problem Back when ASP.NET was first introduced, I had pretty high hopes that the new controls would&lt;/p&gt;
</description></item><item><title> Brad Abrams Framework Design Guidelines Powerful and Easy | Paid Surveys</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#9649622</link><pubDate>Fri, 29 May 2009 01:58:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9649622</guid><dc:creator> Brad Abrams Framework Design Guidelines Powerful and Easy | Paid Surveys</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://paidsurveyshub.info/story.php?title=brad-abrams-framework-design-guidelines-powerful-and-easy"&gt;http://paidsurveyshub.info/story.php?title=brad-abrams-framework-design-guidelines-powerful-and-easy&lt;/a&gt;&lt;/p&gt;
</description></item><item><title> Brad Abrams Framework Design Guidelines Powerful and Easy | internet marketing tools</title><link>http://blogs.msdn.com/brada/archive/2005/10/07/478375.aspx#9758925</link><pubDate>Tue, 16 Jun 2009 08:29:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9758925</guid><dc:creator> Brad Abrams Framework Design Guidelines Powerful and Easy | internet marketing tools</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://einternetmarketingtools.info/story.php?id=7448"&gt;http://einternetmarketingtools.info/story.php?id=7448&lt;/a&gt;&lt;/p&gt;
</description></item></channel></rss>