Microsoft Drops The Ball!

  • Thread starter Thread starter Patrick Cannon
  • Start date Start date
P

Patrick Cannon

I have been using VB.NET since its beta release a few
years ago. I was blown away by its debugging
capabilities. The ability to drill down into the member
variables of an object in the watch window was
priceless. This feature was not available in VB6. It
was a great way to browse an object without having to
know all the private member variables of an entity. This
was one of the features that allowed me to accelerate my
namespace knowledge, allowing development to be
productive.

With the release of Visual Studio .NET 2003, Microsoft
decided "by design" to remove this capability completely
from VB.NET. Instead of giving the user an option to
enable this feature, Microsoft decided all VB.NET
developers did not need it. I find this attitude
presumptuous. The other languages available in VS 2003
retained this feature, while VB developers, who got used
to debugging in this fashion, were left high and dry.
They didn't even remove it cleanly. The plus sign still
appears in the watch windows making the developer believe
that variable browsing is available, but when you click
the plus sign to expand the object to view the member
variables, the plus sign just disappears.

I find the exclusion of valuable debugging features and
the lack of quality of VS 2003 very troubling. It seems
that Microsoft has regressed with their latest release of
Visual Studio. Currently, we have thirteen corporate
developers with Universal subscriptions designing and
deploying distributed applications primarily using
VB.NET. And now we have found the task of debugging
cumbersome and unproductive. I hope Microsoft can find a
way to reintroduce this functionality before our
subscriptions are up. I would hate to have to spend the
next year switching our development platform, because
Microsoft feels the need to spurn the devoted developers
that utilize the tools offered by Microsoft.
 
I wonder what you are talking about??

I have Visual Basic 2003 standard, and I can drill into any object during a
debugging session, the only requirement is that there be break point....

Perhaps you have something incorrectly configured in your Tools | Options
panel (which is very counter-intuitive IMO)
 
You can still drill into any object. The only difference between 2002 and
2003 is that when you're drilling into certain Framework classes (like an
ArrayList, for example) Visual Studio hides some of the private variables.

I view this change as a benefit -- it makes it easier to find the meaningful
information during debugging. In theory, at least, you shouldn't be
concerned with the private variables of the Framework classes, since doing
so breaks encapsulation.
 
Hello Patrick,

Thanks for posting in the group.

After reviewing your post, I quickly went through our design web site and
found the following information for you:

--------------------------------

"VB.NET 2003 Unable to view some properties of Dataset during debug"

This is bydesign. The intent was to remove excess clutter by eliminating
the private and sometimes protected members when viewing objects defined in
an assembly not built by the current solution.

Note about protected members, I think that protected members should only
show when they are in a base class you derive from.

The major reason for this behavior is viewing things like the
System.Windows.Form class which is almost useless if the private members
are not filtered.

ALSO NOTE: You can still do an explicit watch on a private member, you just
have to know the name. In this scenario, the user could do a watch on
a.Tables.List._Items(0)

------------------------------

Is it the same as what you met? Robert is right. Viewing private variables
in Watch window breaks encapsulation and it makes data useless when viewing
things like Windows.Form. We could workaround it by typing the private
member's name in Watch window.

If it is not the same, could you please post detailed steps here to repro
the issue? We will work with product group to find out the reason of the
change. Also, you could submit your suggestion at
http://register.microsoft.com/mswish/suggestion.asp?&SD=GN&LN=EN-US&gssnb=1.
We appreciate your input, and look forward to building better products
with helpful ideas such as yours.

Please post here if there is any I can do for you. Thanks very much.

Best regards,
Yanhong Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
!Content-Class: urn:content-classes:message
!From: "Patrick Cannon" <[email protected]>
!Sender: "Patrick Cannon" <[email protected]>
!Subject: Microsoft Drops The Ball!
!Date: Mon, 6 Oct 2003 10:23:15 -0700
!Lines: 39
!Message-ID: <[email protected]>
!MIME-Version: 1.0
!Content-Type: text/plain;
! charset="iso-8859-1"
!Content-Transfer-Encoding: 7bit
!X-Newsreader: Microsoft CDO for Windows 2000
!X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300
!Thread-Index: AcOMLobveb6zRoFmSmyLJZV9EihUpA==
!Newsgroups: microsoft.public.dotnet.framework
!Path: cpmsftngxa06.phx.gbl
!Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework:55494
!NNTP-Posting-Host: TK2MSFTNGXA11 10.40.1.163
!X-Tomcat-NG: microsoft.public.dotnet.framework
!
!I have been using VB.NET since its beta release a few
!years ago. I was blown away by its debugging
!capabilities. The ability to drill down into the member
!variables of an object in the watch window was
!priceless. This feature was not available in VB6. It
!was a great way to browse an object without having to
!know all the private member variables of an entity. This
!was one of the features that allowed me to accelerate my
!namespace knowledge, allowing development to be
!productive.
!
!With the release of Visual Studio .NET 2003, Microsoft
!decided "by design" to remove this capability completely
!from VB.NET. Instead of giving the user an option to
!enable this feature, Microsoft decided all VB.NET
!developers did not need it. I find this attitude
!presumptuous. The other languages available in VS 2003
!retained this feature, while VB developers, who got used
!to debugging in this fashion, were left high and dry.
!They didn't even remove it cleanly. The plus sign still
!appears in the watch windows making the developer believe
!that variable browsing is available, but when you click
!the plus sign to expand the object to view the member
!variables, the plus sign just disappears.
!
!I find the exclusion of valuable debugging features and
!the lack of quality of VS 2003 very troubling. It seems
!that Microsoft has regressed with their latest release of
!Visual Studio. Currently, we have thirteen corporate
!developers with Universal subscriptions designing and
!deploying distributed applications primarily using
!VB.NET. And now we have found the task of debugging
!cumbersome and unproductive. I hope Microsoft can find a
!way to reintroduce this functionality before our
!subscriptions are up. I would hate to have to spend the
!next year switching our development platform, because
!Microsoft feels the need to spurn the devoted developers
!that utilize the tools offered by Microsoft.
!
!
 
