The #develop teamblog
#  Friday, April 03, 2009

In SharpDevelop, I changed our Subversion integration to use SharpSVN instead of SvnDotNet.

SharpSVN exposes more Subversion APIs to managed code, which could result in some nice features in the (far) future - for example, "SVN Diff" right inside the text editor.

But the main reason for the upgrade was that SharpSVN supports Subversion 1.6. If you are using TortoiseSVN 1.6, you need to update to SharpDevelop 3.1. The old SvnDotNet does not work with new working copies.

However, the same is true in the other direction: if you use SharpDevelop 3.1, you must update to TortoiseSVN 1.6. No matter which .NET wrapper or client version is accessing a repository, the underlying Subversion library has the unpleasant feature to automatically upgrade working copies. As soon as the Subversion 1.6 library inside SharpDevelop touches your working copy, Subversion 1.5 clients will no longer be able to access it.

You need to update all Subversion clients on your machine at the same time. SharpDevelop contains a Subversion client:

  • SharpDevelop 3.0 comes with Subversion 1.5 and requires TortoiseSVN 1.5.
  • SharpDevelop 3.1 (starting with revision 3948) comes with Subversion 1.6 and requires TortoiseSVN 1.6.

This entry in the Subversion FAQ describes the problem and offers a working copy downgrade script, in case you decide to go back to a previous SVN client version.

Categories: Daniel
Friday, April 03, 2009 9:20:24 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0]


#  Tuesday, March 24, 2009

David wrote a blog post on our participation in the GSoC 2009. It refers to the GSoC 2009 Wiki entry where the mentors have posted a few ideas (yes, we actively encourage students to come up with their own!). As I am the program manager, I am not active as a mentor, but I sure do have an opinion... here are my top five projects when it comes to "visibility" (a feature that will be used by a large percentage of our user base):

  1. The database scout / database api / EDM designer (we already have a student lined up for this)
  2. Debugger improvements (visualizers, edit and continue support, ...)
  3. VB.NET 9 support on par with our existing C# 3.0 support (most likely a task for a CS student)
  4. Refactoring support (think ReSharper)
  5. Customizable keyboard shortcuts / toolbars

I took "Everything .NET 4.0" from my top five because Beta 1 of Framework 4.0 most likely won't hit the streets before the student application deadline. And I will post further ideas in David's blog post, so you might find something palatable there too.

Categories: Chris
Tuesday, March 24, 2009 1:42:01 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]


#  Tuesday, February 10, 2009

Another major release of SharpDevelop finally hits the streets - version 3.0 has been completed yesterday and is available for download as of now! Go get it

Categories: Chris
Tuesday, February 10, 2009 8:48:17 AM (GMT Standard Time, UTC+00:00)  #    Comments [2]


#  Sunday, December 14, 2008

On December 5th (revision 3655), we removed the WPF designer from SharpDevelop 3.0. The decision to remove this feature had its origins in an internal discussion between Daniel, Ivan and myself after watching the PDC 2008 session Microsoft .NET Framework: Declarative Programming Using XAML. There, System.Xaml.dll was announced - a parser for the full Xaml standard.

Back then, a preview was announced for November, but that has been pushed back - please see the System.XAML CTP blog post by Rob Relyea. Therefore we had to take the decision whether to use System.Xaml.dll without doing a prototype, but we opted for saving ourselves the chore of having to keep abreast with future XAML changes by sticking with a standard parser instead of having to maintain our own.

Because System.Xaml.dll is part of .NET Framework 4.0, we had to remove the WPF designer feature from SharpDevelop 3.0.

Categories: Chris
Sunday, December 14, 2008 7:17:46 PM (GMT Standard Time, UTC+00:00)  #    Comments [3]


#  Saturday, December 06, 2008

In version, I changed how NRefactory's TypeReference.Type works. This is a potentially breaking change to users of NRefactory.

Previously, TypeReference had both a "Type" and a "SystemType". If you parsed "long a;", you got a TypeReference with Type="long" and SystemType="System.Int64".

