Home » Posts tagged 'Nat Friedman'
Tag Archives: Nat Friedman
The cloud experience vision of .NET by Microsoft 12 years ago and its delivery now with Windows Azure, Windows 8/RT, Windows Phone, iOS and Android among others
September 16, 2012 12:40 pm / 7 Comments on The cloud experience vision of .NET by Microsoft 12 years ago and its delivery now with Windows Azure, Windows 8/RT, Windows Phone, iOS and Android among others
Take also a Food for thought: Cloud experience development: the new essence [this same ‘Experiencing the Cloud’ blog, Sept 7, 2012]
Update as of Sept 11, 2013: finally recognized by the top business media, unfortunately as an Epic Fail: Microsoft’s Internet Vision From 2000 [Bloomberg YouTube channel, Sept 11, 2013]
Had they recognized the famous at that time “Steve Masters video’ their ‘Epic Fail’ retrospective would had been even more devastating: Steve Masters [Microsoft, March 24, 2009, but originally July 25, 2000]
Update as of Sept 20, 2012: Take note as well that CVP Jason Zander, who was up to now responsible for the delivery of Visual Studio 2012 described here, finally took his new role as CVP of development for Windows Azure. With this Azure has a triad structure with program management under CVP Scott Guthrie, and test and engineering systems under CVP Bharat Shah, all directly under the head of Server and Tools Business (STB), Satya Nadella. This is a structure quite similar to Steven Sinofsky’s Windows Business. It is also remarkable that Windows Embedded is also in the STB (since 2010), although not as directly as Azure. All this was first reported by ZDNet in August. The Windows Embedded position in STB you can grasp from an earlier post of mine: The future of Windows Embedded: from standalone devices to intelligent systems [March 9-28, 2012]. You can also find a “Who is Jason Zander?” update in the “Visual Studio 2012 Launch …” section of this very long post.
END OF UPDATES
Made public on June 22, 2000 and becoming essentially dead on August 9, 2000, so having just 49 days of public lifetime, there was an inherent fate in the original .NET vision as it was a true cloud experience vision. Microsoft, however, wasn’t able to deliver that in terms of intended customer and consumer values widely advertised, “only” in terms of essential foundation technologies (but even that had been a tremendous achievement). So a non-cloud version of .NET had been delivered during not less than 8 years because of that. Even since 2008—with the evolving versions of Windows Azure cloud solution—the cloud experience had been so limited in .NET terms that we could not see any real, massive deliveries of the original .NET version. Not anymore!
How this happened? A conclusive summary put ahead: For me the morale of this, My .NET Services (alias Hailstorm) story is that without an extremely strong and capable, general constructor type leader, responsible for the delivery of the whole .NET vision (all along), a vision like the original .NET cannot succeed, if at all. With Ballmer’s August 9, 2000 decision not only the responsibilities were spread over all of Microsoft, but even the leadership was quite divided and diverse: Steve Ballmer, Bob Muglia, Eric Rudder, Sanjay Parthasarathy (who was initially under Rudder but essentially independent), … and—most importantly—Bill Gates himself, who as the CEO just months before had tremendous influence and respect throughout the organization, but was “clever enough” not to take any formal leadership responsibility by occupying a quite undefined “chief software architect” position.
With the Windows Azure cloud now in the Satya Nadella’s hands, the upcoming Windows 8 PC clients in Steven Sinofsky’s (including the ARM based Windows 8 tablets), the Silverlight 4 derived Windows Phone 7.5 transitioning to the Windows Phone 8 having the same core as in Windows 8, and finally the Xbox now enhanced to a full entertainment hub in the living room, with all that Microsoft finally is in the position to introduce a complete Post-PC offering as had been envisaged by Ray Ozzie. Wait no more than October 26, 2012, when the first and probably most important wave of that, Windows 8 is coming to the market. End of the conclusive summary.
For a well researched, more general analysis the best answer is in the Microsoft’s Lost Decade [Vanity Fair, Aug 15, 2012] which appeared in the August 2012 magazine issue as “How Microsoft Lost Its Mojo: Steve Ballmer and Corporate America’s Most Spectacular Decline”. A highly recommended read as an addition to this story!
Here is the evidence of the original .NET vision as well as a brief retrospect of what happened behind the scene, then follows a section on more .NET background, as well as another section about the current Microsoft .NET as it is, then two sections for the new development platform which made possible the delivery of the original .NET vision:
-
The original .NET vision and its failed delivery with final correction started with Ray Ozzie
-
More .NET background
-
The current Microsoft .NET as it is
-
Visual Studio 2012 Launch for Connected devices & Continuous services
-
Windows Azure Mobile Services (Preview) for the “reborn” June 2012 release of Windows Azure
Note put forward from the end: you will see that the originial .NET vision is now completely delivered as illustrated by the following illustration from very end:
also: .NET is now a core part of several Microsoft platforms, and each has focused on specific subset of APIs.
Figure 1: .NET Framework profiles in context
Figure 2: Feature areas supported by .NET for Metro style apps
.NET for Metro style apps | Windows Phone 7.1 | .NET Framework 4.5 | |
Namespace | 72 | 95 | 447 |
Type | 1,246 | 1,788 | 14,936 |
Member | 15,674 | 20,291 | 217,166 |
Table: API surface counts, by .NET Profile
The original .NET vision and its failed delivery with final correction started with Ray Ozzie
Microsoft .NET vision – Consumer.mpg [Microsoft, July 25, 2000]
Microsoft .NET vision – Healthcare.mpg [Microsoft, July 25, 2000]
Microsoft exposes .NET vision [David Beynon in Computerworld Australia, July 3, 2000]
To fully exploit the Internet as it’s going to look over the next few years (ie, Internet: the next generation), organisations must ‘expose themselves programmatically’ online, says Paul Maritz, the Microsoft group vice president of the platforms strategy and developer group.
With the help of a slick video featuring an accident-prone Steve Masters apparently of Seinfeld sitcom fame, Maritz last week argued the case for transforming the Internet into a services-rich platform. Such a platform, built on the back of Microsoft’s XML-based .NET (dot-net) environment, would let individuals use personalised services provided, or arranged, more or less instantly via online wireless devices. In Maritz’s scenario, it would be transparent to the individual if the personalised service required interaction with one or many organisations behind the scenes.
“We want to develop Web services that expose the functionality, the business logic, the value that you add across the Internet – expose it programmatically,” Maritz said. “When we really start to use the Internet as an information bus [it will] allow people to pull together the information they want and have more satisfying experiences.”
While the video showed Masters more as an efficient idiot rather than a satisfied customer, it did demonstrate the potential of an ‘information bus’ type Internet.
The plot went roughly like this: Masters is away from his home town when he is run down by a bicycle courier, and while lying on the footpath he uses his ‘smart phone’ to call his regular doctor’s office; the receptionist quizzes him about his injury (ankle); a GIS functionality within his smart phone signals his location and the receptionist identifies two appropriate orthopaedic specialists within limping distance. The receptionist’s system tells her that Masters’ health insurance cover is only 80 per cent at the nearest specialist while he’s 100 per cent covered for the slightly more distant doctor. She relays this to Masters and he chooses the closest doctor; the same receptionist checks the specialist’s schedule, finds she’s available and makes an appointment; the receptionist asks Masters if he wants his medical records (text and image) available online to the specialist; Masters says yes and the specialist is authorised for this access (voice or bio recognition possibly working in the backgound); the ins-urance payment pro-cess is initiated; he hobbles around the corner for treatment.
This all happened within a five-minute phone call. On crutches, Masters leaves the specialist’s office. He is run down by another bicycle courier. End video.
Imagine the systems integration hassles that would lie behind delivering the service as described above. Maritz claims that .Net products and services delivered by Microsoft and partners would ultimately make such work relatively easy (but remember .NET will take several years to roll out).
“His medical records information [could be] stored in a future .NET storage service and he controls access to that information. It’s an example of storing personal state, personal preferences, important information, out on the Internet, and then retaining control of it.”
“More importantly, what we saw was a number of Web service-enabled businesses, cooperating together programmatically across the Internet,” Maritz added. “There were the Web services that the receptionist was invoking and all of those were coming together in what to her looked like a single experience.”
According to Maritz, to enable such scenarios Microsoft is working on a ‘common programming model’ for the Next Generation Internet that is based on accepted, open, Internet standards, in particular the XML standard. This would let Microsoft and developers build to this model and call on the services it offers (see .NET white paper extract starting page 10 [not available anymore, therefore see the whole whitepaper text included below in the beginning of “More .NET background” section that is right in the middle of this post]). Other key technologies include the Simple Object Access Protocol (SOAP) protocol (which Maritz described as “essentially the protocol that lets XML travel over the Internet”) which Microsoft submitted, jointly with IBM, to the World Wide Web Consortium.
“We believe that with this common programming model, and the set of standards laid down, we can start to build some very exciting and useful solutions,” he added.
Third-party .NET services are crucial to Microsoft’s strategy. To help ‘bootstrap’ the industry towards its vision, Microsoft will invest $US2 billion over the next three years to enable industry partners, independent developers and corporate IT developers to build Microsoft .NET services.
Early offerings to the development community include Visual Studio 7, or VisualStudio.NET, a prerelease version of which will be given to developers this month at Microsoft’s Professional Developers’ Conference in Orlando, Florida. The full Visual Studio.Net development suite won’t be available until 2002 or later. A version of Visual Studio 7 to be introduced next year will include some of the capabilities that developers need to build applications for the .Net platform, including support for the SOAP and enhanced XML support.
Visual Studio.Net falls under the Microsoft.Net services push, where developers build building blocks. The goals of the building blocks are to make applications easy to develop and integrate as well as to give developers the ability to project information to users when and where they need it, via whatever types of devices they require. Visual Studio is currently in a limited beta-testing phase.
New features in Visual Studio.Net include Drag-and-Drop Web Services development and a Web Form Designer. Drag-and-Drop Web Services enable developers to drag a task, such as calendaring, directly into a project so developers do not have to write reams of code for every program. The Web Form Designer is a graphical designer in which code or Web Services components can be dragged and dropped right into a project.
Microsoft also demonstrated a new aspect of BizTalk Server at Forum 2000, the BizTalk Application Designer. Built on top of Visio 2000, this feature enables developers to add business actions into Web services. The biggest benefit, according to BizTalk group manager Amit Mital, is that it enables business analysts to change the business processes without involving the developer.
Also new is a programming language dubbed C# (C Sharp). This is a language derived from C and C++ that provides a way for developers to build applications and components for the .Net platform, according to Tony Goodhew, Microsoft’s Visual C++ product manager.
Bob Trott contributed to this report. David Beynon was a guest of Microsoft at the Forum 2000 event, held in Redmond, Washington on June 22.
Microsoft Delivers First .NET Platform Developer Tools for Building Web Services [press release, July 11, 2000]
PDC Attendees Receive Technology Preview of .NET Framework and Visual Studio.NET
In his keynote address at the eighth Microsoft Professional Developers Conference (PDC) 2000, Paul Maritz, group vice president of the Platforms Group at Microsoft Corp., today announced the initial developer availability to PDC attendees of the Microsoft® .NET Framework and Visual Studio.NET for building, integrating and running next-generation, XML-based Web services. Visual Studio.NET, the latest version of the world’s most widely used development tools, provides native support for drag and drop development of Web services. Together, these two products provide developers with a high productivity, multilanguage environment to rapidly build, deliver and integrate Web services on the Microsoft .NET Platform.
“Delivering this software to developers today is an important milestone in helping developers build next-generation Internet software and services,” Maritz said. “By creating a unified platform where devices and services cooperate with each other, Microsoft is unleashing a new wave of developer opportunity and creativity that will help developers reach a new level of power and simplicity.”
At the heart of the .NET Platform is the .NET Framework, a high-productivity, multilanguage development and execution environment for building and running Web services with important features such as cross-language inheritance and debugging. The .NET Framework simplifies the creation of Web services by automatically handling many common programming tasks, regardless of programming language, reducing the amount of code developers must write and eliminating common sources of programming errors. The .NET Framework is the industry’s first development environment to natively support Simple Object Access Protocol (SOAP). The .NET Framework incorporates advances to two key Microsoft development technologies: the Component Object Model, the most popular reusable software model in the world, and Active Server Pages, used by nearly 1 million Web developers.
Separately, Microsoft announced that 17 third-party programming languages, such as Perl and Python from ActiveState, will support the .NET Framework. The result is a new model of service-based development that offers faster time to market and more reliable, scalable software.
Microsoft also announced the .NET Compact Framework, which allows any device to emit or consume XML-based Web services. The .NET Compact Framework is a small footprint, CPU-independent implementation of the .NET Framework. Microsoft will provide a version for Windows® CE and other embedded operating systems, as well as for devices that do not require an operating system.
Visual Studio.NET is the most productive tool set for developers building Web services on the .NET Platform. Visual Studio.NET, which includes updates to the Visual Basic® and Visual C++® development systems, the Visual FoxPro® database development system, and a new language, C#, the recently announced dialect of C++, helps developers extend today’s development skills to tomorrow’s Web applications and Web services. Visual Studio.NET provides an easy-to-use, extensible integrated development environment (IDE) for the .NET Framework. Together, the new technologies introduced in the .NET Framework and Visual Studio.NET will enable millions of developers worldwide to quickly build and consume scalable, reliable and manageable Web services.
“We’re really excited about Visual Studio.NET,” said Bill Shea, software development manager for Merrill Lynch & Co. Inc. “Enabling our software developers to rapidly build applications that integrate with the systems we have today, and that use Internet standards to communicate with any client system or device, will help us further enhance our service offerings and maintain our position as one of the world’s leading financial management and advisory companies.”
About Microsoft .NET
The Microsoft .NET Platform, announced June 22 at Forum 2000, is Microsoft’s initiative for creating the next generation of software, which melds computing and communications in a revolutionary way. This vision offers developers, businesses and consumers the ability to harness technology on their terms and with the tools they need to create truly distributed Web Services making information available any time, any place and on any device.
About Microsoft
Founded in 1975, Microsoft (Nasdaq “MSFT” ) is the worldwide leader in software, services and Internet technologies for personal and business computing. The company offers a wide range of products and services designed to empower people through great software — any time, any place and on any device.
Microsoft, Visual Studio, Windows, Visual Basic, Visual C++ and Visual FoxPro are either registered trademarks or trademarks of Microsoft Corp. in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Unfortunately Paul Maritz didn’t get the expected full responsibility job for delivering on the vision, in fact remained in a non-effective position of just overseeing the delivery:
Ballmer Outlines Changes to Advance Microsoft’s .NET Strategy [press release, Aug 9, 2000]
Microsoft Moves to Deliver on its Vision for the Next Generation Internet While Continuing Strong Focus on Core Businesses
…
Alignment for the Future — Building on Today’s Core Business
Creating one set of building blocks that every .NET application can use is paramount to delivering the .NET infrastructure. To lead this effort, Bob Muglia will take on a new role as group vice president of the .NET Services Group.
Muglia’s primary responsibility will be to develop the software technologies, subscription services and new user interface that will help consumers, businesses and software developers realize the full potential of the Internet.
“Microsoft is investing significant resources in the .NET initiative while continuing to stay very focused on our core businesses,” said Muglia. “We think this is a winning strategy for consumers, businesses, software developers and Microsoft.”
The following Microsoft executives will lead the .NET efforts under Muglia:
David Cole , senior vice president, will lead the Personal Services Platform Division. This division will be responsible for building the back-end services that form the infrastructure for both the MSN® network of Internet services and .NET.
Brian MacDonald , who is being promoted to senior vice president, will lead the Subscription Service Division. MacDonald will be responsible for the development of a subscription service that will offer users a cutting edge Internet experience.
Kai-Fu Lee , who is being promoted to vice president of the User Interface Technologies Division, will focus on the development of a next generation user interface that incorporates natural language and speech technologies and provides users with greater control over personal information and preferences.
The .NET Services Group will become part of the newly established Personal Services and Devices Group (PSDG), which will be led by Group Vice President Rick Belluzzo . In addition, PSDG will include MSN, Microsoft’s TV Service and Platform Division, the Home and Retail Division and the Mobility group.
…
The Platforms Strategy and Developer Group, under the leadership of Paul Maritz , group vice president, will continue to oversee business development, overall platform product strategy and planning, and Visual Studio® .NET. Microsoft’s Visual Studio.NET, with the .NET Framework, provides a single, rapid application development environment that enables an XML-based programming model to create and tie together highly distributed programmable web services, including the building block services built by the .NET Services Group and other groups at Microsoft.
So soon it was announced that Paul Maritz to Retire After 14 Years at Microsoft [Microsoft press release, Sept 13, 2000] with all his units spread over elsewhere:
…
Microsoft Vice President Sanjay Parthasarathy, who formerly reported to Maritz, has been appointed to a new developer evangelism and business development role, and will report directly to Ballmer.
“Microsoft’s developer relations efforts, which have always been a top priority for the company, will continue,” said Ballmer, “and will in fact be expanded, with Sanjay Parthasarathy responsible for driving business and technology relationships with a few key ISVs, dot-coms and venture capitalists. Sanjay also will play a coordinating role with the existing developer evangelism teams within Microsoft’s business divisions.”
…
In addition to Sanjay Parthasarathy’s new role, Yuval Neeman will continue as vice president of the Developer Division, reporting to Group Vice President Jim Allchin. Mike Nash, vice president of the Content Development and Delivery Group, which includes the MSDN® developer program, also will report to Allchin. Chris Atkinson, vice president for .NET Developer Solutions, will report to Senior Vice President Paul Flessner. Charles Stevens, vice president of the Business Solutions Group, will continue to oversee Microsoft’s relationships with ISVs.
Among them Sanjay Parthasarathy had been able to influence most the delivery on the original vision (as the founder and a longtime leader of the so called DPE), but he left Microsoft in middle of 2009, returned to India and now he is describing himself as:
I’m working on a startup called Indix [as CEO].
I was at Microsoft for 19 years. My last role was as corporate VP of the Startup Business Accelerator, a new division I created to focus on building startups for Microsoft.
I was corporate VP of the Developer & Platform Evangelism Group [DPE or D&PE] from 2000 to 2007. I built the D&PE division from 0 to over 1,500 people worldwide and grew Microsoft’s developer tools business from $500 million to $1 billion.
…
Under Parthasarathy’s DPE successor, Walid Abu-Hadba (who came first a GM, and after half a year got his corporate VP title) .NET went into oblivion as his assignment had no mention of .NET at all, as evidenced by the announcement of his VP appointment [press release, Feb 8, 2008]:
… to focus on platform strategy and evangelism of the Microsoft platform to developers, IT professionals and partners worldwide.
Abu-Hadba in fact was a insignificant leader even in that role as he almost exclusively exposed himself in the students evangelism only for the last 4+ years, with statements like [June 10, 2010]:
“The future of computing is developed by students and young entrepreneurs working in dorm rooms, garages and coffee shops,” Abu-Hadba says. “Microsoft is enabling the next generation of software developers by providing the tools and opportunities they need to learn, develop skills, and turn their ideas into realties. We are committed to doing everything we can to help spur those game-changing advancements through programs like Imagine Cup, DreamSpark, and BizSpark.”
As a clear sign of transfer of responsibility for .NET another new executive appointment had been made at the same time, as quoting from the same release:
Scott Guthrie, corporate vice president, .NET Developer Platform. Previously general manager, Guthrie will continue to oversee several development teams responsible for delivering Microsoft Visual Studio developer tools and Microsoft .NET Framework technologies for building client and Web applications.
With it even the fate of remaining .NET Framework and Visual Studio.NET parts of the original .NET vision had already been decided: something different should take up their position even in the developer platform space. Although Guthrie got a mandate to try to revitalize the .NET development platform with the already promising universal web browser plug-in effort, Microsoft Silverlight (see also the Microsoft Silverlight History), that effort ended with insufficient result (not Guthrie’s and his team fault, but the failure of the whole plug-in concept in 2010/11). That fate had been finalized by his next executive move to being (quoting from his July 15, 2011 exec bio):
… responsible for delivering the development platform for Windows Azure, as well as the .NET Framework and Visual Studio technologies used in building Web and server applications.
A founding member of the .NET project, Guthrie has played a key role in the Microsoft developer space since 1998. Today, Guthrie manages the development teams that build the developer platform for Windows Azure, Windows AppFabric Server, BizTalk Server, IIS, ASP.NET, WCF, WF and the Web, and Web Service and Workflow features of Visual Studio.
For the future of the .NET development platform this meant more precisely (as quoted from an internal May 2, 2011 Developer Division memo by ZDNet):
Sharpening our Focus around Azure and Cloud Computing. Azure and the cloud are incredibly important initiatives that will play a huge role in the future success of STB [Server and Tools Business] and the company. Given the strategic importance of Cloud Computing for STB and Microsoft, we need a strong leader to help drive the development of our Cloud Application Platform and help us win developers for Azure. We’ve asked Scott Guthrie to take on this challenge and lead the Azure Application Platform team that will report to Ted Kummert in BPD [Business Platform Division inside the Server and Tools Business lead by Satya Nadella] … This team will combine the Web Platform & Tools team led by Bill Staples, the Application Server Group led by Abhay Parasnis and the Portal and Lightweight Role teams from the Windows Azure team. Scott’s transition is bittersweet for me. I personally will miss him very much, but I’m confident that Scott will bring tremendous value to our application platform. With Scott’s current organization finishing up important milestones, the timing is right for Scott to take on this role.
With Scott’s transition, the Client Platform team led by Kevin Gallo will report directly to me and will continue its focus on the awesome work that the team is doing for the different Microsoft platforms. The .NET Core Platform team led by Ian Carmichael will report to Jason Zander which will bring the managed languages and runtime work closer together. Patrick Dussud will report to Ian Carmichael and will continue being the technical leader for .NET.
For more information see also: Microsoft’s New Leader of Server and Tools: ‘Our Mission Is to Cloud-Optimize Every Business’ [Microsoft feature story, June 22, 2011]
Satya Nadella’s appointment [Feb 9, 2011] was actually made as Bob Muglia, previously president of the Server and Tools Business, decided to leave Microsoft because of Steve Ballmer’s decision “that now is the time to put new leadership in place for STB” [internal e-mail from Ballmer made public, Jan 10, 2011]. While Ballmer mentioned Muglia’s successes in hie e-mail he didn’t mention on crucial failure for which Ballmer himself was in fact responsible. Returning again to that August 9, 2000 decision:
Ballmer Outlines Changes to Advance Microsoft’s .NET Strategy [press release, Aug 9, 2000]
Microsoft Moves to Deliver on its Vision for the Next Generation Internet While Continuing Strong Focus on Core Businesses
…
Alignment for the Future — Building on Today’s Core Business
Creating one set of building blocks that every .NET application can use is paramount to delivering the .NET infrastructure. To lead this effort, Bob Muglia will take on a new role as group vice president of the .NET Services Group.
Muglia’s primary responsibility will be to develop the software technologies, subscription services and new user interface that will help consumers, businesses and software developers realize the full potential of the Internet.
“Microsoft is investing significant resources in the .NET initiative while continuing to stay very focused on our core businesses,” said Muglia. “We think this is a winning strategy for consumers, businesses, software developers and Microsoft.”
The following Microsoft executives will lead the .NET efforts under Muglia:
David Cole , senior vice president, will lead the Personal Services Platform Division. This division will be responsible for building the back-end services that form the infrastructure for both the MSN® network of Internet services and .NET.
Brian MacDonald , who is being promoted to senior vice president, will lead the Subscription Service Division. MacDonald will be responsible for the development of a subscription service that will offer users a cutting edge Internet experience.
Kai-Fu Lee , who is being promoted to vice president of the User Interface Technologies Division, will focus on the development of a next generation user interface that incorporates natural language and speech technologies and provides users with greater control over personal information and preferences.
The .NET Services Group will become part of the newly established Personal Services and Devices Group (PSDG), which will be led by Group Vice President Rick Belluzzo . In addition, PSDG will include MSN, Microsoft’s TV Service and Platform Division, the Home and Retail Division and the Mobility group.
Bob Muglia, however, failed tremendously on this assigment and quite quickly. His last public exposure in that assigned capacity was in the time of the first developers release of .NET My Services (formerly codenamed “HailStorm”) and the .NET Compact Framework, which brings .NET to a variety of “smart” devices [Oct 23, 2001]. In an adjacent Q&A: For Developers, Microsoft Group VP Muglia Says Microsoft is Delivering on .NET Now [Microsoft feature story, Oct 23, 2001] he is answering questions about .NET My Services. Let’s quote the most relevant ones from the point of view of the original .NET vision:
PressPass: What will the advent of the .NET My Services mean to developers and business customers? To consumers?
Muglia: For developers, it means a powerful platform for building Web services that offer real value to customers. The value comes from providing users with the ability to log on to Web sites easily, and receive timely and relevant notifications that they’ve consented to receive. By doing this, we think that businesses will see more demand for their products. At the same time, consumers will benefit from the new breed of applications that result — applications that deliver more convenience and value than ever before.
For example, eBay has deployed the .NET Alerts service on their Website to make sure that their customers are notified when they are outbid. That way, customers can act on that information quickly and easily, and avoid losing an auction item they really want.
PressPass : How does .NET My Services fit into Microsofts overall .NET strategy?
Muglia: The creation of user-centric services are central to our .NET strategy. . NET My Services takes advantage of the. NETbased technologies and architecture that make it possible for applications, devices, and services to work together. These services make user consent the basis for who can access user information, what they can do with it, and how long they have permission to do so.
PressPass: Can you give us examples of the kinds of things that developers will be able to do with the .NET My Services platform?
Muglia: Starbucks is one early adopter of .NET My Services. They’re enabling some really forward-looking, cutting-edge wireless applications that may make standing in line inside a store a thing of the past. They are working with Ontain on new services that will enable people to have their coffee preferences preset with Starbucks. Then they can place their order via their mobile phone, and when they arrive in the store, their drink is already made and paid for.
The whole .NET infrastructure envisaged in the August 6, 2000 decision by Microsoft was described in the Speech Transcript – Eric Rudder, Tech-Ed – 2002 [Microsoft transcript, April 10, 2002] by Eric Rudder, Chief Technology Officer and Senior Vice President, D&PE:
…
Having a strong infrastructure on the back end for millions of people to use Web services is key, and here we build upon the strength of the Windows Server family and the .NET Enterprise Servers as well.
We’ve offered a set of foundation building block services, which we call .NET My Services, centered around Passport and alerts, to enable developers to focus more on their business logic and the business problem that theyre trying to solve rather than re-implement that plumbing again and again and again, and Ill talk some more about that.
…
The first key thing is authentication. This is led by our Passport service, which we launched in 1999. There are over 200 million accounts today. We handle over 3.5 billion authentications per month, which is truly staggering when you think about it, when you think about the scalability of the .NET platform.
We support federation, so corporations can have their own version of authentication, have their own databases, have their own information about their employees and their customers, while still providing a single programming model and single toolset, all covered by the .NET framework.
And, of course, weve announced services for notification as well to deliver anytime, anywhere, on any device alerts. This is our .NET Alert Service. Again, its user-controlled: I subscribe to the events that Im interested in. I route them to the devices that I want at the time I want with the priority that I want.
So I think Web services are pretty compelling today. If you think about what we announced at the PDC, the foundation for our Web services vision and the foundations for our Global XML Web Services Architecture, which we codenamed GXA, you can get quite a lot done with XML Web services today.
…
For servers clearly the biggest thing on the horizon for us is the shipment of Windows .NET Server later in the year. Again, we redefine the category of what it means to be a Web service application server.
For smart clients Stinger is our key smart phone device coming out. I showed you Pocket PC phone edition. Tablet PC will also ship later in the year. I think thats an incredibly exciting device.
Well have the key tools as well, the smart device extensions. If you know Visual Studio you know how to write a Pocket PC application. The .NET Compact Framework, which again is supportable across not just CE but other operating systems as well.
And our services roadmap will start with Passports and alerts and well move up to .NET My Services going forward in the future.
…
Then came the problems from the very starting point, Passport:
Q&A: Microsoft’s Agreement with the Federal Trade Commission on Passport [Microsoft feature story, Aug 8, 2002]
PressPass: What exactly is the agreement with the FTC?
Smith: Last August the FTC approached us about how we described some of our privacy and security measures in Passport. And for the last year we have worked to provide the FTC with information about our policies and security measures and to answer their questions. At the end of the process they had four specific concerns. This agreement addresses their concerns and puts specific processes in place to assure our customers that we are meeting a high bar for security and privacy protection. It also governs the way we communicate with consumers about our service going forward.
…
PressPass: Let’s go through the four concerns of the FTC point by point. First, the FTC said that you failed to implement and document procedures to prevent, detect, monitor or document unauthorized access.
Smith: We have always believed that the security measures deployed at Passport have been reasonable and appropriate relative to industry standards and norms. But we recognize that security needs have evolved, and a level that we considered reasonable when we launched the service in 1999 is no longer reasonable today. We have continued to advance and improve the service’s security and privacy. In some cases, this has meant introducing new technologies, and in other cases it has meant creating new processes and procedures. The FTC’s complaint asserts that some of these technologies and procedures should have been in place and fully documented from Passport’s inception. We understand this concern, and we are confident that we are on a path to meet the current high bar for security and that this will be confirmed when the third-party audit we agreed to conduct is completed.
PressPass: Second, the FTC asserts that you were incorrect in your statement that purchases using a Passport Wallet are safer or more secure than purchases made without a Wallet.
Smith: What we were intending to convey was that using Passport Wallet at a Passport Wallet site is often “safer” and “more secure” than making a credit card purchase at another site that did not utilize the same encryption technologies to protect user credit card data. Passport Wallet sites are required to employ encryption technologies that clearly are safer than providing credit card information in the clear. The FTC’s complaint asserts that some people may have thought we were comparing a Passport Wallet purchase and a non-Wallet purchase made at the same site, and that at most sites encryption is used whether you use a Wallet or not. While it is worth noting that many Passport Wallet merchants did not adopt these encryption technologies until they were added as support for the Passport Wallet, we have recognized the FTC’s point and have already changed the language in our advertising.
PressPass: The FTC also claims that you collected some information that was not mentioned in your privacy policy.
Smith: The FTC made a very thorough review of our Passport privacy statement, as well as our related policies and procedures. After this review, the FTC Complaint asserts that only one thing was not adequately described. That is a temporary log that we keep and use to permit our customer service representatives to support Passport users who have contacted our support team. It’s important to note that no personal information has been shared with anyone else or misused in any manner as a result of these temporary logs. The FTC Complaint itself recognizes that the log is only “linked to a user’s name in order to respond to a user’s request for service.” We have already changed our Privacy Statement to clearly describe this temporary log and its limited use. We believe that our privacy commitment to consumers has always been strong, and we are heartened by the fact that that this one readily correctable omission was the only issue identified over the course of this in-depth review by the FTC.
PressPass: The Complaint says that Kid’s Passport claimed to provide parents with certain controls that it does not provide.
Smith: The FTC’s Complaint asserts that our original Web materials relating to Kids Passport were not as clear as they should have been in describing the capabilities and the limitations of the Kids Passport service, particularly in that it only permits users to control information provided to sites that are Kids Passport sites. It also asserts that it has been possible for some children to get around some of the parental controls that Kids Passport does provide. While we believed at the time that we were making a fair representation of the features and limitations of our service, we understand the FTC’s concerns. We have taken steps to make the parental controls provided by Kids Passport more “kid-proof,” and we have revised the description of Kids Passport in our Web materials and privacy statement to clarify the points raised by the FTC. In fact, Kids Passport recently received certification from TRUSTe, an independent non-profit initiative whose mission it is to build trust and confidence in the Internet.
…
But this didn’t help as the Passport history has ended as Microsoft account [current Wikipedia article as of Sept 9, 2012]
Microsoft account (previously Microsoft Wallet,[1] Microsoft Passport,[2] .NET Passport, Microsoft Passport Network, and most recently Windows Live ID) is a single sign-on web service developed and provided by Microsoft that allows users to log in to many websites using one account.
…
Support for OpenID
On October 27, 2008, Microsoft announced that it was publicly committed to supporting the OpenID framework, with Windows Live ID becoming an OpenID provider.[6] This would allow users to use their Windows Live ID to sign-in to any website that supports OpenID authentication. There has been no update on Microsoft’s planned implementation of OpenID since August 2009.[7]
…
<as the history after the FCC agreement>
In 2003, Faisal Danka,[20] a British IT Security expert, revealed a serious flaw in Microsoft Passport, through which any account linked to Microsoft Passport or Hotmail could easily be cracked by using any common browser.
Microsoft had pushed for non-Microsoft entities to create an Internet-wide unified-login system.[citation needed] Examples of sites that used Microsoft Passport were eBay and Monster.com, but in 2004 those agreements were cancelled.[21] In August 2009, Expedia sent notice out stating they no longer support Microsoft Passport / Windows Live ID.[citation needed]
In 2012, Windows Live ID changed its name to Microsoft account.[22][23]
For me the morale of this, My .NET Services (alias Hailstorm) story is that without an extremely strong and capable, general constructor type leader, responsible for the delivery of the whole .NET vision (all along), a vision like the original .NET cannot succeed, if at all. With Ballmer’s August 9, 2000 decision not only the responsibilities were spread over all of Microsoft, but even the leadership was quite divided and diverse: Steve Ballmer, Bob Muglia, Eric Rudder, Sanjay Parthasarathy (who was under Rudder initially but essentially independent), … and—most importantly—Bill Gates himself, who as the CEO just months before had tremendous influence and respect throughout the organization, but was “clever enough” not to take any formal leadership responsibility by occupying a quite undefined “chief software architect” position.
Muglia was removed from his central position in summer of 2002 and put into a kind of quarantine as head of the Enterprise Storage Division till summer 2005 when he became head of the Server and Tools Business (taking over BTW from nobody else as Eric Rudder who failed as the initial leader of the Server and Tools Business).
Then came Ray Ozzie to the rescue who put the foundation for the original .NET vision into order: Ray Ozzie: Churchill Club [transcript of remarks by Ray Ozzie, chief software architect for Microsoft, speaking at the Churchill Club, San Jose, Calif., June 5, 2009]
Our program this evening is called The Potential of Cloud Computing. We are honored to have with us Ray Ozzie, Chief Software Architect of Microsoft, and Steven Levy, Senior Writer with Wired magazine
…
STEVEN LEVY: So you get to Microsoft, and was Microsoft sufficiently cloudy for you? Did you feel you had to block the sun?
RAY OZZIE: The hailstorm [obvious reference to .NET My Services which were code named Hailstorm] had passed. (Laughter.) When I got to, as you said, I had the opportunity in ’97 when I left IBM to kind of return to zero. When you’re fortunate, and you’ve had a successful product you get caught up in everything that it takes to make it successful. Ultimately you end up doing a lot of customer work. And then I decided that I needed to get back to technology. I returned to zero and Groove was built in ’97 for about eight years until we were acquired. And it was born to be Internet. And it took a contrarian approach, as opposed to using Web servers as the core infrastructure for how it was built. It was a purely peer-to-peer system, ultimately augmented with cloud servers, and enterprise integration servers, and management servers, and things like that. But, the great thing about it was I did have a chance to kind of get into the ethos of what is the net, and ultimately what is the Web.
By the time I got to Microsoft [in 2005, but he assumed the CSA (chief software architect) role in June 2006, when chairman/CSA Bill Gates announced his intent to relinquish the role on the transition from Microsoft to working full-time at his foundation], respectfully, they were very busy working on things that would ultimately become Vista, and Office 2007, a large part of the company. But, I felt as though it was kind of like back to the future in many ways. There was a lot of PC thinking, the PC was still the center of most of – of how most people thought about things, and it was a little scary, because by that time I had a perspective that there is this transformation happening. I still think the PC is amazingly relevant, but it’s the connected PC, it’s the PC connected to the cloud, connected to other PCs, PC connected to phones, TVs, and so on. So, I worked with Steve and Bill on a plan to change management, basically.
…
STEVEN LEVY: And Azure is going to let people build their own Hotmail, is that right?
RAY OZZIE: That’s right. In essence, the nature of Windows Azure, at one extreme not talking ahead of what’s shipping today, but the nature of what we’re building will enable people to wrap existing workloads, existing Windows Server workloads in a way that with as little change as possible they can move those workloads up into a cloud environment, and that could be a private cloud or a public cloud environment. And even they need some work, because configuration-wise, in terms of networking, there’s different latencies between operating things in the cloud and on premises, but with as minimal change as possible to bring existing workloads up.
But, more ideally laying out programming design patterns, and building an infrastructure so that you could say, this is what an ideal cloud program looks like, this is the way you factor the roles, the front-end roles, the mid-tier roles, this is what database looks like in the cloud. This is how you build a program with no single point of failure from day one, with elastic ability to scale form day one, and so on. And so that’s, in essence, what Azure is.
STEVEN LEVY: And Microsoft, of course, is going to eventually have all its own cloud applications on –
RAY OZZIE: That’s right. When I got there, if you look at Hotmail, Messenger, and so on, each one grew up, whether because of acquisition, or because of the state of the art at the time, grew up as a stovepipe. Each one had its own management systems, each one had its own storage, cheap storage system. Each had its own ops group. In some cases they had their own data centers. And we, in essence, said, what is the right way of re-conceptualizing this so that they could all go into a common infrastructure.
Another thing is that, and we could probably talk for a long, long time, because we started basically at a much lower level. We started with the notion of, what would a data center look like from a physical perspective moving forward. And at that point we were – we had just transitioned from what we refer to as a generation one to a generation two data center, where generation one is essentially you have screw drivers and people who install OSes, and buy PCs, at the tens of PCs. Gen two is you’re buying more standardized racks, but it’s still fairly manual.
Gen three is essentially what we’re in deployment on right now, with containerized data centers, where you build the – you build the building, you spent $300, $400, $500 million building a building, and power and cooling, and big stalls. And then as you need capacity, semi trailers roll in with thousands of PCs at a time, and they kind of plug the – but even in that environment you still have to pre-invest in the land, you have to pre-invest in the power and cooling infrastructure to build the shell for that thing.
The next generation that we’re in testing now in a few places in the world are, in essence, free-standing, completely modular data centers, where every component of the data center from the UPSs, the cooling power, whatever conditioning you need, are all free-standing with no roots. So, all we do is prepare the property, build a security wall around it, bring the networking and power in, and negotiate the contracts for that. And then, truly, we don’t have to deal with a lot of pre-investment in inventory.
…
STEVEN LEVY: So … when is all this becoming available?
RAY OZZIE: The low levels are available in a kind of a beta, we call it community technology preview form. We’ll be going commercial soon on those low levels. But what excites me, frankly, more, is what’s happening at the high level in these services that we call online. They have changed services. The whole investment is tremendous. A year, year-and-a-half ago when we started talking about this with customers, with integrators and partners, you know, they didn’t really understand why they wanted to do this. Now, these integrators are building practices around this. You have partners out there, and our own sales force knocking on people’s doors saying, how can we save you money? Here is a way that we can save you money. We’ll make money. You’ll – it will cost you less, and it’s good all around.
STEVEN LEVY: So, the second part of this, the mesh.
RAY OZZIE: Yes.
STEVEN LEVY: Explain that.
RAY OZZIE: Well, everything that we’ve been talking about really is more or less the back end side of what cloud computing looks like. What really turns me on, just because I’m kind of genetically, even though I did systems early in my career, I really want to ship a mass-market app, it’s kind of addictive. We like it. And, the thing that excites me is the transformation that’s happening at the user experience level, and how we consume devices. I mean, we’re moving to a world where we have so many different types of devices, and number of devices in our lives.
And stated kind of abstractly, but probably most coherently, if you were designing an OS today for the experiences that need to be delivered today, you would design it differently. You would have the cloud at the center, everything is all connecting to the cloud, and you would use those devices in rich ways that were appropriate to that device, but leverage that connection to the cloud and to the other devices. So, it would be very easy to buy a six-pack of netbooks at the holiday season, and give them to the kids, because you know that all you have to do is drop them on your desk, or on the table, login, and all the apps are cached, all the data is synced. There’s no reason why code that comes to the client, any kind of code, whether it’s assembly language wrapped up in an exe, or whatever, it should all be cached like JavaScript is cached. It should all be sandboxed like the browser sandbox. Data should be synchronized. The Web isn’t there yet on that, but in terms of technology to enhance the Web and bring us in that direction, you know, that’s the opportunity.
…
STEVEN LEVY: One more question, to what degree do the productivity apps become totally cloud-based?
RAY OZZIE: I don’t think it’s – they’ll be totally cloud-based in the realm, in the – let me back up. There’s kind of a – in order to get things going across the company you need meetings, you need to say things, say them again, and say them again. So we say three screens and a cloud, three screens and a cloud, three screens and a cloud, throughout the company. And what that means is everything we deliver, from a user experience perspective, will be – will have some aspect of its value delivered across the PC class of device, the phone class of device, and the TV class of device. Every one of them will have something, and all will be connected to the cloud. That will bring them all together.
The Office experience, it’s not software for a PC. It’s productivity. People are paying for productivity. So every person when they buy Office will be doing editing, and looking at big stuff, and big desktop screens, because that’s what it’s good for. The PC, nothing will ever be the PC in terms of hitting page down, or the down arrow on a big spreadsheet, and scrolling around. It’s just so compelling. And so that’s how it should be delivered.
Yes, it has to be cached, it should be delivered from the cloud, but its native code for the PC is great. But, people, most of the world’s people don’t come together on the PC, they come together on the Web. And we do a lot of sharing. You don’t create documents for yourself very often. You create them as part of larger things. So the sharing scenarios, the collaboration scenarios are homed, rooted on the Web. And then there are phone scenarios. Everything that we do, you go to meetings, and productivity, you don’t always take your laptop, but you probably always carry your phone with you. The phone has your location. The phone has a recorder. The phone has a little thing that you can take a picture of what’s on the whiteboard. The phone is an amazing companion to the Office scenario. So 100 percent of Office will be cloud, 100 percent will be mobile, 100 percent will be PC.
…
The proposed solution is described in Windows Azure and the Azure Services Platform: Making Microsoft’s Software-plus-Services Vision a Reality [Microsoft feature story, Oct 27, 2008] and Microsoft (Ray Ozzie, Steve Ballmer) on the cloud clients [this same ‘Experiencing the Clog’ blog, Oct 9, 2010]. Please also read his The Internet Services Disruption [Ray Ozzie, Oct 28, 2005] memo written to the executive staff and direct reports, as well as the Dawn of a New Day [Ray Ozzie, Oct 28, 2010] memo sent to the same audience before leaving (as the delivery was totally overtaken by different units and there was no possibility for him to influence this in any significant way).
His The Internet Services Disruption [Ray Ozzie, Oct 28, 2005] memo refers to .NET as it had been delivered (not the original vision) which is still true, only more advanced than that time:
In 2000, in the waning days of the dot com bubble, we yet again reflected on our strategy and refined our direction. After taking a more deliberative look at the internet and its implications for software, we came to the conclusion that the internet would go beyond browsing and should support programmability on a global scale. We observed that certain aspects of our most fundamental platform – the tools and services that developers use when building their software – would not likely satisfy the emerging security and interoperability requirements of the internet. So we embarked upon .NET, a transformative new generation of the platform and tools built around managed code, the XML format and web services programming model. At the time, it was a risky bet to build natively around XML, but this bet paid off handsomely and .NET has become the most popular development environment in the world.
…
Our products have embraced the internet in many amazing ways. We’ve transformed the desktop into a rich platform for interactive internet browsing, media and communications-centric applications. We’ve transformed Windows into best-of-breed infrastructure for internet applications and services. We’ve created, in .NET, the most popular development platform in the world. We’ve got amazing products in Office and our other IW offerings, having fully embraced standards such as XML, HTML, RSS and SIP. Our MSN team has demonstrated great innovation and has held its own in a highly competitive and rapidly changing environment – particularly with Spaces and in growing a base of 180M active Messenger users worldwide. The Xbox team has also built a huge user community and has demonstrated that internet-based “Live” interaction is a high-value, strong differentiator.
With the Windows Azure cloud now in the Satya Nadella’s hands, the upcoming Windows 8 PC clients in Steven Sinofsky’s (including the ARM based Windows 8 tablets), the Silverlight 4 derived Windows Phone 7.5 transitioning to the Windows Phone 8 having the same core as in Windows 8, and finally the Xbox now enhanced to a full entertainment hub in the living room, with all that Microsoft finally is in the position to introduce a complete Post-PC offering as had been envisaged by Ray Ozzie. Wait no more than October 26, 2012, when the first and probably most important wave of that, Windows 8 is coming to the market.
And finally Microsoft .NET vision – Knowledge_sb.mpg [Microsoft, July 25, 2000]
More .NET background
Microsoft .NET: Realizing the Next Generation Internet [Microsoft White Paper, June 22, 2000], since not available on the Microsoft site anymore, the below text is reconstructed from source1 and source2:
Overview: A Revolutionary Business
Revolutions are a way of life in the computer industry. Only 20 years ago, the world was still in the mainframe era. Few people had access to computers, and then it was only via the nearest IT department. The PC and the graphical user interface changed all that, democratizing computing for tens of millions of people and transforming the computer into a truly mass-market product. Corporations realized that networks of PCs and PC-based servers could change the way they did business, while for consumers the PC quickly established itself as a new medium for home entertainment. Then the Internet came along. It revolutionized the way we communicate, created a rich new source of information and entertainment, and added an “e” to commerce. Today, close to 300 million people worldwide use the Web. According to International Data Corp., more than a quarter of a trillion dollars’ worth of business will be transacted over the Internet this year.
Yet for all these wonders, there is still plenty of room for improvement. Today’s Internet largely mirrors the old mainframe model. Despite bountiful bandwidth, information is still locked up in centralized databases, with “gatekeepers” controlling access. Users must rely on the Web server to perform every operation, just like the old timesharing model. Web sites are isolated islands and cannot communicate with each other on a user’s behalf in any meaningful way. Today’s Web does little more than simply serve up individual pages to individual users — pages that mostly present HTML “pictures” of data, but not the data itself (at present, making both available is too technically demanding for most Web sites). And the browser is in many respects a glorified read-only dumb terminal — you can easily browse information, but it is difficult to edit, analyze or manipulate (i.e., all the things knowledge workers actually need to do with it). Personalization consists of redundantly entering and giving up control of your personal information to every site you visit. You have to adapt to the technology, instead of the technology adapting to you.
These problems are multiplied if you use more than one PC or mobile device. To access your online information, e-mail, offline files and other data, you have to struggle with multiple (and often incompatible) interfaces, varying levels of data access, and only intermittent synchronization of all the information you need (i.e., when you physically link your device with your PC). Online data is presented in an incomplete and predefined format, greatly limiting its usefulness. The concept of a customized “personal information space” that adapts to your needs is still a dream.
For the Web developer, the tools to build, test and deploy engaging Web sites are hopelessly inadequate. Many focus more on building attractive rather than useful Web sites. None of them address the entire software lifecycle, from design to development to deployment to maintenance, in a way that is consistent and efficient. No system today lets developers write code for the PC and deploy it to a variety of devices.
Corporate users face additional challenges. While the advent of farms of smaller servers has made the overall computing experience more reliable by eliminating single points of failure, it has made system management more complex. Performance measurement, capacity planning and operations management are challenging in today’s multi-tier, multi-function Web sites. New e-commerce systems rarely map well or interoperate with legacy business systems. And building systems that securely span the firewall, so customers and partners can intelligently engage with your business, is so difficult that many businesses resort to costly duplicate systems.
Is all this really as good as it gets? Everyone believes the Web will evolve, but for that evolution to be truly empowering for developers, businesses and consumers, a radical new vision is needed. Microsoft’s goal is to provide that vision and the technology to make it a reality.
Microsoft .NET: Beyond Browsing, Beyond the Dotcom
Microsoft is creating an advanced new generation of software that melds computing and communications in a revolutionary new way, offering every developer the tools they need to transform the Web and every other aspect of the computing experience. We call this initiative Microsoftò .NET, and for the first time it enables developers, businesses and consumers to harness technology on their terms. Microsoft .NET will allow the creation of truly distributed Web Services that will integrate and collaborate with a range of complementary services to serve customers in ways that today’s dotcoms can only dream of. Microsoft .NET will drive the Next Generation Internet. It really will make information available any time, any place and on any device.
The fundamental idea behind Microsoft .NET is that the focus is shifting from individual Web sites or devices connected to the Internet, to constellations of computers, devices and services that work together to deliver broader, richer solutions. People will have control over how, when and what information is delivered to them. Computers, devices and services will be able to collaborate with each other to provide rich services, instead of being isolated islands where the user provides the only integration. Businesses will be able to offer their products and services in a way that lets customers seamlessly embed them in their own electronic fabric. It is a vision that extends the personal empowerment first offered by the PC in the 1980s.
Microsoft .NET will help drive a transformation in the Internet that will see HTML-based presentation augmented by programmable XML-based information. XML is a widely supported industry standard defined by the World Wide Web Consortium, the same organization that created the standards for the Web browser. It was developed with extensive input from Microsoft Corp. but is not a proprietary Microsoft technology. XML provides a means of separating actual data from the presentational view of that data. It is a key to the Next Generation Internet, offering a way to unlock information so that it can be organized, programmed and edited; a way to distribute data in more useful ways to a variety of digital devices; and allowing Web sites to collaborate and provide a constellation of Web Services that will be able to interact with each another.
Microsoft .NET comprises the following:
Microsoft .NET platform — Includes .NET infrastructure and tools to build and operate a new generation of services; .NET User Experience to enable rich clients; .NET building block services, a new generation of highly distributed megaservices; and .NET device software to enable a new breed of smart Internet devices.
Microsoft .NET products and services — Includes Windows.NET, with a core integrated set of building block services; MSN.NET; personal subscription services; Office.NET; Visual Studio.NET; and bCentral for .NET.
Third-party .NET services — A vast range of partners and developers will have the opportunity to produce corporate and vertical services built on the .NET platform.
Microsoft .NET will take computing and communications far beyond the one-way Web to a rich, collaborative, interactive environment. Powered by advanced new software, Microsoft .NET will harness a constellation of applications, services and devices to create a personalized digital experience — one that constantly and automatically adapts itself to your needs and those of your family, home and business. It means a whole new generation of software that will work as an integrated service to help you manage your life and work in the Internet Age.
For consumers, that means the simplicity of integrated services; unified browsing, editing and authoring; access to all your files, work and media online and off; a holistic experience across devices; personalization everywhere; and zero management. It means, for example, that any change to your information — whether input via your PC or handheld or smart credit card — will instantly and automatically be available everywhere that information is needed.
For knowledge workers and businesses, it means unified browsing, editing and authoring; rich coordinated communication; a seamless mobile experience; and powerful information-management and e-commerce tools that will transparently move between internal and Internet-based services, and support a new era of dynamic trading relationships.
For independent software developers, it means the opportunity to create advanced new services for the Internet Age — services that are able to automatically access and leverage information either locally or remotely, working with any device or language, without having to rewrite code for each environment. Everything on the Internet becomes a potential building block for this new generation of services, while every application can be exposed as a service on the Internet.
The Microsoft .NET vision means empowerment for consumers, businesses, software developers and the entire industry. It means unleashing the full potential of the Internet. And it means the Web the way you want it.
The Microsoft .NET Platform: Building the Next Generation Internet
Built on the standard integration fabric of XML and Internet protocols, the Microsoft .NET platform is a revolutionary model for developing an advanced new generation of software. Previously, programming models have focused on a single system, even attempting to mask interactions with other systems to look like local interactions. Microsoft .NET is explicitly designed to allow the integration or orchestration of any group of resources on the Internet into a single solution. Today, this type of integration is extremely complex and costly. Microsoft .NET will make it intrinsic to all software development.
The loosely coupled XML-based Microsoft .NET programming model introduces the concept of creating XML-based Web Services. Whereas today’s Web sites are hand-crafted and don’t work with other sites without significant additional development, the Microsoft .NET programming model provides an intrinsic mechanism to build any Web site or service so that it will federate and collaborate seamlessly with any others. Just as the introduction of interchangeable components accelerated the Industrial Revolution, Microsoft .NET promises to hasten the development of the Next Generation Internet.
None of this will be possible without many partners and the millions of independent and corporate developers who have helped build today’s computer industry. As Alexander Graham Bell put it, “Great discoveries and improvements invariably involve the cooperation of many minds.” When DOS became popular on the PC, it created opportunities for a new generation of independent developers to build businesses around DOS-based applications. Windows took those opportunities to an even higher level. The opportunities for every developer afforded by Microsoft .NET will be greater still. In the next three years, Microsoft will invest $2 billion to enable industry partners, independent developers and corporate IT developers to build Microsoft .NET services.
For developers, Microsoft is creating an entirely new set of Microsoft .NET development tools, designed from the ground up for the Web, and spanning client, server and services. These tools will enable developers to transform the Web from today’s static presentation of information into a Web of rich interactive services. Microsoft’s breakthrough next-generation Visual Studio tool suite automates development of Web Services via the drag-and-drop rapid-application development paradigm pioneered by the Visual Basic development system — services that can be consumed on any platform that understands XML. Visual Studio even automatically generates XML code. Microsoft is also announcing a new set of BizTalk Orchestration tools that allow visual programming of business processes by composition of services, enabling business analysts to develop solutions the same way developers do.
The Microsoft .NET programming model gives independent developers the opportunity to focus fewer resources on where or how an application runs and more on what it does — on where they can add real value. Microsoft .NET addresses some of the biggest challenges facing developers, who today are wrestling with the tradeoff between functionality and manageability. It takes ASPs and application hosting to a new level, enabling the integration of hosted applications with other applications, whether hosted or not; the customization of those applications; the ability to program against those applications; and the option to run the applications offline.
In addition, developers will be able to leverage and customize a range of core Microsoft .NET building block services in their own applications and services, reducing the effort required to create compelling products. These core Microsoft .NET building block services correspond to areas of functionality where Microsoft has deep expertise and can provide value to a broad set of developers. In many cases, Microsoft is unifying developer building blocks in the Windows operating system with similar capabilities that are Internet-based today, to enable the easy delivery of highly distributed, programmable services that run across standalone machines, in corporate data centers and across the Internet.
With the option of subscribing to these core Microsoft .NET services off the shelf, developers can make a “buy or build” decision as to where they want to spend their development resources. Some may elect to build basic service capabilities themselves, but many will likely opt for a well-packaged solution with strong development tools support, just as many developers choose not to write their own printer drivers or windowing system with Windows and instead focus their resources on differentiating their own higher-level products.
The core Microsoft .NET building block services that will be offered include:
Identity — Building on Microsoft Passport and Windows authentication technology, provides levels of authentication ranging from passwords and wallets to smart cards and biometric devices. Enables developers to build services that provide personalization and privacy for their customers, who in turn can enjoy new levels of safe and secure access to their services, no matter where they are or on what device. Supported in the first major release of Windows.NET, code-named “Whistler.”
Notification and Messaging — Integrates instant messaging, e-mail, fax, voice mail and other forms of notification and messaging into a unified experience, delivered to any PC or smart device. Builds on the Hotmail Web-based e-mail service, Exchange and Instant Messenger.
Personalization — Puts you in control by enabling you to create rules and preferences that implicitly and explicitly define how notifications and messages should be handled, how requests to share your data should be treated, and how your multiple devices should be coordinated (e.g., always synchronize my laptop computer with the full contents of my Microsoft .NET storage service). It will also make moving your data to a new PC a snap.
XML Store — Uses a universal language (XML) and protocol (SOAP) to describe what data means, enabling data to maintain its integrity when transmitted and handled by multiple Web sites and users. The result is that Web sites become flexible services that can interact, and exchange and leverage each other’s data. Microsoft .NET also offers a secure, addressable place to store data on the Web. Each of your devices can access this, optimally replicating data for efficiency and offline use. Other services can access your store with your consent. Brings together elements of NTFS, SQL Server, Exchange and MSN Communities.
Calendar — A crucial dimension of user control is time: When is it permissible to interrupt me, and when should I be left alone? This becomes especially important as people use more devices more of the time, and as users and services interact more richly. Microsoft .NET provides the basis for securely and privately integrating your work, social, and home calendars so that they are accessible to all of your devices and, with your consent, other services and individuals. Builds on the Outlookò messaging and collaboration client and the Hotmail Calendar.
Directory and Search — Microsoft .NET makes it possible to find services and people with which to interact. Microsoft .NET directories are more than search engines or “yellow pages.” They can interact programmatically with services to answer specific schema-based questions about the capabilities of those services. They can also be aggregated and customized by other services and combined with them.
Dynamic Delivery — Enables Microsoft and developers to dynamically offer incremental levels of functionality and reliable automatic upgrades on demand, without user installation or configuration. Microsoft .NET proactively adapts to what you want to do, on any of your devices. This inversion of the traditional installation-dependent application model is a necessity in a world where users will enjoy the benefits of services on multiple devices.
Microsoft .NET’s distributed services will be available both online and off. A service can be invoked on a standalone machine not connected to the Internet, provided by a local server running inside a company, or accessed via the Internet cloud. Different instances can cooperate and exchange information through a process called federation, which allows organizations to decide whether to run their own infrastructure or host it externally without compromising their control or access to services across the Internet, or when not connected to the Internet. So, for example, a corporate directory service can federate with a service in the Internet cloud. This sets services based on Microsoft .NET far apart from today’s Internet-based offerings.
Microsoft .NET building block services can be consumed on any platform that supports XML. Windows will offer the best environment to create and deliver Web Services, while Windows-based clients will be optimized to distribute Web Services to every kind of device. And Microsoft Windows DNA 2000 already provides the first comprehensive XML-enabled infrastructure for building and operating Web Services.
The Microsoft .NET User Experience: Intelligent Interactivity
Today, computing revolves around two separate worlds — the world of applications on PCs and devices, and the world of Web sites. Microsoft .NET enables these two worlds to collaborate seamlessly, combining rich functionality with the Internet’s infinite ocean of information. It will transform today’s Web into the truly “intercreative space” that Tim Berners-Lee has envisioned.
Today, working across online and offline environments — even when using only a single PC — is a frustrating and inefficient experience. It is more disintegrated than integrated: Web browsing (read-only), creativity (authoring and editing), communications (e-mail, instant messaging), calendar and contacts (offline, device-dependent) each require separate applications that have widely varying functionality and compatibility. Most people would prefer a single, unified environment that adapts to whichever environment they are working in, moves transparently between local and remote services and applications, and is largely device-independent — a kind of universal canvas for the Internet Age. To make this a reality, Microsoft .NET offers users the following:
Natural Interface – A collection of technologies that enable the next generation of interactions between humans and computers — including speech, vision, handwriting and natural-language input via a new “type-in” box. Technologies can be combined for multi-model user interface. The Natural Interface provides the right User Experience for every device or environment.
Universal Canvas — An XML compound information architecture that integrates browsing, communications and document authoring in a single, unified environment, enabling users to synthesize and interact with information in a unified way. The universal canvas builds upon XML schema to transform the Internet from a read-only environment into a read/write platform, enabling users to interactively create, browse, edit, annotate and analyze information. Because the underlying information is XML, the universal canvas can bring together multiple sources of information from anywhere in the world to enable seamless data access, synthesis and use.
Information Agent — Manages your identity and persona over the Internet and provides greater control of how Web sites and services interact with you. Maintains your history, context and preferences — your past, present and future on the Internet. Supports privacy-enabling technologies such as P3P. Unlike today’s Internet, your personal information remains under your control and you decide who can access it. Enables you to create your personal preferences just once, which you can then permit any Web site or service to use.
SmartTags — Extends IntelliSenseò technology to Web content, enabling your PC and devices to be smart about handling information from the Internet. Extensible architecture allows anyone to create adaptive user experience and data handlers. Intrinsic knowledge of XML schemas.
Working with a new breed of smart devices, Microsoft .NET will also be the Web where you want it. Next Generation Internet devices will be designed to use hosted services and offer rich local processing capabilities. They will use the network intelligently, exploiting broadband links but being economical with wireless bandwidth, and will come in a range of new form factors, such as the tablet PC. Programmable and customizable, with automatic updates and zero administration, these smart devices will see explosive growth during the next five years, and they will partner with the ultimate smart Internet device: the PC.
Microsoft .NET: The Next Generation of Products and Services
In the long term, all applications software will likely be provided as a service, subscribed to over the Internet. This will allow Microsoft and other software service providers to provide better customer service, transparent installation and backup, and a positive feedback loop into the product-development process. Software delivered as a service would also allow Microsoft and independent developers to respond more swiftly with backups and antivirus protection.
We envision the majority of our software applications evolving into subscription services over time, while we continue to offer our existing platforms and applications. From the outset, however, Microsoft will offer a range of .NET products and experiences including the following:
Windows.NET — The next generation of the Windows desktop platform, Windows.NET supports productivity, creativity, management, entertainment and much more, and is designed to put users in control of their digital lives. Tightly integrated with a core set of .NET building block services, it provides integrated support for digital media and collaboration, and can be personalized. It can also be programmed by .NET services, including MSN.NET, bCentral for .NET, and Office.NET. Windows.NET will provide a rich platform for developers wanting to write .NET applications and services. Microsoft will also continue to offer and support versions of the Windows platform without .NET services.
MSN.NET — By combining the leading content and services of MSN with the new .NET platform, MSN.NET will enable consumers to create a single digital personality and leverage smart services to ensure consistent, seamless and safe access to the information, entertainment and people they care about any time, any place and on any device. MSN.NET will build on a new integrated client, currently in beta.
Personal Subscription Services — In addition to MSN.NET, Microsoft will build a set of premium consumer-oriented services on the .NET platform that will build on existing Microsoft entertainment, gaming, education and productivity products. These services will give people the power of traditional desktop applications with the flexibility, integration and roaming support of the new .NET family of User Experiences.
Office.NET — Advanced communications and productivity tools, including universal canvas technology that combines communication, browsing and document authoring into a single environment, enabling users to synthesize and interact with information in a unified way. Universal collaboration services will enable anyone to collaborate with people inside and outside their companies. A new architecture, based on smart clients and services, will provide rich functionality, performance and automatic deployments on any device. Microsoft will also continue to offer and support versions of Office without .NET services.
Visual Studio.NET — XML-based programming model and tools, fully supported by MSDN and Windows DNA 2000 servers. Enables the easy delivery of highly distributed, programmable services that run across standalone machines, in corporate data centers and across the Internet.
bCentral for .NET — Cutting-edge range of subscription-based services and tools for small and growing businesses. Includes hosted messaging and e-mail, enhanced commerce services, and a new customer relationship management (CRM) service built on the .NET platform. The enhanced commerce and customer management services will enable small businesses to better serve their customers online. Functionality will include support for rich hosted catalogs and the ability to track interactions with customers to enable personalized service.
Conclusion: The .NET Revolution
Ten years ago Microsoft set out a vision of a world with Information at Your Fingertips. Back then, information was anything but: modems were connected at 4800 baud, most messages were sent by fax rather than e-mail, and few people had even heard of the Internet. Although we envisioned a world in which people could connect with the information they wanted, when they wanted it, from whatever device they wanted, we had no idea what technologies would help make that a reality. Today, we do.
The Microsoft .NET platform will revolutionize computing and communications in the first decade of the 21st century by being the first platform that takes full advantage of both.
Microsoft .NET will make computing and communicating simpler and easier than ever. It will spawn a new generation of Internet services, and enable tens of thousands of software developers to create revolutionary new kinds of online services and businesses. It will put you back in control, and enable greater control of your privacy, digital identity and data. And software is what makes it all possible.
Microsoft .NET will only succeed if others share broadly in its success. Microsoft’s business philosophy has always been to produce low-cost, high-volume, high-performance software that empowers individual and business users, and creates opportunities for our customers, partners and every independent developer. That philosophy is what sets Microsoft apart from its competitors — and Microsoft .NET takes it to a new level.
#########
Microsoft, MSN, Visual Studio, bCentral, Windows, Visual Basic, BizTalk, Outlook, Hotmail, IntelliSense and MSDN are either registered trademarks or trademarks of Microsoft Corp. in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Note: the original materials were as represented by Microsoft’s Vision: Building the Future with .NET [Microsoft Malaysia, last updated Dec 14, 2004]
The Microsoft® .NET platform will fundamentally change the way companies interact with their customers and partners over the Internet.
What Microsoft’s .NET Vision Means for Businesses
Microsoft is creating an advanced new generation of software that will drive the Next Generation Internet. Microsoft calls this initiative .NET, and its purpose is to make information available any time, any place, on any device. Read what .NET will do for businesses.Microsoft .NET: Realizing the Next Generation Internet
Microsoft .NET will allow the creation of truly distributed Web Services that will integrate and collaborate with a range of complementary services to drive the Next Generation Internet. It really will make information available any time, any place and on any device.Bill Gates’ .NET Keynote
See a transcript of remarks made by Bill Gates, Microsoft chairman and chief software architect, introducing the .NET platform.Steve Ballmer on the .NET Platform
See a transcript of remarks made by Steve Ballmer, Microsoft president and chief executive officer, on how the .NET platform will affect Microsoft’s business offerings.Bob Muglia on the New Business User Experience
See a transcript of remarks made by Bob Muglia, group vice president of Microsoft’s Business and Productivity Group, on how the .NET platform will change the way people work in business, and ulimately change business itself.
What is still available on the Microsoft site:
Microsoft Unveils Vision for Next Generation Internet [press release, June 22, 2000]
Company Introduces .NET Generation of Software
Signaling a new era of personal empowerment and business opportunity for consumers, businesses and software developers, Microsoft Corp. today unveiled the vision and road map for its next generation of software and services, the Microsoft® .NET platform. Capitalizing on the explosion of Internet-based computing and communications, Microsoft .NET (pronounced “dot-net” ) will provide easier, more personalized and more productive Internet experiences by harnessing constellations of smart devices and Web sites with advanced software through Internet protocols and formats.
This new family of Microsoft .NET products and technologies replaces the previous working title of Next Generation Windows Services (NGWS) and includes software for developers to build next-generation Internet experiences as well as power a new breed of smart Internet devices. Microsoft also announced plans for new products built on the .NET platform, including new generations of the Microsoft Windows® operating system, Windows DNA servers, Microsoft Office, the MSN™ network of Internet services and the Visual Studio® development system.
Microsoft Chairman Bill Gates, who in January also became chief software architect in order to devote himself fully to this effort, said today that Microsoft and industry partners will pioneer the “Next Generation Internet” through software that breaks down today’s barriers between “digital islands” — computers, devices, Web sites, organizations and industries — to help realize the full potential of the Internet.
“The impact of the Internet has been spectacular to date, but the pace of innovation will accelerate over the next five years,” Gates said. “Our goal is to move beyond today’s world of standalone Web sites to an Internet of interchangeable components where devices and services can be assembled into cohesive, user-driven experiences.”
Through a series of customer scenarios and technology demonstrations, Microsoft executives showcased new software technologies and underscored four key principles guiding the new .NET platform:
Improved User Experience Puts People in Control – .NET will give users a more productive and purposeful experience through greater user control over personal information and preferences, new user interface technologies, a new breed of smart Internet devices, and the ability to harness multiple devices and services toward a common goal. As the Internet becomes more personal, consumers will want software that enables them to define and control privacy. Microsoft is building innovative privacy technology into the foundation of Microsoft’s next-generation software, including Microsoft Passport, providing customers with control of their Internet experience. Microsoft will host a personal Information Agent that will deliver consumers the ability to access, view, edit and delete the personal information that they enter at various sites. Additionally, Microsoft is incorporating privacy-enabling technologies based on the P3P specification into Microsoft’s next-generation operating systems.
Ease of Use/Simplicity – .NET facilitates the continuous delivery of software to customers via a distributed computing model for the Internet that uniquely exploits the abundance of both computing and communications.
Internet Standards – .NET is based on Internet protocols and standards for interactions between devices and services, and in particular relies on the Extensible Markup Language (XML).
Business Integration and Opportunity – .NET creates opportunities for millions of developers not only to build Internet services and businesses more easily, but also to integrate those offerings directly with business partners and customers.
“Our guiding principles have always been about empowering individuals and creating opportunities for the industry. We are now taking that strategy to a new level by building a new platform based on Internet standards, which makes computing and communications easier for everyone,” Gates said.
“Today’s Internet experience can be confusing and difficult, with a jumble of applications, Web pages and devices, none of which work with one another on your behalf,” Gates said. “With the emergence of standards like XML, we now have the opportunity to revolutionize the way computers talk to one another on our behalf just as the browser changed the way we interact with computers.”
Introducing the .NET Platform
Gates today announced the new .NET platform, consisting of the following technologies:
.NET User Experience. A new set of technologies for building next-generation user experiences, including the new Universal Canvas XML-based compound information architecture, natural user interface, integral digital media support, privacy-enabling technologies for management and control of personal information, and the new Dynamic Delivery system for secure and seamless installation, updates, roaming and offline operation.
.NET Infrastructure and Tools. An implementation of the new XML-based programming model helps developers build, deliver, integrate, operate and federate Web services. Visual Studio 7.0, a new version of the world’s most popular developer toolset, will provide comprehensive, high-productivity support for XML-based Web service development, including the 50 percent of the world’s developers who use the Visual Basic® development system. The new BizTalk™ Orchestration tool dramatically simplifies business process integration over the Internet. The .NET Infrastructure and Tools build off the XML-enabled family of Windows DNA 2000 servers.
.NET Building Block Services. A new family of highly distributed, programmable developer services that run across standalone machines, in corporate data centers and across the Internet. Services include Identity, Notification and Messaging, Personalization, Schematized Storage, Calendar, Directory, Search and Software Delivery. These services bring together elements of Windows technology with Internet-based Microsoft services such as Passport, the MSN Hotmail® Web-based e-mail service, MSN Messenger and MSN Communities to deliver a truly distributed set of building blocks for developers to use in their own products whether they are programming for a single machine or across the Internet. Different instances of these services can cooperate and exchange information through a process called federation, which allows organizations to decide whether to run their own infrastructure or host it externally without compromising their control or access to services across the Internet or when offline.
.NET Device Software. An array of software to power a new breed of smart Internet-connected devices that can take maximum advantage of the .NET platform and fully participate in next-generation user experiences. Microsoft will deliver new versions of Windows supporting the .NET platform technologies that maintain and extend the PC’s role as an optimum way to take full advantage of the Internet. This software will XML-enable any device, support intelligent interaction with the network and .NET services and serve as a foundation to bring .NET User Experience technologies to non-PC devices such as Pocket PCs, set-top boxes, cellular phones and game consoles.
The .NET platform breaks new ground in terms of using Internet standards such as XML to link systems together; its commitment to improving both the user and the developer experience; the introduction of the first highly distributed services architecture for the Internet; and applications transparency across local machines, corporate data centers and Internet services through the process of federation.
New Opportunity for Developers, Partners, Customers
Microsoft President and CEO Steve Ballmer outlined the new opportunities .NET will create for developers and partners and highlighted the support of leading technology partners.
“The Internet revolution must now move to its next stage: ensuring that the ocean of information and resources that is out there actually work together,” Ballmer said. “By creating a unified platform through which devices and services cooperate with each other, Microsoft will unleash a new wave of developer opportunity and creativity that will move us to a level of power and simplicity.”
Ballmer addressed some specific examples of who will benefit in the new era. “A shift of this magnitude has huge revenue potential,” Ballmer said, citing examples of traditional partners who will expand their applications to take advantage of new devices; customers who will programmatically expose their Web services to enhance customer service and develop new revenue sources; and new types of partners with creative ideas for how to enhance the Internet experience with automated, interactive Web services. “This new computing era will see a shift from people interacting with single devices to software serving people according to their individual preferences. Web developers are the key players who will drive that transformation.”
Microsoft .NET Products and Services
In addition to these core underlying platform technologies, Microsoft will also offer a selection of .NET experiences for individual audiences. They include the following:
Windows.NET. Windows.NET is the next generation of Windows. Windows.NET will be a product that supports productivity, creativity, management, entertainment and much more, and is designed to put users in control of their digital lives. It incorporates new .NET user experience technologies, is tightly integrated with .NET building block services including identity and search and provides integrated support for digital media. Windows.NET will be self-supporting, featuring services that provide ongoing support and updates as users need them. Windows.NET will provide a rich foundation for developers who want to create new .NET applications and services. It will offer a programmable user experience that can be customized by corporations and individuals and programmed by .NET services including MSN.NET, bCentral™ for .NET and Office.NET, as well as a host of third-party .NET services. The first release of Windows to incorporate .NET elements is scheduled to be available in 2001. Microsoft will also continue to offer support for versions of the Windows platform without .NET services.
MSN.NET . MSN.NET will deliver the first consumer user experience for the next generation Internet. By combining the leading content and services of MSN with the new .NET platform, MSN.NET will allow consumers to create a single digital personality and use smart services to ensure consistent, seamless and safe access to the information, entertainment and people they care about any time, any place and on any device. MSN.NET will build on a new integrated client, currently in beta, that brings together the best of MSN dynamic Web services, content, the .NET building block services and .NET device support to deliver a complete, integrated consumer experience. MSN will offer superior access to content and services from third-party developers and the broadest range of devices based on the opportunities afforded from the .NET platform.
Consumer Subscription Services. In addition to the MSN.NET consumer offering, Microsoft also plans to build a set of premium .NET services to offer a wide range of consumer-oriented services building on the .NET platform. These services will build on existing Microsoft consumer software in the area of entertainment, games, education and productivity. These services will give people the power of traditional desktop applications with the flexibility, integration and roaming support of the new .NET family of user experiences.
Office.NET. Microsoft announced Office.NET, a future productivity and communications service designed to meet the needs of 21st century knowledge workers. The Office.NET experience will deliver major new innovations to benefit customers in four areas. A new natural user interface will streamline how customers interact with the service. A new architecture, based on smart clients and services, will provide rich functionality, performance and automatic deployments. Universal collaboration services will enable anyone to collaborate with people inside and outside their companies. Office.NET services will extend any time, any place and on any device, along with personalization capabilities to enable a new level of freedom and control. Over time these technologies will be incorporated into a number of Microsoft services.
bCentral for .NET. Microsoft will significantly expand the bCentral small business portal, its small-business user experience, with several cutting-edge services built on the .NET platform. The expanded services include Outlook® Web services, enhanced commerce services and a new customer relationship management (CRM) service. Outlook Web services, built with .NET building block services, will provide browser-based messaging, calendaring and personal Information Agent features through the familiar Outlook interface and a Web folder for storing files and accessing them remotely. The enhanced commerce and customer management services will enable small business customers to better serve their customers online. Functionality is scheduled to include support for rich hosted catalogs and the ability to track interactions with customers to enable personalized service. These expanded services are scheduled to be made available broadly through Microsoft bCentral later this year.
Visual Studio.NET is an XML-based programming model and rapid application development tool that is fully supported by the MSDN™ developer service and Windows DNA 2000 servers. Visual Studio.NET enables the easy delivery of highly distributed, programmable services that run across standalone machines, in corporate data centers and across the Internet.
About Microsoft
Founded in 1975, Microsoft (Nasdaq “MSFT” ) is the worldwide leader in software, services and Internet technologies for personal and business computing. The company offers a wide range of products and services designed to empower people through great software — any time, any place and on any device.
Microsoft, Windows, MSN, Visual Studio, Visual Basic, BizTalk, Hotmail, bCentral, Outlook and MSDN are either registered trademarks or trademarks of Microsoft Corp. in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Steve Ballmer’s view at the time of .NET announcement is also available:
Steve Ballmer Speech Transcript – Comdex Canada [Microsoft, July 12, 2000]
…
Id like to turn and talk a little bit though about the future.I mean, were all very excited.I think thats what brings us here today.Were excited about technology, about the PC, about the Internet.
And the question that we always have to come back to and ask ourselves as technology, people, as people are enthused about technology is whats going to happen next.If I asked you the question ten years from now, “Do you expect using the Internet to be largely the same or quite different than using the Internet today” , what would you say?Different.The fact that people are here today would say its going to be largely different.
If you though were to ask, “In what ways will using the Internet be different ten years from now than it is today” , wed get a stronger variety of answers.
And if you actually asked the question of “How will the Internet transformation from whatever we might call this generation to the next generation, how will it happen” , I think the answer is it will happen slowly for the next several years, slow change, slow change, slow change and then there will be kind of almost a hockey stick of accelerating change in the Internet.
Why do I say that?Were just to the point now where businesses and Web site producers are starting to see real value and starting to really get some traction with the first generation Web site s that theyve built.Were starting to get to the point where users are familiar with whats going on in the Internet.I dont think well expect to see a change that happens instantaneously, but sometime over the course of the next three, four, five, six years I think were going to see an incredible change come about the Internet.
What will characterize those changes?Well, if you think about what is deficient in the Internet today or what is deficient in the technology business today, it points you clearly to a few key things.And Ill start with a perspective of what will change about software, because in some senses thats the glue that brings all of this stuff together and its certainly the core of our business.
The software business, for at least the 20 years Ive been in this industry, has been primarily a business where you build the piece of software and you deploy it, and then you leave it alone and then you deploy it again.So we build a copy of Office.We put it in a box or a CD.We give it to you.You deploy it to your machine, to the machines in your organizations, whatever the case may be.Its a very static activity.Its not very dynamic and we all suffer in a sense with that.
The nature of software and I might add I think the nature of all goods that can be physically delivered on the Internet — music, financial services, entertainment; these are all services that can not only be ordered but also delivered on the Internet, but the character of those businesses, and particularly the software business will change.Software will become a service.Ten years from now because of the Internet we wont ship you disks.We will have — every software vendor will transform their products into a set of services, which are constantly updating themselves, monitoring your system, delivering you new functionality, storing information on your behalf, watching other things on the Internet on your behalf.The whole nature of what software is will be transformed in this next generation of the Internet.
For that to happen I think there are some things that have to change in the basic technology infrastructure in the Internet and the first and most significant is already happening.And thats the acceptance of XML as the protocol set for the next generation of the Internet.XML, as Im sure many people in the audience know, is a protocol that in some senses is a lower level protocol than HTML.HTML, the protocol which is used in Internet browsers today, lets you put up a Web page, and it describes whats on the page.XML is a protocol that actually describes the content, the data, the semantics, the code.It lives at a little bit lower level and it lets you pass meaning back and forth as opposed to just pictures of screen.
Now somebody might ask why is that a fundamental revolution?Well, the move to XML will change many things on the Internet.First, if will enable this notion of “software as a service” because you can really use the intelligence on a client and on a server.In todays Internet you can have a dumb device on one end, because all youre doing is sending down a screen full of information to the client.
Secondly, in the world of XML you actually have a world where Web site s can talk to Web site s.Today the world is pretty much producer-driven.Somebody builds a Web siteand you look at the Web site.And you could say some Web sites let you personalize them, but they let you personalize them exactly the way they want you to personalize them.We dont live in a world today where you can create your own Web page or Web siteout of information that comes from multiple sites.Suppose you have accounts with two or three different brokerage firms and banks.Theres no easy way to go collect that information and have it integrated.You have to go visit each one of those sites and look at the information and copy it down.
Suppose you want to — I dont know — look at a sports site and share your opinions about — I dont know –maybe today I shouldnt say the Argonauts, but share your opinions about the Argonauts or the Alouettes game from last night with your friends.How do annotate that Web site?How do you circle something and tell your friend, “Look at what I think” ?The Web today is a one-way medium.People present to you; you dont comment back onto the Web.Yes, you can send email and this and that, but the pages on the Web themselves you cant annotate, you cant commend upon, you cant share your comments and annotations with your friends.It makes it tough to do many of the things that at least Tim Burners Lee (ph), who was the original sort of founder of the World Wide Web, conceived of.
And so in this world of XML we envision a world in which Web site s talk to Web site s using this XML protocol.
Let me just give an example of some of the scenarios that I think the first two things should enable.Suppose youre going to go, you want to book a reservation to go visit a friend in Seattle.And you want to book the reservation.You want to tell the friend youre coming.And, of course, if your flights late, what do you want to have happen?You know, youd love to have some Web site notify your friend.And your friend has ways in which he or she likes to be notified.Maybe they want to get an instant message.Maybe they want to get a piece of email.Maybe they want to get paged.Maybe they want to get called.How would you write today, how would you use the Internet to write a program that accomplished that?
Well, youd have to have the travel booking Web site would have to know how to talk to your contacts list, so it could recognize your friend.It would have to know how to talk to your friends email, personal agent, contact management system so that it would know how to find your friend and notify your friend when your flight is late.Oh, it would probably want to talk to your friends calendar, so it could just note on your friends calendar what your initial arrival time is, et cetera.
So youve got calendars communicating with travel sites, communicating with email programs, communicating with instant messaging just to make a basic scenario work.
Medical records, another good example of where I think the next generation Internet comes together.Today if you wanted to get your full medical record, what would you do?I dont know what I would do frankly.I mean, Id go see my doctor and he would give me what he had, and then he would remind me that, “Oh, by the way, when you got your throat surgery after Comdex Canada three years ago, you know, you got that in a different clinic; we dont have any of your throat surgery records.” And then Id go there and theyd remind me, “Well, yeah, of course, thats okay, but remember when you got sick when you were home in Detroit a few years ago?We dont have any of those records.” And it would be a mess.
In this world of software Web site talking to Web siteIm going to have a Web site someday that is my healthcare record.And I will tell doctors and clinics that they are allowed to update my record on my behalf.I will give permission to my orthopedic doctor to look at my old x-rays.And I will not give him permission to look at my — I dont know — psychiatric records or whatever one I want to keep off limits.(Laughter.)Not that I have a psychiatric record — (laughter) — but just in case.
This is the world that we see evolving to in the next generation of the Internet.These are worlds in which the technology Internet changes fundamentally, but so does the business model.The business model of todays Internet is you own eyeballs and you own everything about the user and people pay a tremendous amount of money to get access to eyeballs.This is a world where you discover Web sites.This is a world where the user is back in control, not the producer of the Web site.Its quite different.
In this next generation well need to see continued improvements in operational excellence.The scale of Web sites will continue to grow.With MSN and Microsoft.com today we do run the most trafficked sites on the Internet worldwide.And I can tell you the amount of effort that we need to put into enhancing the tools to manage and deploy Web site s at scale is still quite large.
The range of devices that people use to access the Internet will continue to grow.
The user interface to the Internet will change.Today we think about accessing the Internet through a browser.Well, for years weve had users complaining about the PC user interface.People want to be able to talk to their computers.People want natural language.They want to be able to express themselves the way they express themselves in their native language:English, French, whatever it is.They want to be able to express themselves.They dont want to have to know its “File” “Open” , blah, blah.They just want to say, “Get me all the information about” or “get me the stats on last nights All Star Game.” They want to be able to express that simply.And well see the user interface evolve.
Thats also necessary if we want to make these other devices worthwhile.Believe me, a cell phones not going to be a great device to access the Internet if everything has to be through sort of todays traditional user interface paradigm.
About three weeks ago we introduced the Microsoft .NET platform, and the role and goal of our .NET platform is to provide the tool, the building blocks, the platform that helps underpin this next generation Internet experience.It involves a new user interface paradigm.It involves technology, which we put in all of our operating systems — Windows, Windows servers, technology that we will work with third parties to put on various forms of UNIX to make it easy to write XML applications.It involves new Internet services that run up in the sky and are available to software developers.
Just take the following simple problem.When you log into the Internet today or when you travel the Internet today, how many different passwords do you have to remember?I dont know for the average person, but when my wife, whos not a techno aficionado, had to learn a password in order to find out what the status was of the tickets to the Hall and Oates concert that she had bought on Ticketmaster, a password she to this day doesnt know where she wrote it down, we have a problem here.The world of the future is a world, and one of the problems we try to address in .NET is how do you create a service so that a user can authenticate themselves once and then travel the Internet and have that credential log them in, authenticate them, authenticate them for payment? How do you create a set of services so that I as a user might describe heres how I want to be contacted and notified?And if my bank balance is below $100, I want to be notified in this way.Or if my test results come back from school, heres how I want to be notified.You want to be able to get notifications on a broad set of things in your life consolidated and presented to you through one scheme.
And so we see an opportunity to create a platform.Its not a platform exactly in the Windows sense.Windows is a platform for building applications for clients and servers.But its a platform that runs on clients, on servers, on new devices.It might run on UNIX systems.And actually runs out in the Internet cloud and provides services that underpin these notions of software as a service, new user interface paradigms, and XML as a new programming model.
I dont think this is something that sort of changes the world overnight.But youll start to see us bring products out that support the .NET vision.This week down in Orlando, Florida were having our annual big conference for software developers.And most of what were talking about is the development tools and operating system runtimes that support this .NET platform, starting with our new release of Visual Studio, which will be out about a year from now.So were working down at the low level on the standards.We and IBM and others are driving XML standards on the tools and operating system runtimes like Visual Studio.
And at the level of building blocks were starting with things like our Passport authentication and identity system, which is built into Hotmail and some of our MSN properties, but which were opening up for developers to use for general authentication on the Internet.
I talked about some of these examples:travel, healthcare.You can think of a lot of other examples in which this next generation of the Internet is valuable.Suppose youre a business thats trying to plan manufacturing of a given item, and you want to be able to go in and find out how much your dealers and distributors have in stock.You want your Web site to talk to their Web site.You want your Web site to talk to your suppliers Web site.These are all important characteristics of this next generation of the Internet.
In this next generation — actually in this generation of the Internet we also will see a change in the way Web sites are constructed.Today a lot of Web sites have one or two big backbone systems, and if they go down the whole site is shut down.And weve seen some major outages on big Web sites in the Internet.Weve seen Schwab be down.Weve seen e-Bay be down.And generally when these systems go down its because they have a single point of failure, a big UNIX or a big mainframe type system that goes down.
Now, you might say, “Hey, this guys trying to act like Windows systems never go down.” (Laughter.)Nah.They do go down sometimes, Ill be the first to admit.But in the new world of Internet operations what youll have is farms of servers, and if one of them goes down youre okay because other members of the farm, the Web site farm, other machines pick up the load.
So when you look at these big Web sites that have problems its never because a Windows machine went down, because theyre almost always a group of Windows machines that are cooperating in the processing.They avoid a single point of failure.
And so the architecture of the future for availability reasons, for reliability reasons, for scalability reasons will really be groups of servers, groups of inexpensive servers acting as a single system as opposed to big single unitary machines that can go down.
Now those groups, those farms of servers will give great scalability and performance.Theyll give higher reliability because there is no single point of failure.Those servers have to support this XML protocol to the core so that they can be programmed and scripted and managed, so that they can serve up XML data to other Web sites.They will have to federate with other services on the Web through XML.My calendar will talk to your calendar.I will be able to book an appointment on both of our calendars and have that work seamlessly because there is a common schema for how XML is represented on the Internet.
And these Web sites will need to be managed from anywhere and scale from very small organizations, from the home even, on up to the largest enterprise.
One of the areas of I think greatest work will be in what we call residential gateways.Most homes — my prediction — ten years from now will have multiple intelligent devices hooked to the Internet, two or three PCs, two or three set-top boxes, a phone or two.Youll have a wireless LAN in your home.And youll have a gateway.The gateway may be one of your set-top boxes.It may be one of your PCs.Or it may be a specialized gateway device that you just use to share the high bandwidth linkage of the home.
So even in the home there will be a server that someone is, quote, “operating.” In my opinion the operations of that server wont be done by the family.Theyll typically be devices, which are remotely managed by the person who sells you your high bandwidth access to the home.But the whole nature of server operations in this next generation must evolve.
Everybody focuses in on the fact that theres going to be new devices and more devices, non-PC devices hooked into the next generation of the Internet.The thing that a lot of people miss is the PC will still be the most important device hooked to the Internet.We believe that strongly at Microsoft.Will there be a higher growth rate in phones and TVs connected to the Internet than PCs?Sure.Just because today we already have over 300 million PCs connected to the Internet, which dwarfs the number of these other devices.So the PC will stay a primary device, but we certainly dont deny that people will use dumb terminals.People will use cell phones.People will use set-top boxes.And there will be a variety of devices that you want to use depending on who you are, where you are and what form.
I see a number of people sitting in the office with pads of paper, maybe making a note or two.You know, my prediction is within ten years youll carry not a notebook even.The notebook is a little bit big.Its got a keyboard.Its a little bit bulky.Youll carry something thats about the size of a piece of paper, about this size, a little thicker.Well call it a Tablet PC.And youll literally sit there and write on your Tablet PC.If you want my presentation, my presentation will be beamed via wireless Internet here in the room.If you want to comment on it, you want to make your own notes and annotations, youll make it right on the slides, right on the tablet, right in the room.If I decide I dont like the way something looks — well, I probably wont do it in this audience — Id sit here and type, youd get it live in real time in a sense in this room.It will be a very different kind of device.
And some of you will want that.Some of you will want a small device that fits in your pocket.Some of you will still want to carry a cell phone and will want to have that be the only device that you carry.
So there will be a variety of form factors from very small phones, screen phones, what we call Pocket PCs, Tablet PCs, notebook machines that have full keyboards.The range of devices that you carry, that you use in your living room, in your family room will continue to evolve quite rapidly.
And were doing investment in a lot of areas.Our new Pocket PC hit the market a couple of months ago.If you havent looked at it, its a super device.We still dont have the cheapest device in the market, but if you really want a powerful thing that fits in your pocket, where you can carry your music, the pictures of your children, all the maps youd ever want, your email, your contacts list, your to-do list, its a super nice device.Its a general purpose, programmable computer.And it has all the benefits of that.
Weve announced earlier this year our Xbox videogame console, which again is another smart device that can plug in, a very powerful device for the family room context.
Were working very aggressively with Rogers up here in Canada on next generation TV set-top boxes.
We announced a new phone type with Samsung, an intelligent phone a few weeks ago.
And at our .NET launch several weeks ago we showed the first prototypes of these tablet PCs.
So across the board were making a big investment not only in the PC, but in these new devices as part of this next generation of the Internet.
Ive expressed my enthusiasm already for the PC as a device.Why do I think it has such a bright future?Well, PCs have amazing power and performance and price.They really do.And if you want a general purpose device, a device that can do a lot of things, that has the most capability of any device you have in your home, the PC will always be the most capable device.
Were working very hard on making the PC also the most reliable device.Its not that today, but for those of you who perhaps have already migrated your desktops to Windows 2000 you know that were making great strides forward on reliability.The PC, because of its general purpose nature, has been less reliable than some special purpose devices.We can fix that.Were doing a lot of work, and certainly I encourage everybody to take a look at the Windows 2000 desktop.
PCs today sometimes people say theyre too hard to manage.Well, weve made a lot of investment again in making it possible to centrally manage these machines.In fact, over time I think youll be able to buy services in the next generation of the Internet.Youll be able to buy services where somebody says, “Ill take care of your PC in your house.You buy it.You buy the service from me.Ill install all the new software.Ill manage your PC.Ill keep it up to date for you.Ill do that all via the Internet.Just pay me five bucks a month.” And so well get out of a mode where people worry about managing and keeping their own PCs up to date.
Flat panel screens are becoming more common.People do like large screens.As much as I like the TV and as much as I like things that fit in my pocket, Im getting a little older.I like these big screens where I can see things.
I talked about the tablets.Multimedia is an area in which well I think continue to see the PC be on the leading edge.Whether its for video or audio or music or movies, the PC will be leading edge.
The initial broadband connectivity that most people get will be through the PC as opposed to one of these other devices.And these devices are designed to be expandable in a broad set of ways.
We did a little video that Ill admit this time in advance is designed to be a little bit cute.But its kind of a scene that you might expect in the world of the next generation of the Internet.But the scenario that youll see is a scenario that very much depends upon the PC as one of the core devices.Other devices are involved, but the rich things that our heroine for this video, Jenna, can do, she can only do if she has a PC.
So why dont we roll the video and sort of take a look at what the next generation PC might look like.
(Video segment.)
Microsoft .NET vision – PC experience.mpg [Microsoft, July 25, 2000]
(Applause.)
What were trying to give you a sense of in the video is some of the amazing scenarios that we are very focused in on enabling through next generations of technology.If you take a look at the kind of video editing and project sharing that the girls were doing in this video, theyre things where you are really going to want the power, the processing capability, intelligence of a PC, the screen size of the PC.
So we see the PC as staying a vital and exciting device.We showed you a little bit of what the tablet PC kind of functionality might look like, and still there are other devices.She can plug that cassette into something in her car.It can talk to her.So there are a variety of devices.But the PC stays really sort of the showcase device for the general purpose, high-end things that people want to do.
…
The future user interface I talked about as being essential in this next generation of the Internet.I see a lot of things changing.We talk about the notion of authentication.We talk about natural user interface where I can express myself.I say, “Get me all the information on my last trip to Canada.” Ill want to see the presentations.The computer will be smarter about recognizing the intent of what I say.
We talk about the information agents, the thing that will help me customize who can access me electronically, when and how.
We talk about the notion of access to information anywhere.I should be able to call from my phone — Im sure many people have gone through the painful experience of calling somebody on the phone.You dont know their extension number.And youve got to try to type in using the keypad some semblance of their name.You really just want to be able to say, you know, “Im looking for Dave Smith” and you want to be able to get to Dave Smith.And you want to be able to perhaps call in over your phone and get your email read back to you.It involves access with speech, with voice, with handwriting recognition as a built-in piece.
Well show you some things in a demonstration a minute from now where we talk about the notion of a universal canvas.Today you still have to think about these applications being separate, even though we allow you to move information between applications.We talk about the notion of a universal canvas.
We talk about the notion of smart tags.Today if you get a document, you just get the document.The document doesnt try to intelligently help you understand it.In the future if you see a document and the documents got a name of a business embedded in it, youll right click on it, it will say, “What do you want:its financial results?Do you want to go to its home page?” It will recognize intelligently the context and the items inside the document and tag them for you.
…
With the move that we see forward, with more devices becoming popular attached to the Internet, with the continued success of the PC, with the growth in e-commerce, and with the move to hopefully .NET, but certainly the next generation Internet, these are going to be exciting times.And the opportunity for all of us to benefit, to do new things, to start exciting businesses, to participate in exciting projects I think is absolutely incredible, and certainly at Microsoft we look forward to providing you with some of the important technology to drive the next phase of our mutual revolution, and we look forward to having that opportunity with many of you here in the room today.
I appreciate your time and attention, and enjoy Comdex, Windows World, Network+Interop and even that last show, whose name I cant quite remember right now.(Laughter.)Thank you all very much.
(Applause.)
END
Steve Ballmer’s view seven and half months after the .NET announcement was that of the of the original .NET vision, so he didn’t that by his August 6, 2010 decision the original vision could not be delivered:
Steve Ballmer Speech Transcript – DevCon 2001 [Feb 6, 2011]
2001 Windows Embedded Developer Conference
…
The other item which I think it will be increasingly critical not only in the embedded space, but across the full gamut of things that we and you do, is this notion of integration. And I want to talk a little bit about that in more detail, because I think it’s one of the most important trends we expect to see in the market overall. And that’s the evolution from a world of what I would call reasonably unconnected applications, and devices, and services, to a world of reasonably connected devices and services and applications. Whether we’re talking about the PC, the PC and the Internet, or embedded devices, we’re sort of going through a third phase of evolution.
The first phase was a phase in which everything was pretty much an island. And if you think back even 10 or 15 years, that was the basic world in which we lived. There might be some primitive upload of information, but devices were essentially islands and embedded devices were essentially islands. Over the last 10 years, both because of the sort of sweep in popularity of networking, and the advent of the Internet, we’ve gotten into a second phase in which these devices are connected, but the nature of the connection is not very rich. The devices, the applications, they don’t really know much about one another. They can’t communicate with one another in a very rich way.
Phase three, the phase that I think we’re entering into now for the computer industry as a whole, is a world in which you have smart devices, smart clients, and smart servers, smart applications talking to each other in a very intelligent way, where you actually can pass data at the semantic level, as opposed to just sending bits back and forth.
Why do I think this kind of integration is very important? I think the trends and the transformation that are happening on the Internet today highlight that quite a bit. If you want to put together an application on the Internet today, let’s forget the specifics of embedded, but just an application, and that application is supposed to ‑‑ what’s a good example, Myskivacation.com. Myskivacation.com is going to let me book a flight, it’s going to let me notify whoever is picking me up that I’m coming, put it on their calendar, tell them when I’m late, or my flight is late, they should be automatically paged. It’s going to tell the U.S. Postal service to please hold my mail, it’s going to automatically enter me into the computer system at the Vail ski resort where I’m going to visit, and it’s going to be repopulated, so if I take that lift ticket from last year, that I haven’t paid any additional money against it will automatically update it and put it in the system. That’s the application I want to build, Myskivacation.com. And it’s got to talk to these intelligent devices, and it’s got to talk to other Web sites.
It’s a very sensible application to want to write. It’s a very impossible application to write today, really. How do you tell the U.S. Postal Service, I’m an application acting on behalf of Steve Ballmer, he really trusts me, and are you programmable so I can tell you to hold the mail? I don’t know how you start on that problem. How do you actually write an application that can put something on somebody else’s calendar with any degree of security and reliability, without writing your own calendar system? Very hard to do. How do you tap into the notification system, whether it’s paging or instant messaging, however people like to be contacted? It’s very hard to do. How do you have enough intelligence in the Web sites at Vail so that you can talk to them programmatically and say, Steve is coming back, give him credit in the computer system, we’ll take care of the payments. It’s very hard to do.
And what we need is an infrastructure that supports that kind of rich communication between devices and people, if you will. We need an infrastructure that supports that, from PCs to servers, to cell phones, to set top boxes, to other intelligent devices. That’s the software infrastructure of the future. And if I ask myself, or we ask ourselves at Microsoft, what’s the world look like in 10 years, we’re not going to be writing programs the way we write programs today. We’re not going to all just sort of write to the metal. There needs to be a higher level of infrastructure that kind of sits in the middle of that. And as we’ve thought about it, we say basically, this represents a new platform, a new software platform, a platform that’s got to be part of the PC, it’s got to be part of the server, it’s got to be part of a variety of smart devices, and this platform has to also sort of just live out in the Internet cloud.
Take the case where I want Myskivacation.com to represent me to the Postal Service. There needs to be an authority out there that we can all trust to securely validate my identity, that needs to exist at the cloud-based part of the platform. So this next generation, what we call our instantiation is the .NET platform, has to live in a variety of places. Now, if you go back five years we’d probably say that if it lived in the PC and the PC server that would be enough. It is quite clear that in this day and age as important a device as the PC will be, other devices are very important. And you cannot approach ‑‑ we could not approach Vail, we could not approach Bally’s with our partners, we couldn’t approach the XFL, we can’t approach anybody unless there’s ways to get information at the semantic level to move through this platform, out of these smart devices and into the rest of the applications infrastructure that people build. That’s very, very, very important.
And so six months ago, eight months ago we launched this .NET platform. And we talk about the components that can be ‑‑ that will be part of Windows, that will be embeddable in other devices, the services, identify, notification, storage, that we will host, and allow others to host out in the Internet cloud, and then the infrastructure, the application frameworks, the servers, et cetera, that people can use to build the back end application that pulls this all together. We’re launching this year a development tool, VisualStudio.NET, that brings the fundamental programming infrastructure, and this whole environment has embraced XML, and the SOAP protocol that we developed with IBM and the standards bodies to move XML information, XML payloads across the Internet, and preserve the semantic content of what people want to move.
So I do think there’s a new world emerging of smart devices. That is the future of computing. We are trying to respond with a platform that helps you mobilize and develop, and deliver these kinds of rich devices, smart devices instantaneously. And some of it will have to do with integration, some of it will have to do with presentation, as we saw in the case of Bally’s and the XFL.
To try to bring this to life for you, I want to show you a short video that we made to kind of demonstrate the application scenarios that we think will be important in the future, and how some of those may come about. So we’ll just show you a brief demonstration in the life of Steve Masters, an accident prone man who is just looking for smart devices and smart infrastructure to help him in the modern world.
Roll the video please.
(Video shown.)
Microsoft .NET vision – Healthcare.mpg [Microsoft, July 25, 2000]
MR. BALLMER: Steve may have problems, but those intelligent devices sure helped him a lot. The phone that maintains information about his position, a phone from which he can plug into the services in the cloud and give up personal information, pay for things, about himself. The smart card and the intelligence in that device. The X-ray imaging system built with the right kind of intelligent technology to provide information released from the smart device. This is the kind of world in which we’re moving. And the only devices I think that will make sense as we get into the future are devices that are smart, that do plug in, that do connect into this infrastructure. And if they have an end user connection, they really are smart devices about me. They store or allow me to access information about my personal preferences and data, my schedule, my contacts, whatever the case may be. The experience has to scale. There’s an appropriate user interface that scales from very small screens, from low resolution screens on to much larger screens like the one we saw on the Bally’s Gaming machine.
These devices need to be smart about other devices. They have to be able to announce themselves to other devices across the network. They have to be able to say what services they export, and they have to be able to discover other services provided by other devices that are participating in the scenario, in the solution that is relevant. Connectivity, we’re going to move, people are going to increasingly move these devices around. And the infrastructure has to be smart about quality of service, and deciding at what bandwidth and what capabilities to provide the user at different bandwidth.
One of the big issues we’re facing right now with the Pocket PC is the right thing for the Pocket PC, the right thing for these Tablet PC devices that were demonstrated in a video that we’re working on, the right thing for cell phones, is for them to be able to move seamlessly from a corporate broadband network connection out into the narrowband public network and back without people having to reconfigure and change them, so that when I’m at Microsoft, for example, my cell phone, my Pocket PC, should use our high bandwidth 802.11 network. But when I roam out into the world at large, that same device should be able to use the cellular radio network that is available for connectivity, and still have the applications all participate in intelligent ways. And I think the same case could be made for a variety of these new smart devices.
And last, but certainly not least, the software infrastructure that you want to have available to you as an application developer in these devices gets richer and richer. You shouldn’t have to worry about your own networking. You shouldn’t have to worry about your own management of people’s personal preferences, and some of their core data, payment, identity, et cetera. You shouldn’t have to worry about basic infrastructure that allows you to create inside the smart device a Web service that talks to other devices.
And so I think if you think in the context of the video we showed you or some of the scenarios, the smart device will be increasingly the norm, and we see that in the consumer market where, let me call them home peripherals, stereos, stereo replacements, jukeboxes, home server appliances are becoming popular. We see that in the case of special purpose devices for entertainment, recreation, some of the kinds of devices we saw here. We certainly see them in the industrial field, whether we’re talking about devices that people use in the warehouse, in the shop floor, that the salesmen use as they travel, all of these devices are going to need to have the kind of richness and smarts built in that I talk about here, and that we saw in the video.
As we talk about the infrastructure, the software infrastructure and plumbing for people to build applications, in some senses there’s a lot of services, multimedia services, graphics services, communications services that are very important. But the core programming is perhaps the most important. How do you create a device that is smart, that communicates easily with other devices, and how do you create a set of applications for that device that can appropriately and intelligently integrate their information elsewhere. I think the core really builds on the so-called XML technology that has become so important. How do you create an application that creates an XML payload, that passes it to other devices in an intelligent way, what are the protocols for moving that around, what’s the machinery that lets you create an application, that exposes itself and allows itself to be programmed via XML and SOAP very comfortably, and how do you do that with a kind of productivity that you will insist on as a developer. And really the target of our .NET application frameworks and VisualStudio.NET for the PC and the target for what we call our .NET frameworks, these can be put on other operating systems that can be embedded into smart devices, whether it’s a Windows CE device, or perhaps something that’s even thinner that you might want to put in the marketplace. They allow you to build this new-style Web service application very conveniently, and still have access to the range of today’s Windows applications services, streaming media, graphics, whatever the case may be.
And what I would like to do now is invite up on stage with me Rob Brigham. Rob works in our VisualStudio.NET group, and we want to give you a little bit of a sense of what you can do in terms of application development with the new VisualStudio.NET, the .NET frameworks, and the Compact frameworks, which will ship later this year. Please welcome Rob Brigham.
(Applause.)
MR. BRIGHAM: Thanks, Steve.
So one of the tenets of .NET is having access to information any time, any place, from any device. But when you look at a lot of the cool Web sites out there where you can check stock quotes, track the packages that you send, or buy things, they all require the use of a Web browser. And when you’re using a non-PC device, using a Web browser is usually not the thing that you want to do. So, if we can take these existing Web pages and transform them into Web services that we can program against, then you, the developer, can control how you interact with the site. You can do so in the manner most efficient for your particular application or device.
Let’s take a look at an example of doing that.
MR. BALLMER: Key to XML is essentially moving back away from presentations of the underlying semantics of the Web site, and then letting the smart device deal with the semantics instead of the presentation.
MR. BRIGHAM: Exactly, you just want access to the data.
MR. BALLMER: Great.
MR. BRIGHAM: So, here is MSN Photo Center, and this is a Web site that allows users to store their digital images online. Currently, the only way that users can upload their photos is through this Web page here, so you need a Web browser to do this. They want to fix this, and they want to do so by creating a Web service that allows any device, or any application to upload their photos to Photo Center.
MR. BALLMER: You mean, for example, if I was on vacation and I didn’t want to take my PC with me, heaven forbid, I could just directly upload off my digital camera?
MR. BRIGHAM: Exactly, yes. You don’t have to tote that laptop with you.
MR. BALLMER: Not that I wouldn’t want to take my laptop everywhere, but keep going.
MR. BRIGHAM: So, we’re going to do so in VisualStudio.NET, and what I have open here is the VisualBasic.NET Web project, and in it we have Web pages, and we also have Web services. So, if we go to a Web service, and we look at the code for it, we see that this code is just like the code you write for local components. It’s a class, and it has public functions in it. So, if we go down to the bottom, here’s that upload photo method. And this method just takes some photo information here, the name, the image, and then it’s going to call some database commands to insert that image into the database. Now, all that we have to do to make this public function exposed as a Web service, is add a Web method attribute to it. And that’s it. VisualStudio.NET and the framework is going to do everything that we need to expose this. So, we can build this project, and run the Web service, and we’ll see that we hit that Web service URL without invoking a method on it.
It’s going to automatically generate a description page for us. And on this page, we can see things like the methods that are available, the parameters that they take, and you can even invoke a method straight from this page. So it’s a great way to test out your Web services as you’re developing it.
We’re going to invoke the GetPhotoAlbums method, and you’ll see when we make this Web service call, it’s just an http request, so we can see we passed the method name and any parameter values with that http request. And what we get back is just XML data, even the binary photo images are encoded inside the XML. So this means that any device can now call this Web service. And that’s what we’re going to do next. We’re going to build an application that’s going to call this Web service.
So, I have a digital camera, and I use it all the time, I really love it, but the one thing that really bugs me is, as you said, when you go on vacation, you’re kind of tied to your laptop as well, and you have to take that with you, because the flash memory card fills up, and you have to upload the images. So that’s a real hassle. So, I want to try to help the digital camera users out by creating a kiosk, and this could be a photo upload kiosk that could be installed at tourist locations, so that as people are taking a lot of pictures, they can go to one of these kiosks, and then upload their images to the Web so they can delete their memory.
So, here’s my kiosk app, and in it I have an upload form. So if we go down to the bottom of this form there is an upload to Web button and when users click on this button we want to call that Web service. So before we can call that Web service we need to reference it from this client application. So to do so we can go to the add Web reference dialogue. And what this allows us to do is browse the Web and find out which Web sites are publishing services. So if we go to Photo Center…
MR. BALLMER: And this uses the UDDI discovery protocol for services on the Web.
MR. BRIGHAM: Correct. So if we go back here there’s even a link to UDDI. And you can go to a service directory like UDDI and see a bunch of available Web services out there. So we’re actually going straight to the Photo Center site here, and we can see the service they expose. And it shows up in the right hand side here we can add a reference to it, straight from this dialogue, and now we’re going to get a Web reference in Visual Studio, that means we can now call that Web service just like it was a local component. So we’re going to write that code now, we’re going to create a new instance of the Web service, and it was photoalbums.photoservice. And now that we have an instance of that Web service we can now call methods on it.
So even though this is a Web service that lives remotely on the Internet, we still get these IntelliSense statements on it. So I can see the methods that are available on the service, and then I also get the parameter completion here. So the first thing we need to send is the album ID, so I’ll pass that. The second is the name, and lastly is just the binary image itself. So there’s our Web service call, and we’re done building this client application. It’s now going to call that Web service so we can build and deploy this project now, and now it’s going to deploy it to our photo kiosk which is over there. So we can walk over and run the application on the kiosk.
Okay. So here’s my kiosk application here, and the first thing that I need to do is log in. So I’m going to apply my credentials, and when we sign in here, since this is a smart device, it’s going to authenticate me with the Passport service. And then when it comes back, since it has my identity stored on the device this Photo Center application is going to recognize me and it’s going to automatically pull down my images that I have on the Web site.
So you figure I have some pictures of my daughter, I’ve got pictures of my sock monkey, too, on here. But, what I want to do now is — I just went to the Grand Canyon, I’m out on vacation, I just filled up my camera full of images, and now I want to clear out some memory. So what I’m going to do is go to the upload photos section. And I just need to connect my camera up to the cable, and now that I have that I can download the images from the camera. It’s going to load it up onto the kiosk, and now I can choose things like the destination album that I want to put these photos in, and I can even set the picture names if I want to here. And now that we’re done, here’s that upload to Web button that we just wrote the code for. So when we click this it’s going to call that upload photo method on the Web service, push those binary images to the Web, and now it’s going to refresh my album and we’ll see the pictures that we just uploaded, and they’re down here.
So as you’ve seen here VisualStudio.NET is really going to make both building and consuming Web services very simple.
MR. BALLMER: Some day maybe we’ll have a camera that’s smart enough that you don’t even need to have the kiosk.
MR. BRIGHAM: Exactly. Ideally this would be wireless, and you could just connect up to the network and it would call that photo service directly, that would be ideal.
MR. BALLMER: It would be a smart device for somebody to build. Great. Thanks, Rob.
MR. BRIGHAM: Thank you.
MR. BALLMER: Smart devices with an infrastructure that lets them plug into smart servers and services running elsewhere out in the Internet, that’s the vision of where we go. The third element that is required to make that complete is a set of services, and we gave you kind of a sense of that in the demonstration that Rob just did of services that you can count on running in the Internet cloud, and communicating with these smart devices.
Take identity. We know today there’s a huge problem with people having to log in multiple times, reissuing their personal preferences, personal data, personal information. There needs to be services that exist in the cloud. Certainly, for the .NET frameworks we are building a set of fundamental services to support these applications, identity, payments, notification, storage. Some of these will be services that we run, some of these will be services that we run and our customers can run, and they confederate together, so that you can issue somebody an identify and federate in with, for identification purposes, the community of people which we already have almost 100 million on the Internet today who have identities, who have names, and who have a way for us to authenticate them across the Internet.
So some of these services are applications you will build. Some of these things are services that you can call from your application. I don’t want to authenticate this user, I will let somebody else authenticate this user, a service being run out in the cloud. What we showed you here essentially was a storage service. The photo work uses the basic XML storage infrastructure that we’ll put in place. And our own MSN sites will be able to run that, but so would any other service that wants to plug in and be available as another service out in the Internet for people to use.
I think there will be a variety of business models for these services. Some people will charge for them, some people will provide them free of charge in order to build a larger community of users for other things that they are doing. Microsoft, we have some core services, like authentication and notification, which we will provide to developers essentially at a very low fee. And then we will ourselves build a set of communications services, and sophisticated user interface that uses those services so that the community of users just continues to grow and build from the base of people that we have involved today. But, this set of services is an important element. If everybody is creating a new identity for people the whole notion of smart devices that know about your data and your preferences starts to eviscerate fairly quickly.
I talked earlier about how we’re putting skin in the game, that we’re working on some smart devices beyond the PC itself. Our Pocket PC is a very good example of that, based on Windows CE, and I’ll admit we got off to a little bit of a slow start, but we’re really at full throttle right now. This is a device that I would expect us to sell something above 4 million units in the course of the next 12 months, and it has really ramped up.
Stinger is a next-generation smart phone builds off of Windows CE and the Pocket PC code base. Car.NET is a product that builds off of Windows CE, that we’ve licensed to a number of the high-end automotive manufacturers to provide in car navigation and entertainment systems. Xbox builds off of Windows NT embedded, which will be available ‑‑ and Xbox will be available later this year. The Microsoft TV, and Ultimate TV set top boxes, both the platform, as well as the Ultimate TV product, which we’re delivering with Direct TV this month, all build off of the Windows CE embedded technology, which we make available.
And just as you give us feedback, every one of these efforts also provides feedback to our core embedded operating systems group on things that we need to do different and better. We’re not asking you to make a bet that we’re not willing to make in force ourselves. If you look at the size of some of these bets, of Xbox the amount of investment we’re putting in there, in the Pocket PC and mobility space, or in the television space, we’re making huge bets on the quality of our own embedded technologies for these smart devices.
What does the future look like for us in the embedded space? Today at the platform level we offer Windows CE 3.0, and NT 4 embedded. And you see a list of some of the devices we have, and we’re in beta with the next generation of tools. As this year completes we’ll introduce a new version of Windows CE called Talisker, which I’ll talk about in a minute. We’ll introduce the embedded version of Windows XP, or Whistler, which I’ll talk about in a minute, and a range of upgrades and new devices are coming. In addition to final production shipment of the .NET infrastructure that I had a chance to show with Rob earlier, and these .NET Compaq frameworks, which will be embeddable both on CE, and again, as I said, on non-CE devices. We’re already in discussions with a number of people about moving the .NET Compaq frameworks to some other environments.
Talisker is the next release of Windows CE. It provides for greater componentization, so you can really get just what you want, and optimize around smaller footprints. We have very good networking support built in, UPnP, Bluetooth, 802.11. We’ve done a lot to make the user interface more flexible, the UI is now skinnable, and we’ve built in support for our ClearType font set. And I think it’s really a very important step forward. The readability of these new fonts on very small screens is incredibly improved, on LCD screens. And I think it will really make a difference in terms of the kind of readability you get on small screen devices.
We’re building in our latest Web and multimedia support. There’s a set of new things that we’ll do to improve the development environment and the operating systems support for good application development. And we are starting the process of building on the infrastructure I talked about, the authentication and notification services in the cloud, XML and SOAP support, the common language run time out of the .NET frameworks. And this will be available by the end of this year.
As part of that, or related to that, we’re also announcing today the Windows Embedded Strategic Silicon Alliance. This is a partnership that we’re putting in place with a variety of people who provide microprocessors and microprocessor instructions to optimize Windows CE and the Windows CE kernel for their processors.
We’re trying to make sure that you can leverage the latest processor innovation and allow for deep collaboration between us and those partners, people like Intel and NEC, like Arm and Phillips, and TI and Hitachi, you can read the list of some of the other partners. I think this is a very important step forward in terms of really making sure the Windows CE software and the platform, the hardware platforms on which you’re building are very, very well optimized together.
In the Windows NT world, we have taken an approach in the past that I would call highly suboptimal. We have built Windows, and then after it was done, we’ve gone and injected the technology for embedding. That’s why we’re sitting here today, and we only give you Windows NT 4 embedded. Embedding was kind of an afterthought. And we think it is very important for us to move this process of letting you embed NT up to a fundamental characteristic of the product. So with the next release of Windows, which we now call Windows XP, that’s the name, we are building the technology that allows for componentization and targeting, et cetera, into the core development of the product. So that within 90 days after the release of any new version of Windows, we’ll be able to give you all of the tools to allow you to componentize and embed that in a smart device.
We’ve taken huge steps from where we are today with you with NT 4. First Windows 2000, and then Windows XP takes a huge step forward on top of that. And the fact of the matter is, I think when you take a look at it, there’s a lot of technologies which we simply don’t allow you to embed today in a smart device, because we’re back on the NT 4 platform. So, greater speed, systematic deliver of the technologies which will allow you to embed, and faster release times.
The other thing which we’ve done in the Windows XP embedded environment is to allow you to embed smaller components. We’ve gotten a lot of feedback from this audience that you need better componentization, smaller footprints in the NT world, and we think we’re taking some very good steps in that direction.
In addition, in the XP embedded release, there is a set of things that we’ve done explicitly for the embedded market. Number one, we have execute in place as part of that operating system release. We have full headless support as part of the Windows XP release, and we have support for the Compaq PCI technologies as part of the Windows XP embedded release. So not only do you get all the new capabilities since NT 4, but some specific capabilities that we’ve been getting pushed on from the embedded community.
We also provide a better tool set, both for target designing, target analysis, and component designing to let you be more efficient and effective in the work that you’re doing. And, of course, because Windows XT has embraced XML and SOAP and UDDI, some of the core infrastructure protocols and standards and technologies that we talked about, this release will get you there.
Our target is to ship Windows XP in the fall of this year, and within 90 days of fall to have the embedded version available for you.
I hope that at the end of the session there’s a few things that are clear to you. Number one, we have a vision for where we think the computer industry is going, and what that means specifically for the embedded market.
Number two, we’re trying to enable a next generation platform, .NET, that enables you to build Web services, the application type of the future, in all of these smart devices. I think it’s fair for me to say, we have a proven expertise in software, and if software matters, if this stuff really does involve giving you an infrastructure that’s rich, I think we’re the best place to turn. The development tools we give you have been and will continue to be best of breed. We’re trying to build a platform between CE and Windows NT that will span the broadest set of devices. We’re committed to this market for the long-run. We’re building significant businesses, like Xbox and our mobility business, and our TV business, on top of the same infrastructure that we’re encouraging you to bet on.
And last, but certainly not least, we view this as a partnership. We know you’ll need our help. We know we need your feedback. We know there’s going to be technical support challenges, go to market challenges. When our partner at Scans has an idea that they and the XFL are interested in, sometimes those really require a strong three-way partnership to make happen. And so we encourage you to push on us, to lean on us, to talk to Bill, BillV at Microsoft.com. If you need help and support and we’re not giving it to you, I’m SteveB at Microsoft.com. We’re in this with you for the long-run. We certainly appreciate your spending not only the time with me this morning, but the time here at this conference, and let us know how we can help. Enjoy the rest of the show.
Thanks very much.
(Applause and end of event.)
The current Microsoft .NET as it is
Unfortunately the current Overview of the .NET Framework [Jan 31, 2002] is quite old. What is going on the overall .NET homepage as .NET Overview for business managers [Aug 19, 2011] is 13 months old, so it is not up to date either:
.NET for business
.NET is a key element of the Microsoft Application Platform
Learn more about the Microsoft Application Platform › [not available any more]The .NET Framework provides a comprehensive and consistent programming model and a common set of APIs spanning Microsoft platforms. From client devices like desktop PCs and smartphones, to the public and private cloud, .NET enables your business to build applications that work the way you want, using a common set of tools across software, services, and devices.
Mission-critical business applications
Many businesses count on .NET’s powerful technology framework to provide the security advancements, management tools, and updates they need to build, test, and deploy highly reliable and secure software.
Mission-Critical Apps study › [Dec 15, 2009]Ready for multiple platforms
.NET encompasses a set of technologies that spans many platforms, including mobile devices, desktop clients, and web services. This provides your business with broad reach across Microsoft platforms. In addition, .NET Compact Framework and .NET Micro Framework (now open source) extend that reach even further into smaller-footprint devices.
Multiple Platform Support › [July 12, 2012]
Public and private cloud support
.NET is the richest and most productive way for you to create applications on premise (Windows Server) and in the cloud (Windows Azure). Then you can quickly deploy and manage applications in your own datacenter, or across a global network of Microsoft-managed datacenters.
Learn more about Windows Azure ›
[microsite: as recent as Sept 13, 2012 of the Windows Azure blog with a
.NET Developer Center of Aug 15, 2012 + a .NET Reference and a .NET Guidance for designing Windows Azure applications as of Sept 9 and 6, 2012 respectively]
Learn more about Windows Server ›
[microsite: as recent as Sept 5, 2012 of a number of Windows Server 2012 related pages as well as a Windows Server 2012 product overview white paper [Aug 9, 2012]]Developer tools designed for productivity
.NET developers can leverage their existing skills and use common tools when building applications, which decreases ramp-up time by cutting down the learning curve. Microsoft Visual Studio 2010 is the premiere development environment for .NET with features to maximize productivity, helping your application get to market quickly. It also provides powerful ways to support scenarios involving advanced lifecycle management for development teams, as well as to incorporate open source libraries to your project with NuGet.
Learn more about Visual Studio 2010 ›
[already redirected to the Visual Studio 2012 Launch Event of Sept 12, 2012, leading to a Visual Studio 2012 Launch microsite (with on demand keynote video record) with set of recorded videos for: .NET 4.5 and languages, Web and cloud, and Windows platform under the common umbrella of Modern apps]
Learn more about Visual Studio 11 Beta ›
[already redirected to the same Visual Studio 2012 Launch Event of Sept 12, 2012]The business value of .NET
The business advantages of developing software on the .NET Framework
Read The Business Value of .NET › [July 29, 2004]Customer examples
Discover how businesses are using.NET Framework to stay ahead
View .NET case studies › [Aug 19, 2011]Why more companies are migrating from Java to .NET
An in-depth analysis of a growing industry trend
Download the Java to .NET Migration white paper ›
[Marketing Trends & Key Benefits White Paper as of June 7, 2011: the result of a research project by Pique Solutions to identify trends and gain insights into development platform migrations]
Multiple platform support [July 12, 2012] – .NET Framework extends your business reach across Microsoft platforms: [redirected to .NET Framework as of May 5, 2008, but updated for .NET Framework 4.5 and Visual Studio 2012]
.NET is a set of technologies that spans many platforms including mobile devices, desktop clients, and web services. In addition, .NET Compact Framework and .NET Micro Framework (now open source) extend that reach even further into smaller-footprint devices.
Desktop Client
Windows Presentation Foundation (WPF) is a next-generation system for building Windows client applications with visually stunning user experiences. With WPF, you can create a wide range of both standalone and browser-hosted applications. WPF is included in the Microsoft .NET Framework, so you can build applications that incorporate other elements of the .NET Frameworkclass library.
WPF provides powerful controls and advanced features such as layout, databinding and templating to build visually rich, powerful applications.
Development and maintenance costs are reduced because XAML markup is not tightly coupled with behavior-specific code.
Development is more efficient because designers can implement an application’s appearance simultaneously with developers building in .NET.
Learn more about WPF at MSDN ›
[April 28, 2008, but said to be updated for .NET Framework 4.5]Micro Framework
The .NET Micro Framework is the smallest version of .NET for very resource-constrained devices. It offers a complete and innovative development and execution environment that brings the productivity of modern computing tools to embedded programming. Even though it’s offered under an Open Source License (Apache 2.0) it is still under active development inside Microsoft in coordination with active community contributions.
Easily develop powerful, interactive, and complex embedded applications.
Securely connect devices over wired or wireless protocols.
Develop reliable solutions faster at lower cost.
Develop the endpoints of your solution for connected devices using the same tools that are used on the servers and in the cloud.
Learn more about .NET Micro Framework at MSDN › [redirected to .NET Framework as of May 5, 2008, but updated for .NET Framework 4.5 and Visual Studio 2012]
Learn more about .NET Micro Framework at NETMF.COM › [.NET Micro Framework microsite [Aug 9, 2012] with link to the NETFM Open Source Site [May 17, 2012] on which the current dowloadable version is .NET MF 4.2 as of Aug 14, 2012. The latest information as of Sept 12, 2012: “We are in the final stages of version 4.3 of NETMF with release in the near future. This release will work with Visual Studio Express 2012 for Windows Desktop. In addition, we are in the planning stages for .NET Gadgeteer version 4.3 and this version will also support that Express edition. We don’t have a firm release target for that at this time.”]
Download .NET Micro Framework ›
[the current dowloadable version is .NET MF 4.2 as of Aug 14, 2012]Compact Framework
The Microsoft .NET Compact Framework enables you to build and run managed applications and use Web services. The .NET Compact Frameworkincludes an optimized common language runtime (CLR) and a subset of the.NET Framework class library, which supports features such as Windows Communication Foundation (WCF) and Windows Forms. It also contains classes that are designed exclusively for the .NET Compact Framework.
The .NET Compact Framework is a subset of the full .NET Framework.
It implements the Framework class library and also contains features and classes that are specific to mobile and embedded development.
Learn more about .NET Compact Framework at MSDN ›
.NET Compact Framework documentation ›
Server / Azure
.NET is the richest and most productive way for developers to create applications on premise (Windows Server) and in the cloud (Windows Azure). It’s also the best way to build first-class back-ends for any device running on any OS (Windows 8, iOS, Android, Windows Phone 7).
.NET is the best environment to develop cloud applications spawning the private datacenter and the public cloud.
.NET on the server powers ASP.NET, WIF, Entity Framework and WCF.
.NET provides the best capabilities and framework to enable developers to create next-generation enterprise solutions.
.NET and Visual Studio enable developers to manage all their development tasks in a very productive way.
Download the Windows Azure SDK for .NET › [microsite as of Aug 12, 2012]
.NET Developer Center [Aug 15, 2012] of the Windows Azure microsite [Nov 24, 2011]
Create your first application
ASP.NET MVC web site with SQL Database [June 5, 2012]
Implement a simple web site using ASP.NET MVC that supports creating, editing, and listing to-do items from a database. You will learn the basics of using Windows Azure Web Sites, deploying an application to Windows Azure, and storing data in SQL Database.
Cloud service with ASP.NET web role and SQL Database [June 5, 2012]
Implement a simple web application that is hosted in a Windows Azure cloud service. You will learn the basics of deploying an application to Windows Azure and storing data in SQL Database.
Virtual machine using Windows Server [June 5, 2012]
Implement a virtual machine running Windows Server 2008 and hosted in Windows Azure. You can use Windows Azure Virtual Machines to run any application. Use standalone virtual machines to host .NET applications, or integrate a virtual machine as part of a cloud service.
Build more applications
Web [“Windows Azure .NET Scenarios – Web”, Nov 24, 2011]
Learn how to get started developing Windows Azure Web Sites and Cloud Services using a variety of development tools and deployment options including FTP, Git, and TFS.
Big data [June 5, 2012]
Learn how to use a variety of structured and unstructured data storage options and analysis tools, including Hadoop and MongoDB, with Windows Azure.
Line of business [“Windows Azure .NET Scenarios – Line of Business”, Nov 24, 2011]
Learn how to use features like Service Bus to easily create secure and highly available apps that extend from on-premises to the cloud.
Mobile [“Windows Azure .NET Scenarios – Mobile”, June 7, 2012]
Learn how you can easily create web applications hosted on Windows Azure that are optimized for rendering on mobile devices.
From Windows Server 2012 product overview white paper [Aug 9, 2012]
… Agile Development Platform: The Microsoft Cloud OS allows enterprises to build applications they need using the tools they know, including Microsoft Visual Studio and .NET, or open-source technologies and languages, such as REST, JSON, PHP, and Java. …
… Windows Server is a proven application and web platform—with thousands of applications already built and deployed on the Windows platform, and a community of millions of knowledgeable and skilled developers already in place. The new version of Windows Server will keep bringing innovations to developers and end customers. On Windows Server 2012, applications can run well in virtually any application environment developers choose (for example, .NET languages, Java, PHP, or Python). Windows Server 2012 also offers the flexibility to build and deploy applications and websites across premises on a scalable, elastic, and open web and application platform. …
… Both Windows Server 2012 and Windows Azure provide increasing flexibility for building and deploying applications in on-premises and public cloud environments. Windows Server 2012 offers programming languages and tools, such as Microsoft Visual Studio and Microsoft .NET Framework, that span on-premises and cloud environments. With these tools, developers can work in a single, unified environment to build solutions for Windows Server and Windows Azure cloud platforms. Developers can use these programming tools across web, application, and data tiers for locally deployed applications and for private and public cloud solutions. They provide the ability to use the same development model between Windows Server 2012 and Windows Azure to create on-premises, cloud-based, or hybrid applications. …
…
Windows Server 2012 and Windows Azure road maps address the requirements for a modern application development platform by offering an excellent environment to develop cloud applications spawning the private datacenter and the public cloud, and by providing the capabilities and framework to enable developers to create next generation application solutions. Together with Microsoft Visual Studio, the .NET 4.5 framework enables developers to manage all their development tasks in a very productive way.
For example, innovations in .NET 4.5 include new Async language and runtime support: which enables easy development of highly scalable solutions, as it allows to handle high volumes of transactions with Async HTTP. Additional enhancements include increased application speed and startup via background JIT compilation, as well as many new features across ASP.NET, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF).
Cloud applications are a new type of application that depends on loosely coupled, asynchronous, and data centric capabilities. These typically run on scalable, highly available, and utility designed runtimes and infrastructure that provide higher levels of abstraction from the metal than those previously available. .NET 4.5 is targeted to provide great capabilities for developers working on mobile apps, web apps, and cloud services—while giving rapid scalability support, fast time to market, and handling a gamut of PCs, browsers, and mobiles.
In addition to being the best platform for the .NET framework, Windows Server 2012 provides a single, agile platform for both open-source software and ASP.NET, which allows developers to freely choose from multiple programming stacks and languages, including .NET, PHP, Node.js, and Python. Windows Server 2012 also offers enhanced support for PHP and MySQL through IIS 8.0 extensions. IIS can support running both ASP.NET 3.5 and ASP.NET 4.5 applications, and provides support for the latest HTML5 standards and for writing managed WebSocket protocol applications that provide real-time bidirectional client-server communications.
…
Announcing the release of .NET Framework 4.5 RTM – Product and Source Code [.NET Framework blog, Aug 15, 2012]
Updated – 8/16/2012: Added license information about the source code release.
Today, we are happy to announce the availability of Microsoft .NET Framework 4.5 and Visual Studio 2012. You can develop apps that will take advantage of all the great features that we have added, including new features in Windows 8. We are also announcing the availability of the .NET Framework 4.5 reference source code, under the Microsoft Reference Source License (MS-RSL).
You can read more about the Visual Studio 2012 release on Jason Zander’s blog and Soma’s blog. Please visit the Visual Studio 2012 downloads page to install both products.
Improvements in the .NET Framework 4.5
We have made many improvements in the .NET Framework 4.5. Many of these advances help you write better apps with less effort, while others help you target particular Microsoft platforms. In either case, you’ll find the new features useful and relevant for the apps that you write today.
Core runtime and class library improvements
The most important core advance is the new async programming model, which has broad support across the common language runtime (CLR), the .NET Framework base class libraries, and the C#, Visual Basic, and F# languages. In particular, we added hundreds of new Task-returning methods across the .NET Framework libraries.
We made performance improvements in many parts of the core. Given the focus on async, we made the Task Parallel Library (TPL) and other concurrency APIs faster. We also made across-the-board improvements in the CLR, including multicore JIT, MPGO, and big wins in CLR garbage collection. If you are building responsive or scalable systems, or would like to take advantage of multicore and manycore processors, you’ll find this a very exciting release.
Visual Studio 2012 has built-in support for creating portable class libraries, which make it easier to re-use your code across apps built for different platforms.
Windows Store app programming experience for C# and Visual Basic
The .NET Framework 4.5 enables you to create Windows Store apps using C# and Visual Basic. These include both XAML and HTML Apps. This support is based on the work that we did to allow Windows Runtime APIs to be called from managed code. It also includes the new .NET for Windows Store apps API surface area.
You can call Windows Runtime APIs with C# and Visual Basic, and you can also create Windows Runtime APIs with those same languages. This ability is very useful if you want to call managed code within an HTML App or a C++ XAML or DirectX app. As part of this scenario, you can call Windows Communication Foundation (WCF) services from within your Windows Runtime API implementation.
We made performance improvements specifically for Windows Store apps. We reduced startup time substantially, updated the garbage collector to aggressively reclaim memory upon app suspension, and created a service to automatically generate native images for your app DLLs. We also improved file I/O performance when using the .NET Framework stream extension methods, which automatically buffer underlying Windows Runtime streams.
ASP.NET
ASP.NET followed the trend of excellent support for async, including async in ASP.NET Web Forms, ASP.NET MVC, and ASP.NET Web API.
ASP.NET 4.5 and Windows 8 added support for the Web Sockets API. The upcoming ASP.NET SignalR provides developers with an ideal high-level abstraction that enables real-time communication not just over Web Sockets, but also transport fallback for older browsers.
ASP.NET Web Forms 4.5 gets a huge upgrade with support not only for strongly typed data controls in all data-bound controls, but also Model Binding, which will greatly simply your Web Forms code-behind files. Web Forms developers can even use ASP.NET Data Controls with the repository pattern. ASP.NET Web Forms also has complete support for HTML5 and CSS3, and takes advantage of the new editor improvements in Visual Studio 2012.
Windows Communication Foundation (WCF)
We made many improvements in WCF, including: better performance, reliability and scale with WebSockets, and support for client-side validation of the server SSL certificate using WCF’s custom X509 certificate validator on a per-request basis.
Entity Framework
Entity Framework now supports enum properties and spatial data types in models created with Code First and the EF Designer. Models created with the EF Designer can now map to Table-Valued Functions (TVFs) in an existing database. We also made significant performance improvements to Entity Framework.
Windows Workflow (WF)
Windows Workflow now includes key authoring improvements, new versioning features, and runtime enhancements. You can now host workflow definitions and instances, with side-by-side versioning, in WorkflowServiceHost. The new Dynamic Update feature allows running workflow instances to be modified. Expression extensibility gives you more flexibility in providing custom expression authoring experiences.
Releasing the source code for the .NET Framework 4.5 libraries
In addition to releasing the .NET Framework 4.5, we are pleased to announce that we are also releasing the source code for the .NET Framework libraries. We are releasing the source under the Microsoft Reference Source License (MS-RSL). While you may enjoy reading the many interesting algorithms in our product, we release the .NET Framework source primarily to improve your debugging experience. Having access to all the managed source for the code running in your process provides you with a lot more information about what your app is actually doing.
If you are new to developing with the .NET Framework, you may not know that we have released the source and rich symbols in past versions. We know that many developers rely on our source code to efficiently get to the root cause of functional and performance problems in their apps. As a result, we provide the source code concurrently with the release of .NET Framework 4.5.
This release includes the following:
Downloadable source code
Source available on-demand, deployed to the Microsoft Reference Source Server
Rich symbols (PDB files) for .NET Framework 4.5 source, deployed to the Microsoft Reference Source Server
We’ll now look at how you can use the source code and symbols.
Debugging with .NET Framework library reference source
You may be wondering what debugging with .NET Framework reference source looks like. In the example below, you will see a tool of mine calling the public Console.WriteLine method. From there, the WriteLine method calls several private managed APIs, and eventually ends with one or more platform invoke calls. You can see each of these calls in the Call Stack window. You can look at each call frame, both in terms of the source for that frame, and any locals that are available. That’s pretty useful!
This experience also works for all .NET Framework app types, including ASP.NET, WPF, Windows Forms, console, and Windows Store apps. We call this experience of seeing .NET Framework library source in Visual Studio, “.NET Framework source stepping.” As you might guess, you can step in and out of .NET Framework code, using all of the stepping commands that you are used to, such as F11, F10, and Shift+F11. It’s pretty easy to set this up. I’ll explain how.
Enabling .NET Framework source stepping in Visual Studio 2012
We’ll first start with the instructions for enabling source and symbols download on demand. This mode works the best if you have consistent Internet access. You need to make a few configuration changes in Visual Studio 2012.
First, open the Options dialog box by choosing Options and Settings… from the Visual Studio Debug menu, expand the Debugging node, and then choose the General option. Set the following:
Clear the Enable Just My Code checkbox.
Check Enable .NET Framework source stepping.
Clear Step over properties and operators (Managed only)
Check Enable source server support.
Clear Require source files to exactly match the original version.
Next, set the following on the Symbols page which is also under the Debugging node:
Add a new symbol file location that points to http://referencesource.microsoft.com/symbols
You can now choose OK, and start using .NET Framework source stepping as part of your development process.
Enabling offline source in Visual Studio 2012
There are times when you don’t have a connection to the Internet, for example, when you’re traveling. Also, some people prefer to pay the download cost just once, and then not think about it again. We’ve got both of those cases covered.
You can download the source and symbols for the .NET Framework 4.5 as an MSI installer. Once you’ve installed them to a particular location on your local disk or network, you need to provide a symbol file location that’s different from what we’ve specified in the previous section. I’ve provided an example below.
Once you have the offline reference source package installed and configured (as shown above) in Visual Studio 2012, you are ready to start stepping into .NET Framework library source.
Implications for multi-targeting
You can use the .NET Framework multi-targeting features and the reference source together; however, it is important to know how these relate to each other. The reference source is tied to the runtime version that you run your project on, not the version of the .NET Framework that you are targeting. For example, even if your project targets the .NET Framework 4, you will be using the .NET Framework 4.5 reference source when debugging in Visual Studio 2012.
Closing
We hope that you are as excited as we are about the release of the .NET Framework 4.5 and the reference source. We’ve built many new features that will make you more productive targeting all of the Microsoft platforms. You can download the .NET Framework 4.5 and Visual Studio 2012 from the Visual Studio downloads page.
You can learn more about reference source at the Microsoft Reference Source Code Center.
As always, we would like to hear from you. Please don’t hesitate to post a comment on the blog or at one of the forums that we monitor: Connect (report bugs), UserVoice (request features), and MSDN Forums (ask for help).
.NET for Metro style apps [.NET Framework blog, April 17, 2012]
.NET is now a core part of several Microsoft platforms, and each has focused on specific subset of APIs. A lot of thought has been put into crafting each API surface area. Many of you have asked how the .NET APIs available for Metro style apps were chosen. In the following post, Immo Landwerth – a program manager on the CLR’s Core Framework team – provides an answer to this question. — Brandon
Since the releases of the Windows 8 Consumer Preview and the Windows Developer Preview, developers have been busy exploring Windows 8, and many have asked questions about the subset of.NET Framework APIs that can be used to develop Windows Metro style apps. The natural tendency has been to compare the .NET APIs for Metro style apps to those available for other platforms such as Windows Phone. In particular, developers are wondering how much of their existing C# or Visual Basic source code they can expect to reasonably port to build a new Metro style app. We asked ourselves the same question when we carefully designed .NET APIs for Metro style apps.
In this post, I’d like to give you an overview of the APIs that are available to you for building Metro style apps. I will primarily discuss the design principles and requirements we used to decide which .NET Framework APIs to make available for Metro style app development. I will also touch on the relationships between .NET APIs for Metro style apps and other .NET API profiles.
Design goals
From the start of this project, we realized that we had a great opportunity to simplify app development, but also some interesting challenges to resolve. Metro style apps enable developers to provide compelling end-user experiences across all the supported Windows 8 devices. In order to achieve this goal, many important changes were made within Windows, some of which affected our design approach to the .NET Framework APIs that we would expose.
The biggest change, in terms of .NET Framework APIs, was the introduction of the Windows Runtime APIs. The Windows Runtime is a new API surface in Windows that exposes the functionality necessary to write Metro style apps. These APIs were designed to be used from a variety of programming languages: C# and Visual Basic and also native C++ and JavaScript. The task for our design team was to ensure that .NET Framework developers would be able to use both .NET Framework and Windows Runtime APIs together in a way that felt natural and intuitive. Also, the Windows Runtime team worked closely with us and approached the same task from the opposite direction.
We established the following goals to define the API surface of .NET for Metro style apps:
Avoid duplication of functionality between the Windows Runtime and the .NET Framework.
Provide a clear focus on .NET Framework APIs that are needed to write Metro style apps.
Make sure that existing .NET Framework developers will feel at home with this profile.
Make it easy to port existing C# and Visual Basic code to the profile.
We also looked at a collection of Windows Phone and Silverlight apps to determine how developers used .NET Framework APIs in practice. These apps helped us assess the two last goals, in particular.
Designing the API profile
To design a new profile for Metro style apps, it made sense to start from an existing subset of APIs, and to pare it down while extending it toward the goal, which was to provide simple and well-designed .NET Framework APIs that specifically target Metro style app development. Note that the following diagram is intended for illustrative purposes only, and is not drawn to scale.
Figure 1: .NET Framework profiles in context
In this diagram, the smaller circles represent .NET profiles. The intersection of the profiles represents APIs that are common to all the profiles. Conceptually, you can think of .NET for Metro style apps as a subset of the .NET Framework that shares a relationship with other .NET Framework profiles. Portable Class Library does not show up in this diagram as a separate profile, but is a separate concept that deserves a post of its own.
With that diagram in mind, we decided to start with the .NET API subset for the Windows Phone, with selective additions from the full .NET Framework and Silverlight. While Windows Phone apps were likely to be similar to Metro style apps, the introduction of the Windows Runtime in Windows 8 meant that the Windows Phone profile was only a starting point.
API selection process
In addition to the goals discussed earlier, we established a rigorous selection process. We made sure that every API we considered adding passed the criteria defined below:
Is the API applicable to Metro style apps? Of course, the answer isn’t always obvious. For example, ASP.NET APIs are clearly not relevant to Metro style app development, but console APIs could be considered helpful (for example, during testing). When in doubt, we asked ourselves whether we’d want to ship a Metro style app that called the given API, and we removed APIs that simply won’t work in Metro style apps. For example, file access using paths isn’t supported in Metro style apps, because file access is done through a broker process and requires using Windows Runtime APIs, so we removed those APIs.
Is the API obsolete or outdated? This includes APIs that are difficult to use correctly, are confusing, or don’t follow basic design guidelines.
Is the API duplicated by another .NET Framework API in the profile or by a Windows Runtime API? Duplication of APIs means that you have to choose, and this choice is often arbitrary. Duplication also means that you cannot easily share code with other developers, because they might have chosen to use different types in their signatures.
Arriving at the final set of APIs
After our design phase and a progressive series of refinements, we arrived at a set of APIs that met the stated design goals. We validated this set of APIs with the apps that we had available, and requested feedback from Microsoft developers who were involved in early Metro style app development. We made more changes to enable the set of scenarios that the validation exercise uncovered. With the exception of a few more minor changes, this is the surface area we made available for Metro style app development with Visual Studio 11 Developer Preview, and more recently, with Visual Studio 11 Beta.
The diagram below shows the functionality exposed in the .NET for Metro style apps profile. The diagram should match what you see available in Visual Studio 11 Beta. The Windows Dev Centeris a great place to explore these new APIs.
Figure 2: Feature areas supported by .NET for Metro style apps
For a more quantitative view, the following table compares the new profile to existing profiles you might be familiar with. It’s not surprising that .NET for Metro style apps is much smaller than the full .NET Framework, and similar in size to the profile for Windows Phone. .NET for Metro style apps is even smaller than the Windows Phone profile, because we removed functionality such as the UI stack and sensors, which is exposed by the Windows Runtime.
.NET for Metro style apps Windows Phone 7.1 .NET Framework 4.5 Namespace 72 95 447 Type 1,246 1,788 14,936 Member 15,674 20,291 217,166 Table: API surface counts, by .NET Profile
Learn more
If you want to learn more about the thinking process that went into the design of the API surface area, watch Krzysztof Cwalina’s A .NET developer’s view of Windows 8 app development talk from the BUILD conference.
If you’re interested in porting your existing .NET Framework code, watch Daniel Plaisted’s BUILD talk Bringing existing managed code into Metro style apps, and check out the .NET for Metro style apps overview in the Windows Dev Center, especially the section about converting your existing .NET Framework code.
Have you used the .NET for Metro style apps and the Windows Runtime APIs to build Metro style apps? Which APIs do you think are missing? Are there any additional APIs that should have been removed? Please tell us what you think.
And since there was a great confusion in the developers’ circles about the Windows Store apps (whether XAML or HTML5), as well represented by last year’s A too early assesment of the emerging ‘Windows 8’ dev & UX functionality [June 24 – Aug 19, 2011] post of mine on this same blog, here is a detailed and quite recent clarification of those issues from the same person who was dealing with that problem from Microsoft back then as well:
XAML TV – Pete Brown: Windows 8 XAML for Silverlight/WPF Developers [xamltv YouTube channel, July 10, 2012]
More information:
– .NET for Windows Store apps overview [MSDN library, Sept 4, 2012 ]:
The .NET APIs for Windows Store apps provide a set of managed types that you can use to create Windows Store apps for Windows using C# or Visual Basic.
– C#, VB, and C++ programming concepts for Windows Store apps [MSDN library, Sept 4, 2012 ]:
Learn about programming concepts that are generally applicable to any app that you write, if you are using C#, Visual Basic or C++ as your programming language and XAML for your UI definition.
Visual Studio 2012 Launch
for Connected devices & Continuous services
Building modern apps with Visual Studio 2012 [technical keynote by Jason Zander, Sept 12, 2012] [34:42]
Developers are now targeting a variety of platforms across the desktop, phone, and cloud while also focusing on satisfying users’ demand for great app experiences. With Visual Studio 2012 developers can create compelling experiences across multiple connected devices powered by continuous services. Join Jason Zander as he shows how all developers and organizations can take advantage of the latest platforms and technologies to turn your innovative ideas into software. Watch Keynote
Soma Somasegar and Jason Zander: Visual Studio 2012 Launch, Sept. 12, 2012
[Transcript of] Remarks by Soma Somasegar, Corporate Vice President, Developer Division, and Jason Zander, Corporate Vice President, Visual Studio, Redmond, Wash., Sept. 12, 2012
Soma Somasegar: … our team has done is work hard over the last couple weeks to put together over 60 different short video clips that explain to you the different parts of Visual Studio 2012, what is coming in new, and more importantly, how you can get started and leverage that functionality. So, those videos are available today, and hopefully they prove to be a good reference point as you get on the journey with Visual Studio 2012 and .NET 4.5.
… Jason Zander: …
… connected devices, continuous services. And what does that mean to me? Well, if I look at this overall stack, there’s all of the elements that are required. I can start off with the bottom of the stack and say, ook, at some point I’m going to have business logic. I’m going to have transaction processing. I’m going to have these systems that I need to keep up.
I’ve got some of this stuff, again, running on-premises, I might have some of it running up in the cloud. I might actually want to have the flexibility of being able to take advantage of both of those. In some cases, I’ve got systems that I’ve been maintaining and building and improving for a very long time.
Now, given I’m going to have that, I can build the software, but that’s kind of necessary but not sufficient. Until it gets into a user’s hands, I haven’t really solved the problem. So, I have to be able to manage the software. I’ve got to be able to deploy it, operate it, make sure that it’s working. So, I want some kind of system to help me out with that.
…
Now, for the services side, let me start off with the back. I think like an architect, so I’ve got to go build something that I’m going to be able to access and make sure it’s going to handle all the scenarios we care about.
Several things we want to make sure there. One, we saw with our ATM example, I may have systems that I’ve been working on at my company for a long time. This is mission-critical, bedrock stuff. We are going to produce new tools that help you bring those things forward, architecture tools, for example, new technology to build those up and add functionality.
Now, I may also want to start to expose that technology. Maybe, for example, you’re being asked to have a mobile application that can connect up to that system that you’ve been building for 20 years. So, we also are working on things like I can actually put a point of presence in the cloud, I can put it up on Azure and I can securely connect back to my on-premises. So, for example, if I were doing a reservations system which is onpremises, I can actually put a Web service-based front end in the cloud. Now I can actually have something that I can connect with mobile devices. That’s a great solution because I can use what I’ve got, but I can also start bringing it forward as well as starting to build new workloads that are distributed and can take advantage of the scale we can get with the cloud and the new programming models.
I also talked about Web applications, and that’s an example where we really want to make sure that, again, you can reach all devices, because they all have a browser in common.
So, some concrete things, and this is just a short list because we have a ton of stuff that’s new in .NET 4.5. But in this context, I’m pulling out three. In particular, a new version of ASP.NET with MVC 4, giving me some great controllers, new view functionality to write really compelling Web applications. That’s going to make it so that I can actually write apps using standards base, I can project them to any browser that’s supporting all the modern standards, I can actually be able to change form factors. I want you to be able to do that and target whichever devices people are asking you to deliver.
After that, we’ve also produced the Web API and API Controller. So, another example, if I want to export REST and standards-based interfaces to my business logic which then, again, can be used for multiple types of devices, we’re going to make that super simple for you so you don’t have to do all the plumbing. The tools actually do that for you.
New version of the Entity Framework which allows me to get access to my data. Pull it out, cache it, filter it, those sorts of things because so many of our applications on the back end are really doing a lot to crunch data and pull that back through. So, these are just three examples that are in the new version of the framework with new updates that are trying to make this space really very simple for you.
…
As I move up to the top, I can look and see you’ve got tons of devices now. And they’re not all coming from the same vendor. And that causes a new challenge because you may be asked to go write applications, and you may not be able to actually write the same project in all places. So, we’ve got to be able to make investments there that we think are going to make sense here.
So, for example, the HTML5 investments we’re making, so I can always be able to present websites and content out to all of my customers no matter what kind of device that they’re using, but I may also want to write rich applications. Some of those will be on the Microsoft stack, some of those may be on other platforms.
So, I need a way to do that too. And so being able to easily go off and expose business logic in standards-based ways that can be consumed for multiple form factors, that’s going to help me with my architecture. Now I can put the logic in the right place, I can operate it very well, I can get great connectivity and then I’m going to have a decent story.
Now, finally, social is another big element to these modern applications. So, both from the consumer side, touch, nice displays, the kind of fluid motion, social also very interesting. Showed an example up front that had a lot more to do with my friends, but with technologies like Yammer, I’m also doing a lot of that work to collaborate with my coworkers. So, I want to be able to pull those sort of elements also into my software.
…
Now, if you look at the clients, we’re also doing a significant amount of work on the Microsoft platform. So, we’ve got some really exciting stuff coming out.
Now, let’s look at a few of these. First of all, for Windows desktop, with .NET Framework 4.5, Visual Studio 2012, we have added additional improvements both in the framework as well as the tooling to help you with your existing desktop applications that you’re creating. That includes Windows Forms, that includes WPF, so if you’re doing XAML and those sort of things, for example, we’ve got Blend and those sorts of things to help you out with that.
So, we’re going to really make that still a first-class experience for you, allow you to keep adding new things, and just like we showed some cool functionality, you’re going to be able to go in and you can go actually access those same APIs that we just showed authoring from those environments.
Now, also the new, big things we’ve got coming out, Windows 8, the [Windows] Store applications that you can go out and create. Now, there, we really want to make sure that you’re able to use all your programming skills no matter what they are. So, we’ve got XAML support if you’re used to being able to do that. Say you’re already experienced with WPF as an example, I can use C# and Visual Basic, as well as C++ to author those applications.
We also have a big bet on HTML. So, I can write an application, use HTML, JavaScript, and CSS, actually really write that rich application there as well.
Now, with that, I’m going to be able to put things up. And whether you’re doing the next really cool application that’s going to go off to millions of people, next really cool game, take your pick, or I’m going to be able to write something that I’m deploying in my enterprise, kind of doing group policy, but I really want it to work on these new form factors, you’ll be able to handle all of those with the tool.
Now, we have support also for Windows Phone. We’ve already got those SDK and those sorts of things that are out. You can build those applications today. And with the new versions of Windows Phone that you’ve seen us start to talk about that are coming out soon, we‘ll have tools for that as well and that will work very similar to the way that you do today. You’ll be able to install those in Visual Studio, and I‘ll be able to write applications both for the 7X and the new version that’s coming out after that. Once again, being able to do a XAML, in this case now with C++, I’ve got full flexibility.
Now, finally, we are making big investments with Internet Explorer. So we have IE9 that we’ve released, and we’ve got the new version coming out, Internet Explorer 10, which will also be shipping with Windows 8. And you saw an example with the F12 tools, but in addition to that, we want the tools to be really super simple when it comes to editing my code, being able to understand the markup that I’m doing and those sorts of things. Everything is going to be nice and fully integrated.
…
… a couple of things that I’ll leave you with, as we go off to work on connected devices and continuous services. One, we’re going to work very hard on helping you do unified application services. You saw on the back end being able to build services, expose them, consume them in multiple types of ways, on heterogeneous platforms, basically make sure you can get that out there everywhere.
The next thing is we’re really going to work hard on the modern client experiences. You saw some really cool stuff there with the power of C++, in addition to the Kinect and extra hardware, but that’s going to work for C#, VB and JavaScript, as well, all of those are going to work for you.
After that we really want the best tools for modern platforms. I think some of us probably spend more time looking at Visual Studio than most other things in our lives. So, we want to really make sure that’s a great environment for you. It’s a productive environment. It’s easy for you to work on your code, really get to the task and get all of that content done.
…
Update as of Sept 20, 2012: Who is Jason Zander?
Jason Zander Interview with Tim Huckaby [DevConnections YouTube channel, recorded on March 27, 2012, published on the channel July 19, 2012]
Jason Zander’s biography from Bytes by MSDN Interview Jason Zander [Microsoft Developer Network, May 26, 2010]
Jason Zander is the corporate vice president of the Visual Studio Team in the Developer Division at Microsoft. Zander’s responsibilities include the Visual Studio family of products, which covers a range of technologies: programming languages; JavaScript runtime and tools; integrated development environment and ecosystem; Microsoft Office, SharePoint and cloud tooling integration; source control and work item tracking; and advanced architecture, developer, and testing tools.
As one of the original developers of the Common Language Runtime (CLR), Zander’s primary technical areas of contribution include file formats, metadata, compilers, debugging and profiling, and integration of the system into key platforms such as operating systems and databases. Before joining the Visual Studio Team, Zander was the general manager for the .NET Framework Team. He has worked on numerous products at Microsoft, including the first several releases of the CLR and .NET Framework, Silverlight, SourceSafe, and ODBC. Before joining Microsoft in 1992, Zander worked at IBM Corp. on distributed SQL and SQL/400 at the Rochester lab.
Zander holds a Bachelor of Science degree in computer science from Minnesota State University. In his spare time, he enjoys playing with his three children and making furniture in his shop.
Note that his corporate biography of April 1, 2010 is almost the same as the above one except the change from General Manager position to the CVP position in the above one, so by end of May the same year. According to his LinkedIn profile he became so called product unit manager in June 2002, probably his first big leap in his engineering management career.
End of the update
Windows Phone 8 SDK Preview program is now open [The Windows Phone Developer blog, Sept 12, 2012]
Today we begin accepting requests for access to the Windows Phone SDK 8.0 Developer Preview program. The objective is to let developers of our most-downloaded apps start optimizing them for Windows Phone 8, and we expect the majority of published developers in this situation to qualify for access.
To apply, please visit the Microsoft Connect site and complete a short application. Be sure to have your Developer ID and Application’s Product ID on hand, as well as the name of your local Phone Champ (if you don’t know your local Phone Champ, you can always get in touch via the Find My Champ app). We’ll be taking applications until Monday, September 17 at 5pm PDT. If you’re accepted to the program, you’ll hear from us in the following week with instructions on how to download the SDK and get support for questions and issues.
I know that many of you want to know why we simply don’t publically release the full SDK now. The reason is that not all Windows Phone 8 features have been announced and our SDK includes comprehensive emulators that allow developers to test apps against a wide range of Windows Phone features. We recognize that this is a different approach to delivering tools than we’ve taken in the past. Our goal is to generate as much Windows Phone 8 excitement as possible to attract new customers when phones go on sale. This is one of many steps we’re taking to help give you what you (and we) want most.
Windows Phone 8 remains on track to hit store shelves later this year and we very much want developers to create new apps for the platform, so please bear with us. There will be more SDK news in the coming weeks.
Today you may have also seen the online launch event for Visual Studio 2012. The Windows Phone SDK 8.0 is built on top of Visual Studio 2012, and will give you the ability to build applications and games that target both Windows Phone 8 as well as Windows Phone 7.5. Windows Phone SDK 7.1 can be installed side-by-side with Visual Studio 2012 and runs on Windows 8.
Tune in to the Visual Studio 2012 Launch [Jason Zander’s blog, Sept 12, 2012]
This morning we kicked off the VS 2012 launch with an event in Seattle. You can tune in to the online coverage at http://www.visualstudiolaunch.com/ for live interviews and session recordings. In this blog post, I’ll share some of the info I presented at today’s event.
Modern Applications
It’s a really cool time to be a consumer today. New smart phones, tablets, ultrabooks, and lots of cool gadgets are coming out all the time. In this world, users have become accustomed to having a lot of choice in their applications and they expect to see certain features from the start (connected, touch, etc). We are also increasingly seeing more demand for these same types of features in the Enterprise. With products like Yammer, social has crossed over from networking with friends to my teammates. Finally, users are becoming accustomed to getting new features faster than ever before. If we want to be successful in this new world we will have to change up the way we are creating software.
The question for developers is how do we build such applications and do it with the fastest time to market? We will need a system that allows us to build out business and transactional logic at scale, exposing things in a way that we can handle many heterogeneous device types, with team software to speed up delivery. Today’s keynote walks you through how Visual Studio helps you solve these problems.
Visual Studio 2012
These trends are exciting, and provide compelling ways for users to interact with your apps. But they also present new challenges when it comes to the development of your apps. These are the kinds of things we had in mind when designing Visual Studio 2012 and .NET Framework 4.5.
We wanted to make sure that you could start with your existing software assets, and bring them forward to take advantage of the latest platforms. Using Visual Studio 2012, you’ll find that you can target a variety of Microsoft and non-Microsoft clients. You can also create backend services using SharePoint, SQL Server, Windows Azure, and Windows Server. And finally, you can manage your app in production using System Center integration.
Continuous Services
When designing the backend services for your app, you need them to scale to the demand, to be accessible from different clients, and to be able to leverage both cloud and on-premise components. VS 2012 and .NET Framework 4.5 contain the tools and technologies to help you be successful here. (Many of these are actually “favorite features” that I’ve blogged about before. 😉 ) ASP.NET Web API and Entity Framework Code First are two useful .NET features for building your services. With EF Code First, you can start by defining classes that represent the data model, and let EF create the database tables for you. Then you can create a Web API controller to expose the data as an HTTP-based service, which can be consumed using REST, JSON, or XML. This makes it really easy to access the service from a variety of clients, so you can build a set of companion apps for phones, tablets and browsers, across any platform.
New ASP.NET Web API project
Web Experiences
One place you’ll want to consume these services is from a website – this is where you’ll get to take advantage of the latest web tooling features in VS 2012. You’ll find enhancements like JavaScript IntelliSense and debugging, HTML 5 schema validation, DOM Explorer, and new code snippets. Also check out the new Page Inspector, which allows you to analyze running web pages and find the code that generated each HTML element:
Finally, when you’re all done, you can use the Visual Studio Publish wizard to deploy the website to Windows Azure.
Connected Devices
Once you have your services set up, you’ll want to access them (by consuming the Web API) from the client apps running on your connected devices. These apps might include existing desktop apps, a new Windows Store app, a Windows Phone app, or an app for another platform. VS 2012 introduces new features to help with the development of these apps, such as the C# & VB async and await keywords, which simplify asynchronous programming, resulting in more responsive apps. You’ll also find a new and enhanced XAML editor within Visual Studio, as well as design tools for Windows Store apps in Blend for Visual Studio 2012. In case you decide to create Windows Store versions of your existing desktop apps, VS 2012 includes portable libraries which allow you to refactor your application logic so that it can be consumed from both the WPF and Windows Store app (as well as Windows Phone, and a variety of other clients you might have plans for down the road…). We’ve also added great C++ graphics tools in this release for both editing, using the Vertex Shader, Pixel Shader and Output Merger, as well as debugging, using the pixel history and other diagnostic tools:
Conclusion
This is really just a glimpse into how you can use VS 2012 and .NET 4.5 to build modern apps that “wow” your users. Make sure to catch the full coverage from today’s event on http://www.visualstudiolaunch.com/. You can also read about the announcements we made today from Soma, Brian and the Visual Studio team blog.
Modern apps [Sept 12, 2012]
Modern apps embrace the new needs in software development, by evolving business and consumer apps into a new era where connected, user-centric experiences are exposed through any device and powered by continuous services. Learn how Visual Studio 2012 and the Microsoft platform enable these experiences for your existing apps and empower you to build new exciting apps that delight your users.
Taking your business forward with Modern apps [19:09] with Matt Nunn
Join us to learn about the changing state of IT and application development and learn about the “New Normal” for our industry. Get a broad-picture of modern application development and how trends like the “Consumerization of IT” and “Bring your own Device” are affecting what we design and build every day. See how the juxtaposition of Modern Apps versus Mission Critical Applications and concepts like “lean Startups” inside organizations fundamentally change the way we need to think about building, deploying and managing applications whether they are to consumer, business to business or internal. But most importantly, come and see the opportunities that the “New Normal” brings for your customers, your business and you. Watch
Strongly suggested preliminary readings
on this same ‘Experiencing the Cloud’ blog:
– Core post: Giving up the total OEM reliance strategy: the Microsoft Surface tablet [June 19 – July 30, 2012]
– Standards-based adaptive layouts in Windows 8 (and IE10) [March 24, 2012]
– Windows Phone 8 software architecture vs. that of Windows Phone 7, 7.5 and the upcoming 7.8 [June 22, 2012]
– The future of Windows Embedded: from standalone devices to intelligent systems [March 9-29, 2012] from which I should strongly emphasize the roadmap part, especially with the above Windows Phone 8 software architecture information:
…
- Windows Embedded Enterprise v.Next will be available a quarter after Windows 8is generally available for PCs
- Windows Embedded Standard v.Next will undergo a community technology preview for developers during the first quarter of 2012, with general availability three quarters after Windows 8. It will support the ARM architectureand all of the management and security functionality provided by Windows 8.
- Windows Embedded Compact v.Next will follow in the second half of 2012, introducing support for Visual Studio 2010.
.NET 4.5 and languages [Sept 12, 2012]
Learn the latest capabilities of .NET Framework 4.5, including enhancements in languages, libraries, and tools for creating modern apps.
Developer productivity enhancements in Visual Studio 2012 IDE with Sumit Kumar
This session provides an overview of new productivity features and capabilities of Visual Studio IDE that make it a very exciting release for developers. It also shows some of the C++ specific IDE features that makes writing C++ code in Visual Studio a very modern and productive experience. Watch
What’s new in C# and Visual Basic: Async made simple with Alex Turner
Explore the deep language innovation that Visual Studio 2012 brings to C# and Visual Basic. See how the Async language feature works together with new .NET Framework APIs to simplify asynchronous programming. No more callbacks! Watch
My favorite .NET 4.5 performance features with Dan Taylor
.NET just got faster. This session covers a few of the key performance features introduced in .NET 4.5, including background GC for server, Multi-core JIT, and the Managed Profile Guided Optimization Tool (Mpgo.exe). Watch
Creating cross platform apps using Portable Class Libraries with Daniel Plaisted
Learn how to create an app with versions for Windows Store and Windows Phone by using the new Portable Class Libraries supported in Visual Studio 2012 to share code between different versions of the app. See how the Model-View-ViewModel pattern (MVVM) is ideally suited to sharing code between platforms. Watch
What is new in WF4.5? with Leon Welicki
Modern app development requires rich foundation technologies, like Workflow, in order to implement high-quality applications. Windows Workflow Foundation (WF) provides many improvements based on key customer requests such as C# expressions, contract-first, designer improvements, side-by-side versioning of services, and State Machine. Watch this session to learn what is coming out in WF 4.5 and see some of these features in action. Watch
A look at WPF 4.5 [06:41] with Pete Brown
Windows Presentation Foundation (WPF) 4.5 powers the most complex desktop applications and is now adding a number of updates designed to help make your applications easier to develop and faster to execute. Smooth filtering and sorting of large lists of data, support for bound collection updates from background threads, full Async and await support, the Task Parallel Library (TPL), and binding update throttling are just a few of the new features. Watch
Creating Windows Store app using WCF 4.5 and WebSockets with Piyush Joshi
Many new Windows Store apps require connections to back-end services to show live and collaborative data coming from concurrent users and multiple services. One important element is the ability to get connections to any kind of service, using any protocol. In this case, WCF helps you connect Windows Store apps to online WebSockets services. In this session, you will see how a Windows Store app (as a WCF client) can talk to a WCF service hosted in an Azure VM role (Windows Server 2012 RC) over WebSockets. Watch
Entity Framework 5 with Rowan Miller
Modern app development requires a rich foundation as well as back-end services in which data access is critical. Entity Framework is the strategic data technology for Microsoft that helps to develop data-driven applications and domain-driven applications. Take a tour of the new features in Entity Framework 5 that are included in Visual Studio 2012. Learn to build an app that uses Code First, spatial data types, Code First Migrations, and Web API to display local parks on a webpage using Bing Maps. Watch
C++11 in Visual Studio 2012 with Stephan T. Lavavej
Microsoft is fully committed to language standards and modern app development also means being aligned with standards. Take a look at some of the Core Language and Standard Library features from the new C++11 Standard that have been implemented in Visual Studio 2012, including the range-based for-loop and the multithreading library. Watch
Making your code run faster using Visual C++ 2013 with Jim Hogg
Performance is critical in graphically intense modern apps and new user interfaces. Learn how Visual C++ 2012 makes your code run faster by using all of the hardware available in your PC (vector registers, multiple cores and graphics card) while creating a productive development environment thanks to Visual Studio 2012. Watch
Building Business Applications with LightSwitch in Visual Studio 2012 with Joe Binder
LightSwitch for Visual Studio 2012 is the easiest way to build business applications for the desktop and the cloud. We’ll take a look at some of the biggest enhancements in LightSwitch, from producing and consuming OData feeds to creating touch-first HTML clients quickly, in this short video. Watch
Building your first app for Office with Microsoft “Napa” and Visual Studio 2012 with Saurabh Bhatia
Modern app development is tightly related to end-users’ work in which Office is “a must.” Office 2013 introduces a new app model that brings the best of web development to Office. Join us in this session to see how easy it is to start building apps for Office using these new development tools. Watch
SharePoint Development in Visual Studio 2012 with Xiaoying Guo
Modern app development is tightly related with end-users’ work and collaborative applications in which SharePoint collaborative applications are key. In this session, you will see how the new SharePoint 2010 and SharePoint 2013 developer tools in Visual Studio 2012 help build SharePoint solutions more easily and efficiently. Productivity and integration with SharePoint 2012 are main targets in Visual Studio 2012. Watch
SQL Server 2012 for developers with Sarah McDevitt
Modern app development requires a rich foundation as well as back-end services in which data sources and databases are critical. Visual Studio 2012 includes major improvements for database development for both on-premise SQL Server and Azure. See how these database development tools (like SQL Data Tools) fit with your application lifecycle and deployment methods and see how you can use these tools to develop efficiently for the cloud. Watch
F# 3.0 information rich programming with Donna Malayeri
F# 3.0 is part of Visual Studio 2012 and extends the succinct and expressive F# language to support information-rich programming. This technology, which is user extensible, allows you to program directly against rich spaces of data and services, such as databases, web services, web data feeds, and data brokers. In this session, we will demonstrate the code-focused experience of F# 3.0. We will also show how to integrate an F# library into a larger, mixed-language web project. Watch
Visual Studio 2012 support for Windows Embedded Compact with Andrew Pardoe, David Campbell
Visual Studio 2012 will once again be supporting Windows Embedded Compact’s device makers and developers by providing a seamless developer experience across Microsoft’s platforms. Windows Embedded Compact developers will be able to use great new features as part of Visual Studio, including C++11 as part of the full line of Windows Embedded devices. Additionally, the .NET Compact Framework has been updated with new libraries and better performance. Come learn more in this session. Watch
Web and cloud [Sept 12, 2012]
Take advantage of Visual Studio 2012 to create compelling online experiences and continuous services that run on-premise and in the cloud.
What’s new in Visual Studio 2012 for web developers with Mads Kristensen
Take a journey through the features of the most significant Visual Studio release for web developers yet. Explore the HTML 5, CSS 3, and JavaScript editors, highlighting both the big and the small features that increase both productivity and developer happiness. Watch
What’s new in ASP.NET Web Forms 4.5 with Damian Edwards
ASP.NET Web Forms lets you build dynamic websites using a familiar drag-and-drop, event-driven model. See how new data-binding features make data-centric applications easier to write than ever while also generating cleaner client-side code with Unobtrusive Validation. Watch
ASP.NET and the Mobile Web [06:28] with Scott Hanselman
Mobile traffic on the web is exploding. Are you ready? ASP.NET MVC 4 includes new mobile-friendly templates, a focus on responsive design, as well as dedicated mobile templates that leverage jQuery and jQuery mobile. Watch
Getting started with ASP.NET Web API in ASP.NET MVC 4 with Daniel Roth
The last few years have seen the rise of Web APIs – services exposed over plain HTTP rather than through a more formal service contract (like SOAP or WS*). ASP.NET Web API is the new framework that ships with ASP.NET MVC 4 for building HTTP services that can reach a broad range of clients, including browsers and mobile devices. It’s also a great platform for building RESTful services. Watch
Build high-performing HTML 5 applications easily with ASP.NET 4.5 with Howard Dierking
HTML 5 makes it easier than ever to write more expressive, compact markup. With ASP.NET 4.5 Web optimization, you can further improve the overall performance of your HTML site by taking advantage of resource bundling (combining) and minification. In this session, we’ll demonstrate Web optimization in both Web Forms and MVC projects. Watch
Edit your ASP.NET code on the fly with Page Inspector with Jorge Gabuardi Gonzalez
Debugging websites between a client and a server is difficult. Page Inspector is a new tool that brings browser diagnostics tools into Visual Studio and provides an integrated experience across the browser, ASP.NET, and source code. Using Page Inspector, you can see which elements in the source files have produced the HTML markup that is rendered to the browser. Modify CSS properties and DOM element attributes with changes reflected immediately in the browser. Watch
Developing Windows Azure Cloud Services using Visual Studio 2012 with Paul Yuknewicz, Mohit Srivastava
Looking for the best way to evolve your app to take advantage of the cloud? Visual Studio 2012 and the Windows Azure SDK for .NET provide the solution that you need to create Cloud Services while streamlining the process with modern application lifecycle tools. In this session, you will get an overview of the tools you can use to quickly build and deploy cloud services to Windows Azure. Watch
Publishing ASP.NET applications and databases to the Cloud with Visual Studio 2012 with Sayed Hashimi
Taking your ASP.NET app to the cloud has gotten even easier. While, Visual Studio 2010 included the introduction of the web publish dialog, in Visual Studio 2012 this capability has been significantly enhanced, making web publishing better than it has ever been. Learn about the latest updates for streamlining web and database publishing. Watch
Windows platform [Sept 12, 2012]
Learn about creating apps for Windows platform with Visual Studio 2012 to reach millions of potential customers.
Developing XAML apps for the Windows Store [09:02] with Tim Heuer
Take a quick tour of how simple and familiar it is to use the XAML UI framework and Visual Studio to build apps for the Windows Store. See the development experience of being able to visually design your app quickly. Learn how to leverage new Windows 8 features using new Visual Studio templates to help you get your app integrated into the new Windows experience with ease. Watch
Authoring XAML Windows Store apps in Visual Studio 2012 and Blend[09:02] with Joanna Mason
The new Windows Store apps built using the XAML UI form a key pillar in the context of modern app development. You can now leverage your XAML skills (based on experience with WPF & Silverlight) to create new Windows 8 Store client apps! Watch
Using Visual Studio 2012 to build a Windows Store app using HTML and JavaScript [12:20] with Jordan Matthiesen
Customers want rich, new experiences for work, play, and entertainment. Visual Studio 2012 and Windows 8 have the answer. Take a tour through the tools you can use in Visual Studio to design, develop, and debug Windows Store Apps. Learn how you can use your existing HTML skills to target millions of customers through the Windows App Store. Watch
Creating HTML5 apps with Blend for Visual Studio [12:14] with Erik Saltwell
The new Windows Store apps that are built using HTML5/CSS3 UI form a key pillar in the context of modern app development. You can now leverage your HTML and web apps knowledge in order to create Windows 8 Store client applications. Come learn the most productive way to create HTML5 and CSS3 user interfaces for Windows Store Apps in Windows 8 using the new HTML5 and CSS features in Blend for Visual Studio 2012. Watch
Dev tips for building the best Windows Store app with JavaScript using Visual Studio [07:45] with Jeff Fisher
This session takes you through the new tools available in Visual Studio 2012 for building Windows Store Apps with JavaScript and HTML. Whether you are an experienced web developer or new to JavaScript, you will learn how Visual Studio can help you debug your app and solve layout problems. Watch
Creating Windows Store apps using C++ and XAML with Raman Sharma, Ale Contenti
The new Windows Store apps that are built using C++ form a key pillar in the context of modern app development. This is especially important when you want to create the best quality and highest-performing apps capable of running on tablet hardware which require a long battery life and great performance on slower processors. So come see how XAML support for C++ in Visual Studio 2012 allows you to create fast and fluid Windows Store apps while taking advantage of the power and performance characteristics of C++. Watch
Creating Windows Store apps using C++ and DirectX with Jennifer Leaf
It is increasingly more common to see user interfaces for modern apps that are graphically intensive. Whether you are creating an interactive UI for a Windows Store app or a 3D game, having the right tools will make your job easier. Take a tour of the tools and technologies in Visual Studio 2012 for applications and games that depend on DirectX. Learn how to create DirectX apps, including using writing shaders, working with graphics assets, and debugging your app. Watch
Build engaging, connected Windows 8 Store apps in minutes with Windows Azure [14:09] with Josh Twist
The best apps need cloud services. Join this session to see how you can leverage Visual Studio 2012 and Windows Azure Mobile Services to add structured storage, integrated authentication, and even push notifications in literally minutes to your Windows 8 Store app. Watch
Windows Azure Mobile Services (Preview)
for the “reborn” June 2012 release of Windows Azure
Introducing Windows Azure Mobile Services: A Backend for Your Connected Client Apps [Windows Azure blog, Aug 28, 2012]
Today we’re very excited to announce the Preview Release of Windows Azure Mobile Services! Mobile Services allow you to connect your Windows 8 apps to a cloud backend hosted in Windows Azure and easily store structured data, authenticate users, and send push notifications. More importantly, Mobile Services enables you to accomplish these tasks within minutes.
Mobile Services is the perfect partner for modern mobile apps because it reduces the friction associated with repeated common tasks as well as accelerates development and deployment. We’ll provide the backend you need so that you can deliver the experience your customers want. The ease and speed of developing with Mobile Services makes it ideal for when you want to get the next great idea to market as soon as possible.
Today, Mobile Services are available for Windows 8 apps, but subsequent preview releases will extend support to iOS, Android, and Windows Phone.
To start using Mobile Services, you will need to sign up for the Windows Azure free trial, if you have not done so already. If you already have a Windows Azure account, you will need to request to enroll in this preview feature. During preview, Mobile Services are free for your first ten Windows 8 applications running on shared instances.
Creating a Mobile Service is Easy
After you have either activated your Windows Azure free trial or enrolled in the Mobile Services preview, click the +NEW button at the bottom of the navigation pane.
Select ‘Mobile Service’ and then ‘Create.’
You will then be asked to either create a new SQL database or select an existing one. During the initial preview period, Mobile Services projects can only be deployed to the US-East datacenter. For this reason, international developers should expect additional latency.
In order to manage cost and latency, make sure that new SQL databases deploy to US-East and that existing ones are moved to that datacenter. Instructions on how to move a SQL database to a new datacenter can be found here and here.
To develop Windows 8 apps with Windows Azure Mobile Services, you will need to download Visual Studio 2012 Express and the Mobile Services Managed SDK. Then, it’s as simple as following the Quick Start guide.
Additional Resources
There are several resources available if you would like to learn more before you get started building your own Windows 8 apps. Scott Guthrie’s blog post shows how easy it is to get a ‘To Do’ app up and running using Mobile Services. Also, check out this video where Scott provides an introduction of Mobile Services. The developer center contains resources to teach you how to:
Validate and authorize access to data using easy scripts that execute securely, on the server
Easily authenticate your users via Windows Live
Send toast notifications and update live tiles in just a few lines of code
Questions? Ask in the Windows Azure Forums. Feedback? Send it tomobileservices@microsoft.com.
Introducing Windows Azure Mobile Services [by Clint Edmonson from Microsoft, Aug 28, 2012]
…
Features
The preview makes it fast and easy to create cloud services for Windows 8 applications within minutes. Here are the key benefits:
Rapid development: configure a straightforward and secure backend in less than five minutes.
Create modern mobile apps: common Windows Azure plus Windows 8 scenarios that Windows Azure Mobile Services preview will support include:
– Automated Service API generation providing CRUD functionality and dynamic schematization on top of Structured Storage
– Structured Storage with powerful query support so a Windows 8 app can seamlessly connect to a Windows Azure SQL database
– Integrated Authentication so developers can configure user authentication via Windows Live
– Push Notifications to bring your Windows 8 apps to life with up to date and relevant information
Access structured data: connect to a Windows Azure SQL database for simple data management and dynamically created tables. Easy to set and manage permissions.
Pricing
One of the key things that we’ve consistently heard from developers about using Windows Azure with mobile applications is the need for a low cost and simple offer. The simplest way to describe the pricing for Windows Azure Mobile Services at preview is that it is the same as Windows Azure Websites during preview.
What’s FREE?
Run up to 10 Mobile Services for free in a multitenant environment
Free with valid Windows Azure Free Trial
– 1GB SQL Database
– Unlimited ingress
– 165MB/day egress [i.e. data transfers out of a Windows Azure datacenter (also called “bandwidth”)]What do I pay for?
Scaling up to dedicated VMs
Once Windows Azure Free Trial expires – SQL Database and egress
Note that Clint Edmonson has also the following reference architecture diagram for the platform (for the June release of Windows Azure):
See also: Introducing Windows Azure [David Chappel’s OPINARI blog, June 21, 2012]
Windows Azure has been reborn. Along with its original technologies, this cloud platform now provides IaaS (with Windows and Linux), web hosting, support for VPNs, and more. It’s by far the biggest change in Azure since its original 2008 announcement.
I’ve written a Microsoft-sponsored introduction to this new incarnation. It’s on WindowsAzure.com, but if you’d like a direct link, the paper is available here.
Introducing Windows Azure [David Chappell whitepaper v 2.0, May 30, 2012]
… Back in 2008, the very first pre-release version of Windows Azure supported only .NET development. Today, however, you can create Windows Azure applications in pretty much any language. Microsoft currently provides language-specific SDKs for .NET, Java, PHP, Node.js, and Python. There’s also a general Windows Azure SDK that provides basic support for any language, such as C++.
These SDKs help you build, deploy, and manage Windows Azure applications. They’re available either from http://www.windowsazure.com or GitHub, and they can be used with Visual Studio and Eclipse. Windows Azure also offers command line tools that developers can use with any editor or development environment, including tools for deploying applications to Windows Azure from Linux and Macintosh systems.
Along with helping you build Windows Azure applications, these SDKs also provide client libraries that help you create software running outside the cloud that uses Windows Azure services. For example, you might build an application running at a hoster that relies on Windows Azure blobs, or create a tool that deploys Windows Azure applications through the Windows Azure management interface. …
Introducing OData: Data Access for the Web, the Cloud, Mobile Devices, and More [David Chappell whitepaper, May, 2011]
… Open Data Protocol, commonly called just OData … defines an abstract data model and a protocol that let any client access information exposed by any data source. Figure 1 shows some of the most important examples of clients and data sources, illustrating where OData fits in the picture.
As the figure illustrates, OData allows mixing and matching clients and data sources. Some of the most important examples of data sources that support OData today are:
Custom applications: Rather than creating its own mechanism to expose data, an application can instead use OData. Facebook, Netflix, and eBay all expose some of their information via OData today, as do a number of custom enterprise applications. To make this easier to do, OData libraries are available that let .NET Framework and Java applications act as data sources.
Cloud storage: OData is the built-in data access protocol for tables in Microsoft’s Windows Azure, and it’s supported for access to relational data in SQL Azure as well. Using available OData libraries, it’s also possible to expose data from other cloud platforms, such as Amazon Web Services.
Content management software: For example, SharePoint 2010 and Webnodes both have built-in support for exposing information through OData.
Windows Azure Marketplace DataMarket: This cloud-based service for discovering, purchasing, and accessing commercially available datasets lets applications access those datasets through OData.
While it’s possible to access an OData data source from an ordinary browser—the protocol is based on HTTP—client applications usually rely on a client library. As Figure 1 shows, the options supported today include:
Web browsers: JavaScript code running inside any popular Web browser, such as Internet Explorer or Firefox, can access an OData data source. An OData client library is available for Silverlight applications as well, and other rich Internet applications can also act as OData clients.
Mobile phones. OData client libraries are available today for Android, iOS (the operating system used by iPhones and iPads), and Windows Phone 7.
Business intelligence tools: Microsoft Excel provides a data analysis tool called PowerPivot that has built-in support for OData. Other desktop BI tools also support OData today, such as Tableau Software’s Tableau Desktop.
Custom applications: Business logic running on servers can act as an OData client. Support is available today for code created using the .NET Framework, Java, PHP, and other technologies.
The fundamental idea is that any OData client can access any OData data source. Rather than creating unique ways to expose and access data, data sources and their clients can instead rely on the single solution that OData provides.
OData was originally created by Microsoft. Yet while several of the examples in Figure 1 use Microsoft technologies, OData isn’t a Microsoft-only technology. In fact, Microsoft has included OData under its Open Specification Promise, guaranteeing the protocol’s long-term availability for others. While much of today’s OData support is provided by Microsoft, it’s more accurate to view OData as a general purpose data access technology that can be used with many languages and many platforms.
…
and other cloud computing whitepapers from David Chappell:
– Windows Azure Execution Models
– Windows Azure Data Management and Business Analytics
– Windows Azure Networking
– Windows Azure Service Bus
– The Benefits and Risks of Cloud Platforms: A Guide for Business Leaders
– The Windows Azure Programming Model [October, 2010]
– GIS in the Cloud: The ESRI Example
– Windows HPC Server and Windows Azure: High-Performance Computing in the Cloud
– The Microsoft Private Cloud: A Technology Overview
– How SaaS Changes an ISV’s Business: A Guide for ISV Leaders [April 17, 2012]
Videos: How SaaS Changes an ISV’s Business [David Chappel’s OPINARI blog, June 19, 2012]
Some people like to read, others like to watch. If you’re interested in reading about how the move to SaaS changes an ISV’s business, the paper I wrote on the topic is available here. If you’d rather watch, though, there’s also a video series. The programs are:
- How SaaS Changes an ISV’s Business: Assessing the Shift
- How SaaS Changes an ISV’s Business: A Simple Decision Tree
- How SaaS Changes an ISV’s Business: Customers, Pricing, and Revenue
- How SaaS Changes an ISV’s Business: The Sales Process
- How SaaS Changes an ISV’s Business: The Impact of Average Selling Price
- How SaaS Changes an ISV’s Business: Marketing, Software Development, and More
You can watch them in any order, but the order listed above is likely to make the most sense.
Both these videos and the paper they’re based on were sponsored by Microsoft. They’re entirely generic, however, and so there’s no Microsoft-specific content. Instead, they’re intended to be helpful to any existing ISV who’s thinking about creating a SaaS offering.
Getting Started with Windows Azure Mobile Service [windowsazure YouTube channel, Aug 28, 2011]
Announcing Windows Azure Mobile Services [Scott Guthrie’s blog, Aug 28, 2012]
… I’m excited to announce a new capability we are adding to Windows Azure today: Windows Azure Mobile Services
Windows Azure Mobile Services makes it incredibly easy to connect a scalable cloud backend to your client and mobile applications. It allows you to easily store structured data in the cloud that can span both devices and users, integrate it with user authentication, as well as send out updates to clients via push notifications.
Today’s release enables you to add these capabilities to any Windows 8 app in literally minutes, and provides a super productive way for you to quickly build out your app ideas. We’ll also be adding support to enable these same scenarios for Windows Phone, iOS, and Android devices soon.
Read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “Todo List” app that is cloud enabled using Windows Azure Mobile Services. Or watch this video of me showing how to do it step by step.
…
Storing Data in the Cloud
Storing data in the cloud with Windows Azure Mobile Services is incredibly easy. When you create a Windows Azure Mobile Service, we automatically associate it with a SQL Database inside Windows Azure. The Windows Azure Mobile Service backend then provides built-in support for enabling remote apps to securely store and retrieve data from it (using secure REST end-points utilizing a JSON-based ODATA format) – without you having to write or deploy any custom server code. Built-in management support is provided within the Windows Azure portal for creating new tables, browsing data, setting indexes, and controlling access permissions.
This makes it incredibly easy to connect client applications to the cloud, and enables client developers who don’t have a server-code background to be productive from the very beginning. They can instead focus on building the client app experience, and leverage Windows Azure Mobile Services to provide the cloud backend services they require.
…
User Authentication and Push Notifications
Windows Azure Mobile Services also make it incredibly easy to integrate user authentication/authorization and push notifications within your applications. You can use these capabilities to enable authentication and fine grain access control permissions to the data you store in the cloud, as well as to trigger push notifications to users/devices when the data changes. Windows Azure Mobile Services supports the concept of “server scripts” (small chunks of server-side script that executes in response to actions) that make it really easy to enable these scenarios.
…
Manage and Monitor your Mobile Service
Just like with every other service in Windows Azure, you can monitor usage and metrics of your mobile service backend using the “Dashboard” tab within the Windows Azure Portal.
The dashboard tab provides a built-in monitoring view of the API calls, Bandwidth, and server CPU cycles of your Windows Azure Mobile Service. You can also use the “Logs” tab within the portal to review error messages. This makes it easy to monitor and track how your application is doing.
Scale Up as Your Business Grows
Windows Azure Mobile Services now allows every Windows Azure customer to create and run up to 10 Mobile Services in a free, shared/multi-tenant hosting environment (where your mobile backend will be one of multiple apps running on a shared set of server resources). This provides an easy way to get started on projects at no cost beyond the database you connect your Windows Azure Mobile Service to (note: each Windows Azure free trial account also includes a 1GB SQL Database that you can use with any number of apps or Windows Azure Mobile Services).
…
Summary
I’ve only scratched the surface of what you can do with Windows Azure Mobile Services – there are a lot more features to explore.
With Windows Azure Mobile Services you’ll be able to build mobile app experiences faster than ever, and enable even better user experiences – by connecting your client apps to the cloud.
Visit the Windows Azure Mobile Services development center to learn more, and build your first Windows 8 app connected with Windows Azure today. And read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “Todo List” app that is cloud enabled using Windows Azure Mobile Services.
Hope this helps,
Scott
…
Tuesday, August 28, 2012 4:14 PM by ScottGu
@Vlad/@Mark,
>>>>>> Do you plan to offer HTTP/REST API as well at some point?We are going to publish documentation for the HTTP REST APIs shortly – which will make it easy for anyone to consume them from any platform. We’ll then provide pre-built REST helper methods for Win8/iOS/Android/others for those who want to work with language libraries as opposed to raw REST ones.
Tuesday, August 28, 2012 4:16 PM by ScottGu
@FDanconia,
>>>>>> When you say “Windows 8 app”, do you mean a Metro app, or a Desktop app, or both?The language libraries we are providing today work with WinRT – so you’d use them within Windows 8 Store Apps. But the underlying features can be accessed by any app using the REST APIs (including desktop ones).
…
Tuesday, August 28, 2012 4:21 PM by ScottGu
@Michael,
>>>>>>> Just curious – why is this offering specific to SQL Azure? I would have expected out-of-the-box support for blobs (for example, json/xml documents) and/or table storage. Seems like cost-wise, it would be much cheaper/easier to scale as well.We’ve heard from a lot of people who want richer querying capabilities and indexing over large amounts of data – which SQL is very good at. The pricing tier of SQL Azure is also pretty good.
We will also support unstructured storage in the future so if you don’t need rich querying you can use that too.
Tuesday, August 28, 2012 4:24 PM by ScottGu
@Jeff,
>>>>>> I am confused. Scalability, user management, structured data – all of the features, with the arguable exception of push notifications, are useful for all types of applications. What about this is “mobile”?We support all of those capabilities with other Azure features today as well (web-sites, storage, databases, cloud services, etc). You can also build your own mobile backends today using those existing features/capabilities to power your mobile clients.
The reason we are introducing Windows Azure Mobile Services is because a lot of developers don’t have the time/skillset/inclination to have to build a custom mobile backend themselves. Instead they’d like to be able to leverage an existing solution to get started and then customize/extend further only as needed when their business grows. Azure Mobile Services makes it really easy for them to do this – while preserving the ability to easily extend it with other azure features in the future.
…
Wednesday, August 29, 2012 11:00 AM by ScottGu
@azureuser,
>>>>>> Excited about the release and have a couple of questions:
>>>>> – Do you plan to expose a management API for the Mobile Services? When?
>>>>> – What other capabilities are are you thinking of adding to the product?Yes – we plan to expose a management API (as well as command-line management support) in the future. We’ll post more details about future features as they become available.
Wednesday, August 29, 2012 11:01 AM by ScottGu
@Michael,
>>>>>>> Does Azure Mobile Services allow you to grow into more complex scenarios? For example WCF RIA Services allow you to create a more coarse grained API over your data model. Will we be able to hook into the pipeline or is it a pure CRUD proxy generator over a database?Mobile Services does allow you to plug-into the server pipeline and do pretty course grained permissions and filtering. I’d recommend looking at the server-scripts capability to learn more about this.
…
Wednesday, August 29, 2012 11:08 AM by ScottGu
@Mahesh,
>>>>>> How is it different than ASP.Net Web API? When to use which?Any guidance coming out?You can think of Windows Azure Mobile Services as providing a pre-built set of Web APIs that provide common functionality that you need to build mobile apps. The benefit of using this pre-built functionality is that you don’t need to write it yourself.
ASP.NET Web API is then what you’d use when you do want to write it yourself – or extend the built-in set of Azure Mobile Services with additional custom functionality.
The good news is that they are composeable and use the same REST/OData semantics. In fact, for the C#/XAML library we ship we use the client-side Web API library to call the Windows Azure Mobile Services REST endpoints.
…
Plans call for Windows Azure Mobile Services to soon add support for Windows Phone, Apple iOS, and Google Android devices. “It allows you to easily store structured data in the cloud that can span both devices and users, integrate it with user authentication, and send out updates to clients via push notifications.” – Scott Guthrie. Additionally as per Microsoft looks to simplify adding Azure cloud support to Windows 8 apps [ZDnet, Aug 28, 2012]:
… the new Azure Mobile Services capability is going to supersede the multiplatform mobile toolkits, a spokesperson confirmed. Here’s the official statement:
“The Windows Azure mobile toolkits [i.e. Windows Azure Toolkit for Windows Phone [Nov 29, 2011], Windows Azure Toolkit for iOS [July 16, 2012] and Windows Azure Toolkit for Android [May 23, 2012]] were the first iteration of support for the Mobile + Cloud scenario. We have incorporated the learnings and feedback from those efforts into Windows Azure Mobile Services. Future improvements will be channeled into Windows Azure Mobile Services rather than the original mobile toolkits.”
Update:
Xamarin partners with Microsoft to support Windows Azure Mobile Services on Android and iOS [Xamarin blog, Sept 20, 2012]
Our friends at Microsoft recently introduced Windows Azure Mobile Services, a cloud platform that provides a scalable backend for mobile applications. It’s an easy way to add login capabilities and remote data storage to your application without building your own backend.
We are really pleased to announce that we have partnered with Microsoft to bring Mobile Services to iOS and Android developers, enabling them to easily use Microsoft’s cloud service from a common C# code base. While we have long enjoyed a productive relationship with Microsoft, we are excited to collaborating with Microsoft at a new level and to help Windows Azure Mobile Services and Microsoft reach additional platforms.
We are making a preview of our cross-platform Azure Mobile Services client framework available today on GitHub under a permissive open source software license. The framework, which is a port of Microsoft’s own Mobile Services client library, will make it easy for developers to use Microsoft’s hosted backend in their Xamarin-powered Android and iOS applications. You can start using it today in your own projects.
Azure Mobile Services offers elastic scalability, allowing you to get the capacity that you need as the popularity of your application grows. The client framework takes advantage of your favorite C# features to simplify data storage and retrieval. For example, you can access your remote data with LINQ queries instead of crafting your own REST API calls. Instead of dealing with a schema and parsing database output, you use attributes to associate remote data fields with class properties.
The following code snippet from a simple todo list application demonstrates how to retrieve database entries that match a specific condition:
public
class
TodoItem
{
public
int
Id {
get
;
set
; }
[DataMember (Name =
"text"
)]
public
string
Text {
get
;
set
; }
[DataMember (Name =
"complete"
)]
public
bool
Complete {
get
;
set
; }
}
...
this
.table = MobileService.GetTable<TodoItem>();
this
.table.Where (ti => !ti.Complete).ToListAsync()
.ContinueWith (t => {
this
.items = t.Result; }, scheduler);
With Xamarin and Azure Mobile Services, you can write your database logic once and use it across platforms. The code above will work seamlessly across iOS, Android, and Windows.
In addition to data storage and retrieval, Azure Mobile Services also supports simple account management. It allows you to authenticate your users against their Windows Live identity, sparing you the trouble of having to build and maintain your own account system.
Mobile Services for Xamarin gives you cross-platform support for the data storage and authentication features. We welcome code contributions from the community and would love to hear about the apps you’re building that leverage Windows Azure Mobile Services.
To learn more about the framework and how you can put it to use in your own applications, check out code samples. For more information about Mobile Services, you can visit the official Windows Azure blog or dev center.
Overview of Xamarin: Build iOS and Android Apps in C# [July 24, 2012]
Explore the features that make Xamarin great for mobile app development
Native APIs, Native UIs, No Compromises
Xamarin provides complete access to each platform’s native SDK and UI controls, projecting the entire native API of each device into C#. So the apps you create are native, not write-once/run-anywhere applications that look alien on every platform. Xamarin gives you access to all of the features that make each platform unique. The result is mobile app nirvana.
Watch this video to see the power of the native APIs.
High Performance
Unlike other cross-platform frameworks, with Xamarin, your app is compiled to a native binary, not interpreted. Native compilation gives users brilliant app performance for even the most demanding scenarios like high frame rate gaming and complex data visualizations. With a small footprint (2.5 MB added to your application code), and negligible impact to app startup time, you can build apps that run faster, wherever they run.
Check out this video and our app showcase to see for yourself.
Share code between platforms
A significant portion of the functionality and development time invested in your mobile app exists in business logic, data access and network communications. With Xamarin, you can share all of code between platforms, while still delivering a device-specific, native user interface. Xamarin lets you run the same C# code on iOS and Android, as well as Windows Phone, which comes with C# built-in.
Watch this video to see an example of the same database, network and business code shared across an iOS and Android app.
Write beautiful code with C#
Write shorter, more succinct, and more maintainable code leveraging advanced language features such as Language Integrated Query (LINQ), delegates, lambdas, events, garbage collection and many other features.
Watch this video to see a side-by-side comparison of C# against Objective-C and see the advantages of the Xamarin over Java on Android.
Powerful IDE
Use Xamarin’s cross-platform IDE, MonoDevelop,
or write your code with Visual Studio.Point-and-click UI design
Xamarin leverages native layout formats for iOS and Android, and enables user interfaces to be built quickly with drag-and-drop simplicity. Xamarin integrates with Xcode’s Interface Builder, allowing you to create iOS UIs with the tools Apple provides. On Android, the Xamarin Designer is the world’s best tool for generating Android user interfaces, allowing you to target multiple screen sizes and orientations among other features.
Watch this video to see how you can generate amazing, native userinterfaces in no time.
Explore native APIs quickly with code completion
Code completion in C# gives you a huge productivity boost by enabling you to explore the giant landscape of native iOS and Android APIs while you type. Quickly find the type or method you are looking for, and discover new options without breaking your train of thought.
Watch this video to see how quick and easy it is to build appfunctionality with autocomplete.
Advanced debugger
Unlike almost any other mobile app framework, Xamarin gives you the full power of a modern debugger, in the simulator and on device. You can debug from MonoDevelop or from Visual Studio. Set breakpoints, watchpoints, single-step through code, hover over variable to see their values and take advantage of many other world-class debugging capabilities.
Watch this video to see debugging in action.
Easy app deployment
With Xamarin, you can package and distribute your apps from directly within the IDE. On iOS, we include integrated support to distribute internal appsover the air with TestFlight.
Watch this video to see these deployment options in action.
The Xamarin Advantage
Platform Extensibility
Add virtually any functionality to your apps. Your apps can incorporate libraries written in C, Objective-C, C++ or Java. Watch this video to see how the entire native ecosystem is available to in your apps.
Stay Current
Xamarin always stays up-to-date with the latest APIs from Apple and Google so you can incorporate the latest features in your apps. We are committed to fast platform updates so that you can stay focused on what you do best — building great apps!
Get Started Today
Introduction to Mobile Development [Xamarin, Aug 29, 2012]
…
Introduction to Xamarin
When considering how to build iOS and Android applications, many people think that the indigenous languages, Objective-C and Java, respectively, are the only choices. However, over the past few years, an entire new ecosystem of platforms for building mobile applications has emerged. These new solutions include Xamarin, and HTML solutions such as PhoneGap and Appcelerator, etc., just to name a couple.
Xamarin is unique in this space by offering a single language (C#), a class library, and a runtime that work across all three mobile platforms of iOS, Android, and Windows Phone (Windows Phone’s indigenous language is already C#), while still compiling native (non-interpreted) applications that are performant enough even for demanding games.
Each of these platforms has a different feature set and each varies in its ability to write native applications–that is, applications that compile down to native code and that interoperate fluently with the underlying Java subsystem. For example, some platforms only allow you to build apps in HTML and JavaScript (such as Appcelerator and PhoneGap), whereas some are very low level and only allow C/C++ code. Some platforms (such as Flash) don’t even utilize the native control toolkit.
Xamarin is unique in that it combines all of the power of the indigenous platforms and adds a number of powerful features of its own, including:
Complete Binding for the Indigenous SDKs – Xamarin contains bindings for nearly the entire underlying platform SDKs in both iOS and Android. Additionally, these bindings are strongly typed, which means that they’re easy to navigate and use, and provide robust compile-time type checking and auto completion during development. This leads to fewer runtime errors and higher quality applications.
Objective-C, Java, C, and C++ Interop – Xamarin provides facilities for directly invoking Objective-C, Java, C, and C++ libraries, giving you the power to use a wide array of 3rd party code that has already been created. This lets you take advantage of existing iOS and Android libraries written in Objective-C, Java, or C/C++. Additionally, Xamarin offers binding projects that allow you to easily bind native Objective-C and Java libraries by using a declarative syntax.
Modern Language Constructs – Xamarin applications are written in C#, a modern language that includes significant improvements over Objective-C and Java such as Dynamic Language Features, Functional Constructs such as Lambdas, LINQ, Parallel Programming features, sophisticated Generics, and more.
Amazing Base Class Library (BCL) – Xamarin applications use the .NET BCL, a massive collection of classes that have comprehensive and streamlined features such as powerful XML, Database, Serialization, IO, String, and Networking support, just to name a few. Additionally, existing C# code can be compiled for use in your applications, which provides access to thousands upon thousands of libraries that will let you do things that aren’t already covered in the BCL.
Modern Integrated Development Environment (IDE) – Xamarin uses MonoDevelop on Mac OSX, and also MonoDevelop or Visual Studio 2010 on Windows. These are both modern IDE’s that include features such as code auto completion, a sophisticated Project and Solution management system, a comprehensive project template library, integrated source control, and many other options.
Mobile Cross Platform Support – Xamarin offers sophisticated cross-platform support for the three major mobile platforms of iOS, Android, and Windows Phone. Applications can be written to share up to 90% of their code, and our Xamarin.Mobile library offers a unified API to access common resources across all three platforms. This can significantly reduce both development costs and time to market for mobile developers that target the three most popular mobile platforms.
Because of Xamarin’s powerful and comprehensive feature set, it fills a void for application developers that want to use a modern language and platform to develop cross-platform mobile applications.
Note:
This Getting Started series focuses on teaching you how to build iOS and Android applications. If you’re interested in building for Windows Phone, Microsoft offers tutorials here. If you’re interested in learning more about cross-platform development with Xamarin (including Windows Phone), you can find our guide here.
Let’s take a look at how this all works.
How Does Xamarin Work?
Xamarin offers two commercial products, Xamarin.iOS and Xamarin.Android, also known as MonoTouch and Mono for Android, respectively. They’re both built on top of Mono, an open-source version of the .NET Framework based on the published .NET ECMA standards. Mono has been around almost as long as the .NET framework itself, and runs on nearly every imaginable platform, including Linux, Unix, FreeBSD, and Mac OSX.
On iOS, Xamarin’s Ahead-of-Time (AOT) compiler compiles Xamarin.iOS applications directly to native ARM assembly code. On Android, Xamarin’s compiler compiles down to Intermediate Language (IL), which is then Just-in-Time (JIT) compiled to native assembly when the application launches.
In both cases, Xamarin applications utilize a runtime that automatically handles things such as memory allocation, garbage collection, underlying platform interoperability, etc.
MonoTouch.dll and Mono.Android.dll
Xamarin applications are built against a subset of the .NET BCL known as the Xamarin Mobile Profile. This profile has been created specifically for mobile applications and packaged in the MonoTouch.dll and Mono.Android.dll (for iOS and Android, respectively). This is much like the way Silverlight (and Moonlight) applications are built against the Silverlight/Moonlight .NET Profile. In fact, the Xamarin Mobile profile is equivalent to the Silverlight 4.0 profile with a bunch of BCL classes added back in.
For a full list of available assemblies and classes, see the MonoTouch Assembly List and the Mono for Android Assembly List.
In addition to the BCL, these .dlls include wrappers for nearly the entire iOS SDK and Android SDK. Availability of these libraries allows you to invoke the underlying SDK APIs directly from C#.
Note:
Xamarin applications are compiled against the Xamarin Mobile profile, just like Silverlight/Moonlight apps are compiled against theirs. This means that you cannot use off-the-shelf .NET assemblies without recompiling the C# source against the Xamarin Mobile profile.
Application Output
When Xamarin applications are compiled, the result is an Application Package, either an .app file in iOS, or an .apk file in Android. These files are indistinguishable from indigenous application packages and are deployable in the exact same way.
…
Building Cross Platform Applications [Xamarin documentation, July 21, 2012]
Best Practices for Developing Mobile Applications with Xamarin
…
Overview
This guide introduces the Xamarin platform and how to architect a cross-platform application to maximize code re-use and deliver a high-quality native experience on all of the main mobile platforms: iOS, Android and Windows Phone.
The approach used in this document is generally applicable to both productivity apps and game apps, however the focus is on productivity and utility (non-game applications). See the [Introduction to MonoGame document] for cross-platform game development guidance.
The phrase “write-once, run everywhere” is often used to extol the virtues of a single codebase that runs unmodified on multiple platforms. While it has the benefit of code re-use, that approach often leads to applications that have a lowest-common-denominator feature-set and a generic-looking user interface that does not fit nicely into any of the target platforms.
Xamarin is not just a “write-once, run everywhere” platform, because one of its strengths is the ability to implement native user interfaces specifically for each platform. However, with thoughtful design it’s still possible to share most of the non-user interface code and get the best of both worlds: write your data storage and business logic code once, and present native UIs on each platform. This document discusses a general architectural approach to achieve this goal.
Here is a summary of the key points for creating Xamarin cross-platform apps:
Use C# – Write your apps in C#. Existing code written in C# can be ported to iOS and Android using Xamarin very easily, and obviously used on Windows Phone.
Utilize the MVC design pattern – Develop your application’s User Interface using the Model/View/Controller pattern. Architect your application using a Model/View/Controller approach or a Model/View/ViewModel approach where there is a clear separation between the “Model” and the rest. Determine which parts of your application will be using native user interface elements of each platform (iOS, Android, Windows Phone and Windows 8/RT) and use this as a guideline to split your application into two components: “Core” and “UserInterface”.
Build native UIs – Each OS-specific application provides a different user-interface layer (implemented in C# with the assistance of native UI design tools):
1. On iOS use the MonoTouch.UIKit APIs to create native-looking applications, optionally utilizing Apple’s Interface Builder.
2. On Android, use Android. Views to create native-looking applications, taking advantage of Xamarin’s UI designer
3. On Windows Phone you will be using the XAML/Silverlight presentation layer, using Visual Studio or Blend’s UI designer
4. On Windows 8, use the Metro APIs to create a native user experience.
The amount of code re-use will depend largely on how much code is kept in the shared core and how much code is user-interface specific. The core code is anything that does not interact directly with the user, but instead provides services for parts of the application that will collect and display this information.
To increase the amount of code re-use, you can adopt cross-platform components that provide common services across all these systems such as:
• SQLite-NET for local SQL storage,
• Xamarin.Mobile for accessing device-specific capabilities including the camera, contacts and geolocation,
• Using framework features for networking, web services, IO and more.
Some of these components are implemented in the Tasky Pro and MWC 2012 case studies.
SEPARATE REUSABLE CODE INTO A CORE LIBRARY
By following the principle of separation of responsibility by layering your application architecture and then moving core functionality that is platform agnostic into a reusable core library, you can maximize code sharing across platforms, as the figure below illustrates:
CASE STUDIES
There are two case studies that accompany this document – Tasky Pro and MWC 2012. Each case study discusses the implementation of the concepts outlined in this document in a real-world example. The code is open source and available on github.
Understanding the Xamarin Mobile Platform
The Xamarin platform consists of a number of elements that allow you to develop applications for iOS and Android:
C# language – Allows you to use a familiar syntax and sophisticated features like Generics, Linq and the Parallel Task Library.
Mono .NET framework – Provides a cross-platform implementation of the extensive features in Microsoft’s .NET framework.
Compiler – Depending on the platform, produces a native app (eg. iOS) or an integrated .NET application and runtime (eg. Android). The compiler also performs many optimizations for mobile deployment such as linkingaway un-used code.
IDE tools – The MonoDevelop IDE and the Xamarin plug-in for Visual Studio allow you to create, build and deploy Xamarin projects.
In addition, because the underlying language is C# with the .NET framework, projects can be structured to share code that can also be deployed to Windows Phone.
Under the Hood
Although Xamarin allows you to write apps in C#, and share the same code across multiple platforms, the actual implementation on each system is very different.
COMPILATION
The C# source makes its way into a native app in very different ways on each platform:
iOS – C# is ahead-of-time (AOT) compiled to ARM assembly language. The .NET framework is included, with unused classes being stripped out during linking to reduce the application size. Apple does not allow runtime code generation on iOS, so some language features are not available (see MonoTouch Limitations).
Android – C# is compiled to IL and packaged with MonoVM + JIT’ing. Unused classes in the framework are stripped out during linking. The application runs side-by-side with Java/Dalvik and interacts with the native types via JNI (see Mono for Android Limitations).
Windows Phone – C# is compiled to IL and executed by the built-in runtime, and does not require Xamarin tools. Designing Windows Phone applications following Xamarin’s guidance makes it simpler to re-use the code on iOS and Android.
The linker documentation for MonoTouch and Mono for Android provides more information about this part of the compilation process.
PLATFORM SDK ACCESS
Xamarin makes the features provided by the platform-specific SDK easily accessible with familiar C# syntax:
iOS – MonoTouch exposes Apple’s CocoaTouch SDK frameworks as namespaces that you can reference from C#. For example the UIKit framework that contains all the user interface controls can be included with a simple
using MonoTouch.UIKit; statement. Android – Mono for Android exposes Google’s Android SDK as namespaces, so you can reference any part of the supported SDK with using statement, such as using Android.Views; to access the user interface controls.
Windows Phone – Windows Phone is not part of the Xamarin platform. When building apps for Windows Phone in C# the SDK is implicitly available to your application, including Silverlight/XAML controls for the user interface.
SEAMLESS INTEGRATION FOR DEVELOPERS
The beauty of Xamarin is that despite the differences under the hood, MonoTouch and Mono for Android (coupled with Microsoft’s Windows Phone SDK) offer a seamless experience for writing C# code that can be re-used across all three platforms.
Business logic, database usage, network access and other common functions can be written once and re-used on each platform, providing a foundation for platform-specific user interfaces that look and perform as a native application.
Integrated Development Environment (IDE) Availability
Xamarin development can be done in either MonoDevelop or Visual Studio. The IDE you choose will be determined by the platforms you wish to target.
Because iOS apps can only be developed on a Mac, and Windows Phone apps can only be developed on Windows, it is impossible to develop for all three platforms on the same operating system. However following the guidance in this document it is possible to reuse code across all these platforms.
The development requirements for each platform are discussed in more detail below.
IOS
Developing iOS applications requires a Mac computer, running Mac OS X.
Apple’s Xcode IDE must be installed to provide the compiler and simulator for testing. To test on a real device and submit applications for distribution you must join Apple’s Developer Program ($99 USD per year). Each time you submit or update an application it must be reviewed and approved by Apple before it is made available for customers to download.
Code is written with Xamarin’s MonoDevelop IDE and screen layouts can be edited with Apple’s Interface Builder. Refer to the MonoTouch Installation Guide for detailed instructions.
ANDROID
Android application development requires the Java and Android SDKs to be installed. These provide the compiler, emulator and other tools required for building, deployment and testing. Java, Google’s Android SDK and Xamarin’s tools can all be installed and run on the following configurations:
Mac OS X with the MonoDevelop IDE
Windows 7 or 8 with the MonoDevelop IDE
Windows 7 or 8 with Visual Studio 2010 or Visual Studio 2012
Xamarin provides a unified installer that will configure your system with the prerequisite Java, Android and Xamarin tools (including a visual designer for screen layouts). Refer to the Mono for Android Installation Guide for detailed instructions.
You can build and test applications on a real device without any license from Google, however to distribute your application through a store (such as Google Play, Amazon or Barnes & Noble) a registration fee may be payable to the operator. Google Play will publish your app instantly, while the other stores have an approval process similar to Apple’s.
WINDOWS PHONE
Windows Phone apps are built with Microsoft’s Visual Studio 2010 or 2012 toolset. They do not use Xamarin directly, however C# code can be shared with across Windows Phone, iOS and Android using Xamarin’s tools. Visit Microsoft’s App Hub to learn about the tools required for Windows Phone development.
Creating the User Interface (UI)
A key benefit of using Xamarin is that the application user interface uses native controls on each platform and is therefore indistinguishable from an application written in Objective-C or Java (for iOS and Android respectively).
When building screens in your app, you can either lay out the controls in code or create complete screens using the design tools available for each platform.
PROGRAMMATICALLY CREATE CONTROLS
Each platform allows user interface controls to be added to a screen using code. This can be very time-consuming as it can be difficult to visualize the finished design when hard-coding pixel coordinates for control positions and sizes.
Programmatically creating controls does have benefits though, particularly on iOS for building views that resize or render differently across the iPhone and iPad screen sizes.
VISUAL DESIGNER
Each platform has a different method for visually laying out screens:
iOS – MonoDevelop integrates with Apple’s Xcode Interface Builder which allows you to create individual screen layouts or storyboards that describe multiple screens. This results in .XIB or .STORYBOARD files that are included in your project.
Android – Xamarin provides an Android drag-and-drop UI designer for both MonoDevelop and Visual Studio. Android screen layouts are saved as .AXML files when using Xamarin tools.
Windows Phone – Microsoft provides a drag-and-drop UI designer in Visual Studio and Blend. The screen layouts are stored as .XAML files.
These screenshots show the visual screen designers available on each platform:
iOS:
Android:
Windows Phone:
In all cases the elements that you create visually can be referenced in your code.
USER INTERFACE CONSIDERATIONS
A key benefit of using Xamarin to built cross platform applications is that they can take advantage of native UI toolkits to present a familiar interface to the user. The UI will also perform as fast as any other native application.
Some UI metaphors work across multiple platforms (for example, all three platforms use a similar scrolling-list control) but in order for your application to ‘feel’ right the UI should take advantage of platform-specific user interface elements when appropriate. Examples of platform-specific UI metaphors include:
iOS – hierarchical navigation with soft back button, tabs on the bottom of the screen.
Android – hardware/system-software back button, action menu, tabs on the top of the screen.
Windows Phone – hardware back button, panorama layout control, live tiles.
It is recommended that you read the design guidelines relevant to the platforms you are targeting:
iOS – Apple’s Human Interface Guidelines
Android – Google’s User Interface Guidelines
Windows Phone – User Experience Design Guidelines for Windows Phone
Library and Code Re-use
The Xamarin platform allows re-use of existing C# code across all platforms as well as the integration of libraries written natively for each platform.
C# SOURCE AND LIBRARIES
Because Xamarin products use C# and the .NET framework, lots of existing source code (both open source and in-house projects) can be re-used in MonoTouch or Mono for Android projects. Often the source can simply be added to a Xamarin solution and it will work immediately. If an unsupported .NET framework feature has been used, some tweaks may be required.
…
Our mission is to produce the best software development tools in the world, and to make it fast, easy and fun to build great mobile apps.
Xamarin was founded in May 2011 and is headquartered in San Francisco, with an engineering office in Cambridge, MA.
Nat Friedman
CEO
An entrepreneur and developer, Nat is passionate about building products that delight customers, with love and attention to detail. Nat has two degrees from MIT and has been writing software for 27 years. In 1999, he co-founded Ximian with Miguel. Nat was a co-founder and chairman of the GNOME foundation. At Novell Nat ran engineering for a $110M product and served as CTO of the Linux business. Nat is an avid traveler who visited 20 countries in 2010, an active angel investor, and a private pilot.
Blog | @natfriedman
Miguel de Icaza
CTO
Miguel has directed the Mono project since its creation in 2001 and oversaw the launches of Mono’s desktop, server and mobile offerings at Novell. Before Mono he started writing free software in 1992 and co-founded the GNOME project in 1997. In 1999 Miguel co-founded Ximian with Nat. He also worked on the Midnight Commander file manager, Gnumeric, and the Linux kernel. He serves as an advisor at Stack Exchange. He has received the Free Software Foundation 1999 Free Software Award, the MIT Technology Review Innovator of the Year Award in 1999, and was named one of Time Magazine’s 100 innovators for the new century in September 2000.
Blog | @migueldeicaza
Joseph Hill
COO
Joseph has been an active participant in the Mono community since 2003, and has also been an active contributor to several open source .NET applications. As a professional developer, he has done significant work in design and implementation of .NET applications for a number of customers including Fortune 50 companies in areas such as messaging solutions, supply chain management, and others. In January 2008, Joseph joined Novell to serve as the Product Manager for Mono, ultimately driving the product development and marketing efforts to launch MonoTouch and Mono for Android.
Blog | @JosephHill
End of update
Connecting an iOS Client to Windows Azure Websites [Chris Risner YouTube channel, Sept 4, 2012]
MobileServices-iOS-Client [WindowsAzure-Samples on GitHub, Sept 6, 2012]
This is an iOS application which demonstrates how to connect to Windows Azure Mobile Services. The client has a dependency on setting up a Mobile Service in the Windows Azure portal. The application allows users to view a list of todo items, mark them as complete, and add new ones. This sample was built using XCode and the iOS Framework.
Windows Azure Mobile Services and iOS [Chris Risner from Microsoft, Aug 30, 2012]
As mentioned yesterday by me, and half the internet, Windows Azure Mobile Services has been launched. Already people have started talking about how fast and easy it is to use Mobile Services as a backend. One thing that I highlighted and that others have pointed out is that official support for iOS, Android, and Windows Phone 8 is coming. This means that if you want to download and install pre-built REST helper methods for your non-Windows 8 operating system, you’ll have to wait. However, since all of the calls to Mobile Services are being done over HTTP and are REST based, it’s pretty easy to see what each call sends over the wire. This means that we can take that information and write our own code that will run on iOS and Android and hit Mobile Services.
Today, I’ll start to show you how to do just that. In this article, we’ll walk through creating a new Mobile Service and then connecting an iOS client to it. We’ll only use some basic data capabilities provided by Mobile Services but in the coming weeks, I’ll show you how to watch the HTTP calls made by a Windows 8 app (so you can figure out what’s going across the wire) and then how to reproduce some of the more advanced things in both iOS and Android. By the end of this walkthrough, we’ll have reproduced in an iOS client, all of the capabilities of the initial Todos Windows 8 Mobile Services demo. You’ll be able to add new todos, list those todos, and mark todos complete. Let’s get started.
If you want to dive into the source code without going through the whole tutorial, you can access the source code on GitHub.
Creating a new Mobile Service
In order to create a Mobile Service, you first need to have a Windows Azure account. You can sign for a free trial here. This free trial is good for three months of access. Once you’ve done that, log into your account, and go to the Account Center. From there, access the preview features area of the site. There you’ll see a button to “try it now”.
…
The Windows 8 Client?
If you have a computer running Windows 8 as well, I would suggest following the instructions for creating “a new Windows 8 application” seen above. We’ve already created the table, but following those steps will enable you to download a Visual Studio solution that is 100% ready to run and you can see how the basic todos app runs. It’s not necessary for proceeding with the iOS client, but it means that you can already have a few todos in your database. Either way, we can proceed to the iOS client now.
Starting the iOS Client
Start up Xcode and create a new project. For this demo, we’ll just create a Single View Application. You can name your project whatever you want (I’ve named mine, “mymobileservice”). Start by going into theMainStoryboard.storyboard. You should see the default storyboard with a single view controller.
…
Conclusion
While official support for anything except Windows 8 is coming, you don’t have to wait to make use of Windows Azure Mobile Services. As seen here, the Mobile Services end points are just looking for data to come across in JSON format and only expect you to send over a single additional header (X-ZUMO-APPLICATION). Today we’ve only looked at a small piece of what you can do with data, as there is much more. I’ll tackle some of those more advanced things in the coming weeks. I’ll also go through how to inspect the HTTP traffic going across the wire from a Windows 8 app so you can see what’s going and how to call into Mobile Services. As a reminder, if you’re looking to test out Mobile Services, sign up for a free Windows Azure account here.
Connecting an Android Client to Windows Azure Websites [Chris Risner YouTube channel, Sept 4, 2012]
Mobile Services – The Android Client [WindowsAzure-Samples on GitHub, Sept 6, 2012]
This is an Android application which demonstrates how to connect to Windows Azure Mobile Services. The client has a dependency on setting up a Mobile Service in the Windows Azure portal. The application allows users to view a list of todo items, mark them as complete, and add new ones. This sample was built using Eclipse and the Android SDK.
Windows Azure Mobile Services and Android [Chris Risner from Microsoft, Aug 30, 2012]
After posting yesterday about connecting Windows Azure Mobile Services and iOS, I had to follow it up with Android! Today, I’m happy to release this walkthrough for connecting Android to Mobile Services. If you read my post from earlier this week on Mobile Services, you’d know that official support for iOS, Android, and Windows Phone 8 is coming. This means that if you want to download and install pre-built REST helper methods for your non-Windows 8 operating system, you’ll have to wait. However, since all of the calls to Mobile Services are being done over HTTP and are REST based, it’s pretty easy to see what each call sends over the wire. This means that we can take that information and write our own code that will run on Android and iOS and hit Mobile Services.
Today, I’ll continue showing you how to do just that. In this article, we’ll walk through creating a new Mobile Service and then connecting an Android client to it. We’ll only use some basic data capabilities provided by Mobile Services but in the coming weeks, I’ll show you how to watch the HTTP calls made by a Windows 8 app (so you can figure out what’s going across the wire) and then how to reproduce some of the more advanced things in both iOS and Android. By the end of this walkthrough, we’ll have reproduced in an Android client, all of the capabilities of the initial Todos Windows 8 Mobile Services demo. You’ll be able to add new todos, list those todos, and mark todos complete. Let’s get started.
If you want to dive into the source code without going through the whole tutorial, you can access the source code on GitHub.
…
More information:
-
- Windows Azure Mobile Services Dev Center[Aug 27, 2012]
- Windows Azure Mobile Services Preview Walkthrough–Part 1: Windows 8 ToDo Demo Application (C#)
- Windows Azure Mobile Services Preview Walkthrough–Part 2: Authenticating Windows 8 App Users (C#)
- Windows Azure Mobile Services Preview Walkthrough–Part 3: Pushing Notifications to Windows 8 Users (C#)
- Understanding the pipeline (and sending complex objects into Mobile Services)
- Mobile Services Reference Documentation
- (Windows) Azure Mobile Services: For Those Who Just Want To Code
- Learn about Windows Azure Mobile Services
- How I wrote and deployed a cloud powered app in just six days
- Channel 9 Video – Windows Azure Mobile Services