13.07.2015 Views

C# in Depth

C# in Depth

C# in Depth

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

A brief history of <strong>C#</strong> (and related technologies)19Java is reasonably portable, despite the “write once, debug everywhere” skit on Sun’scatchphrase of “write once, run anywhere.” The idea of lett<strong>in</strong>g coders develop enterpriseJava applications on W<strong>in</strong>dows with friendly IDEs and then deploy (without evenrecompil<strong>in</strong>g) to powerful Unix servers was a compell<strong>in</strong>g proposition—and clearlysometh<strong>in</strong>g of a threat to Microsoft.Microsoft created their own Java Virtual Mach<strong>in</strong>e (JVM), which had reasonableperformance and a very fast startup time, and even released an IDE for it, named J++.However, they <strong>in</strong>troduced <strong>in</strong>compatible extensions <strong>in</strong>to their platform, and Sun suedMicrosoft for violat<strong>in</strong>g licens<strong>in</strong>g terms, start<strong>in</strong>g a very long (and frankly tedious) legalbattle. The ma<strong>in</strong> impact of this legal battle was felt long before the case was concluded—whilethe rest of the world moved on to Java 1.2 and beyond, Microsoft’s versionof Java stayed at 1.1, which made it effectively obsolete pretty rapidly. It was clearthat whatever Microsoft’s vision of the future was, Java itself was unlikely to be a majorpart of it.In the same period, Microsoft’s Active Server Pages (ASP) ga<strong>in</strong>ed popularity too.After an <strong>in</strong>itial launch <strong>in</strong> December 1996, two further versions were released <strong>in</strong> 1997and 2000. ASP made dynamic web development much simpler for developers onMicrosoft servers, and eventually third parties ported it to non-W<strong>in</strong>dows platforms.Despite be<strong>in</strong>g a great step forward <strong>in</strong> the W<strong>in</strong>dows world, ASP didn’t tend to promotethe separation of presentation logic, bus<strong>in</strong>ess logic, and data persistence, which mostof the vast array of Java web frameworks encouraged.1.2.2 <strong>C#</strong> and .NET are born<strong>C#</strong> and .NET were properly unveiled at the Professional Developers Conference(PDC) <strong>in</strong> July 2000, although some elements had been preannounced before then,and there had been talk about the same technologies under different names(<strong>in</strong>clud<strong>in</strong>g COOL, COM3, and Lightn<strong>in</strong>g) for a long time. Not that Microsoft hadn’tbeen busy with other th<strong>in</strong>gs, of course—that year also saw both W<strong>in</strong>dows Me andW<strong>in</strong>dows 2000 be<strong>in</strong>g released, with the latter be<strong>in</strong>g wildly successful compared withthe former.Microsoft didn’t “go it alone” with <strong>C#</strong> and .NET, and <strong>in</strong>deed when the specificationsfor <strong>C#</strong> and the Common Language Infrastructure (CLI) were submitted toECMA (an <strong>in</strong>ternational standards body), they were co-sponsored by Hewlett-Packardand Intel along with Microsoft. ECMA ratified the specification (with some modifications),and later versions of <strong>C#</strong> and the CLI have gone through the same process. <strong>C#</strong>and Java are “open” <strong>in</strong> different ways, with Microsoft favor<strong>in</strong>g the standardizationpath and Sun gradually open sourc<strong>in</strong>g Java and allow<strong>in</strong>g or even encourag<strong>in</strong>g otherJava runtime environments. There are alternative CLI and <strong>C#</strong> implementations, themost visible be<strong>in</strong>g the Mono project, 5 but they don’t generally implement the wholeof what we th<strong>in</strong>k of as the .NET Framework. Commercial reliance on and support5http://www.mono-project.comLicensed to Rhona Hadida

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!