GSoC 2012 – summary

GSoC 2012 has ended so this is a good time to summarize the last 3 months of coding. At the beginning the project seemed to be quite challenging, especially the Razor part. In my proposal I was cautious. I wasn’t sure if all the goals were achievable in the GSoC timespan. However, as I were diving deeper and deeper into the existing code, and got familiar with MonoDevelop components, I started to believe that I could really accomplish all my goals. And actually I did it.

During the coding period there were 3 main milestones I achieved. Firstly, I updated the existing and added new MVC project templates. Secondly, I created some GUI components for MVC editor. As a last part I implemented several Razor features including syntax highlighter and code completion engine. You can read more about those achievements and see them in action in my previous posts.

GSoC was a great experience for me. I feel I learn a lot, and cooperated with great people. I present the main benefits of being a GSoC participant below, so if you’re thinking of taking part in the next edition or just would like to know what you can learn during the coding period, it may be a good reference point.

  1. I got familiar with git and the whole development workflow of a big project. I had worked with git before GSoC, but only with its basic commands. During GSoC I learnt how to use more advanced features, working with branches, rebasing etc. I also saw how big projects are managed using github repos and pull requests. As most software is developed similarly, this knowledge is essential and I will surely use it in the future.
  2. I saw how complex, extensible software is written. MonoDevelop is a really advanced IDE, but extending it is really simple. Before GSoC I didn’t know how such applications are developed. I’m also sure I’ll be using Mono Addins and Mono Cecil in my future projects.
  3. I learnt good coding practices. During GSoC I investigated thousands of lines of code written by experienced developers, and came across many good high-level solutions of problems that I may encounter in the future. My coding style got better as well.
  4. I improved my efficiency. Spending 30-40 hours a week on coding during 3 months made me a more efficient developer. I started planning my work and set achievable goals. I got better understanding of C# and .NET platform, so now I can spend less time on browsing MSDN or stackoverflow and more time on actual coding.
  5. For me as well as for many other students English is a second language. I usually read and watch a lot in English, but don’t have to many opportunities to practice spoken and written English. During GSoC I communicated regularly with my mentor, so it was a great chance to improve those skills.

So as you can see there are many benefits of taking part in GSoC.

I’d like to thank Mono for the great summer, especially my mentor Michael Hutchinson who helped me a lot with my project. Congratulations to other students who passed their evaluations. Hope we meet next year.

Posted in GSoC at August 30th, 2012. 2 Comments.

Mvc GUI features

The second part of my GSoC project was to implement several GUI features supporting MVC projects creation. As I wrote in my last post, due to some problems with text templating the code couldn’t be released earlier, but fortunately it’s available now. All the implemented features are presented in a screencast that is available on http://www.screencast.com/t/PQD27Kj0fU.

As you can see, I implemented three new commands to switch between views and controllers and to create views from action methods. I also updated the add view dialog to support Razor and strongly typed views, and create add controller dialog. I hope that those add-ins together with the features I implemented earlier enable more efficient developing of MVC apps.

In my next post I’ll summarize my achievements and write more about 3 month of coding as a GSoC participant, which was a really great experience for me.

 

Posted in GSoC at August 15th, 2012. No Comments.

Razor editor extensions

It’s been a while since my last post. I was planning to finish gui features soon after my first post, but due to a problem with text templating (that needs some more time to solve) the code hasn’t been published yet. I hope that it won’t take long to resolve that issue, and you soon will be using the new features.

In the meantime, I implemented several Razor extensions: Razor parser, syntax highlighter, code completion engine, and some editor features like document outline, breadcrumbs and folding regions. The code is under review now so some changes might be required, but hopefully the final version will be released in a week or two. All the implemented features are presented in a screencast below:

http://www.screencast.com/t/JjWX9YqX

Posted in GSoC at August 8th, 2012. 3 Comments.

First achievements: MVC project templates

The first weeks of GSoC 2012 passed. Due to the end-of-term examinations I couldn’t work on a full time basis during the first days, but fortunately I’ve finished the tasks I put forward in my application. I think it’s a good time to present the deliverables that have already been completed.

The first part of my project was to create new project templates and improve the existing ones so that they fully support creating MVC 2 and MVC 3 applications. That consisted of several steps. I updated the existing templates and web.config files by correcting the references and configuration sections. Now they support .NET 4.0 and enable to create MVC 2 applications. Based on the improved templates, several new project and file types were created. They are presented on the snapshots below.

New MVC project templates

New MVC file templates

MVC 3 Razor project with unit testing

As you can see, it’s now possible to create MVC 3 applications in MonoDevelop without any additional hacks, even with Razor views. All the needed references are set, and default views and controllers are included  in the application templates. As most developers are used to create unit tests for their applications, it’s possible to create MVC solutions that contains an unit testing project. I hope those changes make the whole process of creating MVC apps easier for web developers.

If you’re running on Mono 2.10, you might not see the new MVC 3 project templates, because full ASP.NET MVC3 stack couldn’t be shipped with that version. Now, when Microsoft open-sourced their code, there is no problem any longer, and according to the Mono 2.12 Release Notes ASP .NET WebStack is fully included in the new release.

Apart from the templates, I made several tiny changes in MonoDevelop.IDE.Templates project, mainly to correctly create solutions with unit testing projects. Now I’m close to finishing the second part of my project, which is to create some gui-addins for efficient MVC development. I’ll write more about them soon.

Posted in GSoC at June 20th, 2012. 2 Comments.

Google Summer Of Code 2012

My name is Piotr Dowgiałło. I was accepted into Google Summer of Code 2012 with a project ‘Support for ASP .NET MVC in MonoDevelop’, and Michael Hutchinson is my mentor. This blog is a place where I’m going to report my job, present ideas and encountered problems, and write about features that will be implemented.

The goal of my project is to improve the existing support for ASP .NET MVC in MD. More information about the project and what exactly I’m going to do can be seen on http://google-melange.appspot.com/gsoc/project/google/gsoc2012/sparek/9001. If you’d like to see the whole detailed application, it’s available on http://pdowgiallo.pl/application.pdf.

 

 

Posted in GSoC at May 5th, 2012. No Comments.