<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.sharpdevelop.net/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>SharpDevelop Community</title><link>http://community.sharpdevelop.net/blogs/</link><description>Get your problems solved!</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Code Analysis improvements in SharpDevelop 3.0</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/09/06/code-analysis-improvements-in-sharpdevelop-3-0.aspx</link><pubDate>Sat, 06 Sep 2008 17:32:29 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23349</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>In revision 3506, SharpDevelop 3.0 got improved support for code analysis using FxCop 1.36. There were some bugs fixed that were related to the suppress message command - it was working only with FxCop 1.35, but even there couldn&amp;#39;t suppress messages for static constructors and explicitly implemented interface members. Using this command inserts a SuppressMessageAttribute in the code: A new feature is support for custom dictionaries for the FxCop spell checker. Instead of suppressing tons of spelling...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/09/06/code-analysis-improvements-in-sharpdevelop-3-0.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23349" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Daniel/default.aspx">Daniel</category></item><item><title>XAML code completion</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/09/05/xaml-code-completion.aspx</link><pubDate>Thu, 04 Sep 2008 23:04:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23323</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>More than one year ago, I added the XAML language binding to SharpDevelop 3.0, showing tooltips in .xaml files and enabling refactoring. (&amp;quot; XAML and WPF support in SharpDevelop 3.0 &amp;quot;) Now I finally added the missing part: code completion. You get completion when typing an element: For attributes: And for attribute values if the property expects an enum:...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/09/05/xaml-code-completion.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23323" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Daniel/default.aspx">Daniel</category></item><item><title>First Mirador (SharpDevelop 4.0) Screenshot</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/09/04/first-mirador-sharpdevelop-4-0-screenshot.aspx</link><pubDate>Thu, 04 Sep 2008 17:57:06 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23317</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>In case anyone gets a wrong idea, take a close look at the title bar - it has the word &amp;quot;experimental&amp;quot; in it: The reverse integration of the WPF branch is the first step in the direction of &amp;quot;more WPF&amp;quot; in SharpDevelop 4.0 (this screenshot shows the new WPF workbench and the new WPF start page). So what does this mean for the not-yet released version 3.0? As 3.0 is the last version built entirely on top of Windows Forms, it will be a long-term stable release series - meaning there...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/09/04/first-mirador-sharpdevelop-4-0-screenshot.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23317" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Chris/default.aspx">Chris</category></item><item><title>More Comprehensive Exception Reports for SharpDevelop</title><link>http://community.sharpdevelop.net/blogs/christianhornung/archive/2008/09/02/more-comprehensive-exception-reports-for-sharpdevelop.aspx</link><pubDate>Tue, 02 Sep 2008 19:20:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23252</guid><dc:creator>Christian Hornung</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;First and foremost, we hope that you will not see the &amp;quot;unhandled exception&amp;quot; dialog box of SharpDevelop often. Nevertheless I would like to shed light on some improvements in that area.&lt;/p&gt;&lt;p&gt;In spite of all error reporting features of an application, the best thing users can do to help us is to describe as precisely as possible what they were doing that eventually led to the error. However, SharpDevelop 3 now also outputs some additional information that may help with fixing the bugs. As of build 3.0.0.3455, two extensions to the exception reports created by SharpDevelop are in place and working:&lt;/p&gt;&lt;p&gt;The &lt;b&gt;log message recorder&lt;/b&gt; permanently stores a number of internal log messages (currently up to 25) in a cyclic buffer. Those messages are then added to the report whenever an unhandled exception occurs. Here you can see the exception box with some log messages scrolled into view:&lt;/p&gt;&lt;p&gt;&lt;a href="http://community.sharpdevelop.net/photos/christianhornung/picture23250.aspx" target="_blank"&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/23250/original.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Additionally, some &lt;b&gt;state information&lt;/b&gt; is added to the report. Currently the following items are listed:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;installed 3rd party add-ins&lt;/li&gt;&lt;li&gt;type and name of the current project&lt;/li&gt;&lt;li&gt;name and some properties of the current solution&lt;/li&gt;&lt;li&gt;active view content&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Please note that the new exception reports can contain information which you might want to keep private.&lt;/b&gt; For example, names of projects, files, classes, methods etc. can appear in the log messages and state information, perhaps even parts of code that has been edited. If you are concerned about privacy, you should look through the generated report and check whether it contains anything you do not want to disclose before posting it. Feel free to anonymize it as necessary, but please make sure that you do not change the &amp;quot;meaning&amp;quot; of the report - i.e. if you change a name, change all occurrences of that name equally.&lt;br /&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23252" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/christianhornung/archive/tags/Exception+reporting/default.aspx">Exception reporting</category></item><item><title>Patch-Sized Contributions Without JCA</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/09/01/patch-sized-contributions-without-jca.aspx</link><pubDate>Mon, 01 Sep 2008 17:12:32 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23238</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>Our Wiki has a guideline on joining the team which outlines the process of submitting code to the project. As part of this year&amp;#39;s #develop developer days (#d^3) we decided on a change to the guideline: It is now possible to contribute &amp;quot;any-size&amp;quot; patches (be it a bug fix or feature enhancement) when those code pieces (your changes) are licensed under the BSD license . Why this change? We want to make it easier for the &amp;quot;accidential contributor&amp;quot; (ie someone who stumbled across...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/09/01/patch-sized-contributions-without-jca.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23238" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Chris/default.aspx">Chris</category></item><item><title>XML Editor Reuse</title><link>http://community.sharpdevelop.net/blogs/mattward/archive/2008/08/31/XmlEditorReuse.aspx</link><pubDate>Sun, 31 Aug 2008 14:00:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23223</guid><dc:creator>MattWard</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;It is always good to see that someone else finds the code that 
    you have written useful enough to be reused in another application. 
    Here we take a look at where SharpDevelop&amp;#39;s XML Editor has 
    been reused. The XML Editor was originally added to SharpDevelop 
    1.0 back in April 2005.&lt;/p&gt;&lt;h2&gt;MonoDevelop&lt;/h2&gt;&lt;p&gt;Some time ago I ported SharpDevelop&amp;#39;s XML Editor so it 
    could be used from inside &lt;a href="http://www.monodevelop.com"&gt;
    MonoDevelop&lt;/a&gt;. Currently there is an 
    &lt;a href="http://md-xed.sourceforge.net/"&gt;addin available for 
    MonoDevelop 1.0&lt;/a&gt;. MonoDevelop 2.0 now ships with this XML Editor 
    after &lt;a href="http://mjhutchinson.com/"&gt;Michael Hutchinson&lt;/a&gt; 
    from Novell integrated it in March this year. I also believe that 
    it is being used to help provide at least some part of the 
    autocompletion for ASP.NET. It will be interesting to see how 
    Michael builds on and improves the XML Editor code.&lt;/p&gt;&lt;h2&gt;Kaxaml&lt;/h2&gt;&lt;p&gt;&lt;a href="http://www.kaxaml.com"&gt;Kaxaml&lt;/a&gt; is a lightweight XAML 
    Editor written by &lt;a href="http://www.notstatic.com"&gt;Robby 
    Ingebretsen&lt;/a&gt;. Kaxaml version 1.0 and 2.0 use a modified version 
    of SharpDevelop&amp;#39;s XML Editor. Robby has replaced the user 
    interface part so the autocompletion popup window now uses WPF. He 
    has also modified it so the autocompletion popup window behaves the 
    same as Visual Studio&amp;#39;s XML Editor. For example, SharpDevelop 
    automatically inserts the equals sign and double quotes an 
    attribute name is autocompleted whilst Visual Studio will 
    autocomplete just the attribute name and then automatically insert 
    the double quotes after the equals sign is typed in.&lt;/p&gt;&lt;h2&gt;Intellisense for Microsoft Expression Blend 2.5&lt;/h2&gt;&lt;p&gt;&lt;a href="http://blogs.telerik.com/StefanDobrev/Posts/08-08-04/IntelliSense_for_Expression_Blend.aspx"&gt;Stefan Dobrev&lt;/a&gt; has written an 
    &lt;a href="http://code.msdn.microsoft.com/BlendSense"&gt;addin to 
    provide XML autocompletion&lt;/a&gt; for the as yet unreleased Expression 
    Blend 2.5. This addin uses the XML Editor code from Kaxaml to 
    provide the autocompletion. Stefan has modified this code slightly 
    to add support for the Expression Blend&amp;#39;s code editor.&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23223" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/mattward/archive/tags/XmlEditor/default.aspx">XmlEditor</category></item><item><title>New feature: Extract method</title><link>http://community.sharpdevelop.net/blogs/siegfried_pammer/archive/2008/08/25/new-feature-extract-method.aspx</link><pubDate>Mon, 25 Aug 2008 13:17:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23166</guid><dc:creator>siegi44</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&amp;nbsp;In the upcoming SharpDevelop 3 there&amp;#39;s a new refactoring included: Extract method. With it you can easily split a method into two independent methods.&lt;/p&gt;&lt;p&gt;If you want to use it you first have to select the piece of code you want to extract:&lt;br /&gt;&lt;a href="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_refactoring1.JPG"&gt;&lt;img src="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_refactoring1.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Then just click on Refactor &amp;gt; Extract method in the main menu:&lt;a href="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_refactoring2.JPG"&gt;&lt;img src="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_refactoring2.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;The preview will pop up, here you can enter a name for the new method:&lt;/p&gt;&lt;p&gt;&lt;a href="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_refactoring3.JPG"&gt;&lt;img src="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_refactoring3.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;After entering a name click &amp;quot;OK&amp;quot; and here you can see the new method and the inserted call:&lt;a href="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_refactoring4.JPG"&gt;&lt;img src="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_refactoring4.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Of course you can undo the change, just press Ctrl+Z.&lt;/p&gt;&lt;p&gt;I hope you find this refactoring useful and I would be glad to receive any comments on this. &lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23166" width="1" height="1"&gt;</description></item><item><title>Improved unhandled exception reporting in SharpDevelop3</title><link>http://community.sharpdevelop.net/blogs/justindearing/archive/2008/08/25/improved-unhandled-exception-reporting-in-sharpdevelop3.aspx</link><pubDate>Mon, 25 Aug 2008 11:59:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23165</guid><dc:creator>zippy1981</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;One of the areas the SharpDevelop debugger has been weak in is dealing with unhandled exceptions. Ths has been improved in SharpDevelop 3 in two areas. These are the Local Variable pad, and the form that displays unhandled exceptions thrown from a debugged application to the user.&lt;/p&gt;
