Menu

Welcome

Vincent Thorn

This is ambitious project - evolution of WinForms library into declarative GUI!

We already have one branch of evolution - WPF. Practice of WPF shown that declarative way of building GUI has many advantages. Unfortunately WPF failed its mission and become overengineered bunch of technologies with slow UI and clumsy "binding sublanguage". Not saying "declarativeness" didn't help WPF become "multiplatform" GUI. WinForms-Next will be same declarative, but another way - keeping library simple, dynamic and flexible.
Since we already have sample (WPF), ideas of WinFormsNext will frequently repeat or oppose similar ones in WPF. Take it easy, "bad sample is also sample".

Let's see some (draft) ideas behind WFN:

  • Custom textual language to declare interface (working title "Sketchy"). XML has too much verbosity, inconvenient for simple tasks and clumsy tools to work with XML from code. JSON doesn't suit for UI at all. So yes, new language. (big TODO topic)
  • "Declaration is not action". In Sketchy you declare what you see, in code behind - what control does. Bringing code into declaration is bad idea.
  • Lightweight UI designer. Ideally if designer can be written on any language, without necessarity even for .NET platform or executing control's code.
  • Dynamic UI. Ideally if Sketchy text will be available to end user for customizations. Or even changed at runtime. Use "declarativeness" full way!
  • Styles. Brilliant idea from HTML world, but very limited implementation in WPF. Styles need wider adoption, control independency, multiple inheritance, union, etc.
  • Mixins. Just another way for UI construction, more flexible and easy to use.
  • Customization of control look. Not just "draw-it-all" Paint() method, but many end-points (virtual functions or delegates) which allow custom drawing of control elements. No need to inherit control - just "customization plugins", easy attachable to existing controls.