Introduction
Many factors can impact application performance, scalability, and security in the .NET environment. Developers and system architects frequently look first to the database to improve critical attributes of their applications. However, the key to unlocking the best performance from your .NET application may lie not in the database, but rather in the data connectivity layer that connects your application to your database. This is especially true for .NET applications connecting to Oracle, Sybase or DB2.
Building applications in .NET gives you a couple of different options when it comes to how you implement the database access layer. First, you have the non-managed code providers from many of the major database vendors, and second, you have fully-managed providers, like those available from third party vendors, like DataDirect Technologies (http://www.datadirect.com). The difference between managed and non-managed providers can make a significant difference in many areas, as we’ll show in this paper. Application performance, scalability, installation support and other areas are all impacted by the decisions on what provider layer you implement. Informed decisions at design-time can pay huge dividends as your application moves into development, deployment, and ongoing management. This paper will focus on ADO.NET and how you can best implement it in your environment, what things there are to consider as you select your data connectivity middleware, and how your choices impact the development, deployment, and production-use of your application.
Overview of the Environment
Building your application makes it necessary to take into account not only the application architecture for the development process, but also the steps to deploy your application, supporting it in the field after it goes into production and how well your application works with other applications that it may be co-existing with on systems where it is installed. ADO.NET is part of the .NET Framework. Using ADO.NET as your access library means you can use a common programming model from within Visual Basic, C# or J#. There are providers and services as part of ADO.NET – providers are the specific access components for different data stores. For example, if you’re working with Oracle, DB2, Sybase or SQL Server, you’ll have a choice of providers for each of those. Working through ADO.NET, you’ll be able to access those systems using the common library. Once you have the providers you need for your particular database, you’ll reference these in your application project and will be able to connect to, query and work against the database platform of choice.
ADO.NET Provider Selection
Selecting the right model when setting up your project can be a daunting task, but the payoff can be significant. Not all providers are architected the same way, and choosing wisely at design time can save you time, energy and headaches later. When you’re considering the components to use, you should consider several factors including the database platform you’ll be working with, since this will dictate your provider options. You’ll also need to consider carefully whether you have requirements that move beyond the basic data access and include things like distributed transactions, multiple provider installations on a common client, and multiple platform interoperability – each of these plays a role in your selection of the best provider for your installation. Be sure to consider carefully the different factors that will be pertinent to your own installations based on the requirements of your systems. The selection table in this whitepaper will help you determine whether your specific situation has requirements that will dictate one approach over another.
Benefits of Choosing the Right ADO.NET Provider
By using the right ADO.NET providers with your database, you can alleviate the requirement to know specifics of talking to your database and pay more attention to your application. By using key tools and providers with ADO.NET you can further make sure your environment supports your critical requirements (see Table 1). In addition, careful selection of your provider can mean easier migration between platforms, improved performance tuning abilities and increased reliability and security needs for your application. Further, by using a managed code solution, you can assure the highest level of performance, reliability and security for your applications when working with that provider.