Update | February 14, 2007
I mis-named this article. The title should have been, "Why a .NET version of Microsoft Office is a bad idea". I'd completely forgotten I'd written this until some poor wording was pointed out by The DailyWTF. And by, "pointed out", they basically said that I'm an idiot.
No big deal. After re-reading this, there are several spots that are definitely embarrasing and need to be written in a more clear fashion. The original, untouched version is still available at the Wayback Machine.
Addtionally, there is now several large passages lifted from linked articles. This is due, primarily, to the fact that people seem to lack the ability to follow links. Whatever I can do to help out my readers.
What is .NET?
According to Microsoft, .NET is, "the Microsoft Web services strategy to connect information, people, systems, and devices through software." Now, we know that .NET doesn't only do "web services", it also makes stand-alone applications like Paint.NET. However, the gist of .NET isn't that it's easier to to build stand-alone apps with managed code, but to build web applications. Examples?
- Windows Forms: Not used much in .NET. Soon to be obviated by WPF in .NET 3.0.
- Web Forms: .NET terminology for web thin client applications
- Web Service: MicroSoft's technical nickname for a SoapEndpoint
- ASP.NET: new rendition of Active Server Pages (ASP)
- ADO.NET: accesses data and data services in relational and non-relational sources
- .NET Remoting: supports HTTP/SOAP and binary network protocols and formats
Of the technologies mentioned above as a part of .NET, 2/3rds are web technologies. Of the four, major, new components slated for .NET 3.0 stack, (WCS, WPF, WCF and WWF) half of the new components, WCF and WCS, are web related.
In my opinion, the .NET framework is strikingly similar to Sun's J2EE.
.NET Framework is similar to J2EE?
History
In 1997, Sun Microsystems filed a lawsuit against Microsoft, due to the incompatible nature of the java framework in Internet Explorer 4.
"Rather than comply with its contractual obligations, defendant Microsoft has instead embarked on a deliberate course of conduct in an attempt to fragment the standardized application programming environment established by the Java technology; to break the cross-platform compatibility of the Java programming environment; and to implement the Java technology in a manner calculated to cause software developers to create programs that will operate only on platforms that use Microsoft's Win32-based operating systems and no other systems platform or browser."
The suit resulted in Microsoft removing all traces of Java from its site, dropping Java support in Visual Studio, dropping Java from XP and Internet Explorer 6 and developing C#, a language that, according to Steve Mills, "[...] is Java by another name."
Comparisons
O'Reilly did a fairly thorough comparison on the similarities of the .NET framework and J2EE:
C# and Java both derive from C and C++. Most significant features (e.g., garbage collection, hierarchical namespaces) are present in both. C# borrows some of the component concepts from JavaBeans (properties/attributes, events, etc.), adds some of its own (like metadata tags), but incorporates these features into the syntax differently.
C# is implicitly tied into the IL common language runtime, and is run as just-in-time (JIT) compiled bytecodes or compiled entirely into native code. Java code runs as Java Virtual Machine (VT) bytecodes that are either interpreted in the VM or JIT compiled, or can be compiled entirely into native code.
C# code always runs natively. Java code typically runs as interpreted bytecodes, and can run natively. C# is either compiled entirely to native code, or it is compiled into the common language runtime bytecodes and then just-in-time compiled to native code during execution. Java code, on the other hand, typically runs as runtime-interpreted bytecodes (from which its cross-platform abilities spring), and can also run in a just-in-time compiled context. Some Java native-code compilers also exist (Jove, BulletTrain, JET, etc.).
While a few of the elements in .NET, such as SOAP and its discovery and lookup protocols, are provided as public specifications, the core components of the framework (IL runtime environment, ASP+ internals, Win Forms and Web Forms component "contracts", etc.) are kept by Microsoft, and Microsoft will be the only provider of complete .NET development and runtime environments. There has already been some pressure by the development community for Microsoft to open up these specifications, but this would be counter to Microsoft's standard practices.
So, on the one hand, you have the java framework that is, admittedly, written only in java while .NET promises tons of different language support yet, turns up surprisingly few applications that aren't written in one of Microsoft's pet languages, i.e. C# or Visual [C++, Basic].
On the other hand, Sun has opensourced java, and the J2EE platform, the HotSpot VM, javac, JDK, Java ME Feature Phone implementation based on Connected Limited Device Configuration, TCK and CDC, etc. So, now all the tools necessary to build enterprise websites and web services are available to businesses for free with the source open to the public and a promise of no vendor lock-in. The java community of developers and programmers now can help direct the evolution of the java framework.
Microsoft to abandon traditional boxed software?
There are several industry pundits that believe the way for Microsoft to move forward as a company is to drop the traditional software distribution of "boxed" software and rely more on "software as a service". Dan Kusnetzky, vice president of system software research at IDC, agrees:
"What we're going to see Microsoft attempt to do is move away from a packaged software model and sell everything as a service," he says. "Microsoft wants to make sure people pay Microsoft for any use of computers anywhere. It's a very clever, intricate strategy based upon control and ownership of low-level things like APIs, tools, communications protocols and file formats."
Business week ran a story in September of 2006 that detailed Microsoft's desire to enter the online market and compete with the likes of Google and Thinkfree:
[...]Microsoft, which scoffed at the rise of online alternatives to Office, isn't looking the other way anymore. BusinessWeek has learned that the software giant is developing a strategy to put some of the technology from its Works software-the barebones word-processing and spreadsheet program that often ships with new consumer PCs-at the heart of a new online offering.
The company is working on plans to offer a free version hosted on its Office Live Web site, as well as a subscription flavor with more bells and whistles. While it's not a done deal, the company is throwing a lot of manpower at the project. "It's not a small number (of people working on the project) to be sure," says Chris Capossela, vice-president for Microsoft's Business Division Product Management Group. "This is core. We want to win this space."
Paul Thurott wrote about Microsoft possibly creating a .NET version of Microsoft Office in June of 2000:
[...]With its Dot-Net plans, Microsoft isn't changing only how the company ships software but also how you pay for that software. Instead of yearly upgrades to Windows and Office, you'll pay a monthly subscription for access to Microsoft's superior superset of the Internet. Microsoft has been eager to move to this model for some time now. Once the company moves to a service-based subscription model, you'll receive the benefit of constant but minor upgrades rather than steep upgrade curves (and costs) each time a new version of its products is released. You won't be a Windows user per se, but rather a subscriber to the Windows service. Presumably, Microsoft will offer varying levels for each subscription service in the same way that cable-TV companies offer different plans.
Microsoft has been wanting to get some kind of Office-like software online since the 1990's. Consider the NetDocs project, rumored to be based on the then soon-to-be-released .NET "web services":
According to sources, Netdocs is a single, integrated application that will include a full suite of functions, including email, personal information management, document-authoring tools, digital-media management, and instant messaging. Microsoft will make Netdocs available only as a hosted service over the Internet, not as a shrink-wrapped application or software that's preloaded on the PC.
Netdocs will feature a new user interface that looks nothing like the company*s Internet Explorer Web browser or Windows Explorer. Instead, Netdocs is expected to offer a workspace based on Extensible Markup Language (XML), where all applications are available simultaneously. This interface is based on .Net technology that Microsoft, in the past, has referred as the "Universal Canvas."
Some people inside Microsoft describe Netdocs as a ".Net application/service for knowledge workers." Others call it a next-generation productivity suite being designed for individuals to share personal information and collaborate.
However, the Netdocs project never, obviously, came online. The reason?
One reason: Infighting between Office executives and Web advocates, according to sources at the time. David Smith, an analyst at Gartner, says that same tension still exists within Microsoft.
"There are different factions within the company, like before, and it is unclear what the corporate strategy is going to be," Smith said.
In fact, a .NET version of Office was promised for 2002:
Microsoft in 2002 will ship a new version of Office, called Office.Net, which will feature a "natural user interface," such as handwriting and speech recognition. [...]
a reality that may have come to fruition if not for the DOJ anti-trust lawsuit.
What would Office.NET look like?
Originally, I had proposed that an online version of Office.NET would be comprised of something similar to java applets. Something that could be loaded from a central server, cached, and then be usable both online and off. Some detractors of my idea say that such a move is prone to bad performance and security problems. In fact, it's such a bad idea that ThinkFree is doing exactly that, (with Java and everything).
To add insult to injury, Microsoft lists ThinkFree on page six of its annual 10-K filing with the Securities & Exchange Commission, as a competitor to its $11.8 billion Office suite.
You might think the folks at Microsoft have bigger fish to fry than a tiny Bay Area startup named ThinkFree. The company, which offers Web-based word-processing and spreadsheet programs, counts about 60,000 active users, none of whom even pay for the service yet. But there on page six of Microsoft's annual 10-K filing with the Securities & Exchange Commission, submitted in August, Microsoft lists ThinkFree as a rival to its $11.8 billion Office business, used by more than 400 million people around the globe. "It's official now," laughs ThinkFree CEO TJ Kang. "We're definitely on their radar."
In this trend, there are online office suites popping up all over the place. Examples?
Most of these web-based office suites are AJAX-based but, in my limited tests of the respective suites, nearly all boast support of Microsoft Office formats and provide a method for working offline. More likely than not, Microsoft will just buy out ThinkFree and rebrand it, as it has the closest Word feel to it and it already does a great job with Office formats.
So, why would a .NET Office be a bad idea?
Poor security track record
The primary reason an online office suite, in the hands of Microsoft, would be a terrible idea is their horrible security track record. Microsoft doesn't exactly have a sterling reputation for securely running applications online. Examples:
- Hotmail down for several days. Microsoft blames technicians.
- Passport passwords, including hotmail passwords, can be changed by remote users.
- Passport flaws in it's authentication system along with browser bugs, reveal credit card numbers just by opening a hotmail message.
- Microsoft Developer Store security flaw gave visitors the ability to take control of the site, including access of customer data.
- Windows Messaging Service was disabled by AOL due to abuse by spammers.
- MSN Messenger, and Exchange Instant Messenger products could allow an attacker to run code of their choice on a vulnerable PC.
- Windows Genuine Advantage falsely accuses millions
Even though .NET is based on Java, it is still produced by Microsoft and, therefore, more prone to gaping, security holes you could drive a tailer-truck through. Need examples? Here are some .NET-related attacks and some vanilla Microsoft security snafu's:
- Multiple Vulnerabilities found in Microsoft .Net Passport Services
- Microsoft .NET request filtering bypass vulnerability
- Serious Security issue with broken - Microsoft's .Net XML Serialization API
- ASP.NET cannonicalization issue
- Advisory: Incorrect Handling of XSS Protection in ASP.Net
- Microsoft Office Helping Spread Bot-Nets
- Microsoft Says Recovery from Malware Becoming Impossible
- Microsoft: Stealth Rootkits Are Bombarding XP SP2 Boxes
- Microsoft apologises for serving malware
These are fairly recent examples, and by no means comprehensive. I haven't even touched Sasser, SoBig, Melissa, Blaster, Slammer, Nimda, NetSky, Bagle and a host of other high-profile Windows viruses, trojans and worms.
False Positives
As with the WGA debacle, there stands a good risk that thousands of legitimate users are not going to be able to access the software they paid for when they need it the most. Bill Gates has said that the limited Works suite they plan on offering online will be targeted towards small businesses, college students and families.
Small businesses can create customer contact lists for their employees [...] To see where Microsoft is headed, look at Office Live. That service, still in testing, offers companies Web hosting and e-mail with a personalized domain name. [...] With online word processing and spreadsheets, Microsoft would likely let Netizens choose from basic versions available for free and supported by ads, or subscription services with more robust features.
Small businesses in the United States (500 employees or less) comprise half of the work force in the private sector and half of the economic output. How many of these small companies are supposed to be able to afford an IT department? Especially with threats of an impending increase in the minimum wage? Online office suites, with a modest amount of storage, would be ideal for businesses: security updates handled on the server side, always running the latest version of the software and ubiquitous access to software and data. If the secretary's computer melts down, set her in front of another machine, catastrophe averted.
However, if the WGA problems arise with online document storage or application access, is Microsoft's answer going to be the same? Will the small businesses, students and families just have to purchase a new key and loose all of their data and start anew? Based on past performances, it seems likely.
Update | August 25, 2007 Windows Genuine Advantage suffers worldwide outage, problems galore
Late last night we started receiving reports from readers experiencing problems with Windows Genuine Advantage authentication. Users of both Windows XP and Windows Vista were writing to say that they could not validate their installations using WGA, and one user even said that his installation was invalidated by the service.
We contacted our sources at Microsoft, who told us off the record that the company is aware of a major WGA server outage affecting users across the globe. The Windows Genuine Advantage support forum has exploded with complaints, as a result, and Phil Liu, WGA project manager, says that he won't sleep until the problem is fixed. Windows Vista and XP are affected, 32- and 64-bit versions.
Microsoft is telling users who are affected that they should "try again" later, with some support techs telling readers that Microsoft is aiming to have a fix in place by Tuesday, August 28. That would mean the outage will last more than three days, given that it started last night (and may have started earlier; we're hearing reports of some users running into this earlier in the week, on limited bases).
Reader Aaron Woolf tells us he was unable to validate patches for installation on a developer's copy of Vista pulled from MSDN. He writes, "My legitimate MSDN-acquired Vista Ultimate, which has been running, activated and validated for several months, now fails WGA." Others have reported similar difficulties.
Interoperability and vendor lock-in
Microsoft has, historically, made business agreements and used their "embrace, extend and extinguish" philosophy to make interoperability with competing protocols and formats, difficult, if not impossible. Examples?
- David Cole and Phil Barrett exchanged emails on 30 September 1991: " "It's pretty clear we need to make sure Windows 3.1 only runs on top of MS DOS or an OEM version of it," and "The approach we will take is to detect dr 6 and refuse to load. The error message should be something like 'Invalid device driver interface.'"
- Expert witness Ronald Alepin espouses what Microsoft was trying to accomplish with MS Java Virtual Machine
- [...]Microsoft quickly jumped to develop Internet Explorer and used a wide array of competitive tactics to ensure that IE grabbed overwhelming share of the market and eventually pushed Netscape out of business.
- Microsoft released changes it made to the free Kerberos authentication protocol, developed at MIT, but attached licensing restrictions on the site where the changes were published, essentially locking down the information as a confidential "trade secret".
- Microsoft developed the (SAMBA/CIFS) specification further for its products but for various reasons [...] did not make the changes public.
- Microsoft snaps up OpenGL patents to prevent 3D acceleration on non-Windows operating systems
- Leaked, internal Microsoft memo(s) about how to combat Linux
- A fairly comprehensive list of Microsoft dirty tricks at Grokdocs.
However, Microsoft's Office Open XML format has been approved by the ECMA on December 7, 2006.
At the General Assembly meeting on 7 December 2006, Ecma International approved Office Open XML as an Ecma standard (Ecma 376). The General Assembly also approved submitting the standard for adoption under the ISO/IEC JTC 1 process. [...]
Multiple vendors such as Corel, Microsoft and Novell already announced implementations of the Open XML standard in very popular applications such as WordPerfect, Open Office and Microsoft Office 2007.
Of course we needed another competing, XML-based, document format since OASIS approved ODF as a standard five months earlier. Also, since ODF was approved as the ISO and IEC International Standard ISO/IEC 26300:2006, November of the same year. Microsoft has announced ODF support in unpcoming versions of Office.
Microsoft announced Wednesday the creation of the Open XML Translator project, so its Office suite will support the OpenDocument Format (ODF) standard.
The move comes in response to government requests for Microsoft products to be compatible with ODF, such as the national governments of Belgium and Denmark, and the state government of the Commonwealth of Massachusetts
The company said that the next edition of Office -- Office 2007, now expected early next year -- will include menu options for XML, ODF, and Adobe Systems' PDF formats. The ODF support would include Office's three main formats, namely Word, Excel, and PowerPoint.
So it's not native support. So, what. I'm sure they'll maintain a tool that allows organizations to maintain all of their documents in a competitors format with the same zeal with which they support their own native format. I mean, why wouldn't they. What's in it for them if they don't? Especially since it doesn't look like OOXML is going to get ISO approval.
Ironically enough, here's an email that went out of JTC 1 few days ago, relating to another Ecma Fast Track submission (26926). That standard is more commonly known as the [Microsoft] C++/CLI (Common Language Interface) Specification:
"We have been advised that the comments accompanying the Fast Track ballot for DIS 26926 are not resolvable and that holding a Ballot Resolution Meeting (BRM) would not be productive or result in a document that would be acceptable to the JTC 1 National Bodies. Therefore, our proposal is to not hold the BRM and to cancel the project." [...]
Grokdoc has a sizable list of objections against OOXML.
Update | August 25, 2007 Microsoft Office XML Formats? Defective by design
Last but not least, ECMA 376 documents just do not exist. The reason why is manyfolds :
Office 2007 documents are derived from theoretical ECMA 376 documents, to which is added binary parts, macros, OLE objects, ActiveX serialization, DRM, sharepoint metadata, ...
Office 2007 documents are incompatible with theoretical ECMA 376 documents, since the ECMA 376 documentation says among other things that VML is deprecated, and Office 2007 documents are still using plenty of it when creating new documents.
Microsoft strategy itself is to provide as little information as possible about the huge impedance mismatch between ECMA 376 and the actual implementation. Expect ECMA 376 to evolve only marginally, while Office 2007 next version will come with plenty more of Microsoft proprietary layers, especially those integrating the Microsoft Office suite with Windows.
On a related note, Adobe recently submitted PDF for ISO certification.
Adobe Systems Incorporated [...] announced that it intends to release the full Portable Document Format (PDF) 1.7 specification to AIIM, the Enterprise Content Management Association, for the purpose of publication by the International Organization for Standardization (ISO).
So, it's basically the wild, wild west in the document format world here lately.
Summation
Some of my earlier criticisims about adoption of a web-based office suite are no longer a barrier to entry. For example, according to a Neilsen/Netratings report on broadband penetration during the month of November of 2006, broadband usage is up to 78% of all internet activity in the US.
Nielsen//NetRatings, a global leader in Internet media and market research, announced today that 78 percent of active home Web users connected via broadband during the month of November, up 13 percentage points from 65 percent of active Web users a year ago
When I originally wrote this article in 2002, over half of all US internet usage was done over dial-up connections. Downloading 5-10MB java files to edit documents over a dial-up connection wasn't exactly a "solution" for dial-up users, but with broadband penetration numbers so high, this isn't really an issue anymore.
Still, most of my earlier commentary still stands. Microsoft has a history of poor interoperability by design to perpetuate vendor lock-in, has a poor track record when it comes to security both locally and across networks and in their haste to beat back piracy, routinely locks out legitimate customers from their legally purchased software. If Microsoft were to adopt a platform similar to ThinkFree, they could push out minute changes daily to thwart interoperability with competitors software and they've all but paid lip service to the main ISO certified open XML-based document format. A web-based, .NET version of Office is almost guaranteed to be a digital version of the roach motel for your data. Data will go in, but it won't come out.
A .NET version of Office is a bad idea (for consumers), but it'll probably be here before you know it.