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:
* Can load (in tabs) souce code produced by SharpDevelop 2.x and
Visual Studio 2k5. It is also able to save changes back to source
code.
* Has a PropertyGrid, a simple Toolbox and components dropdown list
* Maintains a user-modifiable References, which allows the user to
reference custom components.
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.