Category Archives: .net

Microsoft’s cloud platform, multi-touch Windows 7: mining the PDC schedule

I’ve been looking at the PDC Session schedule, as posted so far. Microsoft is serious about its new cloud computing platform. For a start, count the sessions.

Out of 180 posted so far, here are the subjects with 10 or more sessions:

  1. Cloud services [33]
  2. Windows 7 [22]
  3. SQL Server [16]
  4. Visual Studio [16]
  5. Silverlight [13]
  6. Live Platform [11]
  7. ASP.NET [10]
  8. Languages [10]

That’s a huge focus on the cloud. Microsoft’s problem: the company is not perceived as a leader in cloud computing. It has two distinct challenges: first, getting the technology in place, and second, winning developers to its new platform. In mitigation, it is in theory well placed to migrate users from on-premise Windows and Office to cloud equivalents.

Here’s a few snippets about Microsoft’s cloud platform:

A lap around Cloud Services: … Learn about the pillars of the platform, its service lifecycle, and see how they fit with both Microsoft and non-Microsoft technologies. Also, hear about the services roadmap over the next few years.

Cloud Computing: Economics and Service Level Agreements: … Topics include the pricing model for the cloud computing platform, how to monetize a service, and how to reduce the total cost of ownership.

Connecting Active Directory to Microsoft Cloud Services: … Manage and secure end user access to cloud services using your existing investment in Active Directory. Enable end users to access cloud services through existing Active Directory accounts, the same way they access your intranet-hosted software today. Hear how to enable existing software to use new service capabilities without re-writes, and do it all through the use of open and standard protocols.

That last item is a big deal. Managing separate user identities for local and cloud services is horrible.

What else can we glean from the PDC schedule. Here’s a few items that intrigued me:

Windows 7: Web Services in Native Code … Windows 7 introduces a new networking API with support for building SOAP based web services in native code.

Windows 7: Developing Multi-touch Applications … This session highlights the new multi-touch gesture APIs and explains how you can leverage them in your applications.

Oomph: A Microformat Toolkit … a toolkit from the MIX Online Team, that is aimed at web developers and designers to make it easier to create, consume, and style Microformats on the web. See also here.

Concurrent programming: Microsoft Visual Studio: Bringing out the Best in Multicore Systems … demonstrations of the parallel performance analysis and optimization tools in the next release of Microsoft Visual Studio. .

Oslo of course: A Lap around "Oslo" … “Oslo" is the family of new technologies that enable data-driven development and execution of services and applications. Come and learn how to capture all aspects of an application schematized in the "Oslo" repository and use "Oslo" directly to drive the execution of deployed applications.

Generics and constructors in XAML: Microsoft .NET Framework: Declarative Programming Using XAML … Learn about XAML additions like: support for generics, object references, non-default constructors, and more.

Instant cloud apps: Research: BAM, AjaxScope, and Doloto … Hear how BAM can turn a simple specification into a web-based cloud application with the click of a button. Learn how AjaxScope and Doloto automatically instrument and rewrite your web applications’ JavaScript code for end-to-end monitoring and optimization.

Office, a big feature of PDC 2005 when the ribbon was introduced, only has 3 sessions posted so far, though there may be more to come. Normally a new version of Office accompanies each new version of the Windows client.

Another question: what is in .NET Framework 4.0, to merit a full new version number? There is surprisingly little mention of it so far.

Microsoft’s open source breakthrough

Microsoft’s integration of jQuery and Visual Studio/ASP.NET is significant and I wrote about it on the ITJobBlog. I’ve included some comments from Scott Guthrie about ASP.Net AJAX vs jQuery.

Miguel de Icaza, who works on open source versions of .NET, also says it is a “first time for Microsoft”.

Rick Strahl, who is an ASP.NET MVP and writes an excellent technical blog, says in a comment to Guthrie’s original post:

To me jQuery has easily  the most game changing component in Web Development since ASP.NET originally was released.

It is a breakthrough; but note that it comes from the developer division, which is more inclined towards open source than other divisions running Windows and Office.

Microsoft’s design crisis: Interview from Remix Brighton

The Reg has posted my interview with Bill Buxton, in which he talks about the challenge of getting Microsoft to put design at the core of its products. It has a great quote where Ballmer apparently told the company conference “Change or we die”. Can Microsoft change? That’s the big question; and one commenter has already given his opinion. I have more to say on this issue; but for now do read the interview; I find it a fascinating topic.

Technorati tags: , , ,

A few notes on ASP.NET MVC

