HTML

The reason I got started with topic is that, there were some buzz around Visual Studio 2015 RC support for HTTP/2 and Windows 8 – IIS support for HTTP/2. I was curious to learn further about the HTTP/2 and sharing my findings in this article.

About HTTP/2.

HTTP/2 is the first new version of HTTP since HTTP 1.1, which was standardized in RFC 2068 in 1997.

HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection.

It also introduces unsolicited push of representations from servers to clients.

This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax.

HTTP’s existing semantics remain unchanged.

“ HTTP/2 allows the server to “push” content, that is, to respond with data for more queries than the client requested. This allows the server to supply data it knows a web browser will need to render a web page, without waiting for the browser to examine the first response, and without the overhead of an additional request cycle. “

Quoting from MSDN:

HTTP/2 is a new version of the HTTP protocol that provides much better connection utilization (fewer round-trips between client and server), resulting in lower latency web page loading for users. Web pages (as opposed to services) benefit the most from HTTP/2, since the protocol optimizes for multiple artifacts being requested as part of a single experience.

The browser and the web server (IIS on Windows) do all the work. You don’t have to do any heavy-lifting for your users.

[Source: MSDN]

HTTP v1.1 vs HTTPv2

HTTP/2 leaves most of HTTP 1.1’s high level syntax, such as methods, status codes, header fields, and URIs, the same. The element that is modified is how the data is framed and transported between the client and the server.

At a high level, HTTP/2:

is binary, instead of textual ( the reason being is – “Binary protocols are more efficient to parse, more compact “on the wire”, and most importantly, they are much less error-prone, compared to textual protocols like HTTP/1.x, because they often have a number of affordances to “help” with things like whitespace handling, capitalization, line endings, blank links and so on. “)

is fully multiplexed, instead of ordered and blocking

can therefore use one connection for parallelism

uses header compression to reduce overhead

allows servers to “push” responses proactively into client caches

Taking help of an image visualization

Major Milestones:

December 2014: The HTTP Working Group presented HTTP/2 to IESG for consideration as a Proposed Standard.

Feb 17, 2015: IESG approved it to publish as Proposed Standard

May 2015: The HTTP/2 specification was published as RFC 7540

Browser Support:

Chrome supports HTTP/2 by default. (from version 41)

Google Chrome Canary supports HTTP/2 by default. (from version 43)

Chrome for iOS supports HTTP/2 by default. (from version 41)

Firefox supports HTTP/2 which has been enabled by default since version 34.

Internet Explorer supports HTTP/2 in version 11, but only for Windows 10 beta, and is enabled by default. Currently only HTTP/2 over TLS is implemented.

Microsoft has announced that with Visual Studio 2015 – Apache Cordova tools will be integrated within the main install bundle. Using Apache Cordova Tools for Visual Studio you will be able to develop cross-platform mobile applications using single codebase for iOS, Android and Windows Phone.

Grunt, Gulp, Bower and Node-based Workflows – Starting with the RC release, it’s also much easier for you to build Cordova apps using tools familiar to many web developers.

New Templates from Ionic and Onsen UI – Ionic and Onsen UI templates are provided as optional to enable developers to try out the new frameworks. Each framework provides a variety of starting points to suit the most common project types.

This preview release for Visual Studio 2013 Update 4 and Visual Studio 2015 RC supports building apps for the following device targets:

Android 4+

iOS 6, iOS 7, iOS 8

Windows 8.0 and Windows 8.1 Store

Windows Phone 8.0 and Windows Phone 8.1

Benefits of using Visual Studio Tools for Apache Cordova:

When you develop apps using Visual Studio Tools for Apache Cordova, Visual Studio provides these benefits:

Easy installation. Manual installation of Cordova involves a lot of work to find, install, and maintain the correct version of all the third-party software required to support native platforms. Visual Studio handles all that for you by including a third-party dependency installer that gets you up and running in the first hour.

Plugin management. Cordova plugins provide access to native APIs using a JavaScript interface. Support for custom plugins like those that turn a mobile phone into a barcode scanner are critical to an app’s success. Visual Studio makes it easy to add plugins of all kinds, including core Cordova and custom plugins. You also benefit from IntelliSense for plugins in Visual Studio.

Unified debugging experience. Cross-platform development often requires a different tool for debugging each device, emulator, or simulator. Different tools mean different workflows and lost productivity every time you switch devices. With Visual Studio, you can use the same world-class debugging tools for all deployment targets, including iOS devices and emulators, Android devices and emulators, Windows, and the Apache Ripple emulator.

