GSoC/GCI Archive
Google Summer of Code 2013

Mono Project

Web Page: http://www.mono-project.com/Gsoc

Mailing List: http://lists.ximian.com/mailman/listinfo/mono-list

The Mono Project implements a cross-platform runtime and a developer platform based on the ISO standards for the Common Language Infrastructure and the C# language. The Mono Runtime runs applications that have been developed with C# and the Microsoft .NET platform on a variety of operating systems and architectures that span most Unix systems (including Linux and MacOS) to embedded systems like the iPhone, the Wii and Android.

Mono allows developers that are familiar with Microsoft .NET technologies to bring their software and their expertise to other systems. Mono has also created a significant set of technologies to help developers. Some were created over the years by the community, and some were created through Google's Summer of Code. Additionally we have created technologies that take advantage of the host operating systems, some are Mono-specific (no equivalent in .NET), Unix-specific, X11-specific, Cocoa-specific or graphics specific.

Calling all students!

Browse the Project Ideas list or come up with ideas of your own and discuss them with us.

Join in on Mono IRC on irc.gnome.org. The main SoC channel is #monosoc, the General Topics channel is #mono, and developers can usually be found in #monodev and #monodevelop

Ask questions on the Mono mailing lists.

Send us your proposals!

Information about the progress of Mono projects in Summer of Code can be found on our Summer of Code Blog on or Twitter.

Projects

  • A Workflow Foundation 4 Implementation Workflow Foundation 4 is a framework for implementing workflows in .NET programs. This is a proposal to implement a significant part of the runtime necessary to bring an open source implementation to mono.
  • Adding features to Pinta Add several major features to Pinta.
  • Adding positional tags and face detection to F-Spot This project consists in adding positional tags to F-Spot to offer the posibility of not only tagging entire photos, but also tagging people faces in them. This simple idea would grow up by adding face detection with Intel's OpenCV.
  • Automated bindings using GObject introspection Writing bindings is a tedious and disencouraging task. Therefore this project aims at automizing the creation of bindings with GObject introspection data provided by most GNOME libraries through extending the bindinator project which converts the introspection data to gapi. This proposal would considerably making things easy compared to writing bindings manually.
  • cocos3d for XNA A port of the cocos3d graphics library from Objective-C to C#, building upon MonoGame: an open-source and cross-platform implementation of Microsoft's XNA framework.
  • FSharp Refactor My proposal is to build a refactoring tool for F#. It should be integrated into the MonoDevelop IDE and be easy to install and use. I have already implemented some of the features, but more work is required to make the tool readily usable by developers.
  • Implement a replacing write barrier for sgen Right now sgen uses a non-replacing write barrier, we want to switch to a replacing one and have fast paths to do so. Deliverable: Implement replacing barriers with IL then add JIT support for them and implement those for x86, amd64 and arm.
  • Improve mono-fastcgi, allowing use in massive shared hosting Improve mono-fastcgi, allowing it to be used in a way similar to php-fpm with ondemand pools and worker process activation.
  • Improve Rainy, the Tomboy sync server, and bring to a deployable state Rainy is a young effort to provide an open-source cloud server instance for the Tomboy note taking application. With the shutdown of note sync support in UbuntuOne at end of March, Tomboy users are currently without an easy solution to synchronize notes amongst different installations and devices. In this proposal, I suggest some features that I want to work on as part of the GSoC that will help improve the overall experience for note synchronization into the (possibly private) cloud.
  • Improved analysis UI for Xamarin Studio This project focuses on improving the UI for analyzing code in Xamarin Studio, by adding batch analysis and fixes.
  • Inspect MonoDevelop - More C# Code Actions and Code Issue Inspections This project aims to selectively implement more relatively important codes issue and context action inspections for C# in the NRefactory library, in order to improve the coding assistance functionality with MonoDevelop.
  • MonoDevelop / Xamarin Studio - CSS Support The main goal of this project is to achieve CSS support for the MonoDevelop IDE.
  • On the Fly Formatting and Indentation Engine The on the fly indentation in Xamarin Studio needs a rewrite. The current implementation is a bit flaky and doesn't respect many formatting rules. The engine should respect all formatting settings and give the user a good typing flow. The engine should format code while typed as sell as possible. There is already an implementation for that but it needs more work. The goal is to implement a really good indentation engine that is fast and scales, which is not that simple.
  • Source Analysis Improvements in MonoDevelop Source Analysis: Extend MonoDevelop and NRefactory with new actions, issues, dialogs and metrics.