What are the advantages and drawbacks of using ADO.NET?
.NET Interview Questions and Answers
(Continued from previous question...)
What are the advantages and drawbacks of using ADO.NET?
Pros
====
ADO.NET is rich with plenty of features that are bound to impress even the most skeptical of programmers. If this weren’t the case, Microsoft wouldn’t even be able to get anyone to use the Beta. What we’ve done here is come up with a short list of some of the more outstanding benefits to using the ADO.NET architecture and the System.Data namespace.
* Performance – there is no doubt that ADO.NET is extremely fast. The actual figures vary depending on who performed the test and which benchmark was being used, but ADO.NET performs much, much faster at the same tasks than its predecessor, ADO. Some of the reasons why ADO.NET is faster than ADO are discussed in the ADO versus ADO.NET section later in this chapter.
* Optimized SQL Provider – in addition to performing well under general circumstances, ADO.NET includes a SQL Server Data Provider that is highly optimized for interaction with SQL Server. It uses SQL Server’s own TDS (Tabular Data Stream) format for exchanging information. Without question, your SQL Server 7 and above data access operations will run blazingly fast utilizing this optimized Data Provider.
* XML Support (and Reliance) – everything you do in ADO.NET at some point will boil down to the use of XML. In fact, many of the classes in ADO.NET, such as the DataSet, are so intertwined with XML that they simply cannot exist or function without utilizing the technology. You’ll see later when we compare and contrast the “old” and the “new” why the reliance on XML for internal storage provides many, many advantages, both to the framework and to the programmer utilizing the class library.
* Disconnected Operation Model – the core ADO.NET class, the DataSet, operates in an entirely disconnected fashion. This may be new to some programmers, but it is a remarkably efficient and scalable architecture. Because the disconnected model allows for the DataSet class to be unaware of the origin of its data, an unlimited number of supported data sources can be plugged into code without any hassle in the future.
* Rich Object Model – the entire ADO.NET architecture is built on a hierarchy of class inheritance and interface implementation. Once you start looking for things you need within this namespace, you’ll find that the logical inheritance of features and base class support makes the entire system extremely easy to use, and very customizable to suit your own needs. It is just another example of how everything in the .NET framework is pushing toward a trend of strong application design and strong OOP implementations.
Cons
====
Hard as it may be to believe, there are a couple of drawbacks or disadvantages to using the ADO.NET architecture. I’m sure others can find many more faults than we list here, but we decided to stick with a short list of some of the more obvious and important shortcomings of the technology.
* Managed-Only Access – for a few obvious reasons, and some far more technical, you cannot utilize the ADO.NET architecture from anything but managed code. This means that there is no COM interoperability allowed for ADO.NET. Therefore, in order to take advantage of the advanced SQL Server Data Provider and any other feature like DataSets, XML internal data storage, etc, your code must be running under the CLR.
* Only Three Managed Data Providers (so far) – unfortunately, if you need to access any data that requires a driver that cannot be used through either an OLEDB provider or the SQL Server Data Provider, then you may be out of luck. However, the good news is that the OLEDB provider for ODBC is available for download from Microsoft. At that point the down-side becomes one of performance, in which you are invoking multiple layers of abstraction as well as crossing the COM InterOp gap, incurring some initial overhead as well.
* Learning Curve – despite the misleading name, ADO.NET is not simply a new version of ADO, nor should it even be considered a direct successor. ADO.NET should be thought of more as the data access class library for use with the .NET framework. The difficulty in learning to use ADO.NET to its fullest is that a lot of it does seem familiar. It is this that causes some common pitfalls. Programmers need to learn that even though some syntax may appear the same, there is actually a considerable amount of difference in the internal workings of many classes. For example (this will be discussed in far more detail later), an ADO.NET DataSet is nothing at all like a disconnected ADO RecordSet. Some may consider a learning curve a drawback, but I consider learning curves more like scheduling issues. There’s a learning curve in learning anything new; it’s just up to you to schedule that curve into your time so that you can learn the new technology at a pace that fits your schedule.
(Continued on next question...)
Other Interview Questions
- What is .NET?
- How many languages .NET is supporting now?
- How is .NET able to support multiple languages?
- How ASP .NET different from ASP?
- What is smart navigation?
- What is view state?
- How do you validate the controls in an ASP .NET page?
- Can the validation be done in the server side? Or this can be done only in the Client side?
- How to manage pagination in a page?
- What is ADO .NET and what is difference between ADO and ADO.NET?
- Observations between VB.NET and VC#.NET?
- Advantages of migrating to VB.NET ?
- Advantages of VB.NET
- Using ActiveX Control in .Net
- What is Machine.config?
- What is Web.config?
- What is the difference between ADO and ADO.NET?
- What is the difference between VB and VB.NET?
- What is a Strong Name?
- What is a Manifest?
- Creating a Key Pair?
- What is the difference between "using System.Data;" and directly adding the reference from "Add References Dialog Box"?
- What is GAC?
- What is a Metadata?
- What is managed code and managed data?
- What is .NET / .NET Framework?
- What is Reflection?
- What is "Common Type System" (CTS)?
- What is "Common Language Specification" (CLS)?
- What is "Common Language Runtime" (CLR)?
- What are Attributes?
- What are the Types of Assemblies?
- What is an Intermediate language?
- ASP.NET Authentication Providers and IIS Security
- What is the difference between ASP and ASP.NET?
- Using COM Component in .Net
- What is an assembly?
- What is a Web Service?
- webFarm Vs webGardens
- What is the difference between a namespace and assembly name?
- What’s a Windows process?
- What’s typical about a Windows process in regards to memory allocation?
- Explain what relationship is between a Process, Application Domain, and Application?
- What are possible implementations of distributed applications in .NET?
- What are the consideration in deciding to use .NET Remoting or ASP.NET Web Services?
- What’s a proxy of the server object in .NET Remoting?
- What are remotable objects in .NET Remoting?
- What are channels in .NET Remoting?
- What security measures exist for .NET Remoting in System.Runtime.Remoting?
- What is a formatter?
- Choosing between HTTP and TCP for protocols and Binary and SOAP for formatters, what are the trade-offs?
- What’s SingleCall activation mode used for?
- What’s Singleton activation mode?
- How do you define the lease of the object?
- Can you configure a .NET Remoting object via XML file?
- How can you automatically generate interface for the remotable object in .NET with Microsoft tools?
- What is Delegation?
- What is "Microsoft Intermediate Language" (MSIL)?
- Differences between Datagrid, Datalist and Repeater?
- I am constantly writing the drawing procedures with System.Drawing.Graphics, but having to use the try and dispose blocks is too time-consuming with Graphics objects. Can I automate this?
- How do you trigger the Paint event in System.Drawing?
- With these events, why wouldn’t Microsoft combine Invalidate and Paint, so that you wouldn’t have to tell it to repaint, and then to force it to repaint?
- How can you assign an RGB color to a System.Drawing.Color object?
- What class does Icon derive from? Isn’t it just a Bitmap with a wrapper name around it?
- Before in my VB app I would just load the icons from DLL. How can I load the icons provided by .NET dynamically?
- When displaying fonts, what’s the difference between pixels, points and ems?
- What is the difference between VB 6 and VB.NET?
- What are the authentication methods in .NET?
- What is Serialization in .NET?
- What’s the use of System.Diagnostics.Process class?
- Difference Abstract class and Interface
- re-clarification of object based:
- How to achieve Polymorphism in VB.Net?
- Difference between Class And Interface
- What doesu mean by .NET framework?
- What is assembly?
- What is namespaces?
- NET framework overview
- What is the base class of .NET?
- Explain assemblies.
- Name some of the languages .NET support?
- ADO.NET features? Benefits? Drawbacks?
- How many types of exception handlers are there in .NET?
- Difference between Panel and GroupBox classes?
- What is the base class of Button control?
- What is Response object? How is it related to ASP’s Response object?
- What is IIS? Have you used it?
- Main differences between ASP and ASP.NET.
- What are the advantages and drawbacks of using ADO.NET?
- Why The JavaScript Validation Not Run on the Asp.Net Button But Run SuccessFully On The HTML Button
- what is the difference between user control an custom control? advantages/disadvantages?
- What’s the difference between Response.Write() andResponse.Output.Write()?
- What is the use of ErrorProvider Control?
- What is CLR?
- What is Delegate and what is it used for ?
- How is meant by DLL ?
- Which DLL translate XML to SQL in IIS?
- Can anyone tell me about Secure Socket Layer? How to make use of the technology?
- What is the Differnce Between Response.write & response.output.Write
- Which dll is required to translate XML to SQL in IIS ?
- What is an interface and what is an abstract class? Please, expand by examples of using both. Explain why.
- What is serialization, how it works in .NET?
- What should one do to make class serializable?
- What exactly is being serialized when you perform serialization?
- How does output caching work in ASP.NET?
- What is connection pooling and how do you make your application use it?
- What are different methods of session maintenance in ASP.NET?
- What is Viewstate?
- Can any object be stored in a Viewstate?
- What should you do to store an object in a Viewstate?
- Explain how Viewstate is being formed and how it’s stored on client.
- What do you know about ADO.NET’s objects and methods?
- Explain DataSet.AcceptChanges and DataAdapter.Update methods.
- When we go for html server controls and when we go for web server controls?
- ASP.NET interview questions only (1)
- ASP.NET interview questions only (2)
- ASP.NET interview questions only (3)
|