Write once, deploy everywhere. The common JavaScript and plugin APIs in Cordova make it easy to write an app using a single code base that deploys to all target platforms—iOS, Android, and Windows. Of course, you can always write platform-specific code if and when you need it.

Command line interoperability. The Visual Studio solution directly reflects the file system and is updated in real time. This means that it is easier than ever to use your favorite command line tool with Visual Studio.

Multi-Version Cordova support. The Visual Studio solution allows you to select different versions of Cordova at the project level.

As part of Microsoft’s focused approach to bring in more value to Cross platform & Open Source based initiatives Microsoft has released Visual Studio Code IDE along with .NET Core runtime for Mac, Linux and Windows.

Visual Studio Code provides developers with a new choice of developer tool that combines the simplicity and streamlined experience of a code editor with the best of what developers need for their core code-edit-debug cycle. Visual Studio Code is the first code editor, and first cross-platform development tool – supporting OSX, Linux, and Windows – in the Visual Studio family.

Similarity between MCSD – Win Store Apps development using HTML5 and MCSD – Web Apps is that initial exam is same for both the certification titles. 70-480 is the initial exam that is required for earning both the certifications.

Earning an MCSD: Web Applications certification will qualify you for a position as a web developer or web administrator.

Below are the 3 exams required to pass to earn the title MCSD: Web Applications

Last few years Microsoft Developer Certification Exams progressed forward through two certification tracks or titles MCTS(Microsoft Certified Technology Specialist) and MCPD(Microsoft Certified Professional Developer). Earlier Microsoft certification titles been called as MCAD(Microsoft Certified Application Developer) and MCSD(Microsoft Certified Solution Developer), and Since .NET Framework 2.0 to 4.0 certifications – Microsoft renamed the titles as MCTS and MCPD respectively. Last year onwards Microsoft has decided to return back to old titles once again.

All .NET Framework 4.5 certification series belongs to MCSD(Microsoft Certified Solutions Developer) and MTA(Microsoft Technology Associate) titles. Also MCSD titles have a validity of 2 years and developers have to renew their titles in every 2 years, to keep up with latest industry technology standards(earlier there was no expiry for certifications, most of the exams were valid life long) .

What is an MCSD?The MCSD is a professional level certification that is the latest in Microsofts re-envisioning of their developer exams for the cloud. Rather than be tied to a specific qualification they are tied to the technology and re-certification is required.

Note:Exam 480 and Exam 483 validate programming skills in a specific language. By passing one of these exams you will earn a Microsoft Specialist certification.

Microsoft has released a set of FREE JumpStart tutorials/trainings for programmers who would like to study and take these exams. Going through this online trainings and practicing would be enough for gaining proficiency in passing these exams.

Online Preparation materials: (Provided to you by Channel9 and Microsoft Virtual Academy)

Once you complete through corresponding JumpStart materials, you will have sufficient knowledge and confidence to appear for the associated exams. Remember practice is the key, and through practice you can gain more knowledge as well.

HTML5Shiv is a JavaScript workaround, discovered by Sjoerd Visscher, to enable support styling of HTML5 elements in versions of Internet Explorer prior to version 9.0, which do not allow unknown elements to be styled without JavaScript. Means your CSS classes and attributes will not be applied to the particular HTML5 specific display element, until and unless the object is available in the DOM tree.

What HTML5Shiv does is that it creates the objects for all known HTML5 elements(of the Page) in the DOM tree?. This gives the browser an implication that the particular element is supported and available in the DOM tree and it applies the specific CSS classes to the element.

Try to Browse the sample in Internet Explorer 7.0(by double clicking on ‘test.html’ file) and you can see that font color and font size are not applied and as a default fallback – it is displaying text in a normal font and color. It is because browser will not apply the CSS to an unknown element, HTML5 elements are aliens 🙂 for IE 8.0 and below.

[Before – HTML5 Shiv is applied]

Now try to apply the HTML5Shiv code block on to the above sample and see the magic. Modified code block will look like below:

“In learning you will teach, and in teaching you will learn.” -Phil Collins

About

Nithin Mohan – A passionate hardcore application programmer, software architect, and technology evangelist with over 13 years of experience in Web, Mobile, and Cloud applications design and development.
A hardware geek, a kick-starter, and a quick learner.

Disclaimer:
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way. This blog is to share knowledge, tips & tricks on software development using Emerging Technologies. Thanks to the readers and sincere thanks to all author's of crossposted blogs. Blog is powered by theme gitsta, customized for this blog. Enjoy reading the blog and subscribe to the RSS feed.