Category Archives: web authoring

CodeRage II: Windows only, login problems

I was surprised to learn that CodeGear’s online conference is apparently closed to Mac users, or anyone not on Windows:

coderage_mac

That’s odd, since the company has Java and Ruby development products that run cross-platform.

Further, even Windows users have had problems logging in. The conferencing software CodeGear is using is limited to 1500 attendees per session, but thanks to a glitch sessions were reported full even when they were not. A message posted to the borland newgroup explains:

It turns out the problem was that only the first 1500 people who registered for CodeRage were successfully registered to attend all of the InterWise events because of a 1500 person limitation for iSeminar events. Unfortunately, this meant that 1500 attendance spots were reserved for those 1500 email addresses even though less than that we’re actually attending. Long story short, I’ve removed all IW registrations from individual events so anyone should be able to get in.  You shouldn’t see anymore “Exceeded max number of participants” error messages unless we really hit 1500 people for any given session.

I had problems myself – I am not sure if it was this limitation, or just the Interwise conferencing software which, like so much out there, appears to be uncomfortable with Windows Vista/UAC and presented a variety of error messages. I didn’t record all the details, but I was constantly being told I had cancelled the setup when I had done no such thing.

Hmmm, I seem to recall technical problems with previous Borland/CodeGear online events as well. Surely it’s time the company got these things right?

Technorati tags: , ,

Microsoft vs Mozilla Javascript wars

My comment is here.

Note this debate is not only about the merits of different versions of Javascript/ECMAScript. It is also about power and responsibility. However you spin it, and however far Adobe and/or Microsoft succeed with Flash/Silverlight/AIR, I think we can agree that the browser has an important role for the foreseeable future. It is also likely (though less certain, I guess) that Internet Explorer will continue to have a large market share. The company does have a responsibility not to hold back the Web, and that surely includes not obstructing the evolution of a high-performance Javascript runtime.

It is disappointing that Microsoft says so little about IE8, presuming it exists. If the company sticks by its undertaking to leave no more than two years between IE releases, we should expect it no later than October 2008, less than one year away. It would help web developers to know more about what will be in it.

REST vs WS*

The REST vs WS* wars get ever more interesting, with Dare Obasanjo from the Windows Live team announcing (or confirming) his conversion to RESTful ways, and Project Astoria demonstrating that Microsoft is now building REST services into ASP.NET and ADO.NET (see here for further comment).

Microsoft is still committed to WS*, but equally seems to recognize that much of the world wants to do REST. I’m glad that pragmatism is winning over dogged determination to stand by technology choices.

Technorati tags: , ,

Tech Ed reflections

Tech Ed Barcelona has been a low-key affair in some ways, with little in the way of exciting news; yet I was impressed with several pieces of technology which I had not looked at closely before.

I found it curious that the keynote made so little of these. In particular, I’m thinking about Silverlight 1.1, SQL Server 2008, and Project Astoria (also known as ADO.NET Data Services).

SQL Sever 2008 is a big release, though it is easy to get confused over what is part of SQL Server, and what is part of ADO.NET. I will be posting more on this subject, following my interview today with Michael Rys, Principal Program Manager of SQL Server Engine, Relational and XML (don’t try to say that quickly). One of the points of interest for those who follow Microsoft technology is the new FILESTREAM data type – in fact it is not strictly a data type, but another way to store blobs. This is a way to store unstructured data under SQL Server control, giving you the benefits of transactions, SQL Server security, backup, etc, but with the performance of the file system. In fact, each blob is stored as an individual file though you are not expected to find it using Windows Explorer. Using the SQL Server API you can get a WIn32 file handle to the blob, and there are no size limits other than those which the file system imposes. Result: faster access to the data.

Another piece of the puzzle is that full-text indexing is now fully integrated into the SQL Server engine. Right, so now we have indexed, queryable, high performance access to data in a transactional file system. Remind you of WinFS?

This will also give Sharepoint a significant performance boost in some future release, and Sharepoint is of strategic importance for Microsoft.

