Windows Forms

Windows Forms is the name given to the graphical application programming interface (API) included as a part of Microsoft's .NET Framework, providing access to the native Microsoft Windows interface elements by wrapping the existing Windows API in managed code. While it is seen as a replacement for the earlier and more complex C++ based Microsoft Foundation Class Library, it does not offer a paradigm comparable to model–view–controller. Some after-market and third party libraries have been created to provide this functionality. The most widely used of these is the User Interface Process Application Block, which is released by the Microsoft patterns & practices group as a free download that includes the source code for quick start examples.

History and future
Just like AWT, the equivalent Java API, Windows Forms was an early and easy way to provide GUI components to the .NET Framework. Windows Forms is built upon the existing Windows API and some controls merely wrap underlying Windows components.

The Windows Presentation Foundation addresses these problems by providing a much more platform-independent way of designing graphical user interfaces. Windows Forms has been in effect superseded by WPF (and its associated GUI declarative language called XAML). Since WPF is relatively new, it is unclear if Windows Forms will continue to be improved in future .NET releases.

Architecture
A Windows Forms application is an event-driven application supported by Microsoft's .NET Framework. Unlike a batch program, it spends most of its time simply waiting for the user to do something, such as fill in a text box or click a button.

Alternative implementation
Mono is a project led by Novell (formerly by Ximian) to create an Ecma standard compliant .NET compatible set of tools.

As of 13 May 2008, Mono's System.Windows.Forms 2.0 is API complete (contains 100% of classes, methods etc. in Microsoft's System.Windows.Forms 2.0); also System.Windows.Forms 2.0 works natively on Mac OS X.