Here at Remix in Brighton Scott Guthrie is presenting on ASP.NET MVC (Model View Controller). This is an alternative to web forms, the classic ASP.NET programming model.

What is ASP.NET MVC better for? Here are the things that Guthrie highlights:

  • Clean code separation presentation/logic
  • Clean URLS, SEO and REST friendly. For example, URLS like: yoursite.com/products/beverages
  • Better for unit testing. Ability to test model, view, controller separately. Guthrie demos some tests; all the main .NET test frameworks are supported inlcuding Nunit as well as Team System.
  • Closer to the HTTP/HTML model. For example, you don’t handle a button click event on the server as web forms allow; rather, you handle a form submission.

ASP.NET Preview 5 is available now; beta soon; full release by the end of the year (That timing strikes me as tight).

I think this will prove popular among ASP.NET developers.

Silverlight: 1.5 million installations per day, says Microsoft

Scott Guthrie, Corporate VP Developer Division at Microsoft, spoke at Remix in Brighton about Silverlight deployment. He says there are around 1.5 million installations per day, and that version 1.0 will auto-update to version 2.0 when it is released, which he says is “shortly”.

Wide deployment is critical for Silverlight, though a limitation of version 2.0 (the one with the .NET runtime included) is that it does not work on PowerPC Macs.

Guthrie also mentioned Internet Explorer 8, which he says will ship “towards the end of the year”.

Microsoft Remix in the UK

I’m in sunny Brighton (honest) for Microsoft’s Remix conference, which is loosely intended as a local version of the Mix event held in Las Vegas earlier this year. A contrast after Google Developer Day earlier this week. Corporate VP Scott Guthrie, who is in charge of the .NET Developer Division, is giving the keynote along with Bill Buxton, Principal Researcher. More news as it happens. Got any questions for Scott Guthrie? If so, comment here or email and I’ll try to slip them in.

Technorati tags: , ,

Parts of EcmaScript 4 deemed unsound for the Web

This was the conclusion of an EcmaScript meeting in Oslo last month. Specifically, as Brendan Eich explains, three features – packages, namespaces and early binding – were considered too heavyweight unsuitable for a browser scripting language. Here is Eich’s “Executive summary”:

The committee has resolved in favor of these tasks and conclusions:

1. Focus work on ES3.1 with full collaboration of all parties, and target two interoperable implementations by early next year.

2. Collaborate on the next step beyond ES3.1, which will include syntactic extensions but which will be more modest than ES4 in both semantic and syntactic innovation.

3. Some ES4 proposals have been deemed unsound for the Web, and are off the table for good: packages, namespaces and early binding. This conclusion is key to Harmony.

4. Other goals and ideas from ES4 are being rephrased to keep consensus in the committee; these include a notion of classes based on existing ES3 concepts combined with proposed ES3.1 extensions.

This means that the evolution of JavaScript is now on a new path, focused for now on a more modest enhancement to the language called EcmaScript 3.1.

Given how loudly Eich protested about EcmaScript 3.1 last October, it is a surprising turn of events. Was Eich convinced by the arguments of Microsoft and Yahoo in support of a more lightweight JavaScript?

What this means is that JavaScript 2.0 won’t happen as previously envisaged. John Resig:

… you can forget a lot of what you learned about ECMAScript 4, previously. Many of the complicated concepts contained in the language have been tossed. Instead there is a considerable amount of effort going in to making sure that new features will be easily duplicable through other means.

Eich and Resig are keen to stress that JavaScript will still be a highly capable language. Still, the obvious conclusion is that this will be good for plug-ins which support more powerful languages: Adobe Flash, Microsoft Silverlight, Sun Java or Java/FX. Personally I’m disappointed.

It is also presenting Adobe with a tricky problem, as it implemented much of an earlier specification for EcmaScript 4 in ActionScript 3. Rather than being a standard language, as Adobe had planned, it looks like this will now be more of an Adobe language. I doubt this will have much practical impact on developers.

PS Brendan Eich has commented below.

What’s new in Delphi 2009

Today I viewed David Intersimone’s Live Webinar on what’s new in Delphi 2009, code-named Tiburon.

This is a Win32-only release. I think you will want it (if you use Delphi), if only for the new language-level features: generics, anonymous methods, and unicode strings. I grabbed a few screens from the presentation. Generics:

Unicode – here’s the TEncoding class:

and Unicode in action:

There are also some new components, such as a neat collapsible panel called TCategoryPanelGroup, TBalloonHints, and Office-2007 style ribbon controls.