Yan-Hong Huang said:
Hello Patrick,

Thanks for posting in the group.

After reviewing your post, I quickly went through our design web site and
found the following information for you:

--------------------------------

"VB.NET 2003 Unable to view some properties of Dataset during debug"

This is bydesign. The intent was to remove excess clutter by eliminating
the private and sometimes protected members when viewing objects defined in
an assembly not built by the current solution.

Ok, so do you now allow the viewing of collections? I used to have to drill
down into the _items array of an ArrayList, for instance. Can I now just
click the plus sign next to the Items property?
 
Hi John,

Only private and sometimes protected members are impacted. :) You could
test it in debugger to see the result of your collection members.

Thanks.

Best regards,
Yanhong Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
!From: "John Saunders" <[email protected]>
!References: <[email protected]>
<[email protected]>
!Subject: Re: Microsoft Drops The Ball!
!Date: Tue, 7 Oct 2003 13:34:45 -0400
!Lines: 27
!X-Priority: 3
!X-MSMail-Priority: Normal
!X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
!X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
!Message-ID: <#[email protected]>
!Newsgroups: microsoft.public.dotnet.framework
!NNTP-Posting-Host: pool-151-203-41-147.bos.east.verizon.net 151.203.41.147
!Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
!Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework:55607
!X-Tomcat-NG: microsoft.public.dotnet.framework
!
!!> Hello Patrick,
!>
!> Thanks for posting in the group.
!>
!> After reviewing your post, I quickly went through our design web site and
!> found the following information for you:
!>
!> --------------------------------
!>
!> "VB.NET 2003 Unable to view some properties of Dataset during debug"
!>
!> This is bydesign. The intent was to remove excess clutter by eliminating
!> the private and sometimes protected members when viewing objects defined
!in
!> an assembly not built by the current solution.
!
!Ok, so do you now allow the viewing of collections? I used to have to drill
!down into the _items array of an ArrayList, for instance. Can I now just
!click the plus sign next to the Items property?
!--
!John Saunders
!Internet Engineer
[email protected]
!
!
!
 
Yan-Hong Huang said:
Hi John,

Only private and sometimes protected members are impacted. :) You could
test it in debugger to see the result of your collection members.

Unfortunately, I don't have 1.1 running anywhere, so I can't test it.

I was hoping that where the 1.0 debugger shows "<cannot view indexed
property>", that the 1.1 debugger would show, for instance:

- Item {Count = 4} string[]
[0] "Item[0]" string
[1] "A second item" string
[2] "A third" string
[3] null string

or, even better:

- list {Count = 2} ArrayList
Capacity 16 int
Count 2 int
IsFixedSize false bool
IsReadOnly false bool
IsSynchronized false bool
- Item {Count = 2} object[]
[0] {int} object
[1] {string} object
 
It doens't show count, etc -- just the the individual items in the
collection.

John Saunders said:
Yan-Hong Huang said:
Hi John,

Only private and sometimes protected members are impacted. :) You could
test it in debugger to see the result of your collection members.

Unfortunately, I don't have 1.1 running anywhere, so I can't test it.

I was hoping that where the 1.0 debugger shows "<cannot view indexed
property>", that the 1.1 debugger would show, for instance:

- Item {Count = 4} string[]
[0] "Item[0]" string
[1] "A second item" string
[2] "A third" string
[3] null string

or, even better:

- list {Count = 2} ArrayList
Capacity 16 int
Count 2 int
IsFixedSize false bool
IsReadOnly false bool
IsSynchronized false bool
- Item {Count = 2} object[]
[0] {int} object
[1] {string} object


