[Mono-dev] WinForms Design-Time Progress Report

Ivan N. Zlatev contact at i-nz.net
Sat Feb 17 21:18:49 EST 2007


Introduction

As some of you might know I've been working on the Windows.Forms
Design-Time implementation for Mono. Basically I've started
researching on the topic last summer and had some code done. It took
me a while to get my head around the thing and to compile the
documentation in my head to something that actually makes more sense.
:-) For the past few months I've been busy with university and
related. I decided to revamp my efforts a few weeks ago and started
refactoring and reviewing my old code, which lead to purging my old
repository and to a new code base.

The idea is not just to implement a hacked up windows forms designer,
but rather to build the ground for porting or even best case scenario
- for simply running an already existing one. This includes
implementing stuff in the System.Design assembly in the
System.ComponentModel.Design and System.Windows.Forms.Design
namespaces. With the .Net 2.0 framework most of the design-time
behaviour is part of the class library itself - the designers, the
serializers and the host.

Status

Currently I have almost achieved my first milestone (called "Monkey"
:-) ). It includes the .Net 1.1-ready core designers stack :
ComponentDesigner, ControlDesigner, ParentControlDesigner,
ScrollableControlDesigner, DocumentDesigner and .Net 2.0 DesignSurface
(the host). I've had lots of "fun" working on the Drag and Drop cr*p
and those annoying rectange trackers. Those althought not being
perfect, work and could be refactored if there is need to. The
deliverables from this milestone are as already mentioned the core
designers stack and host and a small designer to allow testing of the
hosting, dnd, selection, resizing, etc. A functional screenshot:

http://files.i-nz.net/files/software/mwf-designer-milestone-monkey.png

The Future

The next milestone "Monkey Returns" will target at the implementation
of the serializers: DesignerLoader, BasicDesignerLoader,
CodeDomDesignerLoader and introduce a bugfixing cycle for Design-Time
and MWF stuff in Mono. I am expecting problems with the Design-Time
behaviour in the class library. I've already sent a few patches
related to that last year, but I am expecting more issues.

With the next milestone "Monkey's Revenge" I am hoping to update the
designers to 2.0 and possibly refactor SharpDevelop's FormDesigner
Addin as a standalone application.

I just hope I will have enough free time. I might also propose a
winforms designer project for this year's Google SoC - what do you
think?

I keep track of the code using Trac at http://monodt.i-nz.net .

P.S: Excuse me for the long e-mail >_<
-- 
Ivan N. Zlatev

Web: http://www.i-nZ.net
"It's all some kind of whacked out conspiracy."



More information about the Mono-devel-list mailing list