Microsoft ADO Ext. 2.8 for DDL and Security | Where did it go?

D

David W. Fenton

O.K., that's a valid point. So what's your opinion on why ADO was
deprecated?

Because it was COM-based and therefore had to be majorly revised to
work in .NET. Thus, classic ADO was orphaned.

Why was it deprecated for general use in Access?

I don't know that it *is* deprecated, except for Jet data.

Why was it deprecated for Jet data?

Because it's bloody obvious that DAO is the superior interface for
Jet data.

And once you're using ODBC to work with server data, you might as
well use DAO.
Explanations of his theory about ADO's deprecation (the word
'failure' doesn't seem quite right but YMMV) can be found here:

http://groups.google.com/group/comp.databases.ms-access/msg/7bb73e0
7f2220433

http://groups.google.com/group/comp.databases.ms-access/msg/6240845
fa7598fe0

[Google Groups now requires a logon! Well, if I didn't already have
one, I think I'd quit using it]

Both those articles seem to me to be about deprecation of ADPs, not
ADO. While the abandonment of ADPs certainly removes one of the few
contexts in which ADO shines, that isn't the same thing as direct
deprecation of ADO. I'm not sure that MS really officially
deprecates ADO for use with Access. I think they de facto downplay
it, especially in comparison to the halcyon days after the
introduction of Access 2000, whenever everybody in the Access groups
was posting in the newsgroups saying how they were planning to learn
ADO because it was obviously the next great thing from MS and the
wave of the future, blah blah blah.
Note that he is still a fan of ADO for many situations.

Working with SQL Server, it has a number of marvelously useful
features. Otherwise, not so much.
 
J

James A. Fortune

David said:
Because it was COM-based and therefore had to be majorly revised to
work in .NET. Thus, classic ADO was orphaned.

The point of COM was to provide an interface, essentially handles into
the object model, including methods, of the COM enabled software. So
ADO and COM are both basically interfaces.

From:

http://en.wikipedia.org/wiki/Component_Object_Model

"However, COM objects can still be used with all .NET languages without
problems."

and

"It is likely that the characteristics of COM make it most suitable for
the development and deployment of desktop applications, for which it was
originally designed."

and

"These malware attacks mostly depend on ActiveX for their activation and
propagation to other computers."

So the point that COM has negatives for something meant to go beyond the
desktop has merit. When you think about it, opening up an interface to
the object model on the internet is akin to bringing back America's Wild
West. The fact that the ADO interface and ADODB have issues when
extended to the internet is a good reason to keep them from becoming
universal tools.
Why was it deprecated for general use in Access?

I don't know that it *is* deprecated, except for Jet data.

I agree that I should phrase that differently. As more users use SQL
backends, "general use" will mean something entirely different.
Why was it deprecated for Jet data?

Because it's bloody obvious that DAO is the superior interface for
Jet data.

I think we'll have to disagree on how obvious it was to Microsoft back then.

From (cited earlier in the thread):

http://msdn.microsoft.com/en-us/library/ms811450.aspx

"In OLE DB, a service is implemented as a controlling object that
aggregates the native object exposed by the data store. When the
application requests an interface that represents some set of
functionality natively supported by the data store, the service returns
the data store's native interface and the application interacts with the
data store directly. When the application requests some set of
functionality not supported by a native interface on the data store, the
service can provide a standard implementation of that functionality,
interacting with the data store through the same native interfaces
exposed to the application. In this manner, the application always gets
the most direct, efficient path to the data. Whether the functionality
is implemented natively by the data store or through an external service
is completely transparent to the application."

It looks like Microsoft thought that their "Recordset Automation"
interface would not slow down things much, especially for methods that
already exist in the native technology. At least that's the way it
appeared to me when I read it.
And once you're using ODBC to work with server data, you might as
well use DAO.
O.K.
Explanations of his theory about ADO's deprecation (the word
'failure' doesn't seem quite right but YMMV) can be found here:

http://groups.google.com/group/comp.databases.ms-access/msg/7bb73e0
7f2220433

http://groups.google.com/group/comp.databases.ms-access/msg/6240845
fa7598fe0


[Google Groups now requires a logon! Well, if I didn't already have
one, I think I'd quit using it]

Both those articles seem to me to be about deprecation of ADPs, not
ADO. While the abandonment of ADPs certainly removes one of the few
contexts in which ADO shines, that isn't the same thing as direct
deprecation of ADO. I'm not sure that MS really officially
deprecates ADO for use with Access. I think they de facto downplay

One of the literal meanings of "deprecate" is to deemphasize or downplay
something so I suppose it depends on how official the deprecation becomes.
it, especially in comparison to the halcyon days after the
introduction of Access 2000, whenever everybody in the Access groups
was posting in the newsgroups saying how they were planning to learn
ADO because it was obviously the next great thing from MS and the
wave of the future, blah blah blah.

Nobody was happy with the way Microsoft tried to ply all this on
everyone. Bits and pieces make sense, but it seems that Microsoft for
some reason doesn't want us to know the full story. For the last
several years Microsoft has been reacting to other technology threats,
sometimes poorly, but I am still not satisfied with the explanations of
what happened. Besides, Access is still COM based. Wouldn't it have
been possible for Microsoft to keep up progress with ADODB in Access
until it eventually got XML based and shed COM? Do they need the entire
Access team to work on XSLT to get that right?
Working with SQL Server, it has a number of marvelously useful
features. Otherwise, not so much.

I agree. DAO for Access/Jet backends and ADODB for SQL backends seems
to be the mantra unless your circumstances are special. Of course, I
have a distaste for mantras in general (without taking this sentence as
a mantra).

James A. Fortune
(e-mail address removed)
 
D

David W. Fenton

The point of COM was to provide an interface, essentially handles
into the object model, including methods, of the COM enabled
software. So ADO and COM are both basically interfaces.

From:

http://en.wikipedia.org/wiki/Component_Object_Model

"However, COM objects can still be used with all .NET languages
without problems."

and

"It is likely that the characteristics of COM make it most
suitable for the development and deployment of desktop
applications, for which it was originally designed."

ADO is a COM interface.
and

"These malware attacks mostly depend on ActiveX for their
activation and propagation to other computers."

ActiveX is another name for COM.
So the point that COM has negatives for something meant to go
beyond the desktop has merit.

This is one of the reasons COM has been abandoned in favor of .NET,
because .NET makes it easier to create secure code.
When you think about it, opening up an interface to
the object model on the internet is akin to bringing back
America's Wild West. The fact that the ADO interface and ADODB
have issues when extended to the internet is a good reason to keep
them from becoming universal tools.

I don't think it has anything at all to do with the Internet. The
insecurities of COM exist within a PC unconnected to any outside
network, since the COM interprocess communications are not secure.
I agree that I should phrase that differently. As more users use
SQL backends, "general use" will mean something entirely
different.

I don't think more people will be using SQL Server back ends. And I
have sneaking suspicion that something major will be in the works
sometime in the next couple of Access versions to make classic ADO
no longer relevant, even with SQL Server.
I think we'll have to disagree on how obvious it was to Microsoft
back then.

It was obvious to everyone. But MS purposefully chose to obfuscate
the facts in the interest of promoting their agenda.

[]
It looks like Microsoft thought

Microsoft is a company with 10s of thousands of employees. It does
not *have* thoughts.
that their "Recordset Automation"
interface would not slow down things much, especially for methods
that already exist in the native technology. At least that's the
way it appeared to me when I read it.

It is idiotic to expect a generic translation layer to be as fast as
a native interface.

[]
Nobody was happy with the way Microsoft tried to ply all this on
everyone. Bits and pieces make sense, but it seems that Microsoft
for some reason doesn't want us to know the full story.

The full story for Jet was clear from the very beginning -- ADO was
inappropriate as the default interface layer for Jet data, however
much of an improvement it might have been for SQL Server.
For the last
several years Microsoft has been reacting to other technology
threats, sometimes poorly, but I am still not satisfied with the
explanations of what happened. Besides, Access is still COM
based.

As is all of Office and all of Windows.
Wouldn't it have
been possible for Microsoft to keep up progress with ADODB in
Access until it eventually got XML based and shed COM? Do they
need the entire Access team to work on XSLT to get that right?

What does XML have to do with anything? You're once again confusing
technologies that are completely unrelated.

[]
 
B

Brendan Reynolds

Wouldn't it have been possible for Microsoft to keep up progress with
ADODB in Access until it eventually got XML based and shed COM?

Well, this can only be speculation on my part, of course, as I am not privy
to those decisions, but the way it looks to me is that now that the Access
team have their own private version of JET they need their own private data
access interface, as they can no longer depend on other teams to do that
work for them. They had to choose between ADO and DAO as their interface to
ACE, which is based on JET. That seems like a no-brainer to me. Why would
they choose the generic interface rather than the native one?

I'm not sure what XML has to do with this discussion. XML has it's uses but
I don't think it's ever going to replace JET, SQL Server, and other database
engines, and even if it did, I'm not sure how that would bring Access any
closer to "shedding COM".
 
D

david

Which, in a round-about way, brings us to the future of .NET.

ADO used .COM for the 'public' and the 'private' interface: it was
..COM on both sides. DAO (a .COM public interface) still uses a
Win32 API to interface with the new Jet Engine. Why, if MS thinks
..NET is such a great thing, isn't more of Windows and Jet 5 built with
..NET? It looks to me as if MS is pulling back from .NET a bit: it will
be interesting to see where they take that in the future.

(david)
 
J

James A. Fortune

david said:
Which, in a round-about way, brings us to the future of .NET.

ADO used .COM for the 'public' and the 'private' interface: it was
.COM on both sides. DAO (a .COM public interface) still uses a
Win32 API to interface with the new Jet Engine. Why, if MS thinks
.NET is such a great thing, isn't more of Windows and Jet 5 built with
.NET? It looks to me as if MS is pulling back from .NET a bit: it will
be interesting to see where they take that in the future.

(david)

Those are great comments. I took it for granted that Office would be
converted from COM. I'll have to wait and see now.

I like that theory. What's the future of ADODB overall?

The wording "XML based" was based on the assumption that Office would be
converted to something that doesn't use COM. It's the most logical path
if the conversion is ever made.

James A. Fortune
(e-mail address removed)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top