I’m also interested in Project Astoria, an easy to use a REST API into your database. This makes huge sense in the context of AJAX and Silverlight, and if you want to do mashups with other web services. I got the impression that Microsoft is being deliberately low key about this, pending an announcement at some future date. My guess is that it will be released at the same time as SQL Server 2008 – June next year? – but it is only a guess.

I fear much of this passed by many of the Tech Ed delegates. Talking to them at the party last night, I found that several were in the early stages of moving from .NET 1.1 to .NET 2.0. There is a substantial time lag between release and real-world adoption.

Plane about to leave so I’ll wrap up here. I do have more to post from Tech Ed, so check back soon.

Project Astoria a hit at TechEd

There is a buzz here at TechEd about Project Astoria. The reason is that it promises to simplify development of web applications that deal with data, which is most of them. Astoria is a REST API for ADO.NET, and hooks into the new Entity Framework object-relational mapping layer. Therefore, it solves two problems in one go.

Here’s a quick look at how it works. Let’s assume that you have a database which stores some information you want to present in your web application. Step one is to use Visual Studio to generate an Entity Data Model from your database.

Next, you tweak the model so that it looks as close as possible to the objects you are storing. The framework should deal with the complexities of mapping collections to linked tables and so on.

Now you create a new ADO.NET Data Service (sadly, this may well be the official name for Astoria), and point the service at your model. By default a new service does not expose any data, for security reasons, but by writing an InitializeService method you can configure which objects you want to publish.

Run the service, and the objects in your model are now URL-addressable. It’s pretty flexible. For example:

[serviceurl]/Products : return all the products (yes, you can do paging).

[serviceurl]/Products[2]: return the product with an ID of 2.

[serviceurl]/Products[Color eq ‘Blue’]: return all the blue products.

[serviceurl]/Customers[2]/Orders/:return all the orders for the customer with an ID of 2.

The data comes back in either ATOM or JSON format. Naturally, each element in the returned data includes its URL. Let’s say you have an AJAX application so you are calling this service from JavaScript. Iterating through the results and populating an HTML list or table is easy, especially as Astoria includes a client JavaScript library. There is also a client library for .NET applications. You can also add or update data with HTTP PUT, or remove it with DELETE.

You can extend your Astoria API by adding arbitrary methods that have the [WebGet] (or presumably [WebPut] or [WebDelete]) attribute. You can also add “interceptors” – code that gets called just before requests are executed, to enable validation or custom security.

Presuming it works as advertised, Astoria is a more natural and concise way to handle data than SOAP web services, and easier than devising your own techniques. It should work well with other technologies such as Adobe’s Flex. It will play nicely with mash-ups, since many other services out there use ATOM or JSON. it is a natural fit with AJAX and will work well with Silverlight – see http://www.silverlightdata.com [Silverlight 1.1 Alpha required] for an example.

Astoria will not be finished in time for the initial release of Visual Studio 2008, though reading between the lines it might be done in time for SQL Server 2008. It will work with any database server for which there is an Entity Framework provider. I was assured that creating such a provider is relatively easy, if you already have an ADO.NET 2.0 provider, so it is reasonable to expect wide support.

I think this will be popular.

Technorati tags: , , , , ,

How ASP.NET began in Java, and the truth about Project Cool

A bit of nostalgia for you. Cast your minds back to 1999 or thereabouts. Microsoft is finishing off IIS 4.0 and there is no such thing as C# or ASP.NET. However, there are rumours that Microsoft is creating a Java-like platform codenamed “Cool”, in the aftermath of a dispute with Sun that was making it impossible to use Java itself. Microsoft denies the rumours. Here’s a report from February 1999:

There is no Java-like language under development at Microsoft, said Michael Risse,  Microsoft’s product manager for application development tools. Risse said the company is talking to developers about a concept called Cool, a much less ambitious project intended to tie Microsoft’s Visual C++ development tool more closely to its COM+ middleware. However, Cool is not yet in development, and is unrelated to Java, said Risse. He said Cool is strictly a “whiteboard” concept, and that no software code connected to the concept has been written at Microsoft. Cool is also unrelated to any Java technology within the company, Risse stated. “There’s no connection between Cool and Visual J++, and the Java lawsuit is irrelevant to the thinking we are doing [with Cool],” he said.

Even after C# was announced in 2000, Microsoft denied that it had anything to do with Cool:

Yesterday, Microsoft executives denied that C# was related to the rumored Cool project.

Now, over to Mark Anders, co-inventor of ASP.NET, whom I interviewed earlier this month at Adobe Max Europe. I asked Anders how ASP.NET came about.

Anders: “ASP.NET happened after we shipped IIS 4.0 and everyone went on vacation. Scott Guthrie and I – Scott worked for me at the time, he was 22 years old, straight out of college – and we took advantage of the time everyone was on vacation to start brainstorming new ideas. We looked at ASP and how it was being used. I had worked on Visual InterDev so I had a lot of friends on that team, and we were looking at the new version, I think it was Visual InterDev 6.0, and we noticed how messy the code was. We said, how can we do better? Scott and I worked for a month and a half, and then when everybody came back from vacation in January we showed them a prototype and a PowerPoint deck, showed them this vision, and people said, ‘keep working on it’.”

I asked whether the prototype was based on .NET from the beginning, or “Project Cool” as the rumour went?

Anders: “No, it was not. The original prototype was written in Java. I loved Java as a language and Scott did too. So it was done in Java, and we took that around to lots of different groups. The first group that we took it to was the tools team. The VB and the InterDev teams were in a feud, and when they saw our demo they liked it. They said, ‘If you build that, we will target it with our tools.’

“The VB team was working on developing a new runtime, what became the Common Language Runtime. It was not as complicated as COM, and it had a nice object system, it was garbage collected. So we made a decision that we would write our thing, which at the time was called XSP, in this new runtime. So we were the first ones to commit to writing anything on it. The VB team was going to be using it as their runtime, they were doing their forms, but we actually built the whole thing in .NET.

“The funny thing is, you mention Cool. It was called Cool at one time, but Microsoft denied it. Scott and I presented what was then called ASP Plus, but we presented it a long time before anybody talked about .NET. We went to a conference, I think it was in Washington DC or something, and Scott and I were up on stage. He is doing this demo, and he says, ‘Here is a directory listing’. And I glance up at the screen, and I see file1.cool, all these .cool files, and we’re busy denying that there is anything called Cool, and he has this directory listing. So I was worried that somebody would see that and put two and two together… but nobody picked up on it. They had asked if they could videotape me to re-broadcast, and I’d said fine, but when I realized that the Cool screenshot was shown, I contacted them and said, ‘I can’t let you have that videotape’, and they sent it back. So it never leaked.”

All these efforts did not prevent The Register posting a story in September 2000 which describes how a reader working with early C# samples:

…discovered that the original C# compiler was called coolc, subsequently renamed as csc.exec. Elsewhere, sample C# code has the HTML tag <script language=’COOL’ runat=’server’>, and Larry notes a couple of references to the string “C\temp\fact\factorial.cool”.

So why did Microsoft deny it? I’m guessing, but maybe the company felt that ‘Project Cool’ was related to Java in people’s minds, and wanted to emphasize that .NET was 100% Java-free. Any resemblance is purely coincidental, as novelists like to say.

Considering Microsoft’s “rift with the web”

I enjoy the SmoothSpan blog but I’m not convinced by this article on Microsoft’s rift with the web.

Bob Warfield says:

Ever since their spat with Sun over Java, Microsoft has been on an increasingly proprietary path called .NET.

I am not sure why .NET is “increasingly” proprietary. Why is it more proprietary now than it used to be? Arguably it is less so; Mono is more advanced; and in addition Microsoft is going cross-platform with the CLR, by bundling it into Silverlight. That does not make it less proprietary in itself, but means that it is less closely tied to Windows.

Warfield does not quite say, but strongly implies, that .NET is failing in the market:

It’s symptomatic that you can find about 18 million Google hits on “SQL Server” but there are 77 million hits on mySQL.  There are 2+ billion hits for PHP and 135 million for Java.  C# gets a modest 15 million hits.

Right, so by the same logic PHP is vastly more important than Java. For some reason, I get different results on MySQL, which reports 171 million hits. Just for fun I tapped in Oracle, which gets only 105 million, inflated by all sorts of non-database references, so we must conclude that MySQL is far more important in the Enterprise than Oracle.

