473,756 Members | 1,861 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Breaking changes in .Net 2.0 - Something missing

I saw that Microsoft have released a list of breaking changes in .Net here:
http://msdn.microsoft.com/netframewo...e/default.aspx

While this is useful, it seems to be missing a change that has broken a lot
of my applications, relating to the order in which members are returned by
reflection. At least I can't find it. I reported the bug on ladybug:
http://lab.msdn.microsoft.com/produc...7-0ee741027f34

Also discussed in my blog:
http://dotnetjunkies.com/WebLog/john...28/128723.aspx

Can anyone at Microsoft see that this is added to the list? I think it's
quite an important change.
Dec 3 '05 #1
4 1350
Hi John,

Thanks for your feedback. But I didn't see this in the breaking changes
list. IMO, relying on the order of the returned methods from Reflection is
not reliable.

I suggest you sign in into the feedback page and suggest the product team
to make this breaking change listed. Because in this way, the products team
will see this immediately.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

Dec 3 '05 #2
I relied on the order of returned methods for caching purposes.

In my case the cache (consisting of a member-index to member lookup) was
created at application startup, and was referred to during application
execution. In 1.1 this worked (because members would be returned in the same
order throughout the application session).

In .Net 2.0 it doesn't work because every time you ask for a list of
members, they come back in a random order. This randomness was added by the
..Net team in 2.0 to ensure you don't rely on the order.

Relying on the order of members between sessions (ie. in serialization)
certainly isn't a good idea, many things can change between sessions. But
*during* the session objects won't be changing! And so they should be
reliable. Their solution to the problem of having people rely on the order
of reflection members being returned doesn't take my scenario into account.
It used to work in 1.1 and doesn't in 2.0 and that makes it a breaking
change.

Heck my applications break what more proof do I need to give! :)

When you say feedback page - do you mean in ladybug? or the feedback page
for the breaking changes list?

Thanks for responding,
John

"Kevin Yu [MSFT]" <v-****@online.mic rosoft.com> wrote in message
news:66******** ******@TK2MSFTN GXA02.phx.gbl.. .
Hi John,

Thanks for your feedback. But I didn't see this in the breaking changes
list. IMO, relying on the order of the returned methods from Reflection is
not reliable.

I suggest you sign in into the feedback page and suggest the product team
to make this breaking change listed. Because in this way, the products
team
will see this immediately.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

Dec 3 '05 #3

"John Wood" <te*****@online .nospam> wrote in message
news:LW******** ****@fe12.lga.. .
I relied on the order of returned methods for caching purposes.
In .Net 2.0 it doesn't work because every time you ask for a list of
members, they come back in a random order.
Thanks for the heads-up on this. I'm also chaching memeber/field index
offset info.
This randomness was added by the .Net team in 2.0 to ensure you don't
rely on the order.
Okay, that's *really* stupid. There are so many ways for people to shoot
themselves in the foot, that to try and stop this one way and in the process
disable a sensable optimization is pretty silly. I don't depend on C struct
layouts between machines or even compiler versions, but I certainly expect
them to be the same every time I run the same program so I can read my own
file. Next they'll be adding a random epsilon to all floating point values
because you shouldn't depend of those lower bits anyway...

m
Relying on the order of members between sessions (ie. in serialization)
certainly isn't a good idea, many things can change between sessions. But
*during* the session objects won't be changing! And so they should be
reliable. Their solution to the problem of having people rely on the order
of reflection members being returned doesn't take my scenario into
account. It used to work in 1.1 and doesn't in 2.0 and that makes it a
breaking change.

Heck my applications break what more proof do I need to give! :)

When you say feedback page - do you mean in ladybug? or the feedback page
for the breaking changes list?

Thanks for responding,
John

"Kevin Yu [MSFT]" <v-****@online.mic rosoft.com> wrote in message
news:66******** ******@TK2MSFTN GXA02.phx.gbl.. .
Hi John,

Thanks for your feedback. But I didn't see this in the breaking changes
list. IMO, relying on the order of the returned methods from Reflection
is
not reliable.

I suggest you sign in into the feedback page and suggest the product team
to make this breaking change listed. Because in this way, the products
team
will see this immediately.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."


Dec 4 '05 #4
Hi John,

In this case, you'd better contact the product team on this issue to get a
workaround from them. You just sign in on that feedback page to continue
posting. The product team might give you a workaround.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

Dec 6 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

9
1370
by: bbands | last post by:
I've a 2,000 line and growing Python script that I'd like to break up into a modules--one class alone is currently over 500 lines. There is a large config.ini file involved (via ConfigParser), a fair number of passed and global variables as well as interaction with external programs such as MySQL (via MySQLdb), R (via Rpy) and gnuplot (via Gnuplot). Every time I have tried to break it up I end up with thorny name-space problems and have...
4
5357
by: Glenn Owens | last post by:
I have a DataGrid web control which I've dynamically populated with template columns to be used for bulk-editting. Generally, all of the columns are textbox and/or dropdownlist child controls. Currently everything is working. I can find the updated rows/columns by parsing the posted data collection against the DataGrid DataSource. However, when there is a large amount of DataGridItems (rows) the update processing can take a while. ...
9
3215
by: Tim D | last post by:
Hi, I originally posted this as a reply to a rather old thread in dotnet.framework.general and didn't get any response. I thought it might be more relevant here; anyone got any ideas? My questions are below... "David Good" wrote: > We have a network running both Win2k and Win2k3 webservers and our web sites > reside on a UNC network share that happens to be a Network Appliance NAS.
12
1497
by: Mike Gaab | last post by:
Hi, A newcomer to .Net (I've held out as long as I can.). I am using VS.Net 2003. I am writing some web apps and I am confronted with the usual issues that one faces when coming from a Windows, Apache, Mysql, PHP (WAMP) background. Is it a common practice, or even acceptable, to insert addition form tags to avoid the issues of passing form data to another webform, triggering validator controls for unrelated input controls, etc. ?
150
6571
by: tony | last post by:
If you have any PHP scripts which will not work in the current releases due to breaks in backwards compatibility then take a look at http://www.tonymarston.net/php-mysql/bc-is-everything.html and see if you agree with my opinion or not. Tony Marston http://www.tonymarston.net
49
2802
by: elmar | last post by:
Hi Clers, If I look at my ~200000 lines of C code programmed over the past 15 years, there is one annoying thing in this smart language, which somehow reduces the 'beauty' of the source code ;-): char *cp; void *vp; void **vpp;
4
4558
by: Rubin | last post by:
1) I want to show a breaking hyphen in Mozilla 1.5.0.4 How do I do that? "Unicode standard annex #14", <http://www.unicode.org/reports/tr14/>, defines 4 breaking hyphens. <quote> Breaking hyphens establish explicit break opportunities immediately after each occurrence.
30
3403
by: Charles Law | last post by:
Here's one that should probably have the sub-heading "I'm sure I asked this once before, but ...". Two users are both looking at the same data, from a database. One user changes the data and commits it. How does the other user get the updated view without polling for changes? Is there some sort of callback mechanism that can be set up on the dataset or connection? TIA
13
2261
by: Andrew | last post by:
Hi I was wondering if there is anyway with XML RPC to send a string of text from the server to the client with out calling return thus breaking my loop for example def somefunc(): for action, files in results: full_filename = os.path.join(path_to_watch, files) theact = ACTIONS.get(action, "Unknown")
0
10014
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9819
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9689
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8688
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7226
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5119
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5289
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3780
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3326
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.