--
John Saunders
Internet Engineer
(e-mail address removed)
--------------------
!From: "John Saunders" <[email protected]>
!References: <[email protected]>
<[email protected]>
!Subject: Re: Microsoft Drops The Ball!
!Date: Tue, 7 Oct 2003 13:34:45 -0400
!Lines: 27
!X-Priority: 3
!X-MSMail-Priority: Normal
!X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
!X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
!Message-ID: <#[email protected]>
!Newsgroups: microsoft.public.dotnet.framework
!NNTP-Posting-Host: pool-151-203-41-147.bos.east.verizon.net 151.203.41.147
!Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
!Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework:55607
!X-Tomcat-NG: microsoft.public.dotnet.framework
!
!!> Hello Patrick,
!>
!> Thanks for posting in the group.
!>
!> After reviewing your post, I quickly went through our design web site and
!> found the following information for you:
!>
!> --------------------------------
!>
!> "VB.NET 2003 Unable to view some properties of Dataset during debug"
!>
!> This is bydesign. The intent was to remove excess clutter by eliminating
!> the private and sometimes protected members when viewing objects defined
!in
!> an assembly not built by the current solution.
!
!Ok, so do you now allow the viewing of collections? I used to have to drill
!down into the _items array of an ArrayList, for instance. Can I now just
!click the plus sign next to the Items property?
!--
!John Saunders
!Internet Engineer
[email protected]
!
!
!
 
Hi John,

Please post code here. I could test on VS.NET 2003 for you. :)

By the way, this behavior is not related to .net framework version (1.1).
It is the behavior of VS.NET.

Thanks.

Best regards,
Yanhong Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
!From: "John Saunders" <[email protected]>
!References: <[email protected]>
<[email protected]>
<#[email protected]>
<[email protected]>
!Subject: Re: Microsoft Drops The Ball!
!Date: Tue, 7 Oct 2003 23:46:50 -0400
!Lines: 90
!X-Priority: 3
!X-MSMail-Priority: Normal
!X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
!X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
!Message-ID: <[email protected]>
!Newsgroups: microsoft.public.dotnet.framework
!NNTP-Posting-Host: pool-151-203-41-147.bos.east.verizon.net 151.203.41.147
!Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP09.phx.gbl
!Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework:55640
!X-Tomcat-NG: microsoft.public.dotnet.framework
!
!!> Hi John,
!>
!> Only private and sometimes protected members are impacted. :) You could
!> test it in debugger to see the result of your collection members.
!
!Unfortunately, I don't have 1.1 running anywhere, so I can't test it.
!
!I was hoping that where the 1.0 debugger shows "<cannot view indexed
!property>", that the 1.1 debugger would show, for instance:
!
!- Item {Count = 4} string[]
! [0] "Item[0]" string
! [1] "A second item" string
! [2] "A third" string
! [3] null string
!
!or, even better:
!
!- list {Count = 2} ArrayList
! Capacity 16 int
! Count 2 int
! IsFixedSize false bool
! IsReadOnly false bool
! IsSynchronized false bool
! - Item {Count = 2} object[]
! [0] {int} object
! [1] {string} object
!
!
!--
!John Saunders
!Internet Engineer
[email protected]
!
!> --------------------
!> !From: "John Saunders" <[email protected]>
!> !References: <[email protected]>
!> <[email protected]>
!> !Subject: Re: Microsoft Drops The Ball!
!> !Date: Tue, 7 Oct 2003 13:34:45 -0400
!> !Lines: 27
!> !X-Priority: 3
!> !X-MSMail-Priority: Normal
!> !X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
!> !X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
!> !Message-ID: <#[email protected]>
!> !Newsgroups: microsoft.public.dotnet.framework
!> !NNTP-Posting-Host: pool-151-203-41-147.bos.east.verizon.net
!151.203.41.147
!> !Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
!> !Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework:55607
!> !X-Tomcat-NG: microsoft.public.dotnet.framework
!> !
!> !!> !> Hello Patrick,
!> !>
!> !> Thanks for posting in the group.
!> !>
!> !> After reviewing your post, I quickly went through our design web site
!and
!> !> found the following information for you:
!> !>
!> !> --------------------------------
!> !>
!> !> "VB.NET 2003 Unable to view some properties of Dataset during debug"
!> !>
!> !> This is bydesign. The intent was to remove excess clutter by
!eliminating
!> !> the private and sometimes protected members when viewing objects
!defined
!> !in
!> !> an assembly not built by the current solution.
!> !
!> !Ok, so do you now allow the viewing of collections? I used to have to
!drill
!> !down into the _items array of an ArrayList, for instance. Can I now just
!> !click the plus sign next to the Items property?
!> !--
!> !John Saunders
!> !Internet Engineer
!> [email protected]
!> !
!> !
!> !
!>
!
!
!
 
Back
Top