Re: Microsoft and Trust Take 2



before. I still don't get the Shell part, though.
VB needs typelibs, but .Net needs Interop
and "unsafe" code, as I understand it.

That is true, you will need to use interop. You don't need unsafe code I
believe, the definition of unsafe code as I understand it is the use of
pointers for direct memory access. My original point was the dot net can
handle these interfaces directly where VB needs a typelib or dll.

It seems safe to say that the whole Shell structure
is really pretty hokey, no matter what language one
is using. The design of Shell functionality is very
pasted-together. The fake integration of IE for
the Netscape battle left it somewhat of a mess.

VB has access to the Shell object, which is very
easy to use, though the Shell object itself is poorly
designed and not good for much.

But in general I don't see how you can criticize VB
for COM lackings. It's designed to handle COM objects
that are made compatible with it. And it can handle the
straight interfaces with typelibs. By comparison, look at the
mess that C++ uses just to get hold of a ShellFolderView:

http://blogs.msdn.com/oldnewthing/archive/2004/07/20/188696.aspx

The same thing can be done in a few lines of VB, or even
VBScript. (With one exception. Raymond Chen's code
returns the folder that currently has focus. The Shell
object itself doesn't wrap that, so VB needs other code
for that part. Which is a good example of the haphazardly
poor design of that whole Shell mess.)

I don't know a lot about .Net but it seems to me
that MS was deliberately trying to break COM in
..Net, not even providing a variant datatype. They have
Interop, but COM has been made specifically non-native.
In VB it was expected that people would pretty much
stick to VB-digestible COM objects and stay away from
the API. In .Net it seems that breaking COM was a
way to discourage involvement with the Windows system
altogether and direct people toward sandboxed applets.



There was an interesting article linked from
Slashdot the other day:

http://thebetaguy.com/exclusives/?postid=1029344029&title=microsoft-windows-
7-exclusive

I don't know whether this "beta guy" knows what
he's talking about. He didn't provide any evidence
for what he wrote. But what he's saying is that in
Windows 7 MS hopes to eliminate the "old" API altogether:

"In Windows 7, Microsoft will break from the Windows' norm by breaking
previous API compatibility, offering new API frameworks as a native
solution, and providing support for legacy frameworks (COM, ATL, .NET
Framework, etc) through monolithic libraries designed to provide the
functionality of all previous revisions of the modules in question. This
extends/replaces the WinSxS philosophy, providing every single function,
past and present, in fully comprehensive libraries. This should allow the
majority of legacy applications to run perfectly, while still retaining
native performance for applications compiled specifically with the Windows 7
platform in mind. It should also be possible for applications produced with
previous versions of Visual Studio to be directly recompiled into native
code using the new API frameworks."

The gist of that seems to be a description of Microsoft's
long time threat/dream - to block actual 3rd-party programming
altogether, sending everything through a filter layer. (As though
there weren't enough layers already.) He describes both COM
*and* .Net as "legacy". The implication from the above
blurb is that your .Net code *might* compile to the new
API, but that may be cold comfort if you're only able to
compile kiddie apps that talk to an outer layer of the API.

Of course it remains to be seen whether any of this
will happen. Vista was suppsed to be .Net-based
and it's got almost no .Net. Was that a deliberate bait
and switch or did they really not realize how idiotic the
idea was in the first place? I don't know.
Now they're apparently talking the same basic plan, except
that instead of wrapping everything in .Net there's an entirely
new wrapper API, on top of the API, that even treats .Net as a
backward compatibility problem. This time it seems to be
more believable.

That's the sort of thing I was thinking about when I
said that managed code was irrelevant and that I probably
wouldn't even be using a Windows PC when, and if, it
gets to the level of "security" you're expecting. MS is
trying to close the whole thing down and switch it over
to services. The description from "beta guy" presents a
very plausible way that they could block all real API
access to all 3rd parties in one fell swoop.

So we've got Vista, which no one wants, and
which is already partway to the services model (with MS
being the only true admin. on a Vista system). Then the
next thing is probably a closed services box. Looking at
it that way, the last thing I'm worried about is whether
VB will run on future Windows. It can do almost anything on
95-XP with no dependencies. That makes a lot of sense
to me.



.



Relevant Pages

  • Re: Minix = Just another Free UNIX?
    ... And who forks anymore? ... should one-up Windows and Mac! ... consider it a good-enough API, and dislike the POSIX-style, then nobody's ... What is your alternative API design? ...
    (comp.os.minix)
  • Re: Play AVIs
    ... Windows contains some API calls for playing a library - it's part of the ... or do you want to simply shell out a process and let ... >i only want to play a video. ...
    (microsoft.public.dotnet.framework.drawing)
  • =?Utf-8?Q?Re:_Information_=C3=BCber_Bildschirm_?= =?Utf-8?Q?Design?=
    ... Wir benötigen diese Information für bestimmte Entscheidungen im Programmablauf. ... PC Windows-Klassik Design, ... Deswegen solltest du die API IsAppThemed() benutzen. ...
    (microsoft.public.de.vc)
  • Re: Environmental Variables
    ... BUT it is shell. ... >>NT does not have an underlying DOS - that is, it does not run as a DOS ... > complete and unlike real DOS, the 'DOS' window is in fact a Windows ... Windows 3.x runs on top of DOS so any shell has the DOS API available. ...
    (comp.os.msdos.programmer)
  • Re: Information =?UTF-8?B?w7xiZXIgQmlsZHNjaGlybSBEZXNpZ24=?=
    ... PC Windows-Klassik Design, Windows XP-Design oder Windows Vista-Design eingestellt ist. ... wenn du unter XP/Vista das Design 'eingeschaltet' hast, können Applikationen dennoch mit dem alten Win2k-Stil ausgeführt werden). ... Deswegen solltest du die API IsAppThemed() benutzen. ...
    (microsoft.public.de.vc)

Quantcast