Udostępnij za pośrednictwem


Why System.design.dll?

Someone recently asked me why we separated out System.Design.dll from System.dll and System.Drawing.Design.dll from System.Drawing.dll. They are essentially trying to decide how to factor their assemblies… In general fewer, larger assemblies are better from a load time perspective if most of the functionality will be loaded. There is a per-assembly overhead. But of course, factoring functionality into different assemblies is good from a versioning, identity and deployment point of view.

Anyway, Brian Pepin gives the history here… I thought you’d enjoy it.. Notice I think that 2 is much more important than 1…

1)       We wanted to reserve the right at a later date of shipping just a “runtime” redist that was lighter weight. System.Design would only go in a heavier SDK Redist.

a.       In order to do this, we placed all “interface apis” in System while the implementations of these apis we placed in System.Design. In this regard, System behaves a little like a header file for design time apis.

2)       Designers are often cross-discipline chunks of code. The Windows Forms designer may rely on System.Data or System.Xml, but we wouldn’t want to have those assemblies referenced by System.Windows.Forms.

Comments

  • Anonymous
    November 11, 2004
    I would like to some guidelines regarding design-time-only code. Many custom control libraries I have seen (including ones I have written in the past) have design-time code built in.

    It took me a while to realize you could move the designers/type editors/etc. to an separate assembly without referencing that assembly explicitly.

  • Anonymous
    November 11, 2004
    Reasons 1 and 2 are actually the same reason. At some point if you want a lightweight runtime redist you need a decoupling both from the designer classes, and from everything they depend on.

  • Anonymous
    November 12, 2004
    My question would be - why is all the good stuff private - eg CompositionUI!

  • Anonymous
    November 14, 2004
    The comment has been removed

  • Anonymous
    November 30, 2004
    The comment has been removed

  • Anonymous
    February 14, 2005
    Access denied attempting to launch a DCOM Server DCOM was unable to communicate with the computer MATRIX using any of the configured protocols. The driver has detected that this HID keyboard has bad firmware. It is issuing redundant report packets....

  • Anonymous
    June 01, 2009
    PingBack from http://portablegreenhousesite.info/story.php?id=10633

  • Anonymous
    June 12, 2009
    PingBack from http://greenteafatburner.info/story.php?id=1732

  • Anonymous
    June 13, 2009
    PingBack from http://outdoordecoration.info/story.php?id=1893

  • Anonymous
    June 16, 2009
    PingBack from http://workfromhomecareer.info/story.php?id=8933

  • Anonymous
    June 16, 2009
    PingBack from http://fixmycrediteasily.info/story.php?id=10237