The ribbon controls interested me because I am wary of Microsoft’s Office ribbon patent. CodeGear/Embarcadero seems to be wrapping Microsoft’s controls*, as used by the CMFCRibbon* classes, which as I understand it are not the actual controls used in Office 2007 but share their look and feel. You therefore have to agree to Microsoft’s license for the Fluent UI in order to use the controls.

There are also major changes to the DataSnap middleware but DavidI didn’t go into this much in the presentation.

During the Q&A at the end there were the inevitable questions: what about 64-bit (coming in a later version); what about Mac/Linux (nothing to announce); what about the dreadful online help (errrmmm we’re working on it); what about .NET (coming in a later version). Some of the language changes seem to be making ready for .NET 2.0 compatibility.

No announced release date; but the roadmap shows this as a 2008 release; and if it’s being webinared now that suggests it won’t be too long a wait.

Delphi is still absolutely my favourite Win32 development tool and this should be a strong release. At the same time, it is all rather old-school: win32, native code, fat client. You can do web applications in Delphi, and there is an updated “VCL for the Web” in this release, but why would you?

Nevertheless, if there are any Delphi developers still hanging on to Delphi 7 (the last version with the old IDE), perhaps these important language changes along with what is now a mature new-generation IDE will be sufficient to persuade them to migrate.

*Update: Although DavidI said that Delphi’s ribbon controls wrap Microsoft controls, Nick Hodges says here that this is not the case. He is probably right as I’m not sure what controls Delphi could wrap. If the MFC team could not use the actual Office controls, but had to create its own implementation, then I should think a third party would be in the same position. I wondered if the VCL was actually using the MFC code but I doubt that would be straightforward either. This may be a confusion caused by the licensing requirement.

Is Silverlight evil?

That’s really the question John Markoff is asking in this New York Times piece about the way the NBC Olympics streaming video is putting Microsoft’s browser plug-in on the map. Someone has even popped up to state that this is another go at technology monopoly:

“They’re still playing the same games,” said Michael R. Nelson, professor of Internet studies at Georgetown University. “It’s a way to lock up the content, and it’s not enabling as much innovation as we would like to see.”

It seems to me that Microsoft cannot win here. If the NBC servers were stuttering then it would prove that Silverlight isn’t up to the job and can’t compete. If Microsoft were not doing Silverlight, it would confirm that the company doesn’t grok the Internet and is still stuck in the world of Windows and Office.

As it is, the NBC Olympics streaming video seems to be working pretty well, judging by reports like this from CNET:

The picture quality is quite spectacular. The mist is so real it could not possibly have been photoshopped in there by the Chinese authorities to provide some extra menacing ambience. This makes YouTube seem like student video.

From a PR perspective, accusations of being evil is probably the best Microsoft can hope for.

But is Silverlight evil? I spoke to Dean Hachamovitch, the IE general manager, at the Mix conference in the Spring. My impression was that Microsoft has back-pedaled on improving browser-hosted JavaScript because it would rather see developers target Silverlight. There is some substance to the idea that Microsoft is promoting its own technology at the expense of open standards.

Still, without Silverlight would we all be using the OGG Theora format and the HTML 5 Video tag? In reality, the alternative is Adobe Flash; and the competition is if anything energising Adobe, which is not a bad thing.

Even if Silverlight achieves its aims, and becomes a widely used cross-platform runtime for web applications, I doubt we will see anything similar to the Windows/Office dominance of the nineties. Microsoft’s investment in Silverlight is conceding the point: that the future belongs to cross-platform clients, zero deployment, and both data and applications in the cloud.

According to Markoff’s piece, Adobe’s Kevin Lynch questions Microsoft’s cross-platform commitment, mentioning:

Microsoft’s decision to reserve certain features like 3-D effects and downloading for the company’s Windows Vista operating system.

I think this is a reference to the full WPF (Windows Presentation Foundation), which only runs on Vista and XP. I’m not sure what the “downloading” bit means; but Lynch is right, in that the relationship between WPF and Silverlight must be a subject of intense debate within Microsoft. Cross-platform .NET is a huge step to take, and there must be internal voices questioning why on earth the company is helping its customers to deploy applications that are not tied to the Windows client.

Still, I think that bridge has now been crossed. Nobody wants to build Internet applications that only work on Windows; it isn’t an option. Therefore I doubt that Microsoft will hobble Silverlight in order to promote WPF; doing so would only help competitors. I may be proved wrong; it’s smart of Lynch to draw attention to Microsoft’s conflicted interests.

