Deciding Which Technologies and Tools To Use
When designing your application, you may need help choosing between different technologies or approaches. This page summarizes the choices and provides links to more information about application development with Visual Studio and the .NET Framework.
What Do You Want to Do with Visual Studio and the .NET Framework? Create a …
With a User Interface
-
Applications - for help deciding between Windows Forms and Web Forms, see Choosing Between Windows Forms and Web Forms. Additional details can be found on the following pages:
-
Controls - for more information, see Developing Windows Forms Controls at Design Time or ASP.NET Web Server Controls (Visual Studio)
-
Windows Forms Controls - for details, see Windows Forms Controls by Function
-
Web server controls - for details, see Working with Web Server Controls
-
HTML server controls - for details, see HTML Server Controls
-
Web user control - for details, see ASP.NET User Controls Overview
-
Web custom control - for details, see Developing Custom ASP.NET Server Controls
-
-
Server-Based Components
-
Windows services - for details, see Monitoring Windows Services
-
Processes - use the Monitoring component - for details, see Monitoring and Managing Windows Processes
-
PerformanceCounter - for details, see Monitoring Performance Thresholds
-
EventLog - for details, see Logging Application, Server, and Security Events
-
File system - for details, see Reacting to File System Events
-
Active Directory - for details, see System.DirectoryServices Namespace Overview
-
Messaging component - for details, see Using Messaging Components
-
Timers on the server - for details, see Creating Timer-Based Server Tasks
-
Timers on the client - for details, see Timer Component (Windows Forms)
-
Without an Interface
Executable
-
Command-line application - for details, see Console Application Template
-
Windows service (formerly known as an "NT service") - a long-running Windows executable - for details, see Windows Service Applications
Library
-
XML Web service - XML Web services are applications that can exchange interoperable messages in a loosely coupled environment, using standard protocols such as HTTP, XML, XSD, SOAP and WSDL. XML Web services can be accessed from a Web application, a Windows desktop application, or another XML Web service - for details, see Programming the Web with XML Web Services. To learn more about development with Web services in the Distributed System Designers, which are part of Visual Studio Team Edition for Architects, see Overview of ASP.NET Applications on Application Diagrams.
-
.NET component - for details, see Component Authoring
For a step-by-step example, see Walkthrough: Creating a Distributed Application and Designing Web Services Walkthroughs.
Develop Windows CE- and Windows Mobile-based rich-client applications that run on devices such as Smartphones and Pocket PCs. For more information, see Smart Device Development and Design Considerations for Smart Device Development.
If you are targeting the browser on a cell phone, PDA (personal digital assistant), or pager, then use Mobile Web Forms - for details, see Creating ASP.NET Mobile Web Pages.
If you ...
-
Are navigating between multiple, discrete tables of results ...
-
Are manipulating data from multiple sources (for example, from different databases, from XML files, spreadsheets, and so on, all in the same dataset) ...
-
Are exchanging data with other applications ...
-
Are reusing the same set of rows and intend to cache them (for example, sorting, searching, and filtering cached results) ...
-
Are doing a lot of processing per row ...
-
Are manipulating the data using XML operations such as XML transforms or XPath ...
-
Want ease of programming ...
Then use a dataset - for details, see Datasets in Visual Studio Overview.
Otherwise, use direct access (data commands and data readers) - for details, see Recommendations for Data Access Strategies.
For example, you would use data commands and data readers for:
-
Performing DDL commands
-
Performing updates or deletes based on a selection criteria
-
Programmatically inserting records that are not based on user interaction
-
Calling stored procedures to execute logic inside the server
-
Retrieving scalar values from the database
-
Processing a set of results in a forward only manner without updating and without caching the results
-
Processing a set of results too large to fit in memory
Web-based Data Applications
For details, see Creating Visual Web Developer Data Applications.
XML Web services are applications that can exchange interoperable messages in a loosely coupled environment, using standard protocols such as HTTP, XML, XSD, SOAP and WSDL. An XML Web service can be accessed from desktop applications (Windows Forms), Web applications, or other XML Web services. For details, see Programming the Web with XML Web Services.
Windows Forms-based Data Applications
Use Windows Forms - for details, see Creating Client Data Applications.
If you ...
-
Are performing DDL commands ...
-
Are calling stored procedures to execute logic inside the server ...
-
Are retrieving scalar values from the database ...
-
Are processing a set of results in a forward-only manner without displaying, updating, or caching the results ...
-
Are processing a set of results too large to fit in memory ...
Then use direct access (data commands and data readers) - for details, see Recommendations for Data Access Strategies
Otherwise, use a dataset - for details, Datasets in Visual Studio Overview.
For example, you would use a dataset if you:
-
Are binding results to a form to let the user view, insert, update, or delete records
-
Are navigating between multiple tables of results
-
Are manipulating data from multiple sources (for example, from different databases, from XML files, spreadsheets, and so on, all in the same dataset)
-
Are exchanging data with other applications
-
Are reusing the same set of rows (for example, sorting, searching, and filtering retrieved results)
-
Are manipulating the data using XML operations such as XML transforms or XPath
Smart Device-based Data Applications
For details, see Data in Managed Device Projects.
Office-based Data Applications
For details, see Data in Office Solutions.
There are several walkthroughs to help you create an XML Web service. For details see Creating and Accessing XML Web Services Walkthroughs. Also see Accessing XML Web Services in Managed Code.
For a step-by-step example of accessing an XML Web service from a Windows application, see Walkthrough: Calling XML Web Services from Windows Forms.
For a step-by-step example of accessing an XML Web service from a Windows application, see Walkthrough: Accessing an XML Web Service Using Visual Basic or Visual C#.
For a step-by-step example of designing and evaluating the deployment of XML Web services in the Distributed System Designers, see Introductory Distributed System Designer Walkthroughs.
Microsoft Visual Studio 2005 Tools for the Microsoft Office System enables you to customize Microsoft Office documents and Microsoft Office Outlook using managed code.
For details about creating solutions using Office applications, see Common Tasks in Office Programming.
For details about working with Windows Forms controls (including securing applications, setting properties, handling events, anchoring controls, and so forth), see Windows Forms Controls.
For help deciding which way to create a control, see Control Type Recommendations.
Windows Forms Controls
For details, see Developing Windows Forms Controls at Design Time.
-
If you want to add to the functionality of an existing Windows Forms control, inherit directly from the Windows Forms control - for a step-by-step example, see Walkthrough: Inheriting from a Windows Forms Control with Visual Basic or Walkthrough: Inheriting from a Windows Forms Control with Visual C#.
-
If you want to combine existing controls into a new control, inherit from the UserControl class - for details, see How to: Inherit from the UserControl Class.
-
If you want to create a control from scratch, inherit from the Control class - for details, see How to: Inherit from the Control Class.
Web Controls
For details, see ASP.NET Web Server Controls (Visual Studio).
COM
-
Expose your .NET component to COM - for details, see Exposing .NET Framework Components to COM
-
Expose your COM component to the .NET Framework - for details, see Exposing COM Components to the .NET Framework
Components
-
XML Web service, which is technically not a component, but can be called from Windows applications, Web applications, or other XML Web services - for details, see Programming the Web with XML Web Services
-
.NET component - for details, see Component Authoring
For help deciding whether you need a macro, add-in, or wizard, see The Spectrum of Visual Studio Automation. In addition, also see Choosing the Appropriate Automation Approach.
-
Macro (Visual Basic only) - for details, see Automating Repetitive Actions by Using Macros
-
Add-in - for details, see How to: Create an Add-in
-
Wizard - for details, see Walkthrough: Creating a Wizard
For details, see Introduction to Project Extensibility
For advanced customization of the development environment, such as creating a new project type or a customized editor - see the " Visual Studio Integrator Program (VSIP)" section of The Spectrum of Visual Studio Automation
To learn more about the Visual Studio build options available to you, see Building in Visual Studio.
For general information about debugging in Visual Studio, see Debugger Roadmap.
For details, see:
For details, see Tracing and Instrumenting Applications.
For help choosing which deployment project type to use, see Choosing a Deployment Strategy and Setup and Deployment Projects.
Visual Studio solution. For details, see Publishing ClickOnce Applications.
Web Application For details, see Deployment of a Web Setup Project.
Web Services For details, see How to: Deploy XML Web Services in Managed Code.
Windows Applications For an example, see Walkthrough: Deploying a Windows-based Application.
NET component. For details, see Merge Module Projects. For a step-by-step example, see Walkthrough: Installing Shared Components Using Merge Modules.
ActiveX control For details, see Cab File Projects. For a step-by-step example, see How to: Create or Add a Cab Project.
Evaluate the deployment of an application system into a target datacenter using Visual Studio Team Edition for Architects, see Walkthrough: Validating an Application System for Deployment and Evaluating System Deployment with Deployment Designer.
Visual Basic. For details, see Upgrading Applications Created in Previous Versions of Visual Basic.
C#. For details, see Upgrading Visual C# Applications to Visual Studio 2005
C++. For details, see Porting and Upgrading Programs
J#. For details, see Visual J# Upgrading Reference
J++. For details, see How to: Convert a Visual J++ Project