This API is a part of .NET Framework 3.0

Windows Forms is the name given to the graphical user interface 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 address this issue. 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.

Contents

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 address 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[1][2][3].

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 (control).

Three types of progress bars found in Windows Vista, common Windows Forms.

Windows Forms is single-threaded. This is partially because the underlying Windows API restricts functions on a particular Window handle to a single thread. Calling Windows Forms functions from another thread can result in unpredictable behavior including software crashes. Microsoft provides methods such as Control.Invoke so that other threads can delegate operations to the main application thread.

Hello world example

The following is a simple C# program using Windows Forms.

using System;
using System.Windows.Forms;
 
public class HelloWorld
{
   public static void Main()
   {
      MessageBox.Show("Hello world!");
   }
}

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[citation needed].

See also

References

  1. ^ Smith, Josh (2007-09-05). "WPF vs. Windows Forms". Retrieved on 2008-07-26.
  2. ^ Harsh, Mike (2004-09-20). "WPF vs. Windows Forms". Retrieved on 2008-07-26. "If you’re targeting only Windows XP and Longhorn, Avalon is the way to go. But Windows Forms is still the only way to write managed UI that will run on Win 2K and below"
  3. ^ Chand, Mahesh (2008-05-08). "Future of Windows Forms and ASP.NET". Retrieved on 2008-07-26.

External links



Comments


No comments have been added.



Your name:

City:

Country:

Your comments:

Security check *
(Please enter the number into adjoining box)