No, this sort of Google-diving is lazy analysis. Sure, the results are interesting, but they are skewed in all sorts of ways.

I am not suggesting that .NET is bigger than Java. Nevertheless, it has been a success story for Microsoft, particularly on the server which is the focus of Warfield’s comments. So too has SQL Server; in fact if I remember rightly, the server side of Microsoft has been showing healthy growth versus the more stagnant Windows/Office side of the business.

Look at what Netcraft is saying: in its October 2007 web server survey it show gaining market share for IIS and implicitly .NET technology, and has done for several months. Don’t take the Apache drop too seriously; Netcraft’s figures are skewed by the decision to remove Google’s servers from the Apache figures. Nevertheless, Microsoft seems to be growing its web business on the server side.

Jobs? I track these from time to time in the UK, and C# has shown remarkable growth since its introduction, partly at the expense of VB, but also versus Java. Yes, Java is bigger, but you would expect that.

Why has C# succeeded despite Java? Ease of use, productivity and tools. All of these can be debated; but there is some consensus about the excessive complexity of JEE, which has benefited Microsoft. I’ve also noticed innovations in C# being quietly adopted in Java. Given its false start with Java in the early days, I think Microsoft has done well to establish its new language.

Now, I do partially agree with Warfield. Microsoft is an island and I notice strong polarization when I attend conferences and the like: there is a Microsoft crowd and a non-Microsoft crowd. And I agree that the open source community builds largely on open source technology, within which Java is more widely accepted than .NET. However, the .NET island is relatively large and so far has proved resilient.

Should Microsoft drop .NET and embrace Java or PHP, as Warfield kind-of implies? No. There is no technical need for it, because .NET works well. It is not really a rift with the web, because it is server technology and actually plays pretty well with others, through web services for example. The key thing on the web is to be cross-platform on the client. Writely, acquired by Google, was a .NET product. Did anyone care? No; in fact I doubt many were even aware of it. Now Google has incorporated it into Docs and I should think it has been rewritten in Python or something. Few care about that either; but if it did not work properly on a Mac or in FireFox we would all hear about it.

I don’t mean to minimize Microsoft’s problems. More than any other company I can think of, Microsoft has difficulty in balancing the needs of its OS and desktop application business with the migration we are all making to the Web. Further, it has big PR and image problems, and poor market acceptance for Vista must be a headache. Yes, there is a Microsoft crisis brewing. I’d suggest though that the company can succeed best by building on .NET, not by abandoning it.

Technorati tags: , , , , , ,

A tale of two Adobe conferences

I am just back from Adobe’s MAX Europe. The previous Macromedia/Adobe conference I attended was Macromedia DevCon in 2002. Remarkably, the gold sponsors at the earlier conference included Microsoft, there to promote .NET technology to Dreamweaver designers. Such a sponsorship seems impossible now. Back in 2002, the big product announcement was Contribute, and its competition was FrontPage. Today, it’s war. Adobe is talking “platform”: hosted services, web applications, desktop applications, and none of it dependent on Windows; while Microsoft has suddenly got the cross-platform habit with its own Flash-like browser plug-in called Silverlight. On Adobe’s side, an amazing, ubiquitous, graphically-rich runtime that just works. On Microsoft’s side, huge resources and armies of .NET developers.

Max Europe was a good conference. There’s a buzz around the products, and I didn’t meet any disappointed delegates, although there was a little bit of concern that strong designer content was getting squeezed out by the new focus on developers. The Adobe speakers seemed very approachable, and I appreciated the willingness of senior executives to talk to the press. In fact, the company has retained something of a small company feel, at least among the ex-Macromedia team which seemed to dominate at MAX. Adobe also has a clearer focus than Microsoft, which comes over as more bureaucratic and internally conflicted.

Nevertheless, it is possible that some at Adobe are under-estimating Silverlight. One speaker assured us that it only runs in one browser (false). Flex Builder is slow and awkward in comparison to Visual Studio. Adobe does have a big advantage in mobile devices – Nokia was at MAX and is putting Flash in all its high-end phones – but I am not yet convinced of the merits of Flash Mobile.