Silverlight is great work, and only a little bit evil.

Microsoft Silverlight: 10 reasons to love it, 10 reasons to hate it

A year or so a go I wrote a post called Adobe AIR: 10 reasons to love it, 10 reasons to hate it. Here’s the same kind of list for Microsoft’s Silverlight, based on the forthcoming Silverlight 2.0 rather than the current version. The items are not in any kind of order; they also reflect my interest in application development rather than design. It is not a definitive list, so there are many more points you could make – by all means comment – and it will be interesting to have another look a year from now when the real thing has been out for a while.

This Silverlight developer chart is available in full on Brad Abrams’ blog here, or in Joe Stegman’s Deep Zoom version here.

The pros…

1. The Silverlight plug-in means developers can target a single, consistent runtime for browser-based applications, rather than dealing with the complexity of multiple browsers in different versions. You also get video and multimedia effects that are hard or impossible with pure HTML and JavaScript; though Adobe’s Flash has the same advantages.

2. Execute .NET code without deploying the .NET runtime. Of course, the Silverlight plug-in does include a cut-down .NET runtime, but instead of dealing with a large download and the complexities of the Windows installer, the user has a small download of about 4MB, all handled within the browser. In my experience so far, installation is smooth and easy.

3. Performance is promising. Silverlight comes out well in this prime number calculator, thanks no doubt to JIT compilation to native code, though it may not compare so well for rendering graphics.

4. Support for Mono (Moonlight) means there will be an official open source implementation of Silverlight, mitigating the proprietary aspect.

5. Silverlight interprets XAML directly, whereas Adobe’s XML GUI language, MXML, gets converted to SWF at compile time. In fact, XAML pages are included as resources in the compiled .XAP binary used for deploying Silverlight applications. A .XAP file is just a ZIP with a different extension. This also means that search engines can potentially index text within a Silverlight application, just as they can with Flash.

6. Third-party component vendors are already well on with Silverlight add-ons. For example, Infragistics, ComponentOne and DevExpress.

7. Take your .NET code cross-platform. With Macs popping up everywhere, the ability to migrate VB or C# code to a cross-platform, browser-based Silverlight client will be increasingly useful. Clearly this only applies to existing .NET developers: I guess this is the main market for Silverlight, but it is a large one. The same applies to the next point:

8. Uses Visual Studio. Microsoft’s IDE is a mature and well-liked development environment; and since it is also the tool for ASP.NET, you can use it for server-side code as well as for the Silverlight client. For those who don’t get on with Visual Studio, the Silverlight SDK also supports command-line compilation.

9. Choose your language. Support for multiple languages has been part of .NET since its beginning, and having the .NET runtime in Silverlight 2.0 means you can code your client-side logic in C#, Visual Basic, or thanks to the DLR (Dynamic Language Runtime) Iron Ruby or Iron Python.

10. Isolated storage gives Silverlight applications local file access, but only in a protected location specific to the application, providing a relatively secure way to get this benefit.

The cons…

1. If Apple won’t even allow Flash on the iPhone, what chance is there for Silverlight?

2. Silverlight is late to the game. Flash is mature, well trusted and ubiquitous; Silverlight only comes out of beta in the Autumn (we hope) in the version we care about – the one that includes the .NET runtime – and will still lack support on mobile devices, even Windows Mobile, though this is promised at some unspecified later date.

3. The design tools are Expression Blend and Expression Design – but who uses them? The design world uses Adobe PhotoShop.

4. While having solution compatibility between Expression Blend and Visual Studio sounds good, it’s actually a hassle having to use two separate tools, especially when there are niggling incompatibilities, as in the current beta.

5. No support for the popular H.264 video codec. Instead hi-def video for Silverlight must be in VC-1, which is less common.

6. It’s another effort to promote proprietary technology rather than open standards.

7. Yes Linux will be supported via Moonlight, but when? It seems likely that the Linux implementation will always lag behind the Windows and Mac releases.

8. Silverlight supports SOAP web services, or REST provided you don’t use PUT or DELETE, but doesn’t have an optimized binary protocol like Adobe’s AMF (ActionScript Message Format), which likely means slower performance in some scenarios.

9. Silverlight is a browser-only solution, whereas Flash can be deployed for the desktop using AIR (Adobe Integrated Runtime). Having said that, yes I have seen this.

10. You have to develop on Windows. This is particularly a problem for the Expression design tools, since designers have a disproportionately high number of Macs.