 |
 |
Thursday, May 14, 2009 |
It is finally available
The really newsworthy feature is the profiler - it has been in the works for over a year, and it is the first full-fledged open source profiler for .NET. Siegfried would love to hear your feedback in the forums, especially which features should be next in the pipeline.
 |
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):
- The database scout / database api / EDM designer (we already have a student lined up for this)
- Debugger improvements (visualizers, edit and continue support, ...)
- VB.NET 9 support on par with our existing C# 3.0 support (most likely a task for a CS student)
- Refactoring support (think ReSharper)
- 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.
 |
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
 |
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.
 |
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!
 |
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.
 |
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.
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 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.
 |
Wednesday, August 20, 2008 |
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 continues to explain:
SharpDevelop uses its own copy of the Subversion library for marking files as added/removed/etc. This can upgrade the working copy to the 1.5 format.
However, SharpDevelop does not have it's own commit dialog - we simply start TortoiseSVN.
So there are two Subversion libraries used by SharpDevelop: the one we ship for local operations, and the one shipped with TortoiseSVN for commit etc. Because the Subversion 1.4 library cannot read working copies touched by the 1.5 library, you run into this kind of problem when either TortoiseSVN or SharpDevelop is too old.
To sum up: SharpDevelop 2.x ships with libraries that are compatible with Subversion 1.4 and requires TortoiseSVN 1.4 for UI. Whereas version 3.0 of SharpDevelop ships with (different) libraries that are compatible with Subversion 1.5 and requires TortoiseSVN 1.5 for UI.
So will there be an upgrade for SharpDevelop 2.x to support Subversion 1.5? This was a hotly debated issue, however, in the end it boiled down to the following question: do we want to ship two almost identical versions of SharpDevelop 2.2 that only differ in the version of the included Subversion library (because we would have to support both camps)? As that would create quite a bit of confusion, we decided to leave 2.2 as is and support Subversion 1.5 only in SharpDevelop 3.0.
 |
Tuesday, August 19, 2008 |
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.
 |
Saturday, August 16, 2008 |
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'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, and then open the \bin directory there:

There, you have to open SharpDevelop.exe.config - and search for the appSettings section which by default looks like this:
<appSettings> <!-- Use this configuration setting to store settings in a directory relative to the location of SharpDevelop.exe instead of the user's profile directory. --> <!-- <add key="settingsPath" value="..\Settings" /> --> <!-- Use this setting to specify a different path for the code completion cache. The cache contains information about referenced assemblies to speed up loading the information on future SharpDevelop starts. --> <!-- <add key="domPersistencePath" value="..\DomCache" /> --> <!-- Use this setting to disable the code completion cache. Code completion will still be available, but take longer to load and use more RAM. --> <!-- <add key="domPersistencePath" value="none" /> --> </appSettings>
The comments tell you what to do, basically uncomment settingsPath and domPersistencePath:
<add key="settingsPath" value="..\Settings" /> <add key="domPersistencePath" value="..\DomCache" />
Save the file and you, SharpDevelop and your settings are ready to go. Note that once started the two directories show up in the directory tree:

 |
Tuesday, March 04, 2008 |
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.
 |
Wednesday, January 23, 2008 |
A change that happened rather early in the development process of SharpDevelop 3.0 (revision 2658, 8/13/2007) was that we replaced NDoc (a stalled open source project) with Sandcastle Help File Builder (SHFB). SHFB looks and feels similar to NDoc, however, it builds on top of Sandcastle, a documentation generation tool by Microsoft.
Our build server (revision 2913 and higher) contains SHFB 1.6.0.4, which itself builds on top of the January 2008 release of Sandcastle (both are at the moment the latest releases of their respective projects). SharpDevelop 3.0 setup ships with SHFB, however, Sandcastle itself does not and must be installed separately! (this might change in the future once the final license of Sandcastle is known)
Because of the regular releases of Sandcastle and SHFB, the distribution of SharpDevelop 3.0 might ship with older versions of SHFB than currently available for download. Thanks to Eric Woodruff, the maintainer of SHFB, this is not a big deal - he is offering a download specific for SharpDevelop:

All you have to do is first delete the contents of the following installation directory (including subdirectories):

Then simply unzip the SHFB distribution archive into this folder and presto - you are now using the latest version of SHFB from inside SharpDevelop!
 |
Tuesday, January 15, 2008 |
This question came up for example in the thread SharpDev 2.2.x on BuilderServer (this thread was started because we ceased to automatically build v2.2 on 1/11/2008).
The answer is Yes. Development of SharpDevelop 2.2 stopped with revision 2675 (8/28/2007), which is three revisions higher than the officially shipping version of SharpDevelop 2.2 (Download, 8/8/2007). The three non-shipping commits are:
- 2673: Improved CSharpCodeCompletion sample: add tool tip support, show only one entry for overloaded methods
- 2674: Fixed some off-by-one bugs in the CSharpCodeCompletion example (caused by the different line counting in the parser and the text editor).
- 2675: CSharpCodeCompletionSample: show xml documentation
All three were (of course) merged into Montferrer (SharpDevelop 3.0), this merge happened in revision 2679. However, those commits did not merit a release of a new setup because those were all changes to a sample shipping only in the source download.
Since releasing v2.2.1 all work stopped on the 2.x series of SharpDevelop. Our efforts went (and still go) into SharpDevelop 3.
 |
Friday, January 11, 2008 |
In continuing to list changes to SharpDevelop 3, we are going to talk about the code coverage addin in SharpDevelop 3 "Montferrer" in this blog post.
Previously, the addin used NCover for calculating code coverage (this is a metric you gain by writing unit tests). However, recently NCover was turned into a commercial product. Because we only include / support tools that are free to use for anyone (commercial or open source / hobby development), we switched to a different tool - PartCover.
This change happened in rev 2744 on 19th of November last year. The addin has retained its original functionality, however, for end users there is an important change: you no longer need to download and install a separate package (as it was the case with NCover), PartCover is part of the SharpDevelop setup. You are good to go right after installation!
 |
