IIS

Introduction to HTTP/2

May 23, 2015 .NET, Communication, CSS, HTML, HTTP, HTTP2, IIS, KnowledgeBase, Microsoft, Protocols, Visual Studio 2015, VisualStudio, VS2015, Web, Windows, Windows 10 No comments

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

http-timing-diagram

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.
  • Opera supports HTTP/2 by default (from v 28 onwards)

Reference Links:

Visual Studio 2015 – ctp6

February 23, 2015 .NET, .NET Framework, ASP.NET, ASP.NET 4.5, Azure, Azure SDK, BCL(Base Class Library), C#.NET, IE, IIS, Microsoft SDKs, Portable Class Library, SQL Azure, SQL Server, Updates, Visual Studio SDK, VisualStudio, VS2015, WCF, Web API, Windows Phone SDK, Windowz Azure No comments

Microsoft today has released Visual Studio 2015 Community Technology Preview 6 (CTP 6), which includes some new features and improvements, such as new UI debugging tools for XAML, new Control Flow Guard security tool, and feature updates to ASP.NET framework.

For more information about what’s new in this release, please see the release notes.

Download Visual Studio 2015 Ultimate (web | iso)

 

Getting Started to become MCSD–Web Application Solutions Developer

March 30, 2013 .NET, .NET Framework, .NET Framework 4.5, ASP.NET, ASP.NET 4.5, ASP.NET MVC, Azure, Certification, Community, CSS 3, HTML, HTML5, IIS, IIS8, JavaScript, JumpStarts, KnowledgeBase, Microsoft, Microsoft Learning, MSDN, SignalR, VisualStudio, VS2012, Web, Web API, Web Services, Windowz Azure No comments

In this article I will introduce you to the necessary requirements for preparing and earning MCSD – Web Apps Solutions Developer certification.

In my previous article Permanent Link to Getting Started to become an MCSD in Windows Store Apps, I have introduced you to the MCSD – Windows Store Apps Developer certification exams and requirements.

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

  1. 70-480 – Programming in HTML5 with JavaScript and CSS3
  2. 70-486 – Developing ASP.NET MVC 4 Web Applications
  3. 70-487 – Developing Windows Azure and Web Services

Note: This MCSD certification requires you to show continued ability to perform in your chosen solution area by completing a recertification exam every two years.

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

70-480 – Developing in HTML5 with JavaScript and CSS3 Jump Start – FREE

70-486 –  Building Web Apps with ASP.NET Jump Start – FREE – by Scott Hanselman and Jon Galloway

70-487 – Developing Windows Azure and Web Services – no jumpstarts available yet.

Know more about MCSD: Web Applications | from Microsoft Learning

Continue your learning and all the best to you – if you are planning to take MCSD on Web Applications.

Microsoft Media Platform – Player Framework for Windows 8 and Windows Phone 8 updated to version 1.1

March 5, 2013 .NET, .NET Framework, Codeplex, Community, IIS Smooth Streaming, Microsoft, Microsoft SDKs, MSDN, OpenSource, Streaming Media, VisualStudio, VS2012, Windows, Windows Phone, Windows Phone 8, Windows Phone 8.0 SDK, Windows Phone Development, Windows Phone SDK, Windows Phone Store, Windows SDK, Windows Store No comments

Microsoft Media platform team has recently updated the “Media Player Framework” for Windows 8 and Windows Phone 8 to version 1.1, which includes few enhancements and fixes.

“Media Player Framework” helps you in building media applications for Windows 8 and Windows Phone 8.  The player framework contains an open source framework available for Silverlight, HTML5 and XBox media applications, Windows Phone and Windows applications.  It allows application developers to progressively download and play normal media contents from different download sources and other smooth streaming sources.

Download the latest framework from Codeplex.com:  http://playerframework.codeplex.com

Note: This framework is not for Windows Phone 7.x version applications, as it is based on Windows 8 application API’s – which are common for Windows 8 and Windows Phone 8 versions.

Introduction to The One ASP.NET Platform/Ecosystem

December 25, 2012 .NET, .NET Framework, .NET Framework 4.5, ADO.NET, All, ASP.NET, ASP.NET 4.5, ASP.NET AJAX, ASP.NET MVC, ASP.NET MVP, C#.NET, Community, HTML, HTML5, IIS, JavaScript, JavaScript, jQuery, JQuery Mobile, KnowledgeBase, LINQ, Microsoft, MSDN, SignalR, Updates, VB.NET, VisualStudio, VS2012, WCF, Web, Web API No comments

