Thursday, January 31, 2008

Feedback on HTML 5: Bury it!

W3C drafted new resolutions working draft for HTML 5, which may (I repeat "may") be available as a standard in couple of years, even if W3C convince all legacy browsers to be compatible to new drafted standards,  I for one don't see HTML 5 to be ever be accepted within developer community, I am actually surprised that W3C even bother drafting a new standards for HTML, there are not many developers who use HTML as their basic language, HTML is only used to render web pages at Client, no matter how far they stretch it HTML will still perform short with user interface,  scripting or managed code.

I am basing my judgement in accordance to the new and emerging technologies such as Silverlight, Flash, AIR, SVG, XUL, Java FX. HTML was thing of the past HTML was usable when Internet was accessed with a 56K dial up modem by the masses, that is just about a decade ago, we are still using HTML due to lack of proper browser standards but with new technologies especially Silverlight that is not going to last long.

Suggestion to W3C: Its about time we bury HTML deep where it actually belong and move ahead instead of going backwards.

Tuesday, January 22, 2008

Silverlight doesn't require .NET to run

In my previous post I have discussed about why Silverlight development in not traditional, and I talked about the biggest issue user and developers have with Mouse Button, I have made a list and I am trying to point and clarify all the misconceptions about Silverlight that are associate with traditional web development, where developers just expect thing to be like they were in ASP.NET or HTML.

When I first started with Silverlight I was a bit frustrated because nothing seem to work as it was meant to be I was expecting .NET libraries, resources and just about anything that I knew about traditional web development, the first day I started with Silverlight 1.1, I saw "Hello World" example and then decided to replace that text with a random number, I have used Cryptography quite a lot earlier and I like to use PRNG random number instead of Random, and so I wanted to import/include System.Security.Cryptography and I failed, I tried again and failed I tried System.Data failed, I tried System.Speech failed, this was too much for me and frustrated I gave up. Silverlight altogether.

And had it not been for a boring weekend few months later and that moment of curiosity of why I can't import those libraries in my Silverlight application, I would never have bothered with Silverlight. I think there are many developers out there who try what I did and who gave up the way I did, and the only reason is Silverlight is untraditional.

So what exactly am I bragging about? And what is so untraditional about Silverlight that I got wrong ? Why Microsoft restricted access to them libraries? Why was my misconception? Or did Microsoft really restricted libraries? The answer is simple and the impact is big.

Silverlight doesn't require .NET framework at Client/Server.

Huh? What? But Silverlight require .NET 3.5 isn't? Yes, of course it does! Is it confusing? Ok lets first talk about Silverlight Plug-in, do you know that "Silverlight is cross-platform"? And Silverlight plugin (1.0, 1.1, 2.0) is/will be in few MBs, So do you expect to installed all the framework in that few MBs? Or do you propose to install .NET framework on Mac/Linux? And do you also know that you can host Silverlight application on Linux servers (without .NET framework), just by setting MIME types for XAML?

So we don't need .NET framework on Client or Server?

That's what I said, didn't I?

But we need .NET framework 3.5 for Silverlight!

Yes, you need .NET framework 3.5 for Silverlight applications but not to host or render them in browsers, you need the framework to compile the Silverlight application. You need .NET Framework at compile time and not runtime.

So what does it mean to Silverlight applications? And what actually happen?

Silverlight when complied creates a DLL (Dynamic Link Library) which includes all embedded resources (if any) along with the complied managed code, Silverlight compiler uses .NET Framework 3.5  to compile this library, when a Silverlight application is initiated with Silverlight plug-in installed, the plug-in tell the browser to go and download the DLL or the downloader object and interprets the DLL to the browser to render or perform tasks.

So it means Silverlight can only include that libraries that Silverlight plug-in (running at the client) can interpret?

Yes and it is the reason you can't include any library reference in Silverlight.

