GSoC/GCI Archive
Google Summer of Code 2009

SharpDevelop

Web Page: http://wiki.sharpdevelop.net/gsoc.ashx

Mailing List: http://community.sharpdevelop.net/forums/

SharpDevelop is an open source IDE for C#, VB.NET and other languages on the .NET platform. It is typically used as an alternative to Microsoft's Visual Studio .NET. It includes features like a forms designer, code completion, code generation, integrated debugger, refactoring support, SVN integration, code conversion between C# and VB.NET, integrated support for testing and many other features. The project is as old as the .NET platform itself - it started in the year 2000 and it has been actively developed ever since. SharpDevelop has been translated by the community into over 18 languages and it is downloaded over 2000 times each day.

Projects

  • Application "Database Tools Add-In" Create an easy to use database tool for Sharpdevelop which is able to generate definition files for the ADO .NET Entity Framework, an object-relational mapping (ORM) framework for .NET. The database explorer is based around MyMeta, an open source API that can be used to get metadata from a database, which is part of the MyGeneration code generator toolset. The support for the Entity Framework will be implemented by integrating the open source Entity Framework Designer on CodePlex.
  • Common keyboard shortcuts handling and management in SharpDevelop The idea is to develop a framework which would dispatch keyboard gestures to appropriate commands with scope and context in mind. As for the user a new panel will be added in options dialog. This panel would allow configuring shortcuts as well as assigning short scripts to them. After all is implemented I also plan to adopt existing add-ins to new functionality.
  • Debugger visualizer for SharpDevelop Extension to SharpDevelop's debugger. Displays selected data structure used in the program as directed graph, which is updated live as the user steps through the code. Developers could understand code more quickly by immediately seeing how are the objects in the program related. Computer science teachers could use it to explain algorithms, and the students could visually "replay" the algorithms later just by having the code. There is no such tool available yet.
  • Integration of C++/CLI C++ is not a popular language for programming in .net framework. There are some cases when it can't be replaced with other language (ex. C#). Embedding unmanaged classes source within a managed application can be done only using managed c++. Thats why lack of c++ support in SharpDevelop seems to be a problem. That makes some users to stop using SharpDevelop and switch to other IDEs. The aim of the project is to add c++/cli support in SharpDevelop.
  • XAML code completion for SharpDevelop My job will be to extend the XAML backend binding. I will implement a folding engine, context-sentive syntax highlighting, context dependent code completion for mark-up extensions and other XAML tags. Code insertion and code generation for templates, styles and other tasks to reduce time spent within repetitive tasks.