Thursday, January 10, 2008 |
An issue that initially came up in 2006 (Unable to compile #develop: access denied) "resurfaced" on our contributors mailing list because one of our developers ran into this very problem that McAfee blocks access to our Main\StartUp folder:

The problem and a workaround is described in McAfee VirusScan and the Startup folder. However, this developer doesn't have the administrative rights to change this setting of McAfee, so he asked whether we are going to rename the folder.
My take on this issue is that this is a bug in McAfee's software, because willy-nilly disabling anything that resides in a random folder called StartUp isn't a security feature.
 |
Wednesday, January 02, 2008 |
Over the past months we made a couple of feature changes in SharpDevelop 3 (currently alpha status). One major change is that we moved NAnt and Mono support from the binary distribution (aka "setup") to the source code distribution. You can find the addins ready to build in the \samples directory:

What was the reasoning behind this decision? For NAnt, we had taken this decision a long time ago because SharpDevelop itself no longer uses NAnt as the primary build solution, and as such, the addin wasn't actively enhanced and tested. But it still is a great tool as well as a good sample for building addins with SharpDevelop.
The decision to "relegate" Mono from production to sample status has been based on multiple factors. For one, we only support basic compilation for Mono, no debugger nor any kind of visual designers (like GTK#). We got lots of support questions regarding these, and the honest answer had to be "we won't support that, sorry". Then in December Miguel announced that MonoDevelop will come to Windows (MonoDevelop is a fork of SharpDevelop), which meant that an IDE would come to Windows that fully supports all the things in Mono we don't have.
That's why we decided to make Mono an addin for people who know how to deal with source code, all the features are still there. And now that it is separate, it also makes a great sample addin because of the deepness of integration with low-level features of SharpDevelop.
To sum it up - we didn't remove anything, we just trimmed the setup to include features that are targeted at the Microsoft .NET platform.
 |
Wednesday, October 24, 2007 |
Daniel is currently working on areas such as project subsystem or code completion (aside from fixing bugs). Therefore, work on the WPF designer is stalled. But Daniel put together a list of tasks (hard, medium & easy) that you could be helping us with. So if you are interested in helping, and want to be part of writing an open source WPF designer, please do get in touch with me at christophw at icsharcode.net!
WPF Designer mini tasks
Here are some jobs to do on the WPF Designer broken into small parts.
Apart from this list, there are also big jobs to do: Data Binding support, support using Styles, support defining resources.
Components to be used by multiple designer parts
Create “Choose Class” dialog
The data binding UI will need a dialog that allows choosing a class from the referenced assemblies. This will be implemented in WpfDesigner.AddIn and made available to WpfDesign.Designer through a service. The referenced assemblies should be inspected using ICSharpCode.SharpDevelop.Dom
This will be used by the “Content” property editor and by the data binding UI.
Support ‘Virtual Design Root Element’
This means that instead of displaying the designed component, the designer is able to display another component as if it was the root component. The designer should provide a “Back” button on the design surface to allow the user to go back to the real root component.
This feature is required for designing elements that cannot be designed directly on the main design surface, e.g. Tooltips
Write menu designer
Priority: High
The menu designer might be a dialog box that allows editing the menu in a tree view; or it might be an in-place menu designer like the Windows.Forms designer.
Property editing support
Here I’m listing properties that could need improved editing support.
When implementing property editors, take care that the editor should also work when multiple components with different property values are selected, so you always need a way to represent the ‘ambiguous’ value.
Properties of type Brush (e.g. Control.Background / Control.BorderBrush)
Priority: High
Change ICSharpCode.WpfDesign.Designer.Controls.TypeEditors.BrushEditor to include a little drop down button, the drop down should allow to choose the brush type (SolidColorBrush, etc., we don't need to support all of them at the beginning) and allow the user to edit the brush according to the chosen type.
Properties of type BitmapEffect / BitmapEffectInput (e.g. UIElement.BitmapEffect / UIElement.BitmapEffectInput)
Priority: Low
Implement a TypeEditor (similar to BrushEditor) for the types BitmapEffect and BitmapEffectInput. Could be as simple as a combo box with the most commonly used effects.
Properties of type ICommand (e.g. ButtonBase.Command)
Priority: Medium
There should be a way to choose the command to use from some kind of list.
ContentControl.Content
Priority: High
ICSharpCode.WpfDesign.Designer.Controls.TypeEditors.ContentEditor The “C” button should be made a drop down button (like the one used for the Brush editor), it should present “null”, “string”, and menu items for creating commonly used child configurations (e.g. StackPanel with Image and Text when the parent is a button), and “choose class” to create arbitrary objects. This depends on “Create Choose Class Dialog”.
Properties of type ContextMenu (e.g. FrameworkElement.ContextMenu)
Priority: Medium
Provide a way to create and edit a context menu inside the designer.
Properties of type InputScope
Priority: Low
Research what an InputScope is and if/how we should allow the user to edit it.
Properties of type Transform
Priority: Low
Similar to the BrushEditor, provide a drop down to choose from the different available transforms and allow editing the transform properties.
FrameworkElement.ToolTip
Priority: Medium (setting string tool tips), Low (designing complex tool tips)
Should be editable similar to ContentControl.Content, but has to allow the user to design complex tooltips. Depends on “Support ‘Virtual Design Root Element’”
Properties of type FontStretch / FontStyle / FontWeight
Priority: Low
Provide a drop down with the available settings
Properties of type FontFamily
Priority: Low
Use a dialog to allow the user to choose the font to use.
Properties of type Nullable<bool> (e.g. ToggleButton.IsChecked)
Priority: Low
ItemsControl.ItemsSource
Priority: Low
There are two main usage scenarios: this property is specified using data binding (this doesn’t need to be handled by the type editor), or there are some hard coded values.
Write a type editor to support entering string values.
Label.Target
Priority: Low
Label.Target is set to the control described by the label (the control getting focus when Alt+Access Key is pressed). This is done using data binding, but choosing the target from the data binding dialog is too tedious – drag’n’drop of a crosshair on the target control would be much easier. Depends on data binding support.
Properties of type ImageSource (e.g. Image.Source)
Priority: High
Allow choosing a “Resource” element already part of the project, or choose a file and it will get added to the project. This TypeEditor would be implemented in WpfDesign.AddIn and not WpfDesign.Designer because it needs access to the project in SharpDevelop
Properties of type ViewBase (e.g. ListView.View)
Priority: Low
Provide a drop down with the most commonly used views.
 |
Sunday, August 26, 2007 |
Today I retired the initial Wiki (which only remained online for the book errata; we are now actually at Wiki #3), as well as the initial forum. Both resources [/heyhey/wiki/ and /opensource/sd/forums/] were available read-only anyways. The old URLs now redirect to our new and active installations.
The main reason for the complete removal is security. Both were old, unmaintained ASP solutions.
 |
Thursday, August 09, 2007 |
A small but highly visible bug went unnoticed for the official 2.2.1 release: When creating a new project, ${USER} ${DATE} in the standard header etc. was not replaced with values. Thus we decided to release an 2.2.1a version that contains a fix for this templates-related issue.
 |
Wednesday, August 08, 2007 |
Today, we released SharpDevelop 2.2.1. This is a bug fix release with two updated external software packages: NUnit 2.4.2 and SharpDevelop Reports 2.2.0.235. It is recommend that you upgrade to this point release.
 |
Wednesday, June 13, 2007 |
 |
Thursday, May 24, 2007 |
Another new addition to our Web offerings: the online code formatter. It is based on the syntax highlighter of SharpDevelop's text editor, and thus supports quite a few formats out of the box: SP/XHTML, BAT, Boo, Coco, C++.NET, C#, HTML, Java, JavaScript, Patch, PHP, TeX, VBNET, XML. In addition the Web form, I also added a Web service that can be used in your application to perform code conversion, a sample is available.
Noteworthy: the Web offerings are built upon the sample you can find in the source download (revisions 2522 upwards) - \Samples\HtmlSyntaxColorizer.
Our online code converter has been extended with the SnippetParser that Daniel wrote about on this blog. Now you can convert entire classes, or just code snippets. Please note that snippet conversion is only available for C# and VB.NET.
 |
Monday, April 02, 2007 |
Last weekend, we held a #develop developer days (#d^3) meeting in Karlsruhe. There were five us that managed to free up the Easter schedule: Daniel (lead developer SharpDevelop), Dickon (data tools SharpDevelop), Peter (lead developer SharpDevelop Reports), Alex (PM SharpDevelop Reports) and myself (PM SharpDevelop). As you can guess, our focus was on data(base) support inside SharpDevelop.
Dickon gave us a tour of the database tools as they exist today - to get everyone on the same page as to where we stand (code-wise) and where Dickon wants to take the feature:

That of course ended in a whiteboarding session by Dickon (left), Daniel (right) and me:

The lowdown: a name change, restructuring and the decision to drop the current implementation of the db tools from the 2.x branch. After all, we have a couple of consumers (like SharpDevelop Reports) for the data tools in 3.0.
Daniel presented two things - first, the state of affairs with regards to our XAML designer:

This presentation then commenced with LINQ features already present in SharpDevelop 3.0 "Montferrer" today:

Peter & Daniel spent a considerable amount of time ripping out the load / save engine from SharpDevelop Reports, replacing it with a much cleaner and faster one - that, however, means that existing files (v2.1) are no longer compatible with the next version (v2.2 due in June).
Otherwise of note is that all five of us were using Windows Vista on their laptops (I suppose MS would rejoice if the majority of the user base would be that keen to work on Vista!), and that as always we visited a couple of nice restaurants (Brauhaus Moninger and Kanya's [sites in German])
 |
Wednesday, March 07, 2007 |
After 13 months in development, we are proud to release v2.1 (detailed announcement). This release contains a lot of features we consider essential for writing quality code, such as code analysis. A list of what's new was compiled by Matt, who is also maintaining our feature tour.
Stepping out of SharpDevelop's shadow is SharpDevelop Reports, which is the reporting solution formerly known as SharpReport. A lot of feature work lies ahead (roadmap details), so look forward to a full-featured open source .NET reporting solution!

 |
Friday, February 09, 2007 |
 |
Saturday, December 23, 2006 |
More information here. The release was originally scheduled for a week earlier, however, bug fixing took us a little longer so we decided to slip.
 |
Friday, December 01, 2006 |
Our build automation system has changed: up until yesterday, we were using CruiseControl.NET to kick off an NAnt script to run our daily build. Now we are using MSBuild end-to-end in our build system, with a much cleaner architecture than before:
- CruiseControl.NET kicks off the build by checking out the latest changes. The build is triggered either based on time (for the daily builds) or on check in (continuous integration).
- After check out, CruiseControl.NET hands over to KickStart.proj, which we wrote and placed in the root of our CC.NET installation. This MSBuild script sets a couple of properties, and then delegates further work to
- Automated.proj. This MSBuild script is part of the checked out project that is to be built. It does all the heavy lifting, like build, unit tests or setup creation.
The obvious advantage of this setup: the build server doesn't know a thing about what the project needs (tools, libraries, you name it) to be built properly. Thus we are now doing our daily SharpDevelop builds, our CI SharpDevelop builds as well as SharpReport daily builds using one standardised setup. It took us a while to get into gear (old habits die hard, and why change a running system), but it is now fully operational.
Bootnote You can find all of our scripts in the repository. However, you need to check out trunk/SharpDevelopBuildServer instead of trunk/SharpDevelop.
 |
Wednesday, November 22, 2006 |
Yesterday, we set up an anonymous Subversion mirror for the SharpDevelop repository. Instructions on how to use it can be found here:
http://wiki.sharpdevelop.net/default.aspx/SharpDevelop.UsingTheRepository
It replicates from the development repository every six hours starting at 3:15AM CET. Please note that we might remove anonymous access to the development repository in the future, so please switch over to the new mirror.
 |
Tuesday, November 21, 2006 |
The code converter has a new home: http://codeconverter.sharpdevelop.net/ - please update your bookmarks, as well as applications that are using our conversion service. In addition to the move, we upgraded from revision 1591 to 2063.
 |
Sunday, November 19, 2006 |
Daniel mentioned in his blog post Open Source Code Statistics that earlier work on SharpDevelop 2.0 (code name Corsavy) was done in a non-public repository and thus not included in the statistics. The reason is that this initial Corsavy repository gave way to the current SharpDevelop repository, where all the work was imported in one fell swoop. Therefore no public knowledge exists on what happened in the early days of developing version 2.0. Well, this post intends to correct this situation.
First and foremost: the actual repository does not exist any more. All that remains are the commit messages collected in an mbox file:
CorsavyCommit.zip (154.11 KB)
To view this mbox file, please use the Windows MBox Viewer. All you need to do is File / Open and browse to the folder where you extracted CorsavyCommit.mbx to. Then you can browse the history of the internal repository for Corsavy:

A couple of things to note on the history:
- The repository was operational from 12/31/2004 till 8/16/2005, when it was transitioned to the current repository.
- It contains roughly 400 commits
- Yes, the revision numbers do start at 1 again in the middle of the commit messages. Reason is that our initial Subversion server at this time had issues. So we had to start over with a new repository.
I hope that you will find this excursion on history lane interesting, especially on how long we actually worked on version 2.0 before going public.
 |
Tuesday, November 07, 2006 |
A rather informal launch as I am here in Barcelona at TechEd Developers - John (SharpZipLib maintainer) has released v0.85 for both .NET 1.1 and .NET 2.0:
The SharpZipLib download page doesn't yet reflect the new version, so this is the place to get the version first!
 |
Saturday, November 04, 2006 |
Because we shipped a non-working version of SharpReport with build 2.1.0.2006, we have released build 2.1.0.2017 (Beta 2b) for those of you that test SharpReport inside SharpDevelop. The upshot: you now have the latest and greatest bits of SharpReport in SharpDevelop2 2.1 Beta 2. Download
 |
Thursday, November 02, 2006 |
Please see the Beta 2 Announcement for details of what's new, changed, enhanced, fixed or even removed from the bits.
In the blog entry SharpDevelop Presentation we announced our plans to reverse-integrate SharpReport in the future. This has happened as of today's Beta 2 launch of SharpDevelop.
The SharpReport Repository
SharpReport has a repository of its own now: svn://sharpdevelop.net/sharpreport/trunk
The checkout procedures are explained in this Wiki entry.
Building SharpReport
After checkout, run debugbuild.bat:

This will populate the bin folder with the SharpReport standalone designer plus the SharpReport addin:

Simply execute SharpDevelop.SharpReport.exe and you will be presented with the familiar SharpDevelop IDE, however, slimmed down to support SharpReport-needed functionality only:

(Please note that as of this writing, the SharpReport samples haven't yet been checked in to the new repository)
Where Do I Get Support?
SharpReport now has a dedicated support forum, and Peter will be blogging about SharpReport features here.
Where Can I Download Binaries?
At this point, there are no precompiled packages available other than SharpReport shipping in Beta 2 of SharpDevelop 2.1. Note, however, that Beta 2 is shipping an older version of SharpReport than is available via the repository because of reverse integration.
 |
Monday, October 30, 2006 |
The PDF contains a presentation on SharpDevelop touching the following points:
- SharpDevelop - The IDE
- SharpDevelop - The Core
- SharpDevelop - The Architecture
- SharpDevelop - The Components
- SharpDevelop - The Team
- SharpDevelop - The Future
The section "components" talks specifically about features of SharpDevelop that can be used in your applications.
sd2from10000ft.pdf (462.7 KB)
Daniel prepared an NRefactory Internals presentation for this year's #d^3 event in Bad Ischl. The PDF version is now available for download:
nrefactoryinternals.pdf (1.01 MB)
 |
Tuesday, September 19, 2006 |
Read the detailed announcement for version 2.1's Beta 1 release here.
 |
Monday, September 18, 2006 |
A feature that was implemented rather early in the codebase of SharpDevelop2 2.1 is support for code analysis via FxCop. This code analysis tool comes in really handy to for example spot security problems in your code (discussed in the article A Look Inside the Security Development Lifecycle at Microsoft), or more general, detect coding errors (please see the article Bad Code? FxCop to the Rescue, or FxCop, Your .NET Cop).
How does it look like? It integrates with the build system and errors / warnings are displayed alongside compiler warnings:

FxCop is not enabled by default, you have to do that in the project options:

It is considered good coding practice to enable code analysis.
 |
Sunday, September 17, 2006 |
SharpDevelop2 2.1 codenamed "Serralongue" will ship with support for WiX (Windows Installer XML toolset) setup creation. Matt has a detailed blog post on the WiX integration, as well as one on the new setup for SharpDevelop2 2.1 that was built using the WiX feature set.
In other news: we are pleased to announce that we will ship Beta 1 of SharpDevelop2 2.1 "Serralongue" on Tuesday, September 19th.
 |
Sunday, August 06, 2006 |
 |
Tuesday, August 01, 2006 |
SharpDevelop 2.1 "Serralongue" ships with the ability to be hosted in your application to provide IDE services for your users to extend / automate your application. Basically what we have done is split up SharpDevelop.exe into two assemblies, ICSharpCode.Sda.dll and SharpDevelop.exe, whereas the latter assembly only calls into the SDA API to bootstrap #develop itself.
To get an idea what you can do with SharpDevelop for Applications (SDA), I have created a screen recording of a walkthrough of the SdaUser sample that ships with Serralongue:
SharpDevelop for Applications demo (5.97MB)
Again, please note that Serralongue is currently only available via our Subversion repository.
SharpDevelop 2.1 code-named "Serralongue" will be shipping with list (object) data source support in SharpReport (#report). This list binding support comes in addition to binding to SQL-based data sources that was available previously. The following screen recording gives you a quick tour of the new list support and shipping samples for list data sources:
Video (3.98MB)
SharpDevelop 2.1 can be obtained only from the Subversion repository at this time. The samples shown in the demo video can be found in the samples\SharpReport directory (ReportSamples and ReportsFromList respectively).
 |
Monday, July 17, 2006 |
 |
Wednesday, July 12, 2006 |
 |
Monday, June 05, 2006 |
I just uploaded RC2 to SourceForge. This is the final release candidate before we ship SharpDevelop2 code-named "Corsavy". SharpDevelop2 works fine on Windows Vista as you can see in this screenshot:

This is not really surprising as every version of SharpDevelop ever shipped works with standard user privileges.
 |
Wednesday, March 01, 2006 |
The announcement mailing lists for SharpDevelop and SharpZipLib are folded into one that is now hosted at SourceForge:
https://lists.sourceforge.net/lists/listinfo/sharpdevelop-announce
If you want to continue to receive news about releases of SharpDevelop as well as our subprojects, then please subscribe for the new mailing list.
 |
Sunday, February 12, 2006 |
Please see the Beta 2 Announcement in our forum for details, a couple of interesting things have happened since Beta 1! Enjoy, and keep the suggestions and bug reports coming!
 |
Thursday, February 02, 2006 |
Thanks to a patch from John Simons (he contributed an implementation for the necessary JScript Gobals object), SharpDevelop2 can now persist the Html Help settings. An example for the settings are the language filters - the below screenshot shows the default way a topic is being displayed:

Information on syntax and usage is displayed for all languages, which in most cases is inappropriate. So you can adapt the filter to your programming language preferences:

You could do that before revision 1058 too, however, upon closing and reopening (even the help browser), the language filter settings would have been lost. Now, this no longer happens (screenshot is after a restart, you simply have to trust me on this one - or even better, try the daily builds):

A seemingly small improvement, but I am sure that many developers will appreciate the effort that went into it!
 |
Wednesday, February 01, 2006 |
Yesterday, Matt checked in support for code coverage. As usual, he wrote a great tutorial on how to use it in his blog Code Coverage with NCover.
 |
Wednesday, January 25, 2006 |
Starting with revision 1038, the post install tasks batch file compiles (ngens) the main assemblies to native code. The main intention is to speed up initial startup of the application. Affected assemblies: SharpDevelop.exe, ICSharpCode.Core, log4net, ICSharpCode.SharpDevelop, ICSharpCode.TextEditor, WeifenLuo.WinFormsUI.Docking and ICSharpCode.NRefactory. Please note that PostInstallTasks.bat is called only from setup, so if you are building from source, you have to start it yourself.
 |
Monday, December 19, 2005 |
We just put the finishing touches on Beta 1 of SharpDevelop2. The official build number is 2.0.0.922, and as such is a LGPL-licensed release (read more here). Download
 |
Sunday, December 18, 2005 |
The SharpDevelop project started out as a "better than Notepad" solution five years ago. At that time, releasing it under the GPL was a natural decision, as the tool side of open source was always released under the GPL. However, SharpDevelop no longer is a simple tool, it is a framework for developers to extend the premier Open Source IDE, as well as build their applications on top of it.
To extend our reach beyond what a GPL-licensed framework could achieve, we decided to change the license for SharpDevelop2 – beginning with build 2.0.0.919, SharpDevelop2 is now available under the LGPL.
This change of license from GPL to LGPL will allow users and developers to extend Sharpdevelop in ways that were up to now unthinkable. Creation of closed source AddIns now is possible without licensing hassles. Integrate the popular SharpDevelop text editor control in your application for free in its latest incarnation. Base your own AddIn based application on the proven and tested SharpDevelop Core architecture.
Voices from the team
"Our application framework has proven to be very successful for a large Windows application – #develop being testament to its flexibility and power." Christoph Wille, SharpDevelop Project Manager
"SharpDevelop's AddIn architecture convinced me of the worth of Open Source on .NET. With the newly added Addin Manager, managing this powerful architecture is now easier than ever before." Daniel Grunwald, SharpDevelop, Development Lead v2.0
"The SharpDevelop architecture made it so easy for me to create my reporting tool that I just went ahead and did it on my own before joining the SharpDevelop team." Peter Forstmeier, SharpDevelop, SharpReport Developer
"Judging from my inbox, Antarctica is the only continent where there is no known user of SharpDevelop." Bernhard Spuida, SharpDevelop, Localization and Support Manager
Frequently Asked Questions (FAQ)
Which versions of the software are affected by the license change?
The change from GPL to LGPL applies to source code of #develop version 2.0, starting with revision 919. Any code older than this revision will remain GPL-licensed. This means, the entire #develop 1.x series will remain GPL, and all the GPL restrictions remain in place for those versions.
Aren’t tools supposed to be licensed under GPL? Doesn’t SharpDevelop qualify as a tool?
Yes, you are right. However, SharpDevelop is a framework that is meant to be extensible. Just because we are shipping a lot of functionality out of the box doesn’t mean that others can’t or shouldn’t write addins for SharpDevelop. We want to foster an ecosystem of third-party addins, no matter under which open source license or even commercial.
What’s in for me (the developer) now that you changed the license?
We imagine two main scenarios: you writing arbitrarily-licensed addins for #develop, as well as you using our assemblies to build your applications (especially the core, the text editor and #report). After all, linking to our binary assemblies is now restriction-free. All we ask (but not require) is that you do not rename the assemblies you use (we see this as free PR for us).
What if I need to modify the assemblies to suit my needs?
The only difference between GPL and LGPL is the linking exception. So if you need to modify the source code, the restriction of shipping your source code modifications alongside the compiled binary still kicks in. If you do not want to ship your source code modification, get in touch with us.
Would you consider integrating my code changes so I don’t have to ship it?
Absolutely. If your changes are applicable to a more general audience (ie if it isn’t too specific or limited to a single scenario), please see our information on contributing http://wiki.sharpdevelop.net/default.aspx/SharpDevelop.HowCanIHelp. The advantage for you – if integrated, you no longer need to perform a custom build to keep your modifications in sync with our latest bug fixes. Aside from that, others might just have been waiting for the feature you implemented.
Can I take soure file xyz.cs and use it in my application?
The main difference between GPL and LGPL is the linking exception. If you want to incorporate some of our source files into your projects, you are still bound to license your code under a compatible license.
Where can I read about the LGPL?
At the authoritative source: http://www.fsf.org/licensing/licenses/lgpl.html
Did you read “Why you shouldn't use the Library GPL for your next library”?
Yes, we read RMS’ article at http://www.fsf.org/licensing/licenses/why-not-lgpl.html. Actually, we intentionally chose LGPL because “using the Library GPL permits use of the library in proprietary programs”.
OK – so why didn’t you go the whole nine yards and BSD-licensed the SharpDevelop code base?
Frankly, we do not want to see our code end up filleted to suit in various commercial applications.
I know SharpDevelop has been around for four years+, how were you able to change the license?
We require copyright assignments from all contributors. That is why it was rather easy for us, compared to other Open Source projects that didn’t have this policy in place and consequently ran into trouble when they needed to change their license.
 |
Monday, November 14, 2005 |
 |
Sunday, November 13, 2005 |
The code converter now goes the whole nine yards: C# to VB.NET, VB.NET to C#, C# to Boo and VB.NET to Boo. Additionally, it sports background information, and the converter has been revamped.
Also, there is a sample of how to employ the Web service in my other blog here. (download of executable and source code included)
 |
Thursday, November 10, 2005 |
Daniel's comment got me into gear, and not only did I implement the #develop way of code conversion, I also put it online so you can convert your source code easily:
Convert C# 2.0 Code to VB.NET 8.0
Daniel did a great video on what is possible with NRefactory. When I saw it, I felt that I had to build something with it - and so I set out to create a simple ASP.NET 2.0 page that converts C# source code to VB.NET source code (written in VB.NET, just to get my fingers dirty once in a while):

The code is pretty much the same as Daniel wrote, this time VB.NET:
Imports ICSharpCode.NRefactory.Parser Imports ICSharpCode.NRefactory.Parser.AST Imports ICSharpCode.NRefactory.PrettyPrinter
Imports System.IO
Partial Class CodeConvert Inherits System.Web.UI.Page
Protected Sub convertCode_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles convertCode.Click Dim input As New StringReader(inputTextBox.Text) Dim parser As IParser
parser = ParserFactory.CreateParser(SupportedLanguage.CSharp, input) parser.Parse()
If (parser.Errors.count > 0) Then outputTextBox.Text = parser.Errors.ErrorOutput Exit Sub End If
Dim cu As CompilationUnit, output As IOutputASTVisitor cu = parser.CompilationUnit
output = CType(New VBNetOutputVisitor(), IOutputASTVisitor) cu.AcceptVisitor(output, DBNull.Value) outputTextBox.Text = output.Text End Sub End Class
The source code for the entire Web application is provided in the download at the end of this blog entry. Feel free to add more features to it, just note that the code is GPL-licensed, so please make your changes public.
CodeConvert.NET.zip (114.98 KB)
 |
Wednesday, November 09, 2005 |
Matt has a blog entry up with a list of features currently MIA for SharpDevelop 2.0. He promises to keep this list updated, so you know where to look to see if a feature has already made it to 2.0 or not.
Couple of notes: do not expect SharpReport to be ported any time soon. It itself is a work in progress, and is currently being finalized in version 1.1 (Fidalgo) of SharpDevelop. Also, Assembly Analyzer might or might not make it all.
 |
Sunday, November 06, 2005 |
After some internal testing, our public build server is now live under the following URL:
http://build.sharpdevelop.net/
There you can review the build logs (we basically perform a src\prepareRelease, src\releaseBuild and setup\buildSetup). On a successful build, the artefacts are copied to
http://build.sharpdevelop.net/BuildArtefacts/
where you can download both source zips as well as pre-built setup applications.
 |
Tuesday, November 01, 2005 |
The new URL for the Corsavy repository is
svn://sharpdevelop.net/sharpdevelop
Change reason is that Serralongue will be branched in this repository, therefore having a "codename-locked" repository name was a bad idea.
 |
Sunday, October 16, 2005 |
 |
Tuesday, October 04, 2005 |
When moving to the latest dasBlog version, we also set up a dedicated host for the team blog. This will make it easier for us to run the sites with different versions of ASP.NET.
 |
Monday, September 26, 2005 |
Yesterday, we have released builds for the 1.1 series, as well as another standalone setup for the 2.0 alpha. The former can be downloaded from our download page, the latter is only available on our sf.net download page.
 |
Tuesday, August 23, 2005 |
This video is a quick introduction to the new bookmarks, search & replace, go to, help system, classes pad and some refactoring inside SharpDevelop 2.0:
QuickTourOfCorsavy.wmv (4.67 MB)
 |
Monday, August 22, 2005 |
Today, we switched from Snitz Forum to Community Server. The main reason for this switch was performance-related: the original forum has outgrown its backend database. We tried to postpone - or put off - that necessary step for long.
One reason was that I originally planned to migrate the data from Snitz to CS, but that turned out to be a rather nasty process (the schemas are way too different, not to speak of user profiles and password storage). So it was decided to leave the old forum up and running in read-only mode, and have all new posts in the new forum.
Matt Ward just recently added support for MSBuild files to the XML Editor inside #develop:
MSBuildCompletion.wmv (2.82 MB)
You can try this feature yourself by downloading the hot off the press #develop Corsavy alpha. Read the announcement I posted in our new forum.
 |
Wednesday, August 17, 2005 |
The video about the integrated debugger in #develop 2.0 whetted your appetite? You want to take the current bits for a spin? So here you go, but be warned: the bits you are going to grab are neither stabilized nor heavily tested.
First, read up on repository access in our Wiki:
Using the repository
The checkout command needs to be modified as follows: svn co svn://sharpdevelop.net/corsavy/trunk SharpDevelop
The bits in the repository currently compile against the .NET Framework 2.0 Beta 2, which can be downloaded freely here. At a minimum, you need the Runtime. SDK is recommended though.
A few more notes: please use the mailing lists for reporting problems etc. Which ones to use are described in the aforementioned Wiki article. These haven't changed from Fidalgo to Corsavy. Please be sure to not only include the error message, but also the steps to reproduce as well as files pertinent to make is reproducible.
Next week we plan to release an alpha binary for those of you who don't want or cannot access our Subversion repository.
 |
Tuesday, August 16, 2005 |
This video is a short demonstration of the debugger that is integrated with Corsavy, the version 2.0 of #develop, targetting .NET 2.0. The debugger is being implemented by David Srbecky, and you can read about the debugger in the Wiki. However, you came here for the video, so here you go:
DebuggerInCorsavy.wmv (5.01 MB)
David did a great job to get this beast up and running, and you can expect more features to be added in the near future.
 |
Sunday, August 07, 2005 |
This release does not come with any major new features, this release mostly focuses on stability and we do hope that we finally nailed down the "Can't shutdown" bug in #develop. If you still experience this problem, please visit this thread in our forum. Download
 |
Sunday, July 31, 2005 |
Yesterday's post already hinted at this weekend's event in Bad Ischl, Austria: #d^3. The #develop developer days are a get together for core developers, this year's participants are (in no specific order) Mike, Andrea, Markus, Peter, Christian, Bernhard and myself. Main goal: getting some work done on Corsavy, our version 2.0 #develop.
Here are some photos:

Mike Krüger to the left, Peter (#report) standing in the middle, Markus (VB.NET and lots of other stuff) sitting to the right.

This time, we start from the right: Bernd (Senior Word Wrangler) starting SuSE on his laptop, Andrea (working on the lexer) sitting next to him.
 |
Saturday, July 30, 2005 |
While sitting at #d^3 (#develop developer days) here in Bad Ischl, we dug up the photo that was on the homepage of icsharpcode.net a long time ago:

 |
Thursday, April 28, 2005 |
 |
Thursday, April 21, 2005 |
 |
Friday, April 15, 2005 |
 |
Wednesday, April 13, 2005 |
This demonstration shows the cool new XML editing features in 1.1: intellisense, folding and validation.
XmlEditing.wmv (3.02 MB)
Included in the 1.1 preview is an early version of the #report addin, done by Peter Forstmeier and Christian Amariei. This addin is not yet polished (you will see debug messages, a non-fatal crash once in a while, you name it), but still you can get a very good idea of what is to come. Give us feedback via the forum on what you would like to see in #report!
SharpReportAddin.wmv (3.23 MB)
Another contribution by Matt Ward - the NAnt integration inside #develop. From build file generation to deep integration, this demo will show what you can do:
NAntAddin.wmv (2.97 MB)
Matt Ward contributed a PInvoke addin to #develop. This screen recording shows how easy it is to use:
PInvokeAddin.wmv (789.76 KB)
 |
Tuesday, April 12, 2005 |
Today, Daniel (DevLead for 1.1) integrated the new help addin that was written by Mathias Simmack. To get an idea how it will work, I created a screen recording for you to watch:
HelpIntegration.wmv (1012.31 KB)
The most recent checkin mandates that you have MSXML 4.0 installed. Get it here.
 |
Saturday, April 09, 2005 |
The SharpReport addin has been checked in for the Fidalgo branch. Peter Forstmeier (your primary contact for everything #report) sent me a screenshot of SharpReport in action so those of you who don't play around with bits from Subversion can have an early look:
SharpReport.jpg
 |
Sunday, April 03, 2005 |
Matt Ward has checked in his Xml Editor addin. To get an idea what you can do with it, I decided to include the tech note he wrote in this blog post. Be sure to check out section #2, user interface. It includes a couple of screenshots.
XmlEditorAddinTechNote_01.pdf (234.3 KB)
 |
Monday, January 24, 2005 |
 |
Wednesday, January 19, 2005 |
During my Webcast, I showed three screenshots of Corsavy (our v2.0 running atop v2.0 of .NET), because there is nothing that can be called "alpha" yet.
The Class Browser and Project Scout
ClassBrowserProjects.png (64.09 KB)
The Bookmark Pad
BookmarkPad.png (102.8 KB)
The new Search & Replace dialog
SearchAndReplaceDialog.png (9 KB)
Because the question When will it be available? cropped up during the Webcast, here is my answer: our plans are to release an alpha close to Beta 2 of .NET 2.0. This means a time window of 1 to 2 months after the Beta becomes widely available (there might be some unforeseen problems, and we definitely do not want to underdeliver).
 |
Friday, January 14, 2005 |
The repository for #ziplib has moved too; its new home is now:
svn://sharpdevelop.net/sharpziplib/trunk
 |
Thursday, January 13, 2005 |
In the wake of the repository move, we released an interim to get rid of the now already rightly infamous SD-297 bug (ObjectDisposedException). You can find it on our download page.
The Subversion repository for #develop Fidalgo has moved, the new repository URL is:
svn://sharpdevelop.net/fidalgo/trunk
The SVN protocol is definitely much faster than WebDAV / Apache.
 |
Monday, January 03, 2005 |
Together with Uwe Baumann, I will be doing a one hour Webcast (German language) on #develop. The date is set for 17th of January, 4pm CET. You can learn more on the MSDN page .NET-Entwicklung zum Nulltarif mit SharpDevelop. Hope to see a few of our German-speaking users!
 |
Wednesday, December 08, 2004 |
Mike did it again - scratching an itch he programmed a .NET wrapper library for usblib. Now you have #usblib at your disposal, a USB library for low-level access to USB ports, working under Win32 / .NET and Linux / Mono.
 |
Tuesday, November 30, 2004 |
Our bugtracker now runs on the latest version of Gemini. Sorted out are a few browser issues, caching problems, and we now have full Unicode support in the bug tracker. Of course not to forget full HTML reporting via FreeTextBox. Neat.
 |
Thursday, November 25, 2004 |
#ziplib has been moved from the #develop source tree into a new, separate repository. This is intended to remove restrictions from #ziplib's source tree (ie 'always stable'), because #develop depended on #ziplib - something that doesn't work quite well when two projects are on different release schedules.
The new repository is located at http://svn.sharpwt.net/SharpZipLib/, the usual checkout guidelines apply.
 |
Wednesday, November 10, 2004 |
 |
Sunday, November 07, 2004 |
Mike brought back a new feature for the text editor from the conference: font size changing using the scroll wheel on a modern mouse. In the wake of this new feature, work is commencing on the Buffer Options / General tab:

To see the mouse wheel zooming in action (press the Ctrl key and scroll the mouse wheel to see for yourself), download the video ctrlmousewheelinaction.zip (81.06 KB)
 |
Saturday, November 06, 2004 |

Give it a try when we release 1.0.2, or grab 1688 now!
 |
Thursday, November 04, 2004 |
Mike and Bernd currently attend the DevCon Europe 2004 (German site). They are presenting two talks - one is an overview of #develop, the other an in-depth talk on the architecture of #develop. To better visualize the idea of the addin infrastructure, Mike revamped the Addin Scout.
There is now a real tree view of the addin tree, where you can see which tree node is extended by which addin:

The addin view in contrast tells you exactly what tree nodes are extended by an addin.

Pretty neat tool for explaining the concept of the addin tree.
We are currently mulling the possibility of a public build server (CruiseControl.NET-based). Anybody willing to step up as a sponsor (hosting, advertising, ...)? Speaking of sponsoring: if you or your company wants to sponsor a specific feature, please contact me @ christophw at alphasierrapapa.com.
 |
Monday, October 25, 2004 |
Roman fixed the problems with our source code control server. It is up and running again.
 |
Sunday, October 24, 2004 |
As some of you have already noticed, our Subversion server is currently down (reachable, but not servicing requests). We'll keep you posted once it is up and running again.
 |
Thursday, October 07, 2004 |
Daniel introduced an exception bug in revision 1636 - and we didn't find it in time for release (though it was all too obvious to reproduce). 1649 is now released, and he checked in the change again - the new file dialog is now smart about subdirectories and namespaces (1650 if you are curious).
Also, the 1.0.1 installer is using a Windows Scripting Host (WSH) script to install three assemblies into the GAC and generate the help index. If your initial start tells you about a missing file, it might be that (a) scripting is disabled on your box or (b) your antivirus scanner has script blocking enabled. Sorry for the inconvenience, but simple batch files don't cut the mustard any more.
We are proud to have released the first maintenance release of the 1.0.x series (almost on schedule). It is available on our download page, the changes are documented as usual. One thing that wasn't possible due to time constraints (read: necessary testing) is to fix the resource import issues for VS.NET projects. You can count on us tackling this next.
 |
Tuesday, October 05, 2004 |
A longstanding issue has been resolved: consistent assembly versioning is now in the source tree. With this change, all assemblies reflect a central scheme - a three digit version number followed by the Subversion revision number of the tree it lives in. With this build process change, we also fixed all assemblies that had missing assembly infos (mostly backend bindings).
In other news: we also checked in NProf 0.9alpha.
 |
Friday, September 24, 2004 |
- SD-243 "Code completion overload insight window scroll arrows not working"
- SD-229 "Horizontal scroll bar too sensitive"
- SD-186 "Permission problem in VS.NET importer"
- SD-239 "Auto code generation exception"
- SD-242 "Switching File Mode to VS-C# from C#, quotes will "vanish""
 |
Thursday, September 23, 2004 |
- SD-224 "Destructors can't be folded"
- SD-232 "Toolbox Scrollbars"
- SD-236 "Code generation list has duplicate entries"
 |
Wednesday, September 22, 2004 |
- SD-238 "WinForms template namespace issue"
- SD-231 "Save / Save All commands context sensitive"
- SD-225 "Endless loop: folding invalid nested classed"
- SD-184 "Update Tracker to Gemini 1.7"
 |
Tuesday, September 21, 2004 |
Our bug tracker is now updated to Gemini v1.7.1. In the course of this update I also put the user documentation of Gemini online - if you are interested, read the PDF document.
Part of my job as Senior Project Wrangler encompasses "evangelizing" team members on certain aspects of development / project management. One area that we try hard to get right is the user interface; not that this would be easy (or popular in the team) as can be read in the article Why Free Software usability tends to suck.
 |
Wednesday, September 15, 2004 |
In revision 1554, the src\3rdParty directory was deleted. It was added when we experimentally integrated the Dr. C# addin, but had to remove it later on because it wasn't maintained. What stayed around till that revision was the directory where it lived.
Last week, I had a discussion about repopulating that directory with a third party addin. Various good reasons why to add that specific addin to the distribution exist, but in the course of the discussion (which really forced me to rethink that third party source directory "feature") I found out that having tightly integrated third party addins in our codebase / distribution is no good idea:
- The need to sync the codebase in our src\3rdParty directory with the repository of the actual addin project (which might be developed on a different schedule). This also means that the burden of integration testing is upon us.
- Support issues. If you have an addin that almost perfectly blends into the #develop user experience so it looks like a stock feature, users will report bugs to us automatically. Or post feature requests to us. Users don't see where an addin is loaded from, they don't care.
- Linked to support issues is code quality. We don't intend to review someone else's code if it meets certain standards, less to speak if it hypothetically contains exploitable or even malicious code. A liability issue that we do not want to get into.
- Maintainance. Programmers don't necessarily maintain their addin forever, it might get abandoned. We are then faced with two options - take ownership or remove the feature. Both options are not feasible - for one, we might not know the inner workings at all which makes it extremely time consuming, or secondly, having to explain to users why a feature they (potentially) loved was kicked out.
For these reasons, we decided to remove that directory and continue to stick with our policy: our repository contains only our code (exceptions: non-addin libraries and build tools), and our distribution of #develop only contains addins that are maintained by us. This way we avoid those sticky issues.
© Copyright 2009 SharpDevelop Core Team
| 
|  |