However, this got a little problematic if you wanted to modify the AST - do you have to change both Type and SystemType? Actually, setting Type to "int" was automatically setting SystemType to "System.Int32" - even if you were modifying VB code which doesn't have the "int" keyword but uses "Integer". The other way round, setting Type to "DATE" would set SystemType to "System.DateTime" - not only for VB, but also for C#. Because the parser internally also uses the Type setter, "DATE d;" would parse to "System.DateTime d;" in C#!

To solve this, I removed the language-specific "Type". Now the Type property always contains the SystemType. You can use the new boolean IsKeyword property to tell if the type was specified using the language keyword or if the CLR type was specified explicitly.

Another related problem was that there was no way to output "System.Int32 a;" using NRefactory - the output visitor would always automatically convert it to "int a;". I changed this, too - now the output visitors will use the short form only if the IsKeyword property is set. So code generators using NRefactory will output the long form when using the new NRefactory version unless they are modified to set IsKeyword=true.

Categories: Daniel
Saturday, December 06, 2008 6:49:41 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]


#  Saturday, September 06, 2008

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'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 messages, you can simply add a new xml file to your project with content like this:

<?xml version="1.0"?>
<!-- add words specific to your application here -->
<!-- Disable Lineup as a single word - LineUp is the spelling used in WPF -->
<!-- Use this section to deprecate terms -->
<Term PreferredAlternate="Best">Bestest</Term>
<!-- Use this section to tell FxCop the correct casing of acronyms. -->

And then set the file's build action to "CodeAnalysisDictionary" (this build action does not appear in the drop down, you'll have to type it in).

Categories: Daniel
Saturday, September 06, 2008 6:32:29 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0]


#  Friday, September 05, 2008

More than one year ago, I added the XAML language binding to SharpDevelop 3.0, showing tooltips in .xaml files and enabling refactoring. ("XAML and WPF support in SharpDevelop 3.0")

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:

Categories: Daniel
Friday, September 05, 2008 12:04:00 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0]


#  Thursday, September 04, 2008

In case anyone gets a wrong idea, take a close look at the title bar - it has the word "experimental" in it:

The reverse integration of the WPF branch is the first step in the direction of "more WPF" 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 are plans for at least 3.1 and 3.2. We know a lot of people are using our workbench, our text editor and various other parts in their applications - and we are definitely going to be supporting you in the future!

Categories: Chris
Thursday, September 04, 2008 6:57:06 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0]


#  Monday, September 01, 2008

Our Wiki has a guideline on joining the team which outlines the process of submitting code to the project. As part of this year's #develop developer days (#d^3) we decided on a change to the guideline:

It is now possible to contribute "any-size" 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 "accidential contributor" (ie someone who stumbled across a bug and dabbled with our code to fix it) to get her or his changes into our codebase without going through the "hassle" of having to sign & send the JCA. This should lower the barrier to contributing to our project.

If you want to work on a larger feature, we still want you to send us a JCA - the simple reason being in it's name: it is a joint copyright assignment, making you and the project owners to the copyright, allowing you and the project to work with the code in any way desired. For more details on "Why the JCA" please see the guideline.

Categories: Chris
Monday, September 01, 2008 6:12:32 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0]


#  Friday, August 22, 2008

This addin integrates Microsoft StyleCop into SharpDevelop. StyleCop only supports C#, and this addin has been tested against StyleCop 4.3, earlier versions won't work.


  • 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 an error (given that you haven't installed StyleCop yet):

Therefore please download the latest version of StyleCop and install it. Note that you must install the MSBuild integration:

Once installed, you have to tell SharpDevelop where to find it. This is done in the Tools / Options dialog:

Click on "Find StyleCop path" and go to the MSBuild directory:

Now SharpDevelop knows how to find StyleCop, all you have to do is re-run the StyleCop inspection of your project. In my sample project this results in quite a few warnings:

As you might not go d'accord with the default style checks, you can manipulate the StyleCop settings right from your current C# project:

Those rules are documented in StyleCop.

Categories: Chris
Friday, August 22, 2008 8:03:13 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0]


© Copyright 2014 SharpDevelop Core Team

Subscribe to this weblog's RSS feed with SharpReader, Radio Userland, NewsGator or any other aggregator listening on port 5335 by clicking this button.   RSS 2.0|Atom 1.0  Send mail to the author(s)


Copyright ©2000-2009 IC#Code. All rights reserved. Projects sponsored by AlphaSierraPapa.