Summary

During week 11 I was on my vacation. After coming back I refactored the MonoDevelop WinForms Designer Addin in order to make it work with MonoDevelop'sDesignerSupport addin remoting environment. Unfortunately I stumbled upon MWF-in-GTK problems and my attempt to complete the Addin failed. The good news is that I've managed to hack up a standalone WinForms-based frontend to the Design-Time code. I've spent the rest of the time testing the Design-Time serialization and deserialization, which resulted a complete rewrite of the expression contexting code. I am quite happy with the outcome. The (de)serialization can even handle nested components fine (e.g splitter1.Panel1.*). I have also implemented the serialization and deserialization of events. I am able to bootstrap the designer - I can load and store back to code it's GUI.

Repository Data

Start of week revision: 65
End of week revision: 89
Visual ChangeSet: http://monodt.i-nz.net/changeset?old_path=%2F&old=65&new_path=%2F&new=89
Plain Text ChangeSet: http://monodt.i-nz.net/changeset?format=diff&new=89&old=65&new_path=%2F&old_path=%2F

Details

1.) Refactored the MonoDevelop WinForms Addin to work in the remoting environment of DesignerSupport. MWF-in-GTK was really broken and I gave up.

2.) I have designed and developed a small standalone frontend to the Design-Time code. I have followed the KISS principle and I am quite happy with the resulting code - it's simple and works. Currently the designer:

3.) Thanks to the frontend I was able do a cycle of testing which resulted a major rewrite of the serialization and deserialization. The main work was on  redesigning the expressioncontext tracking to handle nested components. The code is behaving very well.

4.) I have implemented the EventBindingService and event serialization and deserialization. It doesn't play well with MSNET's PropertyGrid (which doesn't really matter), but then again they probably have a lot of internal stuff which is not documented and on which the proper working behavior depends.

5.) I have implemented Enum[] serialization/deserialization. Also includes Enum[] support for the EnumType.

6). I have done some little updates and fixes to code in the mcs tree.

What's next?

In the following days I will write a detailed status report on the status of the Design-Time code. I will start maintaining a list of concrete tasks that have to be completed and continue working on those.