&lt;p&gt;To illustrate these changes I have made a simple C# solution that contain a simple program that throws an exception when run. You can download it via the svn url &lt;a href="https://nightelves.svn.sourceforge.net/svnroot/nightelves/DebuggerExceptionHandlingTest/"&gt;https://nightelves.svn.sourceforge.net/svnroot/nightelves/DebuggerExceptionHandlingTest/&lt;/a&gt;.&amp;nbsp;I suggest familarizing yourself with the new features by running this solution inside of SharpDevelop 3. You can of course write your own simple application that throws an exception. &lt;/p&gt;
&lt;p&gt;In the past, when an uncaught exception is thrown by an application being debugged by SharpDevelop, a simple form with a text are is displayed. The textarea contained information about the exception including the message and stacktrace. You then had the option to break, ignore or terminate. If you selected break, the debugger would pause at the point the exception was thrown. If the local stack frame happened to have an exception object referencing the exception being thrown, you could explore the exception. However, this was not always the case. Therefore one had to stick a redundant &amp;quot;catch (Exception ex) { throw; }&amp;quot; in their code to explore an exception. This is no longer the case thanks to several improvements in the debugger.&lt;/p&gt;
&lt;p&gt;The first thing you will notice is that the TextArea in the unhandled exception form displays more data and displays the exceptions InnerException property recursively.&amp;nbsp; The second thing you will notice is that you can now maxamize the form. Wha tis not immediatly apparent is that when you resize this form, its size and position is stored in your SharpDevelop settings. Therefore, next time you get an unhandled exception, the form will be the same size. &lt;/p&gt;
&lt;p&gt;Finally, you will notice a hyperlink labeled &amp;quot;Show Exception Details&amp;quot;. When you click on that a TreeViewAdv widget displays the exception details exactly as it would be displayed in the local variable pad. This gives you access to all the exception properties.&lt;/p&gt;
&lt;p&gt;If you select &amp;quot;Break&amp;quot; on the debugger window, and look at the local variable pad, you will notice that in addition to all the other variables, one called $exception exists. This is the exception that was thrown at this point in the application. This is illustrated below.&lt;/p&gt;
&lt;p&gt;&lt;img height="282" alt="LocalVarPad Unhandled Exception" src="http://community.sharpdevelop.net/blogs/justindearing/LocalVarPad%20Unhandled%20Exception.png" width="561" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;To illustrate the differences between the unhandled exception dialog in the SharpDevelop 2 and SharpDevelop 3 debuggers, below is a screenshow of them both displaying an unhandled exception.&lt;/p&gt;
&lt;p&gt;&lt;img height="863" alt="Debugger Exception Dialogs" src="http://community.sharpdevelop.net/blogs/justindearing/Debugger%20Exception%20Dialogs.png" width="800" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;I hope this small improvement will make debugging an application with SharpDevelop easier.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23165" width="1" height="1"&gt;</description></item><item><title>Opening Relevant Folders in Explorer</title><link>http://community.sharpdevelop.net/blogs/justindearing/archive/2008/08/23/opening-relevant-folders-in-explorer.aspx</link><pubDate>Sat, 23 Aug 2008 20:46:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23156</guid><dc:creator>zippy1981</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;These are a few small features the should help with common workflow senarios. The idea of an IDE is that one should not have to directly invoke the compilers or operating system services like a file manager. However, sometimes you just need to browse your source folders in internet explorer. Hence, I have added three new context menu items that launch new explorer windows.&lt;/p&gt;&lt;p&gt;Two of the new items are the same context menu item in different locations. If you right click on a source file in the project panel or a tab in the text editor, you get an option labeled &amp;quot;Open Containint Folder in Explorer.&amp;quot; Like the name suggests, selecting this menu item opens a new explorer window with the folder containing that source file. You can then manipulate these files from explorer as you see appropiate.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img src="http://community.sharpdevelop.net/blogs/justindearing/Open%20Containing%20Folder%20%28Project%20Panel%29.png" alt="Open Containing Folder (Project Panel)" align="" border="" height="492" hspace="" width="418" /&gt;&amp;nbsp; &lt;img src="http://community.sharpdevelop.net/blogs/justindearing/Open%20Containing%20Folder%20%28Text%20Exditor%29.png" alt="Open Containing Folder (Text Exditor)" align="" border="" height="317" hspace="" width="690" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/blogs/justindearing/IconBarMargin.cs%20Explorer%20Folder.png" alt="IconBarMargin.cs Explorer Folder" align="" border="" height="600" hspace="" width="800" /&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;The other feature is for projects. If you right click on a project in the project panel you get a menu item labeled &amp;quot;Open Output Folder&amp;quot;. This will open the folder where the projects compiled assemblies get placed. In most cases this is &amp;quot;bin\Release&amp;quot; or &amp;quot;bin\Debug&amp;quot; depending on the projects active build configuration.&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/blogs/justindearing/Open%20Output%20Folder%20%28Project%20Panel%29.png" alt="Open Output Folder (Project Panel).png" align="" border="" height="880" hspace="" width="456" /&gt;&amp;nbsp; &lt;img src="http://community.sharpdevelop.net/blogs/justindearing/SD3%20Destination%20Folder.png" alt="SD3 Destination Folder" align="" border="" height="600" hspace="" width="800" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;These features are simple, and by no means make SharpDevelop a &amp;quot;must have&amp;quot; IDE for anyone. However, it is overall attention to little details like this that make a good program a great program. &lt;br /&gt;&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23156" width="1" height="1"&gt;</description></item><item><title>Support for Readonly Solutions and Projects</title><link>http://community.sharpdevelop.net/blogs/justindearing/archive/2008/08/22/support-for-readonly-solutions-and-projects.aspx</link><pubDate>Fri, 22 Aug 2008 13:16:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23150</guid><dc:creator>zippy1981</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;One of the smaller new &amp;quot;features&amp;quot; of SharpDevelop 3 is improved readonly project and solution support. However small this feature is, it&amp;#39;s quite useful.&lt;/p&gt;
&lt;h3&gt;Why readonly project support?&lt;/h3&gt;
&lt;p&gt;The first question is why? Many developers might be asking themselves when they would ever encounter a project or solution file with the readonly attribute set. Well the most common scenario, or at least the scenario where I encounter this is when the project is controlled by Visual Source Safe.&lt;/p&gt;
&lt;p&gt;Visual SourceSafe, and version control software modeled after it, is designed around a model of one person checks out a file at a time and has exclusive access to it until they check it in. There is support for multiple checkouts, and merging, but these features are frowned upon by many SourceSafe users. To enforce this behavior on the client end, files in your sandbox that are not checked out are marked readonly. Visual Studio handles checking out files and marking them read-write when you attempt to edit them.&lt;/p&gt;

