LAS VEGAS, Nov. 13, 2000 As part of its ongoing drive to deliver on the promise of software as a service, Microsoft on Sunday announced Beta 1 availability of the .NET Framework and the Visual Studio.NET development system. The .NET Framework and Visual Studio.NET provide support for multiple programming languages and automatically handle many common programming tasks, freeing developers to rapidly create Web Services using whatever languages they choose. Microsoft Chairman and Chief Software Architect Bill Gates demonstrated the technologies Sunday night during his keynote address at the start of the COMDEX/Fall 2000 conference.
Together with industry partners Hewlett-Packard Corp. and Intel Corp., Microsoft also formally submitted its new C# (pronounced "C sharp" ) object-oriented programming language and the Common Language Infrastructure (CLI) -- a key subset of the .NET Framework -- to the European Computer Manufacturers Association for standardization. ECMA is an independent standards body committed to the creation and guidance of key Internet technologies.
PressPass spoke with Microsoft distinguished engineer Anders Hejlsberg, chief designer of C# and a key participant in the development of the .NET Framework, to learn more about the benefits of these technologies for developers as well as consumers.
PressPass: What is the Microsoft .NET vision for creating Web Services, and how do the .NET Framework and Visual Studio.NET help fulfill this vision?
Hejlsberg: The overall vision for Microsoft .NET is to create a common platform for building applications that can be delivered as reusable, interoperable services over the Internet and corporate intranets. Getting there will require a new programming environment in which developers are free to mix and match components from multiple programming languages to create the computer applications of tomorrow.
With Beta 1 availability of the .NET Framework and Visual Studio.NET development environment, Microsoft has reached the next milestone in the delivery of a platform and tools that give developers broad freedom to write their applications in whatever programming language they are comfortable with. We are shipping four different programming languages -- Visual Basic, C++, C# and JScript -- within Visual Studio.NET, but there are actually 17 languages in all that target the .NET Framework. So rather than having to relearn everything they know, developers can apply their existing skills and investments toward creating the next generation of applications on the .NET Framework.
PressPass: What are the most significant trends and demands in the industry that have spurred Microsoft to develop the .NET Framework and Visual Studio.NET?
Hejlsberg: We need to start with a little bit of history. As recently as five or 10 years ago, applications were these monolithic things that couldn't easily integrate with each other. Microsoft took the first steps toward enabling deeper integration with the Common Object Model (COM), which provided guidelines and some infrastructure for specifying how applications could interoperate. This allowed applications and components to continue to have their own internal structure but also expose a view of themselves to the outside world as COM. But developers still have to write a lot of additional plumbing into their applications.
Now, if everything were still monolithic applications, perhaps this wouldn't really be a problem. But developers today are increasingly writing small components that slot into hosting environments, such as a control in a Web browser or some code that sits in an Active Server Page (ASP). This whole conglomeration of components is what makes up the application. Instead of writing all of these components from scratch, developers want to start with some base functionality that they can inherit and specialize within their applications. They also need a common infrastructure that enables all of the components within an application to talk to each other and provides a common set of application programming interfaces (APIs) across all programming languages, whether they're writing code in a browser control, an ASP page, or a rich application.
Only when everybody agrees to handle these processes in the same way can developers hope to make all of these components interoperate. What Microsoft is doing with the .NET Framework is unifying all of the various programming models that people use today on a common foundation, so the APIs that you would expect to find in one scenario are also available everywhere else. The .NET Framework common language runtime and the .NET Framework class libraries underlie every component or application built on this platform, which means that developers no longer have to go through the time-consuming chore of creating alternate views of their applications with COM.
PressPass: How do you foresee the .NET Framework and Visual Studio.NET enabling developers to do things they couldn't do before?
Hejlsberg: First, we are dramatically simplifying application development on this platform. The .NET Framework introduces a common set of application programming interfaces and a unified set of commands across all programming languages. All of the complicated aspects of COM -- such as registering components in the registry and reference counting -- are no longer necessary in this platform. The .NET Framework automatically takes care of all that housekeeping so developers can focus on writing business logic code specific to their applications. Also, any .NET Framework class that you write can be used from COM with zero extra work. Likewise, any COM class that exists can be imported and used from the .NET Framework.
Microsoft designed the .NET Framework from the ground up with deep integration of Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), and other Web standards and protocols. The .NET Framework guides the developer along a path of creating applications with a stateless, loosely connected programming model, which is what characterizes the Internet. The whole .NET Framework is standards-compliant and open, so applications built with the .NET Framework are automatically Internet-enabled and have all the hooks in place to be transformed into Web Services whenever the need arises.
PressPass: What are the key features of the new C# programming language, and what sets it apart from other object-oriented languages such as Java?
Hejlsberg: C# is the first component-oriented programming language in the C and C++ family, combining the power and control of those two languages with the functional ease of rapid application development tools. When you think about what makes up a component, it's things like properties and methods and events -- what people call the PME model of programming. But there is no inherent notion of properties or events in Java or C++; rather, developers must emulate those concepts by creating conventions, design guidelines and naming patterns within their applications. It saddles the developers with a bunch of housekeeping that most of them would rather not perform. In C#, all three pieces of the PME model are native elements that you can express when you write your code. Again, this saves developers the time and effort of creating all that housekeeping, so they can concentrate on writing their core algorithms.
PressPass: How will end users benefit from Web Services created on the .NET Framework?
Hejlsberg: In the end, the .NET Framework makes the Internet programmable. This is a very powerful concept. Imagine an application that could use Web Services to consolidate your business information, news and financial statements from various banks, investment brokerages and other institutions. Instead of you having to browse to four different Web sites to figure out where you stand financially, the application simply calls upon Web Services at each institution and then presents you with the consolidated view. One click of the mouse sets a program into motion that uses the .NET Framework infrastructure to talk to all of these different services.
It's a little early to fully predict where the .NET Framework is going to lead, or exactly what developers are going to build with Web Services. But we do know that if you give people the ability to program the Web instead of merely looking at Web pages through a browser, you open up a whole new set of avenues that were never there before.
PressPass: What is Microsoft doing to encourage public standards and greater freedom of choice with respect to development platforms?
Hejlsberg: Open standards are critical to the success of Microsoft's vision for delivering software as a service. Modern computing networks are built on increasingly heterogeneous technologies -- the Internet itself being the foremost example -- which means that technology providers must agree to certain methods of integration and interoperability. The only way to achieve this is through true, consensus-based standards bodies such as the Worldwide Web Consortium (W3C) and ECMA. Microsoft is deeply involved with the efforts of these organizations to create public standards around the key technologies that constitute the .NET platform, as evidenced by the submission of C# and the CLI to ECMA. Another example is the work Microsoft did with DevelopMentor, IBM and UserLand to co-author and co-submit SOAP to the W3C for standardization earlier this year.
PressPass: What role have Microsoft's partners, such as HP and Intel, played in the evolution of the .NET Framework and Visual Studio.NET?
Hejlsberg: Building infrastructure such as the .NET Framework, SOAP and C# is extremely complex work, and Microsoft hasn't cornered the market on smart people. We eagerly work with companies who share our goal of interoperable Web Services. Microsoft is working with industry partners such as Ariba, Fujitsu, Hewlett-Packard, IBM, Intel and Iona to create these next-generation technologies and refine the specifications around them for standardization. As we work with these companies, we also uncover new ideas for creating better products.
PressPass: What's next in the continuing evolution of Microsoft's overall Web Services vision?
Hejlsberg: Delivering Beta 1 of Visual Studio.NET and the .NET Framework is an important step in fulfilling the .NET vision, but it's only the beginning. As we move forward, more and more Microsoft products will integrate into the same vision of making the Internet programmable through any kind of device, and of course you'll be begin seeing more and more Web Services appearing on the Web. I'm encouraged by how much traffic we have on the newsgroups and how much excitement is out there. At this point, we want to encourage MSDN Universal subscribers to download these tools and see for themselves that the benefits we've been talking about are real.