Mac count at MAX: about 50-50 with Windows on a very rough estimate. That’s proportionally fewer Macs than at FOWA earlier this month, which was maybe 80% Apple.

Adobe: friend or enemy of open source, open standards?

I’m sitting in a session at Adobe Max Europe listening to Senior Product Manager Laurel Reitman talking about what a great open platform Adobe is creating. She refers to the open sourcing of the Flex SDK; the open bug database for Flex; the ISO standardization programme for PDF; the donation of source code to Tamarin, the Mozilla Foundation ECMAScript 4.0 runtime project, and the use of open source projects such as SQLite and Webkit within AIR, the Adobe Integrated Runtime which lets you run Flash applications on the desktop, and the fact that AIR will run in due course on Linux, though the initial release will be Mac and Windows only.

So is Adobe the friend of open source and open standards? It’s not so simple. Adobe is more successful than any other company in promoting proprietary standards on the Internet. It ceased development of the open SVG standard for vector graphics, in favour of the proprietary Flash SWF. Adobe’s efforts may well stymie the efforts of John Resig and others at Mozilla to foster open source equivalents to Flash and AIR. View the slides of his recent talk, which include video support integrated into the browser, a canvas for 3D drawing, HTML applications which run from the desktop without browser furniture, and web applications which work offline. Why is there not more excitement about these developments? Simply, because Adobe is there first with its proprietary solutions.

Adobe is arguably more a consumer than a contributor with respect to open source. It is using the open-source Eclipse for Flexbuilder and Thermo, but as far as I can tell not doing much with existing open source projects within Eclipse, preferring to provide its own implementations for things like graphics and visual application development. It is using SQLite and Webkit, and will no doubt feedback bugs and improvements to these projects, but they would flourish with or without Adobe’s input. Tamarin is perhaps its biggest open-source contribution, but read the FAQ: Adobe is contributing source code, but not quite open-sourcing its ActionScript virtual machine. The Flash Player itself remains closed-source, as do its binary compilers.

Like other big internet players, Adobe is treading a fine line. It wants the world to accept its runtimes and formats as standards, while preserving its commercial advantage in controlling them.

My prediction: if Adobe succeeds in its platform ambitions, the company will come under pressure to cede more of its control over those platform standards to the wider community, just as Sun has experienced with Java.

Adobe shows how anything can be a web application

The closing session here at Adobe MAX Europe was a series of “sneak peeks” at forthcoming technology, presented with a disclaimer to the effect that they may never appear commercially. I am not going to do a blow-by-blow account of these, since it was mostly the same as was shown a couple of weeks ago in the USA, and you may as well read one of the accounts from there. For example, this one from Anara Media, if you can cope with its breathless enthusiasm.

So what was interesting? Overall, Adobe is doing a good job of challenging assumptions about the limitations of web applications, and I am not just talking about AIR. A few years ago you might single out something like Photoshop as an example of something that would always be a desktop application; yet this evening we saw Photoshop Express, a web-hosted Photoshop aimed at consumers, but with impressive image manipulation capabilities. For example, we saw how the application could turn all shades of one colour into those of another colour, so you can make a red car blue. Another application traditionally considered as local-only is desktop publishing, yet here we saw a server version of InDesign controlled by a Web UI written in Flex.

The truth is, given a fast Internet connection and a just-in-time compiler anything can be a web application. Of course, under the covers huge amounts of code are being downloaded and executed on the client, but the user will not care , provided that it is a seamless and reasonably quick experience. Microsoft should worry.

We also got a glimpse into the probable future of Adobe Reader. This already runs JavaScript, but in some future version this runtime engine will be merged with ActionScript 3.0. In addition, the Flash player will be embedded into Adobe Reader. In consequence, a PDF or a bundle of PDFs can take on the characteristics of an application or an offline web site. A holiday brochure could include video of your destination as well as a live booking form. Another idea which comes to mind (we were not shown anything like this) is ad-supported ebooks where the ads are Flash videos. I can see the commercial possibilities, and there are all kinds of publications which could be enhanced by videos, but not everyone will welcome skip-the-intro annoyances arriving in PDF form.

This was a fun and impressive session, and well received by the somewhat bedazzled crowd of delegates.