C# Application Types for Java Developers

C# application types include Windows Console applications, Windows Forms applications, ASP.NET Web applications, ASP.NET Web Service applications, Smart Device applications, ActiveX applications, and setup and deployment applications.

Console Applications

Console applications use standard command-line input and output for input and output instead of a form. Console applications use the System.IO class for handling input and output. You can use the class name in front of methods, such as System.IO.Console.WriteLine(), or include a using statement at the start of your program. Console applications are easy to create by using Visual Studio and other development environments that include any text editor, such as Notepad. For more information, see Introducing Visual Studio, Creating Console Applications (Visual C#), Hello World -- Your First Program (C# Programming Guide), or Main() and Command-Line Arguments (C# Programming Guide).

Windows Applications

Windows applications have the familiar graphical user interface of Windows with controls such as buttons and list boxes for input. The most visually stunning Windows applications are based on Windows Presentation Foundation.

Windows Forms are used to create basic graphical user interfaces in a RAD application environment. Windows Forms applications use classes in the System.Windows.Forms namespace. Forms applications are easy to create using Visual Studio and other development environments that include any text editor, such as Notepad. For more information about how to create a Windows application, see How to: Create a Windows Application Project, Creating ASP.NET Web Applications (Visual C#), or Creating ASP.NET Web Applications (Visual C#).

Silverlight Applications

Microsoft Silverlight is a cross-browser, cross-platform, and cross-device plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. For more information, see the Microsoft Silverlight web site.

ASP.NET Web Applications

ASP.NET applications are Web applications displayed in a Web browser, instead of on a console or in a forms application. ASP.NET applications use the System.Web namespace and classes such as System.Web.UI for handling input and output to and from the browser. You can use the class name in front of methods such as using System.Web.UI.HtmlControls; or include a using statement at the start of your program. ASP.NET applications are easy to create by using Visual Studio and other development environments that include any text editor, such as Notepad. For more information about how to create an ASP.NET application, see Visual Web Developer. For more information about how to create ASP.NET applications by using Visual Studio, see Overview of ASP.NET Applications on Application Diagrams. For more information about the ASP.NET, see ASP.NET Web Applications in the .NET Framework. For more information about how to debug an ASP.NET application, see Debugging ASP.NET and AJAX Applications and Debugging Preparation: ASP.NET Web Applications.

ASP.NET Web Service Applications

ASP.NET Web services can be accessed by using URLs, HTTP, and XML so that programs that run on any platform and in any language can access ASP.NET Web services. ASP.NET Web service applications can be displayed on a console in a form, or in a Web browser or a smart device. ASP.NET Web services applications use the System.Web and System.Web.Services namespace and classes. ASP.NET applications Web services are easy to create using Visual Studio and other development environments that include any text editor, such as Notepad. For more information about how to create a Web services application, see Accessing and Displaying Data (Visual C#) and How to: Create ASP.NET Web Service Projects. For more information about how to add ASP.NET Web Services to an existing project, see How to: Add a Web Service to an Existing Web Project in Managed Code. For more information about ASP.NET Web services, see Walkthrough: Creating and Using an ASP.NET Web Service in Visual Web Developer and Walkthrough: Creating a Web Service Using Visual Basic or Visual C#. For more information about how to debug an ASP.NET Web services application, see Debugging Preparation: XML Web Service Projects.

Other topics related to ASP.NET Web services include the following:

Smart Device Applications

Smart device applications run on mobile devices, such as PDAs and Smartphones. Smart device applications can be console applications, Windows Forms applications, or ASP.NET and Web clients and are displayed on a console, in a form, or in a Web browser. Smart device applications use the same namespaces and classes as the desktop applications. However, they use the Compact Framework rather than .NET Framework. Some versions of the development environment may support development for some or all of the C# application types on the mobile device.

Other topics related to ASP.NET Web services include the following:

ActiveX Controls

Similar to Java Beans, an ActiveX control is a component and equivalent to an "OLE Object" and Component Object Model (COM) Object. An ActiveX control, in the very simplest form, is a COM object that supports the IUnknown interface. ActiveX Controls are the primary architecture to develop programmable software components for reuse in a variety of different containers that range from Internet Explorer to software development tools, and end-user productivity tools. For more information about ActiveX Controls, see:

Setup and Deployment Applications

Visual Studio provides templates for deployment desktop, Web, and smart device setup and deployment projects. Different versions of the development environment may support setup and deployment for some or all of the C# application types on the desktop, on the Web, and for mobile devices. For more information, see:

See Also

Concepts

C# Programming Guide

Other Resources

Migrating to Visual C#

C# Code Examples for Java Developers

The C# Programming Language for Java Developers

Getting Started with Visual C#

Using the Visual C# IDE