&lt;h3&gt;Ok, but if you use Visual SourceSafe, you probably also use Visual Studio!&lt;/h3&gt;

&lt;p&gt;This is probably true in the general case, and true in my specific case. My employer has us use Visual SourceSafe and Visual Studio. For the most part I use these tools to develop code for my employer. I&amp;#39;m not going to use another source control repository. Using a central repository is more important than than using one with a checkin/checkout model I agree with. However, sometimes I want to use a feature of SharpDevelop not available in Visual Studio. Or maybe I already have 2-3 copies of Visual Studio open and need to have a few more solutions open to browse through. SharpDevelop has a much smaller memory footprint than Visual Studio.&lt;/p&gt;

&lt;h3&gt;Ok so what does it look like already?&lt;/h3&gt;

&lt;p&gt;Well here is an example screenshot of readonly and non readonly projects in a readonly solution. Basically all that changed since SharpDevelop 2 is the IDE doesn&amp;#39;t try to save the *proj file or sln file. It also won&amp;#39;t let you do anything to modify the file. Finally, as illustrated, it lets you know the file is readonly in the project panel.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://community.sharpdevelop.net/blogs/justindearing/Readonly%20project%20screenshot.png" alt="SharpDevelop Readonly Project screenshots." align="left" border="0" height="499" hspace="" width="640" /&gt;&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23150" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/justindearing/archive/tags/SD3/default.aspx">SD3</category></item><item><title>StyleCop Addin</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/08/22/stylecop-addin.aspx</link><pubDate>Fri, 22 Aug 2008 07:03:13 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23148</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>This addin integrates Microsoft StyleCop into SharpDevelop. StyleCop only supports C#, and this addin has been tested against StyleCop 4.3 , earlier versions won&amp;#39;t work. Features Line highlighting of the warnings found Change StyleCop settings on a per-project basis, copying from a master file you can also configure Run as part of the normal build process or on-demand from the project menu So how do you run StyleCop? Simply from the context menu of the current C# project: This will result in...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/08/22/stylecop-addin.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23148" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Chris/default.aspx">Chris</category></item><item><title>Roadmap For SharpDevelop Reports</title><link>http://community.sharpdevelop.net/blogs/sharpdevelopreports/archive/2008/08/22/roadmap-for-sharpdevelop-reports.aspx</link><pubDate>Fri, 22 Aug 2008 06:22:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23146</guid><dc:creator>Peter Forstmeier</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;SharpDevelop Reports is currently only available from&amp;nbsp;our &lt;a class="" href="http://build.sharpdevelop.net/BuildArtefacts/"&gt;build server&lt;/a&gt;, it isn&amp;#39;t yet reverse integrated with SharpDevelop 3.0. This post&amp;nbsp;reports on its status&amp;nbsp;as of version 3.0.0.390.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Working Features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;The Report Designer is a real Windows Forms Designer&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Creating reports using *.XSD files&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;SharpQuery is back&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Coming Soon:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Create PushModel Reports&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Polish the Report Wizard&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;To Do (Planned Improvements):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;More exact printing in PDF&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;TableControl (list with calculated fields)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Parameters for user-defined values&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Calculated fields,&amp;nbsp;for example&amp;nbsp;&amp;nbsp; &amp;#39;={Fields[&amp;quot;aa&amp;quot;] * 1.19}&amp;#39;&amp;nbsp;&amp;nbsp;- translates to: multiply the value in field &amp;quot;aa&amp;quot; by 1.19 ( the German VAT)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Modify the ReportWizard to create reports from collections&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23146" width="1" height="1"&gt;</description></item><item><title>The Hex Editor</title><link>http://community.sharpdevelop.net/blogs/siegfried_pammer/archive/2008/08/21/The-Hex-Editor.aspx</link><pubDate>Thu, 21 Aug 2008 17:57:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23137</guid><dc:creator>siegi44</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Basically the UI of the hex editor is divided into two views. On the left side you can edit/input the parts of the bytes as hexadecimal figures. On the right side you can edit/input the data as ASCII characters:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_hex1.JPG" alt="The interface of the hex editor." width="774" border="0" height="505" /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;On the left-most side and on the top you see the offsets of the bytes you look at. You can switch the way the offsets are displayed by selecting either &amp;quot;hexadecimal&amp;quot;, &amp;quot;decimal&amp;quot; or &amp;quot;octal&amp;quot; in the toolbar above. The number of bytes displayed per line can be changed using the middle up-down-field.&lt;/p&gt;
&lt;p&gt;In the screenshot you can see that it is disabled, that&amp;#39;s because the button on the left is switched on. If it is switched on, the number of bytes displayed per line is calculated automatically to fit the current width of the editor&amp;#39;s window. When you resize the window, the number of bytes per line is adjusted automatically.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Editing data in the hex editor&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;You can either input data using the 0, 1, ..., 8, 9, A, ..., F keys on the left side or just change it on the right side like in a normal text editor. Text can be selected using the mouse with the left mouse button held down or using left shift and the arrow keys.&lt;/p&gt;
&lt;p&gt;Text can be copied, pasted and cut using Ctrl+C, Ctrl+V and Ctrl+X. Ctrl+A selects everything the editor.You can switch between the left and the right side without loosing the current selection or position using the TAB key. Using Ctrl+Up or Down arrow key you can scroll the view without moving the caret.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Customizing the hex editor &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the options dialog you can customize the standard behavior of the hex editor:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/blogs/siegfried_pammer/blogpost_hex2.JPG" alt="The options dialog." width="775" border="0" height="509" /&gt;&lt;/p&gt;
&lt;p&gt;You can simply change the font, style and/or color of the offsets or the data. It is recommended to use fixed-size fonts for best view (like Courier, Courier New). Furthermore you can force the editor use &amp;quot;automatic fitting of bytes per line&amp;quot; or set a standard view-mode and a standard number of bytes per line. You can tell SharpDevelop to open specific file-types with the hex editor using the last text-field.&lt;/p&gt;
&lt;p&gt;One important thing: You have to set ALL settings (even font, style and size and standard number of bytes per line) when you first open up the settings dialog, before this point there&amp;#39;s no settings-file and the hex editor uses it&amp;#39;s built-in standard settings, but when a settings file is created and there is no font selected, another standard font is used.&lt;/p&gt;
&lt;p&gt;I would be glad to receive tips for improvement and feature requests for the hex editor.&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23137" width="1" height="1"&gt;</description></item><item><title>IronPython 2.0 Beta Integration</title><link>http://community.sharpdevelop.net/blogs/mattward/archive/2008/08/20/IronPython2BetaIntegration.aspx</link><pubDate>Wed, 20 Aug 2008 20:27:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23125</guid><dc:creator>MattWard</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Support for 
    &lt;a href="http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=14353"&gt;IronPython 2.0 Beta 4&lt;/a&gt; is now available with SharpDevelop 3.&lt;/p&gt;&lt;h2&gt;Missing Features&lt;/h2&gt;&lt;p&gt;Some of the features have been disabled compared to the 
    &lt;a href="http://community.sharpdevelop.net/blogs/mattward/archive/2007/10/21/IronPythonIntegrationInSharpDevelop22.aspx"&gt;IronPython integration in SharpDevelop 2&lt;/a&gt;.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Forms designer&lt;/li&gt;&lt;li&gt;C# and VB.NET code conversion to Python&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Both of the above features involve converting code to and from a 
    Code DOM. Support for the Code DOM is reduced in IronPython 2 so 
    the above features have been temporarily disabled.&lt;/p&gt;&lt;h2&gt;Compiling&lt;/h2&gt;&lt;p&gt;IronPython 2.0 beta 4 re-introduced support for compiling python 
    code to a .NET executable or dll and so SharpDevelop supports this. 
    There is however one limitation. The working folder needs to be set 
    to the folder containing the compiled dll or executable otherwise 
    it will not be able to locate any local assembly references that 
    are not in the GAC, for example IronPython.dll.&lt;/p&gt;&lt;h2&gt;IronPython Console&lt;/h2&gt;&lt;p&gt;There&amp;#39;s now an IronPython console which can be used to type 
    in IronPython expressions and have them evaluated interactively. It 
    is currently missing code completion which will be implemented 
    shortly. From the &lt;b&gt;View&lt;/b&gt; menu select &lt;b&gt;Tools&lt;/b&gt; and then 
    &lt;b&gt;Python Console&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/mattward/images/original/IronPython2BetaConsole.aspx" alt="IronPython Console Window" /&gt;&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23125" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/mattward/archive/tags/Python/default.aspx">Python</category></item><item><title>Attach to Process</title><link>http://community.sharpdevelop.net/blogs/mattward/archive/2008/08/20/AttachToProcess.aspx</link><pubDate>Wed, 20 Aug 2008 20:16:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23124</guid><dc:creator>MattWard</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;SharpDevelop 3 supports attaching the debugger to a running 
    process. &lt;/p&gt;&lt;p&gt;From the &lt;b&gt;Debug&lt;/b&gt; menu select &lt;b&gt;Attach to Process&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/mattward/images/original/DebugAttachToProcessMenuItem.aspx" alt="Attach to Process menu item" /&gt;&lt;/p&gt;&lt;p&gt;The &lt;b&gt;Attach to Process&lt;/b&gt; dialog will show the managed 
    processes by default. Select the process and then either double 
    click or click the &lt;b&gt;Attach&lt;/b&gt; button to attach to the 
    process.&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/mattward/images/original/AttachToProcessDialog.aspx" alt="Attach to Process dialog" /&gt;&lt;/p&gt;&lt;p&gt;When you have finished debugging you can detach from the process 
    by selecting &lt;b&gt;Detach&lt;/b&gt; from the &lt;b&gt;Debug&lt;/b&gt; menu.&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/mattward/images/original/DebugDetachMenuItem.aspx" alt="Detach menu item" /&gt;&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23124" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/mattward/archive/tags/Debugger/default.aspx">Debugger</category></item><item><title>Which Version of SharpDevelop Supports Which Version of Subversion?</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/08/20/which-version-of-sharpdevelop-supports-which-version-of-subversion.aspx</link><pubDate>Wed, 20 Aug 2008 19:01:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23113</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>Because the question keeps coming up repeatedly in the forum, I want to repeat the most important pieces of advice from the last thread in this blog post. Firstly and most importantly: If you use SharpDevelop 2.x, you must use TortoiseSVN 1.4.x. If you use SharpDevelop 3.x, you must use TortoiseSVN 1.5.x. So why is this important? Well, Subversion 1.5 does change the working copy format, therefore older clients cannot read the working copy anymore. And why is this important to SharpDevelop? Daniel...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/08/20/which-version-of-sharpdevelop-supports-which-version-of-subversion.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23113" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Chris/default.aspx">Chris</category></item><item><title>ResourceToolkit Improvements</title><link>http://community.sharpdevelop.net/blogs/christianhornung/archive/2008/08/20/resourcetoolkit-improvements.aspx</link><pubDate>Wed, 20 Aug 2008 12:25:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23103</guid><dc:creator>Christian Hornung</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The ResourceToolkit addin has gained some small improvements which will be in SharpDevelop 3.0 Beta 2. &lt;/p&gt;&lt;p&gt;Since build 3252, it has been possible to &lt;b&gt;select the scope for the &amp;quot;Find missing resource keys&amp;quot; operation&lt;/b&gt;. You can see the choices in the following screenshot:&lt;/p&gt;&lt;p&gt;&lt;a href="http://community.sharpdevelop.net/photos/christianhornung/picture23100.aspx" target="_blank"&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/23100/original.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Clicking on one of the four possible scopes in the new submenu starts the operation. Especially developers who work on large projects benefit from this new feature because this operation used to run on the whole open solution always and that can take quite some time, by that I mean several minutes. Now it is possible to check only a single file, for instance, which will be much faster.&lt;/p&gt;&lt;p&gt;The results appear in the search results panel as usual:&lt;/p&gt;&lt;p&gt;&lt;a href="http://community.sharpdevelop.net/photos/christianhornung/picture23099.aspx" target="_blank"&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/23099/original.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Additonally, the ResourceToolkit now also supports detecting the calls to &lt;b&gt;ComponentResourceManager.ApplyResources&lt;/b&gt; which are generated by the Windows.Forms designer using the new property reflection localization model. This means that resources used by designed forms with the new model will no longer be incorrectly listed as unused.&lt;/p&gt;&lt;p&gt;Finally, I fixed some small bugs that could have caused a resource reference to be detected at positions where there is none.&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23103" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/christianhornung/archive/tags/ResourceToolkit/default.aspx">ResourceToolkit</category><category domain="http://community.sharpdevelop.net/blogs/christianhornung/archive/tags/Localization/default.aspx">Localization</category></item><item><title>TortoiseSVN Not Found on x64 Computers</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/08/19/tortoisesvn-not-found-on-x64-computers.aspx</link><pubDate>Tue, 19 Aug 2008 20:00:39 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23089</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>If you receive the following error message but have TortoiseSVN installed, then you have run into the following snag: SharpDevelop 3.0 is explicity marked as 32 Bit application, thus it cannot use the x64 version of TortoiseSVN. Solution: install TortoiseSVN 32 Bit. It can be used in parallel with the x64 version....(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/08/19/tortoisesvn-not-found-on-x64-computers.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23089" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Chris/default.aspx">Chris</category></item><item><title>SharpDevelop On a Memory Stick</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/08/16/sharpdevelop-on-a-memory-stick.aspx</link><pubDate>Sat, 16 Aug 2008 15:18:14 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:23061</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>Running SharpDevelop on USB thumb drives has been possible for a long time. What is new in version 3.0 though is that the settings that usually go into the user&amp;#39;s profile can live directly on the memory stick - allowing you to take your settings with you at all times. Here is the procedure: Download SharpDevelop 3.0 and perform a standard installation on Windows. By default the installation location (on an x64 machine) will be the following: Simply copy the 3.0 directory to your memory stick...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/08/16/sharpdevelop-on-a-memory-stick.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=23061" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Chris/default.aspx">Chris</category></item><item><title>New Windows Forms Designer Localization Model Available</title><link>http://community.sharpdevelop.net/blogs/christianhornung/archive/2008/07/31/new-windows-forms-designer-localization-model-available.aspx</link><pubDate>Thu, 31 Jul 2008 15:10:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:22880</guid><dc:creator>Christian Hornung</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;As of SharpDevelop 3.0 build 3273, support for a new localization model for the Windows.Forms designer is available.&lt;/p&gt;&lt;p&gt;The localization model can now be selected on a new options page:&lt;/p&gt;&lt;p&gt;&lt;a href="http://community.sharpdevelop.net/photos/christianhornung/picture22881.aspx" target="_blank"&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22881/original.aspx" border="0" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;The &amp;quot;property assignment&amp;quot; model has been the default in all earlier versions of SharpDevelop. When you look at the generated code for a localizable form, you can see it produces statements like this:&lt;/p&gt;&lt;p&gt;&lt;a href="http://community.sharpdevelop.net/photos/christianhornung/picture22882.aspx" target="_blank"&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22882/original.aspx" alt="" border="1" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;For many properties of each control on the form an assignment and a resource entry is generated. As stated in the .NET SDK documentation, this model scales very poorly as the number of properties increases, especially if a lot of properties are only set to their default values.&lt;/p&gt;&lt;p&gt;As of build 3273, SharpDevelop 3.0 now supports the &amp;quot;property reflection&amp;quot; model and also uses this one by default. It generates only a single line of code to apply the resource entries for each control:&lt;/p&gt;&lt;p&gt;&lt;a href="http://community.sharpdevelop.net/photos/christianhornung/picture22883.aspx" target="_blank"&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22883/original.aspx" border="1" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;The &lt;code&gt;resources.ApplyResources&lt;/code&gt; method uses reflection to apply all resource entries in the resource file to the corresponding properties of the control. While reflection tends to be slower at runtime, this model has the advantage that default values are not written to the resource file and thus need not be applied at runtime. So generally this model is considered faster, especially for large numbers of controls and properties with default values. Additionally, the generated resource files (and thus also the resulting assemblies) are usually smaller compared to the &amp;quot;property assignment&amp;quot; model.&lt;/p&gt;&lt;p&gt;The new localization model options page also has a check box to selected whether the localization model of existing forms should be left unchanged. If this box is checked, when loading a form the designer will try to find out the existing localization model by analyzing the code and use that one. Otherwise, all forms will be converted to the selected localization model as soon as they are modified and saved.&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=22880" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/christianhornung/archive/tags/Localization/default.aspx">Localization</category><category domain="http://community.sharpdevelop.net/blogs/christianhornung/archive/tags/Forms+designer/default.aspx">Forms designer</category></item><item><title>Reflector AddIn Released</title><link>http://community.sharpdevelop.net/blogs/christianhornung/archive/2008/07/27/reflector-addin-released.aspx</link><pubDate>Sun, 27 Jul 2008 09:39:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:22808</guid><dc:creator>Christian Hornung</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;The new Reflector AddIn for SharpDevelop has been released. It has been integrated into the SharpDevelop 3.0 tree in build 3249 and it is also available for download for SharpDevelop 2.2.1.&lt;/p&gt;&lt;p&gt;The Reflector AddIn provides the ability to open &lt;a href="http://www.aisto.com/roeder/dotnet/" target="_blank"&gt;Lutz Roeder&amp;#39;s free .NET Reflector&lt;/a&gt; directly from the source code editor and position it on the selected code element.&lt;/p&gt;&lt;p&gt;For those who do not already know Reflector, it is an excellent .NET assembly browser and also a disassembler and decompiler for various .NET languages. It really comes in handy when you are working with a poorly documented library, for instance.&lt;/p&gt;&lt;h2&gt;Decompilation example&lt;/h2&gt;&lt;p&gt;I recently wanted to make use of the &lt;a href="http://sharpsvn.open.collab.net/" target="_blank"&gt;SharpSvn library&lt;/a&gt; which is essentially a managed wrapper for the &lt;a href="http://subversion.tigris.org/" target="_blank"&gt;Subversion&lt;/a&gt; client API. During development I came across the following situation:&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22809/original.aspx" align="" border="1" hspace="0" alt="" /&gt;&lt;/p&gt;&lt;p&gt;Now there is obviously no documentation available for the GetStatus method, and I do not want to go and download the whole source code either. But I would like to know whether the &amp;quot;statuses&amp;quot; collection can be null when that method returns. So what can we do? Open Reflector. The Reflector AddIn provides that command in the refactoring context menu:&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22810/original.aspx" align="" border="1" hspace="0" alt="" /&gt;&lt;/p&gt;&lt;p&gt;When you select that command, Reflector will be started up automatically if it is not running. Then Reflector will load the required assembly and directly go to the selected method (of course this is also supported for classes and other types of class members):&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22811/original.aspx" border="0" alt="" /&gt;&lt;/p&gt;&lt;p&gt;Now we want to see the code. Press space bar (or select &amp;quot;Disassemble&amp;quot; from the &amp;quot;Tools&amp;quot; menu). There it is:&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22812/original.aspx" border="0" alt="" /&gt;&lt;/p&gt;&lt;p&gt;Now we can see that the &amp;quot;items&amp;quot; variable is always initialised and assigned to the out parameter in question within the finally block. This means that we will never get a null value.&lt;/p&gt;&lt;p&gt;Of course you can also use the combo box at the top where it says &amp;quot;C#&amp;quot; in the screenshot to change the output to your favourite .NET language. Reflector currently supports C#, VB.NET, Delphi, Managed C++ , Chrome and raw IL out of the box.&lt;/p&gt;&lt;p&gt;The &amp;quot;Open .NET Reflector&amp;quot; command is also available through the class and class member bookmarks on the left margin of the source code editor and also through the context menu in the class browser of SharpDevelop:&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22813/original.aspx" border="0" alt="" /&gt;&lt;/p&gt;&lt;h2&gt;First-time configuration&lt;/h2&gt;&lt;p&gt;When you use the Reflector AddIn for the first time, you have to tell it where to find Reflector. For this purpose, the following dialog will pop up:&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22814/original.aspx" border="0" alt="" /&gt;&lt;/p&gt;&lt;p&gt;There you can also find the download link for Reflector in case you do not have it already. Then you have to click the Browse button and locate Reflector.exe.&lt;/p&gt;&lt;p&gt;As soon as you click OK, the location is saved. This dialog will automatically reappear if the add-in can no longer find Reflector.exe at the saved location.&lt;/p&gt;&lt;p&gt;Please note that SharpDevelop must have write access to the directory containing Reflector.exe because it has to copy some files there and modify the configuration of Reflector to load them automatically on startup. This is needed so that Reflector exposes a remoting service which SharpDevelop can connect to.&lt;/p&gt;&lt;h2&gt;More Reflector functionality&lt;/h2&gt;&lt;p&gt;Reflector can also list all the callers of a method, property etc. and all code elements that are in use by a certain member. This function is available through &amp;quot;Tools&amp;quot; -&amp;gt; &amp;quot;Analyze&amp;quot;:&lt;/p&gt;&lt;p&gt;&lt;img src="http://community.sharpdevelop.net/photos/christianhornung/images/22815/original.aspx" border="0" alt="" /&gt;&lt;/p&gt;&lt;p&gt;Reflector itself also has &lt;b&gt;its own add-in architecture&lt;/b&gt; and &lt;a href="http://www.codeplex.com/reflectoraddins" target="_blank"&gt;a great variety of add-ins is available&lt;/a&gt;. For example, there are add-ins which can draw class diagrams, sequence diagrams or dependency graphs. &lt;/p&gt;&lt;h2&gt;Download for SharpDevelop 2.2.1&lt;/h2&gt;&lt;p&gt;The Reflector AddIn for SharpDevelop 2.2.1 is available for download on my web site:&lt;br /&gt;&lt;a href="http://dev.hornung.dynalias.com/reflector-addin-for-sharpdevelop/download.html" target="_blank"&gt;http://dev.hornung.dynalias.com/reflector-addin-for-sharpdevelop/download.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=22808" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/christianhornung/archive/tags/AddIn/default.aspx">AddIn</category><category domain="http://community.sharpdevelop.net/blogs/christianhornung/archive/tags/Reflector/default.aspx">Reflector</category></item><item><title>Help wanted</title><link>http://community.sharpdevelop.net/blogs/johnreilly/archive/2008/06/22/help-wanted.aspx</link><pubDate>Sat, 21 Jun 2008 19:47:00 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:22365</guid><dc:creator>JohnReilly</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;I am unable to do much with the library any more.&amp;nbsp; If there are keen people out there then they are invited to take over maintenance.&lt;/p&gt;&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=22365" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/johnreilly/archive/tags/SharpZipLib/default.aspx">SharpZipLib</category></item><item><title>Implicit lambda parameter type inference</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/04/01/implicit-lambda-parameter-type-inference.aspx</link><pubDate>Tue, 01 Apr 2008 07:13:48 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:21538</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>Starting with version 3.0.0.3010, the C# code completion in SharpDevelop has support for implicitly typed lambda expressions. Given a variable &amp;quot;IEnumerable&amp;lt;MyClass&amp;gt; items&amp;quot; and the &amp;quot;Select&amp;quot; extension method from LINQ, typing &amp;quot;items.Select(i =&amp;gt; i.&amp;quot; now shows the members of MyClass. And if the result of the Select call is assigned to an implicitly typed variable, SharpDevelop is now able to infer that the variable has the type IEnumerable&amp;lt;return type of the...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/04/01/implicit-lambda-parameter-type-inference.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=21538" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Daniel/default.aspx">Daniel</category></item><item><title>SharpDevelop Now on CodePlex Too</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/03/04/sharpdevelop-now-on-codeplex-too.aspx</link><pubDate>Tue, 04 Mar 2008 11:42:29 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:21146</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>In addition to our presence on SourceForge ( project page ) we now also set up shop at CodePlex ( project page ). The motivation for this step is to increase awareness about SharpDevelop, and how parts of SharpDevelop can be reused in other applications / scenarios....(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/03/04/sharpdevelop-now-on-codeplex-too.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=21146" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Chris/default.aspx">Chris</category></item><item><title>IClass Immutability</title><link>http://community.sharpdevelop.net/blogs/laputa/archive/2008/01/27/iclass-immutability.aspx</link><pubDate>Sat, 26 Jan 2008 23:30:59 GMT</pubDate><guid isPermaLink="false">1b90d1c1-04e6-45b0-b51d-b665527d49b9:20672</guid><dc:creator>Laputa</dc:creator><slash:comments>0</slash:comments><description>In SharpDevelop 1.1, the IClass interface had a property that was used in several places in the code: Once added to a project content, it was immutable . This was not enforced, not even documented. It just happened that no one changed IClass objects except for the code constructing them. After being added to a project content, a class could be removed or replaced by a new version, but if some code still held a reference to an old instance, it could safely access the members without worrying that...(&lt;a href="http://community.sharpdevelop.net/blogs/laputa/archive/2008/01/27/iclass-immutability.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://community.sharpdevelop.net/aggbug.aspx?PostID=20672" width="1" height="1"&gt;</description><category domain="http://community.sharpdevelop.net/blogs/laputa/archive/tags/Daniel/default.aspx">Daniel</category></item></channel></rss>