Introduction

ASP.NET has travelled a long way through evolutions. Earlier when ASP.NET 1.0 was released as part of .NET Framework 1.0 in Jan 2002, there was only ASP.NET – a framework for building dynamic web applications and it provided lots of flexibility web developers in building robust, dynamic web applications.  ASP.NET was and is the successor to Microsoft’s Active Server Pages (ASP) technology.

ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any supported .NET language. The ASP.NET SOAP extension framework allows ASP.NET components to process SOAP messages.

From that, today we reached ASP.NET 4.5 and platform/web framework has changed a lot through the 10 years of journey.

Before going further lets go through a quick summery of additions in each releases:

ASP.NET 1.0 (January 16, 2002)

  • Object-oriented Web application development supporting inheritance, polymorphism and other standard OOP features
  • Support for generic HTML controls and ASP.NET dynamic web controls
  • Event based programming
  • The developer can make use of DLL class libraries and other features of the Web server to build more robust applications that do more than simply rendering HTML.
  • Integrated development support using Visual Studio .Net 2002

ASP.NET 1.1 (April 24, 2003)

  • With ASP.NET 1.1 – an update to .NET framework 1.0 called as .Net framework 1.1 – we received support for Mobile Web Controls, Automatic input validation
  • Integrated development support using Visual Studio .Net 2003

ASP.NET 2.0 (November 7, 2005)

ASP.NET 2.0 introduced major updates to ASP.NET framework with introduction of Master pages and new data controls.

The interesting features included in this release were:

  • Integrated development support using Visual Studio 2005
  • New data controls (GridView, FormView, DetailsView)
  • New technique for declarative data access (SqlDataSource, ObjectDataSource, XmlDataSource controls)
  • Navigation controls
  • Master pages
  • Login controls
  • Themes
  • Skins
  • Web parts
  • Personalization services
  • Full pre-compilation
  • New localization technique
  • Support for 64-bit processors
  • Provider class model
  • Web Sites projects are introduced. An alternative to Web Application project model in earlier versions.
  • ASP.NET AJAX has been introduced as a separate installer. Included ScriptManager, UpdatePanel etc.

ASP.NET 3.5 (November 19, 2007)

This was an incremental update to ASP.NET 2.0 and .NET Framework 2.0. Base level the Runtime was depending on .NET Framework 2.0 and set of additional runtime extension components been introduced in this release.

The interesting features included in this release were:

  • Integrated development support using Visual Studio 2008
  • New data controls (ListView, DataPager, LinqDataSource)
  • ASP.NET AJAX included as part of the framework
  • Support for HTTP pipelining and syndication feeds.
  • WCF support for RSS, JSON, POX and Partial Trust
  • All the .NET Framework 3.5 changes, like LINQ etc.

With .NET Framework 3.5 Service Pack 1, some more features been introduced

  • Integrated development support using Visual Studio 2008 – Service Pack 1
  • Incorporation of ASP.NET Dynamic Data
  • Entity Framework support
  • Support for controlling browser history in an ASP.NET AJAX application
  • Ability to combine multiple JavaScript files into one file for more efficient downloading
  • New namespaces System.Web.Abstractions and System.Web.Routing
  • JQuery is included as part of the template.
  • ASP.NET MVC is born

Now ASP.NET framework is spitted in to three based on the purpose

ASP.NET Core Services – all the major ASP.NET runtime components has been built in to this and will act as a base layer for all other ASP.NET components such as Web Forms, MVC, Dynamic Data etc.

Now we have three Presentation Frameworks/Components that utilizes the ASP.NET Core runtime components

  1. ASP.NET Web Forms – based on traditional ASP.NET web application model – dynamic *.aspx pages with code behind file.
  2. ASP.NET MVC – based on MVC model – *.aspx pages for View, no code behind file. Simply depended on Controller and model.
  3. ASP.NET Dynamic data – the quick and easy – rapid application development model with help of LINQ and Entity Framework. ASP.NET Dynamic Data helps you quickly build a fully customizable, data-driven application without writing code. Dynamic Data provides a rich scaffolding framework that is easily extensible by using the traditional ASP.NET programming model.

ASP.NET 4.0 (April 12, 2010)

The .NET Framework version 4 includes enhancements for ASP.NET 4 in targeted areas. Visual Studio 2010 and Microsoft Visual Web Developer Express also include enhancements and new features for improved Web development.

