Why Mono isn’t spreading inside the corporate world
By Alex Handy
October 1, 2006 — Matt Hargett hates it when a bug is resurrected. So, when he started fiddling with Mono to help move his company’s Windows-based vulnerability scanner onto Linux, he was frustrated to see some bugs vanish in one build, only to reappear in the next.
Because of that, Hargett isn’t convinced that Mono, the open-source .NET Framework project sponsored by Novell, would be a good choice for his next project. It would appear that enterprise developers agree. According to the 2006 .NET Development Study, conducted by BZ Research in September, only 3.6 percent of enterprise development managers said they were currently using Mono, and 4.8 percent said they were targeting it for new or migrated applications.
Those numbers are borne out by Michael Goulde’s experiences in speaking to enterprise developers as well. Goulde is an analyst at Forrester Research, and he’s not convinced that there’s much call for Mono in the enterprise thus far.
Goulde said that the server-side code of Mono is still not ready for prime time. “I think a lot of their energy has gone into the client side, so the potential for how many people out there who it would be relevant to starts to get really small. You’re looking at people who have both Windows and Linux on their desktops, who have stand-alone applications. Whereas if you’re asking questions about Java and Java frameworks, those are largely being used on the server,” said Goulde.
Another reason for the lack of uptake, said Hargett, is a dearth of automated unit tests in Mono. He said that in his experience, new versions of Mono often break former compatibilities, and even reintroduce long-dead bugs. “On their C# compiler and on the Mono runtime itself, they do a really good job of [testing],” said Hargett, who has since left his former employer and is now an Extreme Programming consultant at Pivotal Computer Systems.
“But as far as other pieces, like the ASP.NET compiler and the Windows Forms stuff, unfortunately, while it’s always getting better, it’s not always moving forward,” added Hargett. “They’ll fix a bug and it will [later] become unfixed. Until they fix these things, I wouldn’t recommend anyone use Mono for deploying Windows Forms or ASP.NET applications.”
But Miguel de Icaza, the lead developer on the Mono project, said that he feels the server side of Mono is well covered by tests. While Mono doesn’t have a QA team, said de Icaza, it does have an active community that puts fresh builds to the test every night, then reports bugs that are dutifully fixed.
de Icaza admitted, though, that Mono has trouble testing Windows Forms, the Windows GUI framework. “GUI components are a lot trickier because you need to look at the screen to see if it’s properly displayed. There is some hope we can integrate some of Mainsoft’s test cases into Mono. They use p_w_picpath comparison algorithms [to test GUIs],” he said. The Mono project has received donations of test code from Mainsoft before, and de Icaza hopes the company’s new p_w_picpath comparison tests will help make Windows Forms run more smoothly.
“You can’t build your business around an application stack unless you have confidence in it. When people ask me if I’d use Mono again in a commercial application, I’d say yes, but only if I had a specific contract with Novell that said they’d have an automated test for [each] bug I reported,” said Hargett.
“It has a great deal to do with the fact that unit testing isn’t as important to them as adding functionality,” added Hargett. “There hasn’t been a strong business incentive for them to change that. It’s the same as any other product, commercial or otherwise, from that perspective.”
But de Icaza insisted that Mono is covered where it counts. “Although we don’t have a QA team, we do have more test cases for the virtual machine and test classes and libraries than any other open-source project I’ve seen, such as any of the Java efforts or Ruby things,” he said. He added that Mono has come a long way thus far, and that current trouble spots, such as support for Windows Forms, will likely vanish once Microsoft releases Windows Vista and casts aside the stop-gap solutions. The Windows Presentation Foundation, Microsoft’s user interface for Windows Vista, should be easier to support, claimed de Icaza.
As for the current server-side enterprise APIs, such as Microsoft’s Enterprise Services APIs, de Icaza said that the Mono team won’t be adding support anytime soon. “We don’t have plans to implement enterprise services because we’re just going to jump to Indigo,” said de Icaza. “This whole enterprise services pack was really a wrapper for COM+, which was a set of APIs to implement enterprise features to come.”
REDMOND PASSES
While Novell has thrown its weight behind Mono, Goulde feels that there is one company that could help Mono mature into a viable enterprise tool, though he doubts that Microsoft would ever get involved in the Mono project.
“Microsoft doesn’t understand the opportunity that Mono presents for putting forth a viable competitor to Java for a cross-platform development framework,” said Goulde. “If Microsoft opened its eyes and did everything it could do to help Mono along, the ultimate beneficiary would be Microsoft. But they’re not interested in helping to put the .NET Framework on Linux. They think that will make Linux more attractive. They just fall short of understanding that Java is just as much of a threat to .NET today as it was five years ago.”
But the chances of Microsoft joining the Mono project are slim to none, said Goulde. Both Hargett and de Icaza agreed that the Redmond giant isn’t likely to come to the Mono table anytime soon.
Microsoft in a statement said, “Although the work that Miguel de Icaza is doing with ECMA-standard managed code is great, Mono as a whole is not a project that Microsoft currently supports.”
[url]http://www.sdtimes.com/article/story-20061001-02.html[/url]
[url]http://www.sdtimes.com/article/story-20061001-02.html[/url]
自由、创新、研究、探索……