Skip to content
This repository has been archived by the owner on Oct 16, 2020. It is now read-only.

gsoc2008

DavidSrbecky edited this page Mar 12, 2008 · 9 revisions

What is Google Summer of Code

Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. It has taken place for the last three years and the last year 130 organizations and 900 students took part in the program. In order to participate in the program, you must be a student. The stipend is worth 5000 USD per accepted student developer - 4500 USD goes to the student and 500 USD goes to the mentoring organization.

For more information about the program see http://code.google.com/soc/2008/

What is SharpDevelop

SharpDevelop is a open source IDE for C#, VB.NET and other languages on the .NET platform - Boo and F# are supported ‘out of the box', AddIns for other languages like IronPython are available separately. It is an alternative to Microsoft's Visual Studio .NET. It includes features like 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 others. SharpDevelop is translated by the community to over 18 languages and it is downloaded over 1000 times each day.

For more information see http://www.icsharpcode.net/OpenSource/SD/

Timeline

March 17: List of accepted mentoring organizations published on code.google.com/soc/ (~12 noon PDT/19:00 UTC).{BR} March 24: Student application period opens (~12 noon PDT/19:00 UTC).{BR} March 31: Student application deadline 5:00 PM PDT/00:00 UTC April 1, 2008.

For the whole timeline see http://code.google.com/soc/2008/faqs.html#0.1_timeline

Mentors

David Srbecky Email: dsrbecky(at)gmail.com
MSN: dsrbecky(at)gmail.com
Skype: dsrbecky
ICQ: 153888796
Daniel Grunwald Email: daniel(at)danielgrunwald.de
Matt Ward Email: mrward(at)users.sourceforge.net
Bernhard Spuida

If you have any questions, please feel free to contact us. {BR} You can also reach us thought the public forum: http://community.sharpdevelop.net/forums/

How to apply

You need to submit your application before the 31th March. {BR} The application is submitted via Google. Do not send the applications directly to us. {BR} If you want to discuss your idea with us, please feel free to contact us. (preferably sooner rather then later)

See this page for some advice: http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents

Project Ideas

**Project ideas are currently being added or expanded, come back regularly if you don't see something you like.**

Note that you will be expected to complete most of the projects in C#.

Note that this list is by no means exhaustive or fixed. Feel free to modify the ideas to your liking or even better - come up with your own idea.

You can also look for additional ideas on the following two pages: {BR}

{BR} {BR}

ASP.NET (.aspx) support

Difficulty: Varies

The whole ASP.NET support is a huge task and you are expected to focus only on some specific area which you like.

See the dedicated page for Support for asp.net

{BR}

Edit and Continue for C#

Difficulty: Hard {BR} Required skills: Compiler design, IL bytecode {BR} Mentor: David Srbecky

You do not have to worry about the debugger/runtime side of this. What we need is C# compiler that is able to generate updated IL code, metadata and symbols. Modifying the mono compiler is probably the best way to go.

{BR}

Edit and Continue for any language

Difficulty: Medium {BR} Required skills: IL bytecode {BR} Mentor: David Srbecky

This is other approach to Edit and Continue. It is more general, but also slower. Instead for modifying the compiler, just recompile the whole program and then find differences between the old and new assembly.

Mono.Cecil is probably best for reading the assemblies.

{BR}

Pretty Printer

Difficulty: Easy

Finish the output for C# and VB in NRefactory (see NRefactory in src\Libraries\NRefactory)

{BR}

Refactoring

Difficulty: Varies

Implement some refactorings like "Extract Method" etc. (requires the pretty printer)

Several students can potentially work on several different refactorings.

{BR}

Profiling support

Difficulty: Hard {BR} Required skills: COM Interop, Unmanaged code {BR} Mentor: David Srbecky

This project might involve some coding in C. The goal of this project is to create .NET profiler and to fully integrate it with SharpDevelop. There might already be some open-source profilers out there which could be used as a starting point. However, note that to be compatible with SharpDevelop the code would have to be licence under LGPL or compatible license.

{BR}

Guidance automation equivalent

See http://guidanceautomation.net

{BR}

Integration of C++/CLI

Difficulty: Varies

Difficulty varies depending on the level of support of the language (both parser and code-completion support would be preferred).

{BR}

Support for your favourite .NET language

Difficulty: Varies

Difficulty varies depending on the level of support of the language (both parser and code-completion support would be preferred).

You can basically implement back-end for any .NET you like.
Bonus points if the language is widely used.

{BR}

VIM plugin or integration

Difficulty: Hard Required skills: VIM source code, C, Managed-Unmanged interop

Make it possible to edit the source code using all the VIM commands. It is not feasible just to reimplement VIM in C# so the best way to go is probably to use take real VIM and make it play nice with SharpDevelop. VIM has a usable COM interface, but it might not have all the necessary features so some tweaks to the VIM source code might be necessary.

{BR}

Emacs plugin or integration

Difficulty: ?

VIM has been mentioned so to avoid religious wars, Emacs needs to be mentioned as well. Feel free to investigate how difficult the same task would be in case of Emacs.

{BR}

Integrated Bug Tracking

Easy, fast, ready-to-go bug/feature tracking for a single developer {BR} Option to integrate with team-based bug tracker backends {BR} Integration with SCM system (subversion etc.) to link bugs to SCM revisions

{BR}

Customization of all keyboard shortcuts

Probably involves abstracting all actions to some kind of global list.

{BR}

VB 9.0 (LINQ) parser and code-completion support

{BR}

Typed data set designer

Clone this wiki locally