Report

Well, I had my last exam on Friday and my flight back to Bulgaria on Sunday, so I had just a few hours on Saturday to work on my project. Still for the record here is my short report, which includes several decisions I have made.

The old code
Well as I already mentioned I have some old code, but unfrotunatly some of it feels really hackish now and is not covered by tests. I have decided to rework parts of the code and write a complete test coverage prior to developing any more, as described in my schedule for the next weeks.

Infrastructure

I got rid of the autotools infrastructure and currently the buid is managed by simple Makefile-s. Easier to work with from SlickEdit. :)

I have made the decision to work on a separate assembly Mono.Design (also Mono.Design.Test) with directory and file layout that matches the one of mcs. Once the code is ready for upstream I will change the namespaces of the classes and copy the files from the two directories System and System.Design to the respective System and System.Design assemblies' directories in mcs.


Testing Strategy

I am keeping everything in the Mono.Design namespace, which is a workaround for the conflicts running the tests and code in MSNET environment. The conflicts are caused by the dynamic nature of the Design-Time code, which loads designers and serializers from specific namespaces and assemblies. Also for my tests have a special build target "msnet" , which excludes the Mono.Design reference from the tests build, e.g.


#if !MS_NET
using Mono.Design;
#endif


A bit of coding

I wrote unit tests coverage for ComponentDesigner.