I recently attended a seminar hosted by Microsoft at Pune, India unveiling the potential of new standards (html 5, css3) and innovations (IE9) that are going to make the entire web experience different (for better). The discussion, no doubt, offered good amount of food for thought. What I intend to discuss here is not comprehensive sets of features present in the trio but the challenges we are likely to face and a few questions raised in the seminar that shouldn’t had been answered but weren’t.
At the beginning I must start with a disclaimer. I don’t intend to explain all or any feature of any of these technology in this article (Neither I am tempted enough to start any series on them any time soon). There are several good resources, should you want to learn them including http://ie.microsoft.com/testdrive/ which includes several html 5 and IE 9 demo (Even if it is meant to promote IE, it still talks volume about html 5)
Disclaimer server, Now I turn to few fine points from the minutes of the said seminar:
HTML 5
HTML 5 is set to become the new standard. When? not sure. Will the standard be still relevant when it finally comes up? No one can precisely answer? Do we really care for a standard which is too little to meet our imagination. No body seem to need the answer. AJaX and JQuery are no defined standards; neither is flash and Silverlight. Do we care? Let us look a bit deeper…
Some of the hyped sections include:
1. <audio>,<video> tags
This is by and large the most hyped part of html 5. These tags are intended to embed audio and video to a webpage. the audio and video will almost automatically be streamed without any support on the server end. one line tag will ensure audio and video will work seamlessly. Of course html is a client side technology. So effectively the hard work of streaming will now be the responsibility of individual browser’s responsibility. So who will guarantee the performance? Clearly this will add new dimensions to browser war. But what if I prefer one browser for most of my purpose but it is not the best at streaming audio and video. Well just a thought.
I guess with or without html tags, server side streaming are here to stay
2. <heading>,<nav> and <footer> tags
This, according to me is one of the interesting additions to new standards to html 5. Finally html realized web page is not just about a monolithic body neither css id are quite easy to identify the sections of pages. So section headers are great way to work. This should add a new dimension.
3. Local store and offline web
Local store will surely increase the space and reduce the dependency on cookies. Offline web on the other hand is essentially an attempt to standardize a process which is all to well established just not defined standards.
4. Maps and navigation
Will again seem to be a welcome add on. Will help streamline the process of showing the map and direction. For navigation I am not sure if it would be too productive with dedicated handheld device available.
To summarize
Having an standard is something great. But delay in implementation only defeats the purpose of it. We need standard but can’t wait for it longer (some say full html will be available by 2011). If part standard is implemented by fewer browser then there is not much sense in using them.
I guess, with or without streaming tags, server streaming are here to stay.
CSS 3.0
Another great add on is new features of css 3. And it really seem to be promising. Reduced number of divs; light weight web page faster to load. New effects such as drop shadow and 3d will ensure lesser java script and neat page. Resolution depended CSS ensure that we don’t need to create different pages optimized for different resolution and devices.
But for now CSS 3.0 means more CSS injection because we still need to cater for all those browsers which are still to understand CSS 3.0. The challenge is greater because you just don’t need to work on a handful desktop browsers but also on a vast range of browser available on portable devices ranging from windows mobile, to android, to symbian , to blackberry, to bada, (huff… huff…) list is really big. And yes it is perhaps more important.
IE 9.0
If the other two are standards, IE 9.0 can rightly be defined as innovation. IE 9.0 offers a lot of new features including:
- Chakra the new java script engine. Too early to say much about it though.
- IE 9.0 pinned sites.
IE 9.0 Pinned sites
This new features works with IE9.0 and utilizes the new shell design of win 7 task bar with task and quick link options. A great step in making website work like web apps. The catch is two fold:
- You need to code extra (even if little ) specifically for IE9.0 win 7 combo.
- These great features won’t work without either of them. The website will be as normal on all other environment.
Before the purists decide to toss of this idea as non-standard let me remind them that AJaX too entered the scenario with such non-standard jscript extension to IE 5.5. With such a great advantage apparent browser soon joined the fray. I see a silver lining here. A step which may not just limit itself to the evolution of browsers but also set to enrich the overall execution environment.
To The Seminar room
I feel obliged to refer to the seminar that provided me this food for the thought. So let us move to the seminar room.
The seminar started with a clear outline. It clearly defined html 5 as an standard (Not a Microsoft technology). However, presenter, a Microsoft developer failed to keep themselves clear off the propriety portions. So we emphasized upon the plugins that enable auto-complete for VS 2010. Yes it shouldn’t have been discussed as it lead to a lot of uncomfortable or unanswered questions. More on it later.
Discussing benefits of a propriety technology (IE 9.0 features) and a standard (HTML 5) from the same dais at the same time appears to complicate the matter further.
For instance efficiency of <audio> tag was discussed as standard based on its performance with IE 9.0. Now this blurred the thin line between the standard and its implementation. (sigh).
The second part, a few questions which shouldn’t had been raised were raised. Worst still, the questions that should had been answered were not answered.
So as my share of contribution let us create a FAQ.
FAQ
Q1. Is there a toolbar available for the new html 5 control as we have for other standard control in vs2008 and vs2010?
Presented Answer: No. There isn’t. HTML controls are not server side controls. They are client side so there can’t be a toolbar options (blunder).
Model Answer: No there isn’t yet. But we can be sure they will be in future. Presently Toolbar includes both standard (server side) and html controls (client). As a stop gap we can use code snippet feature and drag those snippets to toolbar.
Q2. Can we create custom asp.net controls to emit html 5 tags?
Presented Answer: Not yet. Not sure. May be.
Model Answer: Of course you can. After all asp.net control just emits a bunch of html and java script and you can certainly emit whatever you intend to.
Q3. Can be use html 5 with asp.net mvc?
Presented Answer: Not Yet. asp.net mvc doesn’t support html 5 yet.
Model Answer: Of course. You can emit anything as asp.net mvc view including xml, json, pdf, plain text. HTML 5 tags at the end of the day are just tags. Go ahead and use.
Q4. With local store feature can we create web apps that can use and manipulate files from local file system (e.g.. editing image from local file system without uploading them to the server first)
Presented Answer: No because it is security concern.
Model Answer: Perfect. Any attempt would be a violation of the established security model. The whole idea of an isolated local store exists because I don’t and shouldn’t want to provide unlimited access to the local file system.
Perhaps with some java script it may be possible to transfer file from local file system to local store directly and manipulate them on client machine using java script. Just a thought.
Q5. Can server side application access local store as they can access cookies?
Presented Answer: No. Local storage is strictly a client side technology and can’t be accessed by the server.
Model Answer: Yes. Agreed Local store is a client side technology but then even cookies are. So theoretically they can be passed if cookies can be. So the question is how cookies are accessed at the server end. Cookies are passed to server as request header. All associated cookies. Every time. Passing local store data may be slightly different. Why? Because of the sheer volume of it. But they can always be passed using java script as a stop gap. While we can still wait for a better solution (such as header), I doubt that will ever be needed?
Q6. Can we access or clear the local store?
Presented Answer: A BIG NO. There is no way we can access or clear the local store. Its just a privilege of the related web apps.
Model Answer: I won’t be too sure about it. After all standard are specifications and implementation still rests with the respective browser and browsers will come with ability to clear the store if not manipulate it.
Hope these answers helps those seeking for it. I don’t intend to sound offensive to the presenters who did there best to share the ideas.