The interesting features included in this release were:

  • Integrated development support using Visual Studio 2010
  • jQuery Included with Web Forms and MVC
  • Content Delivery Network Support
  • Setting Meta Tags with the Page.MetaKeywords and Page.MetaDescription Properties
  • ASP.NET MVC 3.0 with Web Pages and razor support
  • IISExpress Support through Service Pack1
  • and more… You can read about it in detail on the MSDN page What’s New in ASP.NET 4 and Visual Web Developer

 

ASP.NET 4.5 (August 15, 2012)

This was a long awaited release since ASP.NET 4.0, which includes the new improved support for Web Pages, MVC and new Web API support. With the release of .NET Framework 4.5 and Visual Studio 2012, decided to go away from Service Packs and release incremental updates whenever available.

The interesting features included in this release were:

  • Async support – HttpRequest, Response, HTTP Modules and Handlers are capable of handling Async request and responses.
  • AntiXSS library is integrated
  • WebSockets protocol support
  • Lazy request validation
  • ASP.NET Web Forms – Model binding similar to ASP.NET MVC
  • HTML5 support
  • ASP.NET MVC 4, Web Pages 2.0, Web API, ASP.NET MVC 4 – Mobile Web Templates using jQuery Mobile
  • and more… You can read about it in detail on the MSDN page What’s New in ASP.NET 4.5 and Visual Web Developer

ASP.NET and Web Tools 2012.2 update

This .2 update adds a number of new templates and features including:

  • Enhancements to Web Publishing
  • New Web API functionality
  • New templates for Facebook Application and Single Page Application
  • Real-time communication via ASP.NET SignalR
  • Extensionless Web Forms via ASP.NET Friendly URLs
  • Support for the new Windows Azure Authentication
  • and more… You can read about it in detail on the MSDN page What’s New in ASP.NET and Web Tools 2012.2 Update

SignalR

SignalR is a new member of the ASP.NET family that facilitates adding real-time functionality to web applications using WebSockets and other down-level transports. SignalR is a self-contained library installed via NuGet that is targeting a 1.0 RTW as part of the Fall Update. This will include item templates for adding SignalR connections and hubs to an ASP.NET application as well as a full project template that integrates with ASP.NET MVC and ASP.NET Web API.

