Will Microsoft ever get the web?
Looking for converts
Remix 08 The UK Remix conference in Brighton last week was a local echo of Mix in Las Vegas, Microsoft’s web development event. Some 500 developers and designers turned up in a tired Brighton Centre to hear Microsoft’s web story, covering products like Silverlight, ASP.NET, Internet Explorer 8, Windows Live services, and the Expression design tools.
There are anxious undercurrents. Microsoft created Mix in an attempt to prove itself as a web company and a design company, but it is not, it is the Windows company. Another snag is that Remix came on the eve of the Professional Developers Conference next month, which meant that all the interesting stuff about .NET 4, Oslo modelling, and Windows 7 was kept under wraps.
It was still worth attending, thanks to the appearance of key figures like Principal Researcher Bill Buxton, who gave an energetic keynote proclaiming his love for Apple, Google, and the Nintendo Wii, and prophesying doom if developers do not get the design habit. He has only been with Microsoft two years and sounds refreshingly free of indoctrination.
Corporate VP Scott Guthrie gave an engaging hands-on demo of ASP.NET Model-View-Controller, a new technology now in preview, explaining its advantages for unit testing, cleaner URLs, and staying closer to HTTP model. ASP.NET MVC looks good, but it is interesting how the initial appeal of ASP.NET - that it makes Web programming more like Windows programming - has now become something of a liability.
Program Manager Mike Flasko presented ASP.NET Data Services, which exposes a REST API to Microsoft’s database platform. This is great. But Microsoft’s ever-growing range of database APIs is getting confusing again, after some welcome stability in ADO.NET.
The problem is not so much the Data Services, but what lies underneath it, which is primarily intended to be a new object-relational layer called the Entity Framework (though other data sources can be used via plug-ins). So what is happening to LINQ to SQL, which was last year’s ORM layer from Microsoft. "LINQ to SQL is still being developed, but Entity Framework is the big bet," said Program Manager Elisa Flasko at the developer’s panel.
There were some snippets of Silverlight news, or perhaps clarifications. Guthrie said the plug-in is getting 1.5 million installations a day, and that these will upgrade automatically to version 2.0, the .NET version, when it is released later this year. Unlike the beta, Silverlight 2.0 will have proper accessibility support, but H.264 capability will not appear until a future version. Guthrie also hinted that a 3D API is under development. Further controls, such as a Rich Text Editor, will be delivered as add-ons within the lifetime of version 2.0.
All of this sounds developer-oriented, and that is both Microsoft’s strength and its problem. Its work with Silverlight and ASP.NET will be well received by organizations already on Microsoft’s platform (of which there are plenty), but there is little evidence of converts from other Web platforms, or that its design tools can compete with the best from Adobe. Still, Microsoft does have Photosynth, which creates 3D images from 2D snaps. It was on display at Remix and looking truly impressive. Overall: mixed. ®
Hmm will MS ever get the web?
Sharing information. Tightening up the holes (instead of just putting a band-aid over them). The things they don't do, in other words; which make the web work.
The Big Bet
M$ is betting with your time and your sweat and your money.
Sweet deal for them.
If you don't want a bumpy ride, quit reinventing the wheel.
@No, they don't get it., @And people develop with this
Microsoft insist on things that boil down to inserts selects and deletes, because that's what the back end is. I don't see the Ado.Net for entities to be a competing framework with Linq, it just solves a different problem.
In fact Data model architecture, despite being rubbished by people who think everything's an object referenced by and only by it's id, because they can only program in one language (usually c# or Java,) is in fact usually much faster than it's Domain model architecture equivalent. Data model architectures provide the ability to do _everything_ that object relational domain model architectures can do, but have the additional quality of a structure to the data.
I recently had an email from a mate describing how a load of "I've read software design in a Sun guide to selling more hardware design book, object relational types" came in and insisted pulling a basket full of skus from a database, and then checking the stock count via stored procedure for each is faster than simply returning the offending stock levels with the basket. How ridiculous. It was 30% easier for the DB to just give them the answer than to give them the data to work it out.
That said, the problem with the eponymous hibernate is not just the technology itself, but it's use encouraging the lazy into the failure to have balanced tiers, but when all you have is a hammer what can you expect?
Anyway, I foresee SQL Server's and Oracle's future generations to be genuine object stores, with tables migrating to lists, and Fields being objects themselves whose member variables become statically typed or strongly typed reference objects (FK); and the next versions of SQL to be more like Linq than anything else. Should scare the wits out of the Adabas crowd having a database that is truly object-hierarchic-relational.
Linq is a superset of SQL, and it's power is not in simply using it to parse objects. It's power is in two parts, its high level nature, and its fundamental distributed mechanism.
int thingsToDoCount =
(from r in myDiskFile
from row in myDatabaseTable where r.name == row.name
from tb in mySelectionBox.SelectedItems where tb.vale == r.name
from l in myInMemoryList where l.lastModifiedTime < row.Changed
from c in crm.Account where c.AccountType = "Business Account"
where c.name = r.name
Hardly rocket science to see why this will have less errors in it (and probably be faster for the average programmer) than the equivalent 200 lines of code in 3gl is it?
My view is that we should be coding in the highest level language that is scalable. Though I recognise there's a load of people out there who like programming for programming's sake, and don't really care about completer finishers, or performance.
It used to be that all those guys did c, because they loved its side effects. These days they all seem to be writing hibernate apps (before delivery - and leaving very before the second delayed delivery date) with the assumption that hibernate can handle multi million object aggregated transactions as well as a system designed predominantly for nothing else.
I remember when everyone thought XML was epic, it should be used for everything. Then people started realising that it took more time to unpack a 25 million element xml document than to rewrite the code.