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 an Application

With a User Interface

Without an Interface

Executable

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 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

Create a Distributed Application

For a step-by-step example, see Designing Web Services Walkthroughs.

Create a Smart Device Application

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.

Create a Data-centric Application

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

Language Integrated Query (LINQ)

LINQ builds query constructs into the Visual Basic and C# languages. For details, see Introduction to LINQ.

There are several LINQ providers:

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 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 Working with Data in Managed Device Projects.

Office-based Data Applications

For details, see Data in Office Solutions.

Create a Web Services Application

Windows Communication Foundation Web Services

To get started with Windows Communication Foundation Web services in Visual Studio, see Walkthrough: Creating and Accessing WCF Services.

XML Web Services

There are several walkthroughs to help you create an XML Web service. For details see Creating and Accessing Web Services Walkthroughs. Also see Accessing 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 a 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.

Create a Workflow Application

Windows Workflow Foundation is the programming model, engine, and tools for quickly creating workflow-enabled applications on Windows.

For an overview of the different types of workflow, see Windows Workflow Foundation Overview.

Create an Office Development Solution

Microsoft Visual Studio Tools for the Microsoft Office system (version 3.0) 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.

Create Custom Controls or Components

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.

COM

Components

Automate Tasks or Extend the Environment

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.

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

Build, Debug, or Test

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:

Profile an Application

For details, see Tracing and Instrumenting Applications.

Deploy an Application

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 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.

Upgrade from a Previous Version

Visual Basic. For details, see Upgrading Applications Created in Previous Versions of Visual Basic.

C++. For details, see Porting and Upgrading Programs

Learn about Features

What's New

What's New in Visual Basic

What's New in Visual C#

What's New in Visual Studio 2008

What's New in Deployment

What's New in Data

What's New in Smart Device Projects

Changes in Visual C++ 2005 and Earlier Editions

What's New in JScript 8.0?

What's New in Visual Studio Tools for Office

What's New in Visual Database Tools

What's New in ASP.NET and Web Development

What's New in the .NET Framework

Samples

Visual Basic Sample Applications

Visual C# Samples

Visual C++ Samples

.NET Framework Samples

Document-Level Samples

Smart Device Samples

See Also

Other Resources

.NET Framework Class Library in Visual Studio

Overview of the .NET Framework