The software giant is in recruiting mode, looking for independent software vendors, enterprise customers, developers, end users and others who would like to have their .Net applications tested for compatibility with the upcoming version of the .Net Framework.
At issue is the notion of breaking applications. Microsoft has identified situations where applications written to the .Net Framework 1.1 break when run against the .Net Framework 2.0.
The issues arose with the release of Beta 2 of Visual Studio 2005, also known as Whidbey, which Microsoft released last month. Beta 2 introduces the .Net Framework 2.0.
During internal testing, Microsoft became aware of the breaking changes and Tuesday posted a white paper to address some of the specifics of what causes applications to break. However, Microsoft is looking for more applications to test. The company is looking for .Net Framework 1.1 applications to test and is asking developers to submit their applications by sending an e-mail to email@example.com.
Microsoft defines breaking changes as "changes in either the .Net Framework (runtime breaking changes) or Visual Studio (design/compile/project upgrade) that make certain application and development scenarios behave differently."
So Microsoft recommends that developers test their .Net Framework 1.1 applications against .Net Framework 2.0 during the Beta 2 phase of the Whidbey rollout. The final version of Whidbey is slated for release in the second half of this year.
Microsoft officials said stand-alone Windows client or Web applications built on the .Net Framework 1.1 will automatically run against that version even if the .Net Framework 2.0 is installed on the computer. And managed add-ins to native applications, such as Microsoft Office or Internet Explorer, will automatically run against the latest version of the .Net Framework installed on the computer.
However, according to the Microsoft white paper on the compatibility issues, "Microsofts compatibility goal for .Net Framework 1.1 applications is that they should work smoothly on the .Net Framework 2.0 except for a set of documented changes." Yet, "During the Beta 2 release, we have not yet achieved this goal and are seeking feedback on application issues that can be addressed before the release of the .Net Framework 2.0."
For its part, Microsoft officials said that in the companys internal application compatibility testing, Microsoft testers found less than 10 breaking changes, including API breaking changes and behavior breaking changes. The API breaking changes were made due to security concerns, and behavior breaking changes might occur due to factors like a change in the precision of floating-point operations, the company said.
Indeed, overall, breaking changes in the .Net Framework 2.0 were related to standards compliance, customer feedback and correctness, the company said.
"Compatibility is always important to Microsoft," said Barak Cohen, business development manager for Microsofts Visual Studio. "The changes in Whidbey are a direct response to customer requests. We are acting on our wish to make a product work best for our customers."
Jay Roxe, Microsofts product manager for Visual Basic .Net, said that by default an application built using the .Net Framework will run using the version of the Framework it was built against if that version is installed on the computer. And in instances where a .Net Framework 1.1-based application is loaded by .Net Framework 2.0 and runs into a breaking change, "the application may fail," the Microsoft compatibility white paper said.
However, developers can run both .Net Framework 1.1 and .Net Framework 2.0 side by side on the same machine so that applications can run against the framework version they were built against, Roxe said.
"By default when you build an application against the .Net Framework it will default to the version you built it on," Roxe said. "If you have 2.0 on your machine and the application is written against 1.1, it will by default try to run on 1.1."
Moreover, according to the Microsoft white paper: "When the application is started up on the .Net Framework 1.0, 1.1 or 2.0, the CLR [Common Language Runtime] looks at the .Net Framework version recorded in the application and tries to run the application on the version of the .Net Framework that the application was compiled with. If that version is not installed on the machine, the CLR will attempt to start the application on the latest .Net Framework and CLR, for example, an application compiled for .Net Framework 1.0 running on a machine with only .Net Framework 1.1 will be rolled forward to run on the .Net Framework 1.1. Likewise, an application compiled for .Net Framework 1.1 running on a machine with only the .Net Framework 2.0 will be rolled forward to run on the .Net Framework 2.0."