[ Quoted from http://aspnet.codeplex.com  ]

THE ONE ASP.NET PLATFORM

Now the ASP.NET ecosystem would look as in the image, with 2012.2 release: Single platform – multiple, extensible solutions

All the parts of ASP.NET, all the subsystems are all part of the larger ASP.NET community 

[Image courtesy Scott Hanselman’s blog]

Scott Hanselman of Microsoft Quotes:

The idea behind One ASP.NET is that we want folks to be able to make apps that have real-time components with SignalR, clean, simple APIs with Web API, all in one pages with KnockoutJS, pages with MVC, Web Forms or Web Pages, as well as existing ASP.NET systems like OData, ASMX, and more.

We want open source projects like JSON.NET, KnockoutJS, SignalR, Backbone, MongoDB, Scaffolding, NHIbernate, Ninject (and the list goes on) to all play in the same ASP.NET LEGO sandbox.

We’ll put all these subcomponents on NuGet and they’ll live alongside community components and you’ll be able to build ASP.NET applications starting from some base template and add just the pieces you want. We are getting there. We want folks to use the parts they want, and swap out the parts they don’t. Everything should work together.

ScottGu Quotes
The new runtime functionality is delivered to ASP.NET via additional NuGet packages. This means that installing this update does not make any changes to the existing ASP.NET binaries, and thus does not cause any compatibility issues with existing projects. New projects will contain the new functionality and existing projects can be updated with the new NuGet packages.

You can further read about it through Scott Hanselman’s article and ScottGu’s blog 
 

Conclusion

Now with ASP.NET 4.5 and Updates we reached a place where we have a vast variety of technologies to choose from, to develop rich, dynamic web applications for Desktop browsers as well as for mobile browsers.

ASP.NET Ecosystem is growing and is moving in the right pace with the release to open source development of most of the components through http://aspnet.codeplex.com/ 

It is challenging and interesting for ASP.NET developers to be able to develop using such cutting edge technologies.

Information Sources & Courtesy: Wikipedia, MSDN and Microsoft Developer blogs

Introducing IIS Transform Manager & IIS Smooth Streaming – Stream your Media files through IIS

October 26, 2012 All, Community, Expression, Expression Encoder, Expression Encoder PRO, Featured, IIS, IIS 7, IIS 7.5, IIS Media Services, IIS Smooth Streaming, IIS Transform Manager, IIS8, MSDN, Silverlight, Windows Phone, Windows Phone Development, Windows Phone SDK No comments

Few weeks back one of my colleague asked for some help on setting up an IIS Smooth Streaming capability for an iOS application.

  1. Users will be uploading the videos to Servers.
  2. We wanted to stream videos on demand to iOS Devices such as iPhone, iPod, iPad.
  3. Inorder to stream we have to convert the video in to a streamable format compatible for iOS Devices.
  4. I introduced them to the IIS Media Services and Smooth Streaming.
  5. What we have to look is creating multiple encoded files automatically upon video upload to the server.
  6. Using Expression Encoder Tool we can manually encode video bits or create templates for different types of encoding, and stream them through the IIS Smooth Streaming capability.
  7. Since Encoding is a manual process we need some kind of automated or scheduled job that would generate necessary client compatible compressed video bits based on the template we specified.
  8. Automated or scheduled or OnDemand tasks can be achieved using IIS Transform Manager – you will read more about in below sections.

 

Read more About IIS Smooth Streaming:

Smooth Streaming, an IIS Media Services extension, enables adaptive streaming of media to Silverlight and other clients over HTTP. Smooth Streaming provides a high-quality viewing experience that scales massively on content distribution networks, making true HD 1080p media experiences a reality.

To create Smooth Streaming presentations, the same source content is encoded at several quality levels, typically with each level in its own complete file, using a compression tool such as Expression Encoder PRO.

Content is delivered using a Smooth Streaming-enabled IIS origin server.

After the IIS origin server receives a request for media, it will dynamically create cacheable virtual fragments from the video files and deliver the best content possible to each client.

The benefit of this virtual fragment approach is that the content owner can manage complete files rather than thousands of pre-segmented content files.

[QUOTING from Official IIS Site – Smooth Streaming]

Using smooth stream we can stream videos that are compatible for iOS devices (iPhone, iPod, iPad, AppleTV[iTV].

I am not going to explain these in more detail, you may can refer to Scott Hanselman’s blog on Smooth Streaming  and From Alex Zambelli’s blog for complete picture of the smooth streaming process.

IIS Transform Manager:

IIS Transform Manager is an extensible media transform engine that enables “watch folder” job submission, queuing, management, integrated media transcoding/container format repackaging, and batch-encryption of on-demand audio and video files.

IIS Transform Manager Runs encoding tasks to convert media files to on-demand Smooth Streams for Silverlight clients and Apple mobile digital devices.

One example of a media transform is transcoding Windows Media-formatted and MP4-formatted files, or other encoder-supported file formats, to on-demand Smooth Streams for delivery to Smooth Streaming-compatible clients (such as Silverlight).

Another example is repackaging Smooth Streaming fragments encoded with H.264 (AVC) video and AAC-LC audio codecs to MPEG-2 Transport Stream (MPEG-2 TS) segments for delivery to Apple® mobile digital devices.

Transform Manager can be integrated with the IIS Smooth Streaming feature in IIS Media Services, which delivers the converted content.

The default installation of Transform Manager includes a transcoding task that uses encoding presets that require the encoding profiles and Silverlight player templates provided by Microsoft® Expression Encoder 4 SP2.

You can choose from a variety of encoding presets, be sure to install the edition of Expression Encoder 4 that meets your needs:

  • H.264 encoding presets are only supported by Expression Encoder 4 Pro.
  • VC-1 encoding presets are supported by Expression Encoder 4 Pro and by Expression Encoder 4, which is included in a free Trial version of Expression Studio 4.
  • NB: After you install your edition of Expression Encoder 4, install Microsoft Expression Encoder 4 with Service Pack 2 (SP2).

DOWNLOAD:

You can download latest version IIS Transform Manager from the below link for appropriate architecture.

IIS Transform Manager 1.1 (RTW) – 32-bit

IIS Transform Manager 1.1 (RTW) – 64-bit

Additional References:

Smooth Streaming Architecture by Alex Zambelli
Installing and Setting Up and Encoding for IIS 7 Smooth Streaming and Silverlight – By Scott Hanselman
Getting Started with IIS Smooth Streaming

For step-by-step guidance about how to encode Smooth Streaming video using Expression Encoder and deliver it to clients from your Smooth Streaming Web server, see the Smooth Streaming Deployment Guide.

Content Sources & Credits: IIS.NET, MICROSOFT DOWNLOAD CENTER