Coming back to the examples for libraries that I have given earlier System.Security.Cryptography, System.Data and System.Speech. Since database is always present on the server, there is no point in using System.Data in Silverlight ever, Silverlight works in a browser sandbox and can't access generic hardware so System.Speech is out of question, but System.Security, well there is something that we can expect to use in Silverlight but can't because of choice, again System.Security uses .NET framework so the plug-in should be able to interpret it by itself, and if it is implemented then the plug-in size might increase by another 1MB, so the plug-in size will increase with every library they include, and while Microsoft is struggling with adoption of Silverlight, consider to include these libraries.

So what libraries will be included in Silverlight 2.0? And how big the plug-in will get?

That is Microsoft to answer, not me. And I am glad I don't have to make that decision to balance plugin size.

Microsoft pushes Silverlight Plug-in

From today, IT Administrators can bunch install Silverlight plug-in (1.0 of course), on all Windows machines on the network using Windows Server Update Services (WSUS). The plug-in is available from Microsoft Update, for more info check the Microsoft Update Team Blog.

The plug-in however is Optional (perhaps for  the legal battles with other browsers) and is available as "feature pack", and will require accepting EULA.

But within two weeks, February 12 to be precise, Microsoft will push the plug-in with automatic updates program, from the Microsoft Download Centre, and the install will be again Optional but Windows Genuine Advantage (WGA) free. This is made available with the Internet Explorer 7.0 update as WGA free, for more information check knowledge base

Friday, January 18, 2008

Silverlight Tutorials with VB.NET

I have been thinking about writing an e-book on Silverlight focusing on VB.NET, I had started to do Silverlight 1.1 Alpha tutorials on my personal blog but when I got busy, and because Silverlight 1.1 Alpha is very incomplete I laid it to rest waiting for the next version.

Well the next version as we all know is coming up in another month or two, so I might actually go ahead and make ebook on Silverlight 2.0 with VB.NET

My main reason to write a tutorial book is to give VB.NET developers a good start, I know I struggled with I first started with Silverlight.

The book I intend to write will have few tutorials and explain few other things and perhaps the architecture.

I would be very gratefully if other developers want to co-author the e-book and samples, and provide community the good head start, an e-book, completely free and will be released on Creative Commons license, to give developers the basic to start off the development process. I intend to publish this book by April/May 2008.

If you want to co-author the e-book then please get in contact with me, or if you are developers please atleast leave comments on what do you think about the idea and what topics you might expect to see.

Mouse Buttons - Why Silverlight web development is not traditional?

I have been active on Silverlight forums for a few months now and  most of the developers I see have problems with understanding that Silverlight is not like traditional web development environment. And the approach they have to take frightens them because it is not traditional.  They have fixed a  development mind frame with with HTML/Graphics and Server pages and sometimes it doesn't suit well with the Silverlight architecture. There are some areas of web development that with the introduction of Silverlight architecture get void, and I am set to make points of all of them and discuss the reason. Instead of doing all of them in one post I'll try to post multiple entry concentrating on a single method each time.

Mouse Buttons.

The most basic traditional method that developers gets wrong, Silverlight doesn't support Middle-Mouse button, Right-Mouse button or Double Click and developers have expressed this as crippled functionality or nonsense among other things, But the question they ask why only one mouse button is to an extend valid, and I'll try to shed some light on the reasons.

To answer why, we have to answer why Silverlight? Why not AJAX? What Silverlight brings to the application that AJAX doesn't besides easy of development? I say cross-platform compatibility, but they say AJAX is also cross platform compatible, I say with Right Mouse, or Middle Mouse button it isn't.

Let me explain in more detail, AJAX came into existence with writing clever JavaScript programs and pushing JavaScript to its limits, there are however different approaches for different browses, something that works in IE doesn't work on FireFox and something that works both in IE/FireFox doesn't work on Mac-Safari so the developer building AJAX application have to target particular browsers and write their application, one of the first reasons I was attracted to Silverlight was this cross platform compatibility. Write one application and run them on all.

