Overall v2 app compat testing
Between v2 beta2 (2/3/05) through the final release candidate we tested 291 unique applications. 62 applications were tested against beta2 and 229 different applications were tested against our release candidate.
50 of the top applications were retested during the final test pass against our release candidate build. Each application was run against both Windows Mobile 5 and a device running a variation of Pocket PC 2003. Smartphone applications were only run against devices running Windows Mobile 5.
Here is a summary of the results from the application testing between v2 beta2 and the final release candidate:
8 #failures (something doesn't work the same as in v1 SP3)
21 #failures found, fixed and verified (ie, not a problem in final v2 release)
297 #pass (no differences found when running against v2)
326 total number of pass/fail
98% overall pass rate for applications running against .Net Compact Framework v2
Common issues applications might run into:
- if they draw their own graphics (OnPaint()), the application may not work correctly in non-portrait orientations such as landscape orientation
- Netcf v2 is compatible with SP3, but a few applications have troubles running in SP3. These applications will likely have the same troubles on v2.
Bugs postponed to v2 Service Pack 1
- setting dialog result in OnLoad() doesn't close modal dialog
- trouble reading specially obfuscated resource file prevents application from loading
- regression in native winCE DateTimePicker where SYSTEMTIME min/max values can be stored incorrectly
- app logic terminates itself after reading property, investigation needs to be coordinated with ISV
Bugs we won't fix
- switching between borderless and non-borderless window can generate unhandled exception, fix could lead to other regressions
Bugs that are by design
- printer driver fails with beta version of display driver
- config file with incorrect syntax is ignored
- application not resizing borderless forms correctly when screen orientation changes. v1 application still works properly in portrait orientation.
Version Coercions provide a way to provide backward compatibility for breaking changes. A version coercion is a place in our framework where we execute v1 behavior for applications built with v1, and v2 behavior for applications built with v2. Read more about these in these blog postings:
- David Kline - http://blogs.msdn.com/davidklinems/search.aspx?q=coercion&p=1.
- Steven Pratschner - http://blogs.msdn.com/stevenpr/archive/2004/12/30/344540.aspx
We've identified a number of potential breaking changes and have implemented Version Coercions for 64 of them. Version Coercions are a big part of our overall 98% pass rate for application compatibility.
The Version Coercions were distributed across the following areas:
30 Windows Forms
5 Execution Engine
Our team is working to document the identified breaking changes and will be posting this information to the web at a later date.
This posting is provided "AS IS" with no warranties, and confers no rights
[Author: Michael Lipp]