Ok, but what does this have to do with Mouse buttons? The reason is Mac with its tradition doesn't have more than one mouse button, and this button in Windows terminology is interpreted as Left Mouse button, however in the last few years user have adopted the Mac-Might Mouse which have more than one mouse button, but the traditional Mac have only a single mouse button, so if you create a web application that is cross platform you have be use that all the users irrespective of their platform Mac/ Windows, or browser IE/FF/Safari/Opera.

You would ask what about double click? I say how would you double click on Mobile device? Not all mobile devices that access Internet are touch screen, and even on touch screen its hard to double click, when working on Silverlight you have to think the big picture, not traditional windows method. Microsoft have showed interest for Silverlight on Mobile devices but as yet, no particular announcements have been made. But expect to change that with Silverlight 2.0 RTM (by summer 2008). 

If say Microsoft have incorporated Silverlight with extended mouse functionality, and the developers who doesn't understand this functionality and/or its limits went on to implement such behaviour with some serious business logic, the end user accessing the application who can't access such behaviour due to hardware limitations can't access  such business logic, rendering the application useless.

To wrap it all up, Silverlight doesn't have extended mouse functionality for the same reasons as Adobe Flash doesn't.

Wednesday, January 16, 2008

Future of XBAP

Back at Mix'07 when I first heard about XBAP I thought it could prove very handy in coming years and I was expecting to see many applications in coming months build on XBAP, but the last time I had a healthy discussion about XBAP developers was in Nov'07, well that was about 2 months ago, as it happens I had that discussion just before we heard about Silverlight 2.0, so why is no one interested in XBAP anymore?

XBAP only came to existence because Silverlight (at the time 1.1 Alpha)  didn't provide the basic user controls, binding options, and many restrictions on Silverlight usage with assets and/or web services, Silverlight applications mostly lack the infrastructure to use .NET framework so the only option was XBAP.

XBAP was simple and neat idea build on WPF but when it come to universality, it lacked cross platform compatibility over Mac/Linux. But when Silverlight 2.0 was announced with user controls, binding, grids and to lift many restrictions like cross domain calls, and providing support for web services methods like SOAP/REST, the idea of developing XBAP applications just began to fade away.

So with Silverlight 2.0 Beta 1 to be released in next 6 weeks what is the future of XBAP? Its not a simple question and personally I am a bit optimist and would love to say good byes to XBAP but ever since Mix 07 Microsoft has disappointed me again and again with Silverlight, I am hoping the Mix 08 will change all that, but I am sure that after a few months after Silverlight 2.0 is released developers might again start to talk about XBAP but this time for some other features that Silverlight might lack mostly with 3D or networking supports like sockets or VOIP.

After Mix08 and Silverlight 2.0 Beta 1 is released I'll try to post the features that Silverlight 2.0 lacks and in what situations would XBAP could be used, if at all. Please stay tuned.

Sunday, January 6, 2008

Silverlight News at CES 2008

Bill Gates presented his last keynote at CES 2008 today at Las Vegas, and since Microsoft have announced many products at CES in the last few years including XBOX 360 and Microsoft Vista I was hoping against hope that we might get few announcements for Silverlight.

But disappointedly no, I had asked Scott Guthrie earlier this week about the Silverlight 2.0 tutorials he had promised back in Nov 2007, he seems to be excited about it and said that he might start it in next couple of weeks. It got my hopes up that we  might see early release the Beta before Mix 08 (which was very unlikely).

Anyway, there were actually no major announcements from Microsoft just a preview of what we might expect at Mix '08 later in March. But Microsoft have announced NBC's plan to host video coverage for Beijing Olympics starting 08-08-2008, and NBC will be using Microsoft Silverlight for the video coverage.

This is not such a big news but by August, the user adoptability of Silverlight will be much higher and Microsoft will be pushing to release Silverlight 2.0 Final by then.