<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Mikael Söderström</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/</link><description></description><item><title>Creating a temperature web server using ESP8266</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/creating-a-temperature-web-server-using-esp8266</link><description>&lt;p&gt;&lt;em&gt;ESP8266 is a fantastic micro controller unit, with built-in Wifi and is programmable via the Arduino IDE (or LUA if you wish). By using this with a DS18B20 we are going to run a web server on it, with which we can use any browser to get the current temperature.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;
&lt;p&gt;Before we can start writing the code, we will need to have the following hardware:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ESP8266 Micro controller unit (doesn&amp;rsquo;t matter which model)&lt;/li&gt;
&lt;li&gt;Breadboard&lt;/li&gt;
&lt;li&gt;4k6 ohm resistor&lt;/li&gt;
&lt;li&gt;Cables&lt;/li&gt;
&lt;li&gt;DS18B20&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are different kinds of both ESP8266 and DS18B20. The ESP8266 I am going to use is NodeMCU, which has built-in USB and is breadboard-friendly. The DS18B20 I am going to use for now is the non-waterproof which comes without a cable and is much smaller. You could of course use other variants of both.&lt;/p&gt;
&lt;p&gt;These are some of the ESP8266 that you could use:&lt;/p&gt;
&lt;p&gt;&lt;img width="529" height="455" alt="" src="https://aspblogs.blob.core.windows.net:443/media/mikaelsoderstrom/2016/WP_20160308_08_54_47_Pro_LI%20(2).jpg" /&gt;&lt;/p&gt;
&lt;p&gt;And a picture with all of the hardware I am going to use (I&amp;rsquo;m not going to use the DS18B20 with a cable though):&lt;/p&gt;
&lt;p&gt;&lt;img width="942" height="789" alt="" src="https://aspblogs.blob.core.windows.net:443/media/mikaelsoderstrom/2016/WP_20160308_08_57_46_Pro_LI%20(2).jpg" /&gt;&lt;/p&gt;
&lt;h2&gt;Connecting everything&lt;/h2&gt;
&lt;p&gt;If you are using a ESP8266 with built-in USB, you shouldn&amp;rsquo;t have to do that much in this step. If you however are using a ESP8266 without it, you need to connect a couple of wires (I recommend using a USB to TTL cable), and &lt;strong&gt;remember to lower the voltage to 3.3 volts or you may destroy the ESP8266!&lt;/strong&gt; You could use a power source with 3.3 volts for VCC and a Logic Level Converter between TX on the ESP8266 and RX on the USB to TTL cable. If you are using a NodeMCU or another ESP8266 with USB, you don&amp;rsquo;t have to care about that.&lt;/p&gt;
&lt;p&gt;Now it&amp;rsquo;s time to connect the wires. This is how I did it:&lt;/p&gt;
&lt;p&gt;ESP8266 -&amp;gt; DS18B20&lt;br /&gt; VCC -&amp;gt; 3.3 volts&lt;br /&gt; GND -&amp;gt; GND&lt;br /&gt; Data -&amp;gt; D1&lt;/p&gt;
&lt;p&gt;You also have to add a 4k7 ohm pull-up resistor between Data and VCC on the DS18B20.&lt;/p&gt;
&lt;p&gt;And a picture of it:&lt;/p&gt;
&lt;p&gt;&lt;img width="906" height="675" alt="" src="https://aspblogs.blob.core.windows.net:443/media/mikaelsoderstrom/2016/Sketch_bb.png" /&gt;&lt;/p&gt;
&lt;h2&gt;Writing the software&lt;/h2&gt;
&lt;p&gt;Before we can start writing the software, you have to add ESP8266 in the board manager in Arduino IDE. You also have to add DallasTemperature and OneWire from the libraries manager.&lt;/p&gt;
&lt;p&gt;I am attaching the full source code below:&lt;/p&gt;
&lt;p&gt;
&lt;script src="https://gist.github.com/MikaelSoderstrom/20fed0fadb3a2471166b.js"&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;Before you build it, make sure you change the Wifi SSID and password to your own. You should also open the Serial Monitor to get the IP Address used by the ESP8266.&lt;/p&gt;
&lt;p&gt;As you can see in the source code, we have three different levels on temperature (cold, mediumhot and hot). Depending on the temperature, the background colors will change automatically. You could also change that to background images (for example a beach when it&amp;rsquo;s hot, and a snow man when it&amp;rsquo;s really cold J).&lt;/p&gt;
&lt;p&gt;When it&amp;rsquo;s built and I navigate to the IP address on my phone, this is what I get:&lt;/p&gt;
&lt;p&gt;&lt;img width="489" height="870" alt="" src="https://aspblogs.blob.core.windows.net:443/media/mikaelsoderstrom/2016/wp_ss_20160308_0001.png" /&gt;&lt;/p&gt;
&lt;h2&gt;Next step&lt;/h2&gt;
&lt;p&gt;When this is up and running, there are some things we could do. We could for example send the temperature to a Raspberry Pi with a database which is logging the temperature, once per hour. We could also try to get the ESP8266 to sleep mode, which means it will draw much less current, and thereby be able to run on two AA batteries.&lt;/p&gt;
&lt;p&gt;Or maybe add another sensor, such as the DHT22 which is able to measure both temperature and humidity.&lt;/p&gt;
&lt;p&gt;Please let me know in the comments if you have made any improvements! :)&lt;/p&gt;</description><pubDate>Tue, 08 Mar 2016 14:20:19 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/creating-a-temperature-web-server-using-esp8266</guid></item><item><title>Blinking LEDs on Windows 10 IoT Core</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/blinking-leds-on-windows-10-iot-core</link><description>&lt;p&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;With the release of Windows 10 IoT Core, Microsoft released a set of new APIs, such as the ability to control GPIO pins on Raspberry Pi. These can be used both as output and input. In this example we are using them as outputs, to be able to control a set of LEDs on a breadboard.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Software needed:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="list-style-type: disc; direction: ltr;"&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Windows 10 IoT Core&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Visual Studio 2015 RC&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Hardware needed:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="list-style-type: disc; direction: ltr;"&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Raspberry Pi 2&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Four LEDs (red, green, blue and yellow)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Five jumper wires (male-female)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Four 220 ohm resistors (red - red - brown)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;A breadboard&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Ethernet cable&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Micro-SD card&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Before you are able to follow this, you must have installed Windows 10 IoT Core on your Raspberry Pi. You can follow the guide here if you haven&amp;rsquo;t:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;a href="http://ms-iot.github.io/content/win10/SetupRPI.htm"&gt;&lt;span style="color: #0563c1; font-family: Calibri; font-size: medium;" size="3" face="Calibri" color="#0563c1"&gt;http://ms-iot.github.io/content/win10/SetupRPI.htm&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;The first thing we will have to do is to set up the breadboard. Make sure you have disconnected your Raspberry Pi before doing this!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;It should look like this (make sure the long legs are connected to the resistors and the short legs to ground):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Times New Roman; font-size: medium;" size="3" face="Times New Roman"&gt;&lt;img width="574" height="817" alt="" src="https://aspblogs.blob.core.windows.net:443/media/mikaelsoderstrom/2015/Sketch_bb.png" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;You can connect your Raspberry Pi again, but none of the LEDs should be turned on, since the pins are set to Low (0 volts) as default. To turn them on, we will have to set them as High (3.3 volts).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;The reason we use 220 ohm resistors between the Gpio pins and the LEDs is because they will get too much current if we don&amp;rsquo;t. To calculate the current for this sketch, we can use Ohm&amp;rsquo;s law:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Current = Voltage / Resistance&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Current = 3.3 / 220&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Current = 0.015 (15 mA)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Since the LEDs we are using can hold 25-30 mA, this will work great. Using a resistor with less resistance will make the LED brighter, but giving it more than the maximum current will make the LED burn out after a very short while.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Now that we have set up the breadboard we can start Visual Studio.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Since we are going to use the DispatcherTimer class, which runs in the UI thread, we will have to create a &amp;ldquo;Blank App (Windows Universal)&amp;rdquo;, and not &amp;ldquo;Background Application (IoT)&amp;rdquo;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;When the project is created we need to go to &amp;ldquo;Add references&amp;rdquo; and choose Windows Universal &amp;gt; Extensions &amp;gt; Windows IoT Extension SDK. This will make it possible to use the Windows.Devices.Gpio namespace.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;In Mainpage.xaml.cs we will add this code:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;
&lt;script type="text/javascript" src="https://gist.github.com/MikaelSoderstrom/0a1d8c65c556ca23a000.js"&gt;&lt;/script&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;We start by declaring our four LEDs, the timer and an int that will be used in the timer callback function to control which LEDs will be turned on.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;In the constructor, we start our timer and setup all LEDs. When setting up the LEDs, we declare the GPIO pins to use for each led, and set them all as outputs since we want to control either they should get voltage or not. By using them as input, we can use sensors and devices such as photoresistors, memory card readers, temperature sensors etc to send voltage to the pin, which we can read the value from later on. But in this case, the pins are the &amp;ldquo;master&amp;rdquo;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;When our pins are configured, we call the BlinkLeds method every 250 millisecond. Each time we set a new LED to High, or set them all to Low. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span style="font-size: medium;" size="3"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;To deploy (and possibly debug) the code, change the platform target to ARM, and to a Remote Machine. Here you need to set the IP or machine name to your Raspberry Pi. When you have done that, just click on F5 and your project should be deployed and started. &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Wingdings; mso-ansi-language: EN-US; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;This is how it should look like:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;&lt;iframe width="420" height="315" src="https://www.youtube.com/embed/ZO8uqvj0IPs" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;You can download the full project here:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;a href="https://github.com/MikaelSoderstrom/rpi-win10-blinking-leds"&gt;&lt;span style="color: #0563c1; font-family: Calibri; font-size: medium;" size="3" face="Calibri" color="#0563c1"&gt;https://github.com/MikaelSoderstrom/rpi-win10-blinking-leds&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description><pubDate>Tue, 05 May 2015 22:04:46 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/blinking-leds-on-windows-10-iot-core</guid><category>C#</category><category>Windows IoT</category><category>IoT</category><category>Raspberry Pi</category></item><item><title>Use ASP.NET to control the GPIO pins on Raspberry Pi</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/use-asp-net-to-control-the-gpio-pins-on-raspberry-pi</link><description>&lt;h2&gt;&lt;span style="font-family: Times New Roman; font-size: medium;" size="3" face="Times New Roman"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="color: #2e74b5; font-family: Calibri Light; font-size: x-large;" size="5" face="Calibri Light" color="#2e74b5"&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;By using the GPIO pins on Raspberry Pi with ASP.NET, it&amp;rsquo;s possible to measure temperature, humidity, turn LEDs on or off, control robots and much, much more. In this blog post I am going to start with just the basics, how to turn two LEDs on or off by using a simple web page and a REST API running on ASP.NET 5.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;First of all, we need some hardware:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="list-style-type: disc; direction: ltr;"&gt;
&lt;li style="color: #000000; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Raspberry Pi 2 Model B (should work with the older ones, but this is much faster)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Two LEDs (I use red ones, but you could use white, green, blue, purple, UV or whatever you have got with two legs (anode and cathode))&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Two 220 Ohm resistors (red-red-brown)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Breadbord&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 0pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;Five wires (without a breakout board for your Raspberry Pi, I recommend using male-female wires. You could also connect the cathode directly to ground, which in case allows you to use just three wires)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal;"&gt;
&lt;p style="color: #000000; font-family: 'Calibri',sans-serif; font-size: 11pt; font-style: normal; font-weight: normal; margin-top: 0in; margin-bottom: 8pt; mso-list: l0 level1 lfo1;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;A breakout board (not necessary, but makes it much easier! I am not using one here though)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;First of all we need to set everything up. To install ASP.NET 5 on Raspbian, you can follow the steps in &lt;a href="http://www.hanselman.com/blog/HowToRunASPNET5Beta3OrGoLangOnARaspberryPi2.aspx"&gt;Scott Hanselmans blog post&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;The next step is to connect the hardware. &lt;b style="mso-bidi-font-weight: normal;"&gt;Turn you Raspberry Pi off when connecting the wires, by removing the micro USB-cable!&lt;/b&gt; We are going to use Gnd, Pin 23 and Pin 24 from the raspberry. If you are not using a breakout board with labels for the pins, you can find them here (physical pin 16 &amp;amp; 18):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;a href="http://pi.gadgetoid.com/pinout"&gt;&lt;span style="color: #0563c1; font-family: Calibri; font-size: medium;" size="3" face="Calibri" color="#0563c1"&gt;http://pi.gadgetoid.com/pinout&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;You can also see the pins here:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Times New Roman; font-size: medium;" size="3" face="Times New Roman"&gt;&lt;img width="628" height="873" src="data:image/png;base64,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" border="0" v:shapes="_x0000_i1025" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;When connecting the wires, resistors and LEDs, it should look like something like this:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Times New Roman; font-size: medium;" size="3" face="Times New Roman"&gt;&lt;img width="409" height="595" src="data:image/png;base64,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" border="0" v:shapes="_x0000_i1026" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Make sure you connect the anode and cathode correctly!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;When everything is connected like this, we can make sure everything is working by manually turning one of the LEDs on. &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;To do this we will use SSH to connect to the Raspberry Pi and start with this command:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;cd /sys/class/gpio&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;If we then use &amp;ldquo;ls&amp;rdquo; to list all files we will get &lt;b style="mso-bidi-font-weight: normal;"&gt;export&lt;/b&gt;, &lt;b style="mso-bidi-font-weight: normal;"&gt;gpiochip0&lt;/b&gt; and &lt;b style="mso-bidi-font-weight: normal;"&gt;unexport&lt;/b&gt;. The first thing we need to do is to export one of the GPIO pins:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;echo 23 &amp;gt; export&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Running &amp;ldquo;ls&amp;rdquo; again should now list &lt;b style="mso-bidi-font-weight: normal;"&gt;gpio23&lt;/b&gt; as one of the &amp;ldquo;files&amp;ldquo;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;We have now activated that GPIO pin and are able to control it (set the value to HIGH or LOW, depending on if we want voltage to run through the pin or not. Default is LOW).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Since GPIO pins are Input/Output we first need to set the direction of the pin:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;echo out &amp;gt; gpio23/direction&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;And now we can turn the LED on by sending 1 to the value:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;echo 1 &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&amp;gt; gpio23/value&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;It should look like this now:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Times New Roman; font-size: medium;" size="3" face="Times New Roman"&gt;&lt;img width="783" height="441" src="data:image/png;base64,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" border="0" v:shapes="_x0000_i1027" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;If your LED is not turned on, check your wiring again.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 style="margin: 2pt 0in 0pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="color: #2e74b5; font-family: Calibri Light; font-size: large;" size="4" face="Calibri Light" color="#2e74b5"&gt;Control the LEDs using ASP.NET&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Turning the LEDs on using the command line is probably just fine sometimes, but since we have installed ASP.NET on the Raspberry Pi, we can create a web site where the user can click on buttons to turn them on or off.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;To get started the best way is to use one of the libraries available on the web. I have been using Raspberry.IO.GeneralPurpose, which makes it possible to just get started, without having to manually write and read from /sys/class/gpio. You can find the Nuget package here:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;a href="https://www.nuget.org/packages/Raspberry.IO.GeneralPurpose/2.2.0.1"&gt;&lt;span style="color: #0563c1; font-family: Calibri; font-size: medium;" size="3" face="Calibri" color="#0563c1"&gt;https://www.nuget.org/packages/Raspberry.IO.GeneralPurpose/2.2.0.1&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;To get the code I have used with this library, check the Github page:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;a href="https://github.com/MikaelSoderstrom/rpi-aspnet-leds"&gt;&lt;span style="color: #0563c1; font-family: Calibri; font-size: medium;" size="3" face="Calibri" color="#0563c1"&gt;https://github.com/MikaelSoderstrom/rpi-aspnet-leds&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;To clone the package on Raspberry Pi, run:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;git clone &lt;/span&gt;&lt;a href="https://github.com/MikaelSoderstrom/rpi-aspnet-leds.git"&gt;&lt;span style="color: #0563c1; font-family: Calibri; font-size: medium;" size="3" face="Calibri" color="#0563c1"&gt;https://github.com/MikaelSoderstrom/rpi-aspnet-leds.git&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Since we need to be running as sudo to be able to modify the GPIO pins, you should run this command before starting the web site:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;sudo &amp;ndash;s&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;Then you can just run this inside of the project file, where the project.json is located:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;k kestrel&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;And now we are done! Just navigate to &lt;/span&gt;&lt;a href="http://ip.used.by.raspberry.pi:4000/"&gt;&lt;span style="color: #0563c1; font-family: Calibri; font-size: medium;" size="3" face="Calibri" color="#0563c1"&gt;http://ip.used.by.raspberry.pi:4000&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt; and turn the LEDs on. :)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;This is how it should look like:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0in 0in 8pt;"&gt;&lt;span lang="EN-US" style="mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri; font-size: medium;" size="3" face="Calibri"&gt;&lt;iframe width="420" height="315" src="https://www.youtube.com/embed/dI_asHvQ-14" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description><pubDate>Fri, 03 Apr 2015 13:01:35 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/use-asp-net-to-control-the-gpio-pins-on-raspberry-pi</guid><category>ASP.NET</category><category>Raspberry Pi</category><category>Electronics</category></item><item><title>Writing end-to-end tests with Nightmare.js</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/writing-end-to-end-tests-with-nightmare-js</link><description>&lt;p&gt;&lt;strong&gt;&amp;nbsp; Nightmare.js allows you to automate HTTP requests in Node.js, which you can use to download files from sites, check your e-mail, runt integration tests, etc.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The last couple of years, more and more logic have appeared on the client-side of web sites. Thanks to Single Page Applications (SPA) instead of server-side frameworks, we are able to cache views on the client and just get the data from the backend.&lt;/p&gt;
&lt;p&gt;While doing this, it is more important than ever to test our sites in different browsers, versions, devices etc. One popular framework to do this is Karma (&lt;a href="http://karma-runner.github.io/0.12/index.html"&gt;http://karma-runner.github.io/0.12/index.html&lt;/a&gt;), which is created by Google and often used with Angular.js. But sometimes you just want to go to an url, enter some input, click some buttons and make sure the expected result shows up on the web page, and do all this in the background with a headless browser such as PhantomJS (&lt;a href="http://phantomjs.org/"&gt;http://phantomjs.org/&lt;/a&gt;) or SlimerJS (&lt;a href="http://slimerjs.org/"&gt;http://slimerjs.org/&lt;/a&gt;). And since you don&amp;rsquo;t actually see the output, you might want to grab a screenshot while running the tests to make sure it looks correct with the styling.&lt;/p&gt;
&lt;h2&gt;Sweet dreams with Nightmare.js&lt;/h2&gt;
&lt;p&gt;Recently I found a library that works great for these kind of tasks. It&amp;rsquo;s called Nightmare.js (&lt;a href="http://www.nightmarejs.org/"&gt;http://www.nightmarejs.org/&lt;/a&gt;) and is, as it says in the headline, &amp;ldquo;A high level wrapper for Phantomjs&amp;rdquo;. And not just that, the API is absolutely stunning.&lt;br /&gt;The example shown on the start page for Nightmare.js shows us an example of how to do a simple search on Yahoo:&lt;/p&gt;
&lt;pre&gt;new Nightmare()&lt;br /&gt;&amp;nbsp; .goto('http://yahoo.com')&lt;br /&gt;&amp;nbsp; .type('input[title="Search"]', 'github nightmare')&lt;br /&gt;&amp;nbsp; .click('.searchsubmit')&lt;br /&gt;&amp;nbsp; .run();&lt;/pre&gt;
&lt;p&gt;Nightmare.js also allows us to write plugins for common tasks, such as logging in to a site before running the specific logic.&lt;/p&gt;
&lt;p&gt;So, we know what we can do, but when could we actually use this? Some tasks that I can think of where this could be useful could be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Downloading files from a web site.&lt;/li&gt;
&lt;li&gt;Logging in to web shops such as Amazon and get our order information.&lt;/li&gt;
&lt;li&gt;Logging in to the webmail to get the number of unread e-mails.&lt;/li&gt;
&lt;li&gt;Use this to make end-to-end tests.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this article I am going to the the last thing on the list, use this to make some easy tests by using Nightmare.js with Mocha (&lt;a href="http://visionmedia.github.io/mocha/"&gt;http://visionmedia.github.io/mocha/&lt;/a&gt;) and Chai (&lt;a href="http://chaijs.com/"&gt;http://chaijs.com/&lt;/a&gt;).&lt;/p&gt;
&lt;h2&gt;Get the necessary tools&lt;/h2&gt;
&lt;p&gt;To be able to run these tests we need a couple of tools and frameworks.&lt;/p&gt;
&lt;p&gt;First of all, we need to install the latest version of Node.js with npm (&lt;a href="http://nodejs.org/"&gt;http://nodejs.org/&lt;/a&gt;). We also need to install Python 2.7.x (&lt;a href="https://www.python.org/"&gt;https://www.python.org/&lt;/a&gt;). Make sure to install 2.7 and not 3.x since the latter is not officially supported by node-gyp, which is used to compile some components.&lt;/p&gt;
&lt;p&gt;When both Node.js and Python is installed, we start by creating a new npm package inside an empty folder.&lt;/p&gt;
&lt;p&gt;Navigate to an empty folder in your terminal/powershell/command prompt or what you are using. Start by running &lt;strong&gt;npm init&lt;/strong&gt; and click enter until you are done (you don&amp;rsquo;t have to fill in all information yet, you can do that later by editing package.json). You should have an package.json file in your project now, which allows you to save packages and developer dependencies in your package.json.&lt;/p&gt;
&lt;p&gt;The next step is to install Mocha (global), Chai and Nightmare.js.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mocha&lt;/strong&gt; &lt;em&gt;(may require sudo on Linux and Mac OS X since it is a global module)&lt;/em&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;br /&gt;&amp;gt; npm install -g mocha&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chai:&lt;/strong&gt;&lt;br /&gt;&amp;gt; npm install --save-dev chai&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nightmare.js:&lt;/strong&gt;&lt;br /&gt;&amp;gt; npm install --save-dev nightmare&lt;/p&gt;
&lt;p&gt;The next step is to create a test folder with an index.js in it.&lt;/p&gt;
&lt;p&gt;We have all files needed to create the tests, but we need something to test as well. I have prepared a simple web site, which you can download here:&lt;br /&gt;&lt;a href="https://github.com/MikaelSoderstrom/nightmarejs-demo"&gt;https://github.com/MikaelSoderstrom/nightmarejs-demo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Clone the repository and go to the server folder.&lt;/p&gt;
&lt;p&gt;To start the server, run these commands:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;npm install&lt;/li&gt;
&lt;li&gt;node index.js&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should now be able to use your browser to go to &lt;a href="http://localhost:3000"&gt;http://localhost:3000&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Closing the terminal will shutdown the server, so to be able to test this site, you will need to keep that open. The tests should be run in another terminal window.&lt;/p&gt;
&lt;h2&gt;Start the tests&lt;/h2&gt;
&lt;p&gt;You should have everything you need to run the tests now.&lt;/p&gt;
&lt;p&gt;We are going to create three different tests for this web site, using Mocha, Chai and Nightmare.js.&lt;/p&gt;
&lt;p&gt;To make it easier to explain how it works, I will just paste the full tests here:&lt;/p&gt;
&lt;p&gt;
&lt;script type="text/javascript" src="https://gist.github.com/MikaelSoderstrom/4842a97ec399aae1e024.js"&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;Mocha gives us describe() and it(), which contains the tests. By adding &amp;ldquo;done&amp;rdquo; as parameters in the callback function, we can use these tests with asynchronous calls. If we omit that, it will just run the tests without waiting for the result, and always return success.&lt;/p&gt;
&lt;p&gt;With Chai (and &amp;ldquo;should&amp;rdquo;) we can tell the tests that some variable &amp;ldquo;should&amp;rdquo; have the expected value. Chai also contains &amp;ldquo;expect&amp;rdquo; and &amp;ldquo;assert&amp;rdquo;. You can use any of them, you will just have to import the right one in the file.&lt;/p&gt;
&lt;p&gt;And by using Nightmare.js, we can make these simple calls to the url, where we perform some tasks and wait for the result.&lt;/p&gt;
&lt;p&gt;Spinning up a new PhantomJS browser and going through the steps for each task takes a while, and since the standard timeout in Mocha is set to 2000 milliseconds, we have to change that. I have been using 15000 milliseconds here, which seems to be a good number for this test (it takes 8-9 seconds per test on my machine). Because of the time to run all tests, you probably do not want to use this in your normal test runner (like &amp;ldquo;grunt test&amp;rdquo;), but running it from time to time to make sure everything still works or running it from the build server could be a good plan, and you should not use this to do performance tests.&lt;/p&gt;
&lt;p&gt;To run the tests, simply go to the root directory for your tests (where you have your package.json) and type:&lt;/p&gt;
&lt;p&gt;&amp;gt; mocha&lt;/p&gt;
&lt;p&gt;The result should look like this:&lt;/p&gt;
&lt;p&gt;&lt;img width="1207" height="675" style="width: 778px; height: 430px;" alt="" src="https://aspblogs.blob.core.windows.net:443/media/mikaelsoderstrom/2014/mocha.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;That&amp;acute;s it! We are now able to run tests on any website by just entering the url, and doing the tasks needed to get the information we ask for.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The full project used here can be found here:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="https://github.com/MikaelSoderstrom/nightmarejs-demo"&gt;https://github.com/MikaelSoderstrom/nightmarejs-demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description><pubDate>Sun, 19 Oct 2014 08:06:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/writing-end-to-end-tests-with-nightmare-js</guid><category>Node.js</category><category>Testing</category><category>Nightmare.js</category><category>Mocha</category><category>Chai</category><category>Javascript</category></item><item><title>HTML5 Hidden Attribute</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/html5-hidden-attribute</link><description>&lt;p&gt;One of the new &lt;a href="http://www.w3.org/TR/html-markup/global-attributes.html#common.attrs.hidden"&gt;global attributes in HTML5&lt;/a&gt; is the &lt;em&gt;hidden attribute&lt;/em&gt;. It is not the most advanced or revolutionary attribute in HTML5, since all it does is actually to hide the content of the element.&lt;/p&gt;  &lt;p&gt;To use it, all you have to do is to add it to an element, and you can see that the content is gone.&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Hidden attribute&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Hidden attribute&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;I´m visible!&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;hidden&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;I´m invisible!&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;p&gt;&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;img title="screen" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="screen" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/screen_6B260B0C.png" width="783" height="433" /&gt;&lt;/p&gt;

&lt;p&gt;The purpose of this attribute is to tell the browser that its content is irrelevant as it is, but could be used to store elements or information that you might need to use with JavaScript for example.&lt;/p&gt;

&lt;p&gt;Since it is not available in IE 10 and earlier (introduced in IE 11), the attribute will be ignored. To hide it in older browsers, all you have to do is to add some CSS:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    [hidden] {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        display: none;&lt;/pre&gt;

  &lt;pre&gt;    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;This is only going to hide the content as long as CSS is activated and parsed, while browsers with support for the attribute will hide the content whether or not CSS is activated.&lt;/p&gt;</description><pubDate>Thu, 27 Jun 2013 17:30:27 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/html5-hidden-attribute</guid><category>HTML 5</category></item><item><title>How to use nested custom elements with CSS Shaders</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/how-to-use-nested-custom-elements-with-css-shaders</link><description>&lt;p&gt;&lt;b&gt;Last time I wrote about how to use Polymer to create custom elements. This time we will create two custom elements, where one of them is going to use the other to add additional functionality. We will also use CSS Filters and properties unique to this element.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;If you don´t know what Polymer is and how to get it, &lt;a href="http://weblogs.asp.net/mikaelsoderstrom/archive/2013/05/17/create-a-video-player-using-custom-elements.aspx"&gt;please read my last post about it&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;As I demonstrated in the last post, it´s really easy to create a new custom element and use it on your page. An element is not always a simple control though, but can be a collection of different controls. We could add all these controls into one huge element, or we could create smaller components which we will use together in a new element.&lt;/p&gt;  &lt;p&gt;In this post I will create a new element (x-filter) which uses &lt;a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html"&gt;CSS Filters&lt;/a&gt;, and that element will be used in another element (x-choosefilter) which will have a dropdown list where we can choose which filter we want to use. The x-filter element will be able to set the filter on any element we want, so we will need to make it possible to add additional elements inside of it.&lt;/p&gt;  &lt;p&gt;This is how we will use the elements on the page with x-choosefilter:&lt;/p&gt;  &lt;p&gt;&lt;img title="1 - Diagram" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="1 - Diagram" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/1---Diagram_24A291F1.png" width="850" height="204" /&gt;&lt;/p&gt;  &lt;p&gt;Since the x-filter element is just an ordinary element, we will also be able to use that directly on the page.&lt;/p&gt;  &lt;p&gt;The first thing we will have to do here is to create the x-filter element.&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;x-filter&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;attributes&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;filter&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            .grayscale {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: grayscale(100%);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: grayscale(100%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: grayscale(100%);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: grayscale(100%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: grayscale(100%);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .blur {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: blur(3px);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: blur(3px);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: blur(3px);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: blur(3px);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: blur(3px);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .brightness {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: brightness(25%);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: brightness(25%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: brightness(25%);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: brightness(25%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: brightness(25%);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .contrast {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: contrast(50%);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: contrast(50%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: contrast(50%);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: contrast(50%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: contrast(50%);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .dropshadow {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.5));&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.5));&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.5));&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.5));&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.5));&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .huerotate {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: hue-rotate(180deg);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: hue-rotate(180deg);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: hue-rotate(180deg);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: hue-rotate(180deg);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: hue-rotate(180deg);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .invert {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: invert(100%);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: invert(100%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: invert(100%);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: invert(100%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: invert(100%);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .opacity {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: opacity(50%);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: opacity(50%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: opacity(50%);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: opacity(50%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: opacity(50%);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .saturate {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: saturate(1000%);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: saturate(1000%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: saturate(1000%);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: saturate(1000%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: saturate(1000%);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;            .sepia {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -webkit-filter: sepia(100%);&lt;/pre&gt;

  &lt;pre&gt;                -moz-filter: sepia(100%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                -ms-filter: sepia(100%);&lt;/pre&gt;

  &lt;pre&gt;                -o-filter: sepia(100%);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                filter: sepia(100%);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;filter&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;{{ filter }}&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="str"&gt;'use strict'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        Polymer.register(&lt;span class="kwrd"&gt;this&lt;/span&gt;, {&lt;/pre&gt;

  &lt;pre&gt;            filter: &lt;span class="str"&gt;''&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;            setFilter: &lt;span class="kwrd"&gt;function&lt;/span&gt; (test) {&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.$.filter.className = test;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            }&lt;/pre&gt;

  &lt;pre&gt;        });&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;As you can see, we have a couple of CSS classes which uses one filter each. We are not going to implement support for different values for each class in this element, but that is something you could add if you want to. You will just have to change the JavaScript to take care of the value as well. We could also make it possible to sett the filter more dynamically instead of having one class for each, but for this demo I don´t feel that it´s necessary.&lt;/p&gt;

&lt;p&gt;Since we use content element inside of &amp;lt;div id=”filter” …&amp;gt;&amp;lt;/div&amp;gt;, everything we send to the x-filter element will be styled with the filter we have chosed.&lt;/p&gt;

&lt;p&gt;To test this, we will add a new HTML page (index.html):&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;CSS Filters&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;import&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;x-filter.html&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;polymer.min.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;CSS Filters&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;x-filter&lt;/span&gt; &lt;span class="attr"&gt;filter&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;sepia&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;img&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;image.jpg&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;     &lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;x-filter&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;We have added an import link in head, and havet hen added the x-filter element with the filter set to ”sepia” and the content to an image we have. If we open the page now, we will se this:&lt;/p&gt;

&lt;p&gt;&lt;img title="2 - Sepia demo" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="2 - Sepia demo" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/2---Sepia-demo_3612F2C9.png" width="863" height="589" /&gt;&lt;/p&gt;

&lt;p&gt;The image which is just a normal photo, have instead got a sepia filter. At the moment, this demo only works in Chrome (I am using Chrome Canary 29) since CSS Filters isn´t fully implemented in other browsers.&lt;/p&gt;

&lt;p&gt;The next step is to add a dropdownlist where we can use different filters and switch easily. To do this we will create a new HTML page for the new x-choosefilter element.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;x-choosefilter&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;select&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;selectedfilter&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;on-change&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;setfilter&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;None&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;grayscale&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Grayscale&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;blur&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Blur&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;brightness&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Brightness&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;contrast&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Contrast&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;dropshadow&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Drop shadow&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;huerotate&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Hue rotate&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;invert&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Invert&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;opacity&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Opacity&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;saturate&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Saturate&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;sepia&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Sepia&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;option&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;select&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;x-filter&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;xfilter&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;x-filter&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="str"&gt;'use strict'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;        Polymer.register(&lt;span class="kwrd"&gt;this&lt;/span&gt;, {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            filter: &lt;span class="str"&gt;'opacity'&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;            setfilter: &lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.$.xfilter.setFilter(&lt;span class="kwrd"&gt;this&lt;/span&gt;.$.selectedfilter.value);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;        });&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We create this element the same way as before, but we will send the content into the x-filter element from this one. When we change the value for the dropdown list, we call the setFilter(…) method which we created in the x-filter element.&lt;/p&gt;

&lt;p&gt;If we want to use this element, we will have to add an link to index.html, and then add the element. We will still need to have the link to x-filter in index.html.&lt;/p&gt;

&lt;p&gt;The new and improved index.html:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;CSS Filters&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;import&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;x-filter.html&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;import&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;x-choosefilter.html&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;polymer.min.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;CSS Filters&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;x-choosefilter&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;img&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;image.jpg&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;x-choosefilter&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;If we open the page now, we will have the dropdown list where we can change filter.&lt;/p&gt;

&lt;p&gt;&lt;img title="3 - Dropdown" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="3 - Dropdown" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/3---Dropdown_42346CF0.png" width="863" height="589" /&gt;&lt;/p&gt;

&lt;p&gt;We are now able to choose between the different CSS Filters we provide, by simply adding the x-choosefilter element. We can still use x-filter though, and if we add it on the same page after the x-choosefilter element we will see this:&lt;/p&gt;

&lt;p&gt;&lt;img title="4 - Both elements" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="4 - Both elements" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/4---Both-elements_396464A4.png" width="683" height="850" /&gt;&lt;/p&gt;

&lt;p&gt;Since the elements have their own scopes with their own Shadow DOM they don´t affect each other. It means that we can add both this elements to existing web sites without breaking anything.&lt;/p&gt;</description><pubDate>Fri, 24 May 2013 11:49:34 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/how-to-use-nested-custom-elements-with-css-shaders</guid><category>DOM</category><category>HTML 5</category><category>Javascript</category><category>Web Components</category></item><item><title>Create a video player using custom elements</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/create-a-video-player-using-custom-elements</link><description>&lt;h3&gt;Thanks to a new specification from W3C called ”&lt;a href="https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html" mce_href="https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html"&gt;Custom Elements&lt;/a&gt;” we will be able to create our own elements such as &amp;lt;x-stock symbol=”MSFT” /&amp;gt; and use that element as any other element in our browsers, which includes custom styling, custom events, custom APIs etc.&lt;/h3&gt;  &lt;p&gt;I previously blogged about &lt;a href="http://weblogs.asp.net/mikaelsoderstrom/archive/2013/01/21/get-under-the-hood-with-shadow-dom.aspx" mce_href="http://weblogs.asp.net/mikaelsoderstrom/archive/2013/01/21/get-under-the-hood-with-shadow-dom.aspx"&gt;Shadow DOM&lt;/a&gt; where I demonstrated how to use the Developer tools in Google Chrome to get the underlying DOM that is not visible to the user, in this case the video element. This is a great tool to get more understanding about how the element is actually built, and the API makes it possible to create our own Shadow DOM with ”hidden” elements.&lt;/p&gt;  &lt;p&gt;This time we will not inspect the current video element, but instead we will create a new element that is using the video element underneath, while providing separate APIs and menu controls. Since the browser support is very limited so far, I am going to use &lt;a href="http://polymer-project.appspot.com" mce_href="http://polymer-project.appspot.com"&gt;Polymer&lt;/a&gt;, which allows us to use HTML Imports, Custom Elements and Shadow DOM in all major browsers. The library is still in pre-alpha mode and is &lt;b&gt;not&lt;/b&gt; stable enough for production environments, so you should only use this for experimenting for the moment.&lt;/p&gt;  &lt;h2&gt;Get the latest Polymer&lt;/h2&gt;  &lt;p&gt;Polymer is hosted on Github, and if you like me, are using Visual Studio 2012 for web development, you should download Update 2and the Git add-in for Visual Studio 2012. For information and download links, visit Scott Hanselmans blog:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/GitSupportForVisualStudioGitTFSAndVSPutIntoContext.aspx" mce_href="http://www.hanselman.com/blog/GitSupportForVisualStudioGitTFSAndVSPutIntoContext.aspx"&gt;http://www.hanselman.com/blog/GitSupportForVisualStudioGitTFSAndVSPutIntoContext.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When you have downloaded and installed everything you need to open up Visual Studio and clone the repository which you can find at:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;git://github.com/Polymer/polymer.git&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;You should have all files needed now, and will be able to update them later on with just a click. :-)&lt;/p&gt;  &lt;h2&gt;Creating the &amp;lt;x-simplevideo /&amp;gt; element&lt;/h2&gt;  &lt;p&gt;Since we will use HTML Imports to include the custom element, we will need two different HTML files, index.html and x-simplevideo.html.&lt;/p&gt;  &lt;p&gt;Note: You should always prefix your custom elements with ”x-” since you don´t want to risk problems with new elements in the specification further on (for example, we name our element &amp;lt;simplevideo /&amp;gt;, and W3C decides to create their own &amp;lt;simplevideo /&amp;gt; in year 2018).&lt;/p&gt;  &lt;p&gt;This is how our new element will work:&lt;/p&gt;  &lt;p&gt;&lt;img width="732" height="243" title="1 - DIagram" style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="1 - DIagram" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/1---DIagram_77E7959C.png" border="0" mce_src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/1---DIagram_77E7959C.png"&gt;&lt;/p&gt;  &lt;p&gt;The custom element will be included with its own DOM since it´s a separate file. It will include a standard video control though, but we will replace the menu controls with our own menu.&lt;/p&gt;  &lt;p&gt;To get started with the new element we will make it as simple as possible to start with. So let´s start with the X-simplevideo.html.&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="x-simplevideo"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;video&lt;/span&gt; &lt;span class="attr"&gt;controls&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="Big_Buck_Bunny_Trailer_400p.ogg.360p.webm"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;video&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="str"&gt;'use strict'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;        Polymer.register(&lt;span class="kwrd"&gt;this&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The ”element element” specifies our element. The name attribute is what we are going to use in the parent site (&amp;lt;x-simplevideo /&amp;gt;). We are also going to add some other attributes here later. The next element is the template element. It contains what is going to be rendered by the browser, but since it´s part of our x-simplevideo element, it will be hidden in the Shadow DOM. The script tags outside of the template will never be rendered, and will only be used by our own element.&lt;/p&gt;

&lt;p&gt;Since we need to use the Polymer polyfill to use all these new specifications, we will need to register our element.&lt;/p&gt;

&lt;p&gt;The next step is to actually use the element on index.html. &lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;SuperVideo&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="polymer.min.js"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;="import"&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;="x-simplevideo.html"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Simplevideo test&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;x-simplevideo&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;First of all we need to import our element in the head of the page. As soon as it´s imported, we can start using it.&lt;/p&gt;

&lt;p&gt;If we open the page now, we will see this:&lt;/p&gt;

&lt;p&gt;&lt;img width="879" height="605" title="2 - First video" style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="2 - First video" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/2---First-video_0238B9FD.png" border="0" mce_src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/2---First-video_0238B9FD.png"&gt;&lt;/p&gt;

&lt;p&gt;And if we take a look at the DOM in Developer tools, we can see that there is no trace of our original video element, but only the custom element we created.&lt;/p&gt;

&lt;p&gt;&lt;img width="666" height="207" title="3 - Developer tools" style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="3 - Developer tools" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/3---Developer-tools_1C2C7A1F.png" border="0" mce_src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/3---Developer-tools_1C2C7A1F.png"&gt;&lt;/p&gt;

&lt;h2&gt;Make it customizable with attributes&lt;/h2&gt;

&lt;p&gt;Our new videoplayer is a new element which can play a single video, nothing special about that. The next step is to make it more customizable, so the user of our new element can choose which video to play, and also change the width and height of the player.&lt;/p&gt;

&lt;p&gt;The first thing we need to do is to add support for these new attributes:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="x-simplevideo"&lt;/span&gt; &lt;span class="attr"&gt;attributes&lt;/span&gt;&lt;span class="kwrd"&gt;="src width height"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;And now we need to register them so we can use them either by using JavaScript or by binding them directly to our videoplayer.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;Polymer.register(&lt;span class="kwrd"&gt;this&lt;/span&gt;, {&lt;/pre&gt;

  &lt;pre&gt;    src: &lt;span class="str"&gt;''&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;    width: &lt;span class="str"&gt;'480'&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;    height: &lt;span class="str"&gt;'400'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;As you can see we have some standard values in case the user didn´t specify them. The last step is to bind these attributes to the videoplayer.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;video&lt;/span&gt; &lt;span class="attr"&gt;controls&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="{{src}}"&lt;/span&gt; &lt;span class="attr"&gt;width&lt;/span&gt;&lt;span class="kwrd"&gt;="{{width}}"&lt;/span&gt; &lt;span class="attr"&gt;height&lt;/span&gt;&lt;span class="kwrd"&gt;="{{height}}"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;video&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Now when we use the player in index.html, we can specify these three attributes.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;x-simplevideo&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="Big_Buck_Bunny_Trailer_400p.ogg.360p.webm"&lt;/span&gt; &lt;span class="attr"&gt;width&lt;/span&gt;&lt;span class="kwrd"&gt;="500"&lt;/span&gt; &lt;span class="attr"&gt;height&lt;/span&gt;&lt;span class="kwrd"&gt;="300"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;If we play the video again, it is playing the same video, but has changed size to 500x300 pixels.&lt;/p&gt;

&lt;h2&gt;Add custom menu controls&lt;/h2&gt;

&lt;p&gt;What we have now is still the standard video control, but what we want is to use our own menu control instead of the original one. To do this, we first need to remove the controls attribute from the video element. Now we will add a really simple menu with play, pause and a timeline.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="x-simplevideo"&lt;/span&gt; &lt;span class="attr"&gt;attributes&lt;/span&gt;&lt;span class="kwrd"&gt;="src width height"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt; &lt;span class="attr"&gt;scoped&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            div {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                display: inline-block;&lt;/pre&gt;

  &lt;pre&gt;                position: relative;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            }&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;            nav {&lt;/pre&gt;

  &lt;pre&gt;                background: rgba(0, 187, 255, 0.5);&lt;/pre&gt;

  &lt;pre class="alt"&gt;                top: 0;&lt;/pre&gt;

  &lt;pre&gt;                opacity: 0.1;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                position: absolute;&lt;/pre&gt;

  &lt;pre&gt;                transition: all 0.5s;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                width: 100%;&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;            video:hover ~ nav, nav:hover {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                opacity: 1;&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;video&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="{{src}}"&lt;/span&gt; &lt;span class="attr"&gt;width&lt;/span&gt;&lt;span class="kwrd"&gt;="{{width}}"&lt;/span&gt; &lt;span class="attr"&gt;height&lt;/span&gt;&lt;span class="kwrd"&gt;="{{height}}"&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="video"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;video&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;nav&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="button"&lt;/span&gt; &lt;span class="attr"&gt;on-click&lt;/span&gt;&lt;span class="kwrd"&gt;="playVideo"&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;="Play"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="button"&lt;/span&gt; &lt;span class="attr"&gt;on-click&lt;/span&gt;&lt;span class="kwrd"&gt;="pauseVideo"&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;="Pause"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="range"&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="timeline"&lt;/span&gt; &lt;span class="attr"&gt;max&lt;/span&gt;&lt;span class="kwrd"&gt;="{{videoDuration}}"&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;="{{currentTime}}"&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="timeline"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;nav&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="str"&gt;'use strict'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;        Polymer.register(&lt;span class="kwrd"&gt;this&lt;/span&gt;, {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            src: &lt;span class="str"&gt;''&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;            width: &lt;span class="str"&gt;'480'&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;            height: &lt;span class="str"&gt;'400'&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;            videoDuration: 0,&lt;/pre&gt;

  &lt;pre class="alt"&gt;            currentTime: 0,&lt;/pre&gt;

  &lt;pre&gt;            playVideo: &lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.$.video.play();&lt;/pre&gt;

  &lt;pre&gt;            },&lt;/pre&gt;

  &lt;pre class="alt"&gt;            pauseVideo: &lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.$.video.pause();&lt;/pre&gt;

  &lt;pre class="alt"&gt;            },&lt;/pre&gt;

  &lt;pre&gt;            srcChanged: &lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;

  &lt;pre class="alt"&gt;                (&lt;span class="kwrd"&gt;function&lt;/span&gt; (scope, video) {&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;                    scope.$.video.addEventListener(&lt;span class="str"&gt;'canplay'&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;

  &lt;pre&gt;                        scope.videoDuration = scope.$.video.duration;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                    });&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;                    scope.$.video.addEventListener(&lt;span class="str"&gt;'timeupdate'&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;

  &lt;pre&gt;                        scope.currentTime = video.currentTime;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                    });&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;                })(&lt;span class="kwrd"&gt;this&lt;/span&gt;, &lt;span class="kwrd"&gt;this&lt;/span&gt;.$.video);&lt;/pre&gt;

  &lt;pre&gt;            }&lt;/pre&gt;

  &lt;pre class="alt"&gt;        });&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Some new things have happened now. First, we have added styling for the menu element. Then we have added and id to the video element so we can use it with the Polymer API. The video element is now encapsulated inside a div together with the nav element which is used as menu control. Last, we have added new properties for duration and current time, and some functions that we use for play, pause and to update the properties when the video src is updated.&lt;/p&gt;

&lt;p&gt;For the play and pause buttons, on-click attributes are added. These are used by Polymer to bind the click event to functions specified in Polymer.register().&lt;/p&gt;

&lt;p&gt;All properties registered in Polymer is having observers, such as srcChanged, which will listen for changes in that specific property. When the value changes, we update videoDuration and currentTime, which will reflect the changes to our menu control automatically.&lt;/p&gt;

&lt;p&gt;We have also binded videoDuration to our range element, so the value will be updated while we are playing the movie, and also let us go back and forward in the video.&lt;/p&gt;

&lt;p&gt;If we reload the page with these changes and play the video, we will now get this:&lt;/p&gt;

&lt;p&gt;&lt;img width="537" height="379" title="4 - Menu control" style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="4 - Menu control" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/4---Menu-control_7FAF883E.png" border="0" mce_src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/4---Menu-control_7FAF883E.png"&gt;&lt;/p&gt;

&lt;p&gt;It´s not the most elegant video player, but it was easy to create, and even more easier to reuse. All we have to do is to import the x-simplevideo element and add the element on our page. All HTML, CSS and JavaScript will be used only in that specific element, so it´s really simple to distribute these components to other sites. If we open Developer tools, we can see that we still only have our x-simplevideo element in the DOM, while the rest is hidden in the Shadow DOM.&lt;/p&gt;</description><pubDate>Fri, 17 May 2013 09:14:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/create-a-video-player-using-custom-elements</guid><category>DOM</category><category>HTML 5</category><category>Javascript</category><category>Web Components</category></item><item><title>CustomEvent in DOM Level 3 and DOM Level 4</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/customevent-in-dom-level-3-and-dom-level-4</link><description>&lt;p&gt;In &lt;a href="http://www.w3.org/TR/DOM-Level-3-Events/#events-CustomEvent"&gt;DOM Level 3 Events&lt;/a&gt;, a new type of events, CustomEvent, is available. It extends the ordinary Event with a new &lt;em&gt;detail&lt;/em&gt; property which you can use to provide extra information. With this new method you are able to create new types of events that you can use in your application.&lt;/p&gt;  &lt;p&gt;To use the event, you use addEventListener, just as you do with click, mouseover, load etc. But instead of using those events that you are used to, you can name your event whatever you want, and then add a listener to any element on your page.&lt;/p&gt;  &lt;p&gt;To start with, we need to have a web page:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Lab - CustomEvent&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;CustomEvent&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Lorem ipsum...&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;button&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;magic&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Click me!&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;scripts/customevents.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;



&lt;p&gt;The idea is that when we click on the button, I want to trigger a custom event that I have created, and which the div element (#content) is listening to.&lt;/p&gt;

&lt;p&gt;The first thing we need now is to create the CustomEvent.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; customEvent = &lt;span class="kwrd"&gt;new&lt;/span&gt; CustomEvent(&lt;span class="str"&gt;'doMagic'&lt;/span&gt;, {&lt;/pre&gt;

  &lt;pre&gt;    detail: {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        message: &lt;span class="str"&gt;'Click #'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;



&lt;p&gt;customEvent is now a new instance of CustomEvent, which we can add listeners for. When the event is triggered, it will automatically call all event listeners and send not just the normal properties, it will also send detail.message in this case. The detail property is just a normal object, so we can add all data we think is useful there.&lt;/p&gt;

&lt;p&gt;The next step is to listen for changes, so we will add a new listener to the content element.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; contentBox = document.getElementById(&lt;span class="str"&gt;'content'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; count = 0;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;contentBox.addEventListener(&lt;span class="str"&gt;'doMagic'&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; (e) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;    count++;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;this&lt;/span&gt;.textContent = e.detail.message + count;&lt;/pre&gt;

  &lt;pre class="alt"&gt;}, &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Nothing strange here. When we trigger the doMagic event, we want to execute the function in the event listener, which will change the textContent in our div to the message that was sent to us, and apply the number of calls to the method.&lt;/p&gt;

&lt;p&gt;The last step is to actually trigger the event.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; magicButton = document.getElementById(&lt;span class="str"&gt;'magic'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;magicButton.addEventListener(&lt;span class="str"&gt;'click'&lt;/span&gt;, &lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;

  &lt;pre&gt;    contentBox.dispatchEvent(customEvent);&lt;/pre&gt;

  &lt;pre class="alt"&gt;}, &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;



&lt;p&gt;I am listening for clicks on the button, and then trigger doMagic using the dispatchEvent method and send in the reference to the CustomEvent.&lt;/p&gt;

&lt;p&gt;Custom events like this can be really useful, for example when building different controls where the developer using your control should be able to listen for specific changes, like folding out a dropdown menu. Libraries such as jQuery has this functionality built in already, but now you can listen for events in a standardized way using almost no extra code at all.&lt;/p&gt;

&lt;p&gt;So what about browser compatibility? Actually, almost all modern browsers supports everything here (Chrome 15, Firefox 11, Opera 11.60 and Nightly builds of Safari according to MDN). IE 9 supports everything except from the use of the constructor, which is part of DOM Events Level 4. Take a look at the MSDN page for more information about support in IE. If you use the functionality as specified in the DOM Events Level 3 specification, all major browsers will be able to run your code.&lt;/p&gt;

&lt;p&gt;You can find more info about this at:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.w3.org/TR/DOM-Level-3-Events/#interface-CustomEvent"&gt;W3C Dom Level 3 Specification&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="https://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-customevent"&gt;W3C DOM Level 4 Specification&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ie/ff975299(v=vs.85).aspx"&gt;Microsoft Developer Network (MSDN)&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/DOM/Event/CustomEvent"&gt;Mozilla Developer Network (MDN)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Fri, 01 Feb 2013 22:19:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/customevent-in-dom-level-3-and-dom-level-4</guid><category>DOM</category><category>HTML 5</category><category>Javascript</category></item><item><title>The new &lt;main&gt; element in HTML 5.1</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/the-new-lt-main-gt-element-in-html-5-1</link><description>&lt;p&gt;In the upcoming specification for HTML 5.1, a new semantic element will be introduced, the &amp;lt;main&amp;gt; element.&lt;/p&gt;  &lt;p&gt;When developing web sites using HTML5 you might be using the new semantic elements such as &amp;lt;article&amp;gt;, &amp;lt;section&amp;gt;, &amp;lt;aside&amp;gt;, &amp;lt;nav&amp;gt; etc. They are great for marking different sections of your content, but none of them is telling the user which content is specific for the current page.&lt;/p&gt;  &lt;p&gt;Let´s say your layout looks like this:&lt;/p&gt;  &lt;p&gt;&lt;img title="1 - Layout" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="1 - Layout" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/1---Layout_7E065CE1.png" width="360" height="219" /&gt;&lt;/p&gt;  &lt;p&gt;The content in the “main container” is what is unique for that page. The header and the context boxes on the right are static and will look the same on all pages.&lt;/p&gt;  &lt;p&gt;The markup for this page might look like something like this:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;My awesome site!&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;header&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;My awesome site&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;header&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;main&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;role&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;main&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;article&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;&amp;lt;!-- Markup for the article --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;article&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="rem"&gt;&amp;lt;!-- Comments --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="rem"&gt;&amp;lt;!-- Content boxes with addition information --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;footer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        Copyright &lt;span class="attr"&gt;&amp;amp;copy;&lt;/span&gt; 2013 Foo Bar Inc, all rights reserved.&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;footer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Here we use the div element to mark our main content. We also have the main role for accessibility purposes.&lt;/p&gt;

&lt;p&gt;But instead of using this div element, HTML 5.1 will allow us to use the main element, which will look like this:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;My awesome site!&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;header&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;My awesome site&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;header&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;main&lt;/span&gt; &lt;span class="attr"&gt;role&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;main&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;article&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;&amp;lt;!-- Markup for the article --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;article&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="rem"&gt;&amp;lt;!-- Comments --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;main&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="rem"&gt;&amp;lt;!-- Content boxes with addition information --&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;section&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;footer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        Copyright &lt;span class="attr"&gt;&amp;amp;copy;&lt;/span&gt; 2013 Foo Bar Inc, all rights reserved.&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;footer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;It looks almost the same, but we use the main element instead of the div, which gives us more semantic HTML. Since no user agents supports the main element yet, we should still have the role attribute set to main. When more user agents supports this element we could skip this though.&lt;/p&gt;

&lt;p&gt;There are some important things you as a developer must know about this element though:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;You can only have &lt;strong&gt;one&lt;/strong&gt; main element on each page.&lt;/li&gt;

  &lt;li&gt;You &lt;strong&gt;must only&lt;/strong&gt; use it for the page specific content. Don´t use it for your page header for example.&lt;/li&gt;

  &lt;li&gt;You &lt;strong&gt;must not&lt;/strong&gt; use the main element as a child of an article, aside, footer, header or nav element.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Except from these cases, you are good to go! Since all modern web browsers will ignore this element, you can actually use it today. To be able to style it in IE 8 or earlier, you will have to create the element using JavaScript.&lt;/p&gt;</description><pubDate>Sun, 27 Jan 2013 22:47:35 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/the-new-lt-main-gt-element-in-html-5-1</guid><category>HTML 5</category><category>HTML 5.1</category></item><item><title>Get under the hood with Shadow DOM</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/get-under-the-hood-with-shadow-dom</link><description>&lt;p&gt;When you add an element to your page, it is being added to the Document Object Model (DOM). When added to the DOM, you can use CSS to style it or JavaScript (getElementById, querySelector etc) to get a reference to the element and modify it. There are some cases where this isn´t true though.&lt;/p&gt;  &lt;p&gt;Let´s say we want to add a video player to our site. We use the standard &amp;lt;video&amp;gt; element, choose which movie to play and start it. Here we have a standard element doing what it´s supposed to do. But what if we add the &lt;a href="http://www.w3.org/wiki/HTML/Elements/video#HTML_Attributes"&gt;controls attribute&lt;/a&gt;?&lt;/p&gt;  &lt;p&gt;This is what we see in the browser if we are using Internet Explorer 10:&lt;/p&gt;  &lt;p&gt;&lt;img title="1 - video" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="1 - video" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/1---video_4F5E1190.png" width="484" height="274" /&gt;&lt;/p&gt;  &lt;p&gt;We have got some controls here as expected since we added the controls attribute. BUT..! Where are they in the DOM? If we take a look at the Developer Tools in IE 10 we will see this:&lt;/p&gt;  &lt;p&gt;&lt;img title="2 - dev tools" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="2 - dev tools" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/2---dev-tools_6C1786A5.png" width="485" height="261" /&gt;&lt;/p&gt;  &lt;p&gt;As we can see in the picture above, there are no elements for the play/pause button, the time slider or the other elements. So where are they?&lt;/p&gt;  &lt;p&gt;The answer to that question is the &lt;strong&gt;Shadow DOM&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;To make it easier to explain how it works I have created this diagram with the current DOM:&lt;/p&gt;  &lt;p&gt;&lt;img title="3 - diagram" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="3 - diagram" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/3---diagram_39478031.png" width="503" height="433" /&gt;&lt;/p&gt;  &lt;p&gt;The blue elements are what we can see in the DOM through Developer Tools, and the green elements are what is hidden in the Shadow DOM.&lt;/p&gt;  &lt;h1&gt;So…&lt;/h1&gt;  &lt;p&gt;Okay, so there is this thing Shadow DOM… But… What does it matter to me as a web developer? If it´s hidden, why would I care about it?&lt;/p&gt;  &lt;p&gt;Thanks to a new specification on W3C, called &lt;a href="https://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html"&gt;Web Components&lt;/a&gt;, we can actually use Shadow DOM to create components that will be visible for the user, but rendered separately from the rest of the page. This means we can use HTML, CSS and JavaScript that is rendered independently from what is being rendered for the rest of the page.&lt;/p&gt;  &lt;p&gt;At the moment, there is only one browser that supports Web Components, and that is Chrome Canary (Chrome 25), so I will be using it for the demos.&lt;/p&gt;  &lt;h1&gt;Creating a Shadow Host using JavaScript&lt;/h1&gt;  &lt;p&gt;First of all we will need to create a new HTML document. I have created a very simple one which looks like this:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Creating a Shadow Host using JavaScript&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            p { color: #0a0; }&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        Shadow DOM&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;This is rendered outside of our Shadow DOM.&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;shadowhost&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The div element with id “shadowhost” will be the host for our Shadow DOM Tree. The first we will have to do is to create a new Shadow DOM based on that element using JavaScript.&lt;/p&gt;

&lt;p&gt;Let´s add these three lines of JavaScript:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; el = document.querySelector(&lt;span class="str"&gt;'#shadowhost'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; root = el.webkitCreateShadowRoot();&lt;/pre&gt;

  &lt;pre class="alt"&gt;root.innerHTML = &lt;span class="str"&gt;'&amp;lt;p&amp;gt;Rendered inside of our Shadow DOM!&amp;lt;/p&amp;gt;'&lt;/span&gt;;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The first thing we are doing here is to get a reference of the div element which will be the host. After that we use the webkitCreateShadowRoot method (&lt;em&gt;when more browsers have support for this you will of course have to use their vendor specific prefixes as well, but for the moment I will only use webkit to save some lines&lt;/em&gt;). The next step is to add a p element to the div.&lt;/p&gt;

&lt;p&gt;This is no rocket science, and you have probably used the code before (except from the second line). But it is the second line which is creating the magic.&lt;/p&gt;

&lt;p&gt;If we take a look at the page in Chrome Canary, we will get this result:&lt;/p&gt;

&lt;p&gt;&lt;img title="4 - Chrome" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="4 - Chrome" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/4---Chrome_7CAF8193.png" width="771" height="485" /&gt;&lt;/p&gt;

&lt;p&gt;Whoa! Two things are different from how we are used to see things when we are adding elements.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;We added a p element, and we have CSS that is supposed to make the text green, as in the first p element on the page.&lt;/li&gt;

  &lt;li&gt;Our shadowhost is still empty! Where is the p element we added and which is apparently added to the page?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;First of all, the text is black since our shadow tree is like a whole new document, as if we would have added an iframe. The difference here is that it is on the same page. It is in other words not affected by the surrounding DOM.&lt;/p&gt;

&lt;p&gt;And the reason to why we can´t see the element in the DOM is because there are no elements in the DOM, since they are in the Shadow DOM.&lt;/p&gt;

&lt;h1&gt;Light up the Shadow DOM&lt;/h1&gt;

&lt;p&gt;In Chrome Developer Tools, there is actually possible to show the Shadow DOM. If we go to settings –&amp;gt; General and active “Show Shadow DOM” we will be able to see what´s inside of the Shadow DOM.&lt;/p&gt;

&lt;p&gt;And what about the CSS? You might want the developer using your component to be able to style the elements inside of your Shadow DOM. This is actually possible by enabling applyAuthorStyles for the root variable:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;root.applyAuthorStyles = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;



&lt;p&gt;With “Show Shadow DOM” enabled in the Developer Tools, and applyAuthorStyles set to true, we will get this result:&lt;/p&gt;

&lt;p&gt;&lt;img title="5 - Chrome" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="5 - Chrome" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/5---Chrome_57B1C11A.png" width="771" height="485" /&gt;&lt;/p&gt;

&lt;p&gt;Great! We are now able to add elements that are not (usually) visible in the DOM Tree, and we can choose whether or not our elements will be affected by the styles set by the developer who will be using our component.&lt;/p&gt;

&lt;h1&gt;Create a separate HTML file for the component&lt;/h1&gt;

&lt;p&gt;So far, we have been using pure JavaScript and an empty element on the page for our component. But this isn´t probably the most usable way to use it all times. Sometimes you would want to create a separate HTML file for the component which contains all styles, data etc that you would want to use for your component, and later on give the user of your component the ability to add it to their page for a better experience.&lt;/p&gt;

&lt;p&gt;The next step here is to create an entirely new HTML page. In this page we will use some new elements; &amp;lt;element&amp;gt;, &amp;lt;template&amp;gt; and &amp;lt;content&amp;gt;, as well as some new attributes to use with them.&lt;/p&gt;

&lt;p&gt;But first of all we have to create the document which will be visible for the user, where we will use the component:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Shadow DOM&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;components&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;vip-component.html&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Persons&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h1&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt; &lt;span class="attr"&gt;is&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;vips&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;vip&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Mikael Söderström&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Boris Jeltsin&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Julius Caesar&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;vip&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Bill Gates&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;scripts/components-polyfill.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We have a list with people here, and on two of them we have the vip class (hrm ;-)). In the head you can see something different though. We have a link element that references to a vip-component.html as “components”. In the vip-component.html page we will use markup to create our Shadow DOM, and then apply it on the list. Since all features aren´t implemented in the browser yet, we will have to include a polyfill as well.&lt;/p&gt;

&lt;p&gt;You can download the polyfill here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dglazkov/Web-Components-Polyfill"&gt;https://github.com/dglazkov/Web-Components-Polyfill&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we open the page we will see nothing but a list with names, so the next step is to create the vip-component.html page which will look like this:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;charset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;utf-8&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;vips&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;extends&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ul&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;VIP&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt; &lt;span class="attr"&gt;select&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;.vip&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Other people&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;template&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;element&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;



&lt;p&gt;It looks like an ordinary HTML page, but we are using some new elements that is supported by the Web Components API.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&amp;lt;element&amp;gt; is the name of our new element, and in this case we are extending the existing ul element. We could create a whole new &amp;lt;vip&amp;gt; element if we want to.&lt;/li&gt;

  &lt;li&gt;&amp;lt;template&amp;gt; tolds the browser that this is the template which will be rendered in the Shadow DOM.&lt;/li&gt;

  &lt;li&gt;&amp;lt;content&amp;gt; is where the markup will be placed from the original DOM. The select attribute uses ordinare CSS selectors, and in the first content element we want the users who have the class “vip”, and in the other content element we will have the rest.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To test this, I disabled “Show Shadow DOM” in the Chrome Developer Tools and reloaded the page. This is what I got:&lt;/p&gt;

&lt;p&gt;&lt;img title="6 - Chrome" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="6 - Chrome" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/6---Chrome_36BE4E73.png" width="767" height="650" /&gt;&lt;/p&gt;

&lt;p&gt;If we look at the DOM, we still have the original one as before, but if we look at the page, we can see that we have the grouping and headers from our Web Component!&lt;/p&gt;

&lt;h1&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;Web Components are extremely useful in a lot of cases where you want to separate your components into other files, and at the same time let them be isolated from CSS in your original page.&lt;/p&gt;

&lt;p&gt;I&amp;#160; just demonstrated the basics here, but if you want to go one step further, you could add JavaScript methods in your component, that the original page can call to modify your Shadow DOM, like the play() method on the video element. You can also add your own pseudo classes to the CSS for your element, like ul:vip-header { color: #0f0; } in this case.&lt;/p&gt;

&lt;p&gt;Have you used Web Components and perhaps have any cool demos? Please let me know!&lt;/p&gt;</description><pubDate>Mon, 21 Jan 2013 19:57:24 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/get-under-the-hood-with-shadow-dom</guid><category>HTML 5</category><category>Javascript</category></item><item><title>Declarative helpers in Razor</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/declarative-helpers-in-razor</link><description>&lt;p&gt;ASP.NET Web Pages Beta 1 have support for Helpers, which are methods written in C# or Visual Basic, and returns IHtmlString. They can return HTML that is displayed on the page. If you choose to create helpers that way, you would need to have your HTML in an assembly, which makes it different to modify. Because of that, the new version of Razor supports declarative Helpers that you can create directly on the page. They work in both ASP.NET MVC 3 Beta and ASP.NET Web Pages Beta 2, which is included in WebMatrix.&lt;/p&gt;  &lt;p&gt;A declarative helper is created the same way as a method, but instead of having a return type, you set ”helper”.&lt;/p&gt;  &lt;p&gt;Let´s say you have this code:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;@{&lt;/pre&gt;

  &lt;pre&gt;    var text = &lt;span class="str"&gt;&amp;quot;Hello, world!&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &amp;lt;p&amp;gt;@text&amp;lt;/p&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We want to refactor it into its own method to be able to reuse it. We can do it using a declative helper, like this:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;@helper SayHello(&lt;span class="kwrd"&gt;string&lt;/span&gt; yadda)&lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &amp;lt;p&amp;gt;Text: @yadda&amp;lt;/p&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;And if you want to use it:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;@SayHello(&lt;span class="str"&gt;&amp;quot;Hello, world!&amp;quot;&lt;/span&gt;)&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We can also add code in the helper, such as:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;@helper Calculator(&lt;span class="kwrd"&gt;int&lt;/span&gt; a, &lt;span class="kwrd"&gt;int&lt;/span&gt; b)&lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    @{&lt;/pre&gt;

  &lt;pre&gt;        var sum = a + b;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;    &lt;/pre&gt;

  &lt;pre class="alt"&gt;    &amp;lt;b&amp;gt;@sum&amp;lt;/b&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;And to display the result, we use:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;1 + 2 = @Calculator(1, 2)&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;It will display ”3” on the page, which is the sum of the numbers.&lt;/p&gt;

&lt;p&gt;To go one step further and make it even more dynamic, we can use Lambda Expressions for the helper. If we want to be able to change how to count the result, we could use this instead:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;@helper Calc(&lt;span class="kwrd"&gt;int&lt;/span&gt; a, &lt;span class="kwrd"&gt;int&lt;/span&gt; b, Func&amp;lt;&lt;span class="kwrd"&gt;int&lt;/span&gt;, &lt;span class="kwrd"&gt;int&lt;/span&gt;, &lt;span class="kwrd"&gt;int&lt;/span&gt;&amp;gt; calc)&lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    @{&lt;/pre&gt;

  &lt;pre&gt;        var sum = calc(a, b);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;    &amp;lt;p&amp;gt;@sum&amp;lt;/p&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;And if we want to multiply the letters, we use the helper this way:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;@Calc(4, 4, (a, b) =&amp;gt; a * b)&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We can actually create really advanced helpers directly on the page. This is for those who are using ASP.NET Web Pages, but it can also be used in ASP.NET MVC 3 Beta.&lt;/p&gt;</description><pubDate>Wed, 06 Oct 2010 20:02:18 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/declarative-helpers-in-razor</guid><category>ASP.NET MVC 3</category><category>ASP.NET Web Pages</category><category>Razor</category><category>Visual Studio 2010</category><category>WebMatrix</category></item><item><title>Unobtrusive validation in ASP.NET MVC 3</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/unobtrusive-validation-in-asp-net-mvc-3</link><description>&lt;p&gt;In ASP.NET MVC 2 we got support for client validation of the model. When we activate it, a JavaScript is generated and added to the rendered view. It contains all validation rules we set up for the model, and are used to generate error massages without reloading the page.&lt;/p&gt;  &lt;p&gt;I ASP.NET MVC 3 they have extended that support. Instead of generating a JavaScript, you can now use ”unobtrusive Jquery validation”, which uses the data-* attribute in HTML5 instead of using JavaScript.&lt;/p&gt;  &lt;p&gt;To activate it on the page you can add this:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;@Html.EnableUnobtrusiveJavaScript()&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;And to activate it on all pages, you can add a key to web.config:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;UnobtrusiveJavaScriptEnabled&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;New ASP.NET MVC 3 Beta projects will have this enabled as default, and upgraded projects will not have it activated as default to make sure it is backwards compatible.&lt;/p&gt;

&lt;p&gt;To use this new validation, you will have to add references to jquery-1.4.1.js, jquery.validate.js and jquery.validate.unobtrusive.js.&lt;/p&gt;

&lt;p&gt;To test this, I have a model, ”Customer”, which looks like this:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ComponentModel.DataAnnotations;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; MyMvc3Site.Models&lt;/pre&gt;

  &lt;pre class="alt"&gt;{&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Customer&lt;/pre&gt;

  &lt;pre class="alt"&gt;    {&lt;/pre&gt;

  &lt;pre&gt;        [Required]&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; CustomerId { get; set; }&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        [Required]&lt;/pre&gt;

  &lt;pre&gt;        [StringLength(5)]&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Name { get; set; }&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        [Required]&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DateTime Birthday { get; set; }&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;In the view, I have this:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;@model MyMvc3Site.Models.Customer&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;@{&lt;/pre&gt;

  &lt;pre&gt;    View.Title = &amp;quot;Create&amp;quot;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Create&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;h2&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;@using (Html.BeginForm()) {&lt;/pre&gt;

  &lt;pre&gt;    @Html.ValidationSummary(true)&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;fieldset&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;legend&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Fields&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;legend&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            @Html.LabelFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.CustomerId)&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            @Html.TextBoxFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.CustomerId)&lt;/pre&gt;

  &lt;pre&gt;            @Html.ValidationMessageFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.CustomerId)&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            @Html.LabelFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.Name)&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            @Html.TextBoxFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.Name)&lt;/pre&gt;

  &lt;pre&gt;            @Html.ValidationMessageFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.Name)&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            @Html.LabelFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.Birthday)&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            @Html.TextBoxFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.Birthday)&lt;/pre&gt;

  &lt;pre&gt;            @Html.ValidationMessageFor(model =&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; model.Birthday)&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Create&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;fieldset&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Without unobtrusive jQuery validation, we will get this in the view:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;action&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;/Customer/Create&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;form0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;method&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;validation-summary-valid&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;validationSummary&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;display:none&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;fieldset&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;legend&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Fields&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;legend&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CustomerId&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;CustomerId&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CustomerId&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CustomerId&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;field-validation-valid&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CustomerId_validationMessage&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Name&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Name&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Name&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Name&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;field-validation-valid&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Name_validationMessage&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Birthday&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Birthday&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Birthday&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Birthday&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;field-validation-valid&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Birthday_validationMessage&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Create&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;fieldset&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="rem"&gt;//&amp;lt;![CDATA[&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }&lt;/pre&gt;

  &lt;pre&gt;window.mvcClientValidationMetadata.push({&lt;span class="str"&gt;&amp;quot;Fields&amp;quot;&lt;/span&gt;:[{&lt;span class="str"&gt;&amp;quot;FieldName&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;CustomerId&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="str"&gt;&amp;quot;ReplaceValidationMessageContents&amp;quot;&lt;/span&gt;:&lt;span class="kwrd"&gt;true&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;ValidationMessageId&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;CustomerId_validationMessage&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="str"&gt;&amp;quot;ValidationRules&amp;quot;&lt;/span&gt;:[{&lt;span class="str"&gt;&amp;quot;ErrorMessage&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;The CustomerId field is required.&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;ValidationParameters&amp;quot;&lt;/span&gt;:{},&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="str"&gt;&amp;quot;ValidationType&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;required&amp;quot;&lt;/span&gt;},{&lt;span class="str"&gt;&amp;quot;ErrorMessage&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;The field CustomerId must be a number.&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="str"&gt;&amp;quot;ValidationParameters&amp;quot;&lt;/span&gt;:{},&lt;span class="str"&gt;&amp;quot;ValidationType&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;number&amp;quot;&lt;/span&gt;}]},{&lt;span class="str"&gt;&amp;quot;FieldName&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="str"&gt;&amp;quot;ReplaceValidationMessageContents&amp;quot;&lt;/span&gt;:&lt;span class="kwrd"&gt;true&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;ValidationMessageId&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;Name_validationMessage&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="str"&gt;&amp;quot;ValidationRules&amp;quot;&lt;/span&gt;:[{&lt;span class="str"&gt;&amp;quot;ErrorMessage&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;The Name field is required.&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;ValidationParameters&amp;quot;&lt;/span&gt;:{},&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="str"&gt;&amp;quot;ValidationType&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;required&amp;quot;&lt;/span&gt;},{&lt;span class="str"&gt;&amp;quot;ErrorMessage&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;The field Name must be a string with a maximum length of 5.&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="str"&gt;&amp;quot;ValidationParameters&amp;quot;&lt;/span&gt;:{&lt;span class="str"&gt;&amp;quot;max&amp;quot;&lt;/span&gt;:5},&lt;span class="str"&gt;&amp;quot;ValidationType&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;length&amp;quot;&lt;/span&gt;}]},{&lt;span class="str"&gt;&amp;quot;FieldName&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;Birthday&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="str"&gt;&amp;quot;ReplaceValidationMessageContents&amp;quot;&lt;/span&gt;:&lt;span class="kwrd"&gt;true&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;ValidationMessageId&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;Birthday_validationMessage&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="str"&gt;&amp;quot;ValidationRules&amp;quot;&lt;/span&gt;:[{&lt;span class="str"&gt;&amp;quot;ErrorMessage&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;The Birthday field is required.&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;ValidationParameters&amp;quot;&lt;/span&gt;:{},&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="str"&gt;&amp;quot;ValidationType&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;required&amp;quot;&lt;/span&gt;}]}],&lt;span class="str"&gt;&amp;quot;FormId&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;form0&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;ReplaceValidationSummary&amp;quot;&lt;/span&gt;:&lt;span class="kwrd"&gt;false&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;ValidationSummaryId&amp;quot;&lt;/span&gt;:&lt;span class="str"&gt;&amp;quot;validationSummary&amp;quot;&lt;/span&gt;});&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="rem"&gt;//]]&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;It is a lot of JavaScript being rendered, and if we activate unobtrusive jQuery validation, we will get this instead:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;action&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;/Customer/Create&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;method&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;fieldset&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;legend&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Fields&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;legend&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CustomerId&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;CustomerId&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;data-val&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-val-number&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;The field CustomerId must be a number.&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-val-required&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;The CustomerId field is required.&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CustomerId&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CustomerId&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;field-validation-valid&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-valmsg-for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CustomerId&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-valmsg-replace&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Name&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Name&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;data-val&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-val-length&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;The field Name must be a string with a maximum length of 5.&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-val-length-max&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;5&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-val-required&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;The Name field is required.&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Name&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Name&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;field-validation-valid&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-valmsg-for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Name&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-valmsg-replace&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt; &lt;span class="attr"&gt;for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Birthday&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Birthday&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;editor-field&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;data-val&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-val-required&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;The Birthday field is required.&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Birthday&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Birthday&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;field-validation-valid&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-valmsg-for&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Birthday&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;data-valmsg-replace&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;input&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Create&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;p&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;fieldset&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Instead of JavaScript, the different elements will have a couple of new attributes instead. Jquery.validation.unobtrusive.js contains functionality that can parse these values and generates error messages based on these instead. In this way, we will get much cleaner HTML, and still have valid HTML5. The validation will work exactly like before, the only difference is what is being rendered.&lt;/p&gt;</description><pubDate>Wed, 06 Oct 2010 19:50:07 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/unobtrusive-validation-in-asp-net-mvc-3</guid><category>ASP.NET MVC 3</category><category>jQuery</category><category>VS2010</category></item><item><title>Introducing NuPack</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/introducing-nupack</link><description>&lt;p&gt;When you install ASP.NET MVC 3 Beta or WebMatrix Beta 2, a new product called ”NuPack” is installed with it. NuPack makes it possible to quickly add references to third party products like Ninject, jQuery and so on. All necessary files (dll, js etc) are automatically added to the project, and necessary modifications in web.config are automatically added.&lt;/p&gt;  &lt;p&gt;There is an existing list with packages that is used when installing NuPack, but you can create your own if you need to. You can also put all packages on a network share so you can distribute them to all developers at your company.&lt;/p&gt;  &lt;p&gt;I am going to show you how to add packages in both Visual Studio and WebMatrix since they work differently.&lt;/p&gt;  &lt;h4&gt;NuPack in Visual Studio 2010&lt;/h4&gt;  &lt;p&gt;In Visual Studio, we have to different ways to add references, in the GUI or through a Console window, which is based on PowerShell.&lt;/p&gt;  &lt;p&gt;In the GUI, we can get a list with all products, add them to the project and update existing references. In the console window, we can do the same, but also remove existing references.&lt;/p&gt;  &lt;p&gt;NuPack works in both existing projects, and in new projects. I have now created a new ASP.NET MVC 3 project with no references at all. To be able to log all errors, I would like to add ELMAH, which is a really good tool that can be used to log all errors. If I was going to add it manually, I would have to go to the homepage, download the assembly, add a reference to the assembly and then make some changes in web.config. If I want to use NHibernate or some other tools, I will have to do the same with them and all dependencies.&lt;/p&gt;  &lt;p&gt;Instead of doing this manually, I will use NuPack to add ELMAH to my project.&lt;/p&gt;  &lt;p&gt;To add ELMAH, I right-click on References in my project, and then I click on “Add Package Reference”. This window is now opened:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/mvc-1-modal_5C422F82.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="mvc-1-modal" border="0" alt="mvc-1-modal" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/mvc-1-modal_thumb_4E4F9DED.png" width="644" height="446" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I search for ELMAH and choose to install it. What happens now is that ELMAH is downloaded and added as a reference in the project, and all necessary modifications in web.config are automatically done!&lt;/p&gt;  &lt;p&gt;If we take a look in the folder where we have our solution, there is a new folder named ”packages”, and here we can find ”elmah 1.1” which contains all files we just downloaded. We have also got a new file in our project, “packages.config”, which contains the name and version of the package.&lt;/p&gt;  &lt;p&gt;This took a few seconds to do, which is going to save us a lot of time compared to doing this manually (downloading files, adding references, reading instructions etc).&lt;/p&gt;  &lt;p&gt;We also have a concole window for NuPack, which can be used the same way.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/mvc-2-console_0E095EA6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="mvc-2-console" border="0" alt="mvc-2-console" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/mvc-2-console_thumb_12EB50BB.png" width="644" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We can use commands like:&lt;/p&gt;  &lt;p&gt;· Add-Package name – Adding the package ”name”&lt;/p&gt;  &lt;p&gt;· Remove-Package name – Removing the package ”name”&lt;/p&gt;  &lt;p&gt;· List-Package – Displays a list with all packages&lt;/p&gt;  &lt;p&gt;· Update-Package name – Updating the package ”name” to the latest version&lt;/p&gt;  &lt;p&gt;If we want to remove ELMAH, which we just added we can write:&lt;/p&gt;  &lt;p&gt;Remove-Package ELMAH&lt;/p&gt;  &lt;p&gt;All references are deleted, and the changes in web.config are restored.&lt;/p&gt;  &lt;p&gt;If we install MvcScaffold we will get new PowerShell commands to use, such as Add-MvcView, which adds a new view to the project.&lt;/p&gt;  &lt;h4&gt;ASP.NET Web Pages&lt;/h4&gt;  &lt;p&gt;If we want to use NuPack with ASP.NET Web Pages, we can use a website instead.&lt;/p&gt;  &lt;p&gt;If we want to display the site, go to /_Admin in the browser. The first time we go here, we will have to set the admin password:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm1-Admin_56AF5F45.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="wm1-Admin" border="0" alt="wm1-Admin" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm1-Admin_thumb_58AC1274.png" width="644" height="369" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When we have entered the password, we will get to the next step where we can see a list with all available packages:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm2-packages_5707586E.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="wm2-packages" border="0" alt="wm2-packages" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm2-packages_thumb_4329FD73.png" width="644" height="437" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The packages available for ASP.NET Web Pages contain different helpers, such as a Bing-helper which can be used to search on our site using Bing. There are also some other helpers here. If we choose to install Microsoft-web-helpers 1.0, the package will be downloaded and we will get this:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm3-binginstalled_092A94BA.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="wm3-binginstalled" border="0" alt="wm3-binginstalled" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm3-binginstalled_thumb_10D23BC2.png" width="644" height="473" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We can now use the helper on our site by writing:&lt;/p&gt;  &lt;p&gt;@Bing.SearchBox(”http://www.minsida.com”)&lt;/p&gt;  &lt;p&gt;This is the result:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm4-searchbox_04C025C1.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="wm4-searchbox" border="0" alt="wm4-searchbox" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm4-searchbox_thumb_2869278E.png" width="644" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The first time we logged in on the site, we had to create a password. This password is hashed and then saved in a text file on the server:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm5-Passwordtxt_556DEE8F.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="wm5-Passwordtxt" border="0" alt="wm5-Passwordtxt" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm5-Passwordtxt_thumb_3A256FC1.png" width="644" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It may look bad and insecure to store it in clear text, but you can´t actually open that file in the browser:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm6-hiddensegment_53E98023.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="wm6-hiddensegment" border="0" alt="wm6-hiddensegment" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/wm6-hiddensegment_thumb_1E6FFC57.png" width="605" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Summary&lt;/h4&gt; Thanks to NuPack, we can quickly and easy add functionality to our site without doing anything but click on some buttons. Since we can create our own packages, we can use it internally on the company to easily distribute assemblies and settings to our colleagues.                   </description><pubDate>Wed, 06 Oct 2010 17:00:32 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/introducing-nupack</guid><category>ASP.NET MVC 3</category><category>ASP.NET Web Pages</category><category>NuPack</category><category>VS2010</category><category>WebMatrix</category></item><item><title>What's new in ASP.NET MVC 3 Beta &amp; WebMatrix Beta 2</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/what-s-new-in-asp-net-mvc-3-beta-amp-webmatrix-beta-2</link><description>&lt;P&gt;Microsoft just released ASP.NET MVC 3 Beta, which came with some news. Among other things, we now have a new project dialog box, an updated version of Razor, support for helpers from ASP.NET Web Pages, new interfaces for Dependency Injection, unobtrusive jQuery validation and more. A new beta of WebMatrix has also been released.&lt;/P&gt;  &lt;H4&gt;New project dialog&lt;/H4&gt;  &lt;P&gt;When we created new ASP.NET MVC project in CTP's that came before, there were different project types for the Web Forms and Razor syntax. In ASP.NET MVC Beta we have a single project type called ASP.NET MVC 3 Web Application. If we choose to create a new project, we get a new window, where we can choose View Engine, type of ASP.NET MVC 3-projects and if we want a test project:&lt;/P&gt;  &lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/mikaelsoderstrom/1-newproject_35F36D3E.png" mce_href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/1-newproject_35F36D3E.png"&gt;&lt;IMG style="border: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="1-newproject" border="0" alt="1-newproject" src="http://weblogs.asp.net/blogs/mikaelsoderstrom/1-newproject_thumb_1A5E456E.png" width="551" height="499" mce_src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/1-newproject_thumb_1A5E456E.png"&gt;&lt;/A&gt;&lt;/P&gt;  &lt;H4&gt;&lt;/H4&gt;  &lt;H4&gt;Updated version of Razor&lt;/H4&gt;  &lt;P&gt;Unfortunately, we still don´t have syntax highlighting and intellisense for Razor, but for syntax highlighting, you can use either WebMatrix, or this plugin for Visual Studio 2010: &lt;/P&gt;&lt;P&gt;&lt;A href="http://bit.ly/a0Jkqv"&gt;http://bit.ly/a0Jkqv&lt;/A&gt;&lt;/P&gt;  &lt;P&gt;However, there are some new features for Razor in ASP.NET MVC 3, like a new way to specify the model, as well as support for declarative helpers.&lt;/P&gt;  &lt;H4&gt;Helpers from ASP.NET Web Pages&lt;/H4&gt;  &lt;P&gt;When ASP.NET Web Pages came with WebMatrix, we got a couple of different helpers like one which is used to show a table, with support for sorting and paging. It can now be used in asp.net MVC 3.&lt;/P&gt;  &lt;H4&gt;New interfaces for Dependency Injection&lt;/H4&gt;  &lt;P&gt;ASP.NET MVC 3 CTP came with enhanced support for Dependency Injection, by IMvcServiceLocator. In the new beta, we can use the IDependencyResolver insttead, which is smaller and contains just what we need to inject code in ASP.NET MVC. &lt;/P&gt;  &lt;P&gt;There is also a new interface called IControllerActivator, which is used to create an instance of an already existing instance of a controller, i.e. as that the Activator class. Unlike the IControllerFactory it is not used to locate the correct controller.&lt;/P&gt;  &lt;H4&gt;Unobtrusive jQuery Validation&lt;/H4&gt;  &lt;P&gt;ASP.NET MVC 2 supports validation on the client. In ASP.NET MVC 3 Beta has been updated to provide a cleaner way to validate. Instead of the JavaScript with validation rules directly on the page it now takes advantage of the data-* attribute from HTML5 on the elements. This means that the rendered HTML looks much better, while we still have a validated page (if we validate against HTML5). However, developers can disable it if they want to continue to use the JavaScript as before.&lt;/P&gt;  &lt;H4&gt;Updated ValidateInputAttribute&lt;/H4&gt;  &lt;P&gt;When we try to post HTML from the client, we will, by default, get an error message that says that potentially dangerous code has been posted. This came in ASP.NET 1.1, and can be turned off in WebForms by setting the ValidateRequest to false. &lt;/P&gt;  &lt;P&gt;In ASP.NET MVC, we instead insert a ValidateInput attribute on the controller or action method and set the parameter to false. What´s new in ASP.NET MVC 3 Beta and WebMatrix Beta 2 is that we now can define specific fields you may post HTML, while all others are protected. This provides increased security when we usually do not want to allow HTML in all fields.&lt;/P&gt;  &lt;H4&gt;NuPack&lt;/H4&gt;  &lt;P&gt;A very exciting new feature, and which are included in both ASP.NET MVC 3 Beta and WebMatrix Beta 2 is NuPack. It is a new package manager which makes it possible to download and install modules with just a few clicks. This means that we can get the Ninject, jQuery, ELMAH, and more without having to go to each page and download them manually. &lt;/P&gt;  &lt;P&gt;With ASP.NET MVC 3 Beta, we can either use a dialog window in Visual Studio to add packages, or we can use a new command window. With WebMatrix we visit a specific page instead to get access to the modules.&lt;/P&gt;  &lt;H4&gt;More information&lt;/H4&gt;  &lt;P&gt;I will mention all the new features in separate blog posts for more in-depth information, but you can already download both ASP.NET MVC 3 and WebMatrix here: &lt;/P&gt;  &lt;P&gt;&lt;A href="http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3" mce_href="http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3"&gt;http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3&lt;/A&gt;&lt;/P&gt;</description><pubDate>Wed, 06 Oct 2010 15:25:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/what-s-new-in-asp-net-mvc-3-beta-amp-webmatrix-beta-2</guid><category>ASP.NET MVC 3</category><category>ASP.NET Web Pages</category><category>VS2010</category><category>WebMatrix</category></item><item><title>New Internet Explorer 9 APIs</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/new-internet-explorer-9-apis</link><description>&lt;p&gt;Internet Explorer 9 Beta 1 introduces some new APIs to make it possible to integrate with the jump lists and icons on the taskbar. To make it easier to use them, I created an even simpler API.&lt;/p&gt;  &lt;p&gt;To test the API you can browse (with Internet Explorer 9) to this page:    &lt;br /&gt;&lt;a href="http://bit.ly/dhQpEB"&gt;http://bit.ly/dhQpEB&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You will then see this:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie91_6F85A959.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ie9-1" border="0" alt="ie9-1" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie91_thumb_4F3AECDC.png" width="644" height="513" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The API allows you to see whether the browser supports the API or not. So far, the only browser that supports them is Internet Explorer 9. If more browsers add support for it, it will be easy to integrate it as well.&lt;/p&gt;  &lt;p&gt;The first thing we need to do before using the functions is to pin the site at the taskbar. To do it, just drag the tab or favicon to the taskbar and release it there. You will then get an icon with custom options on the jump list:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie92_62E7D670.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ie9-2" border="0" alt="ie9-2" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie92_thumb_6C6094E6.png" width="292" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To have custom items as default, I added these meta tags:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;msapplication-task&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;name=Twitter;action-uri=http://twitter.com/vimpyboy;icon-uri=/ie9/content/twitter.ico&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;meta&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;msapplication-task&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;content&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;name=Blog;action-uri=http://weblogs.asp.net/mikaelsoderstrom;icon-uri=/ie9/content/blog.ico&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;It´s really simple to do and we will also get customized buttons for back and forward automatically based on the favicon:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie93_06C087FE.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ie9-3" border="0" alt="ie9-3" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie93_thumb_37738FA9.png" width="658" height="79" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what can we do with the API? I have added support for most of the new features in Internet Explorer 9.&lt;/p&gt;

&lt;h4&gt;Pin to Start Menu&lt;/h4&gt;

&lt;p&gt;You can ask the user to add a shortcut to the Start Menu in Windows using:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;windowsIntegration.pinToStartMenu();&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;This will display:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie94_480B8A97.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ie9-4" border="0" alt="ie9-4" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie94_thumb_6E013AED.png" width="451" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;Add Jump list category with items&lt;/h4&gt;

&lt;p&gt;If you want a more dynamic jump list with your own items, you can use something like:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; items = [{&lt;/pre&gt;

  &lt;pre&gt;     &lt;span class="str"&gt;'name'&lt;/span&gt;: &lt;span class="str"&gt;'MSDN'&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;     &lt;span class="str"&gt;'url'&lt;/span&gt;: &lt;span class="str"&gt;'http://www.msdn.com'&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;     &lt;span class="str"&gt;'icon'&lt;/span&gt;: &lt;span class="str"&gt;'Content/twitter.ico'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;}, {&lt;/pre&gt;

  &lt;pre&gt;     &lt;span class="str"&gt;'name'&lt;/span&gt;: &lt;span class="str"&gt;'Internet Explorer 9'&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;     &lt;span class="str"&gt;'url'&lt;/span&gt;: &lt;span class="str"&gt;'http://msdn.com/ie'&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;     &lt;span class="str"&gt;'icon'&lt;/span&gt;: &lt;span class="str"&gt;'Content/blog.ico'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;}];&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;windowsIntegration.addJumpListCategory(&lt;span class="str"&gt;'Links'&lt;/span&gt;, items);&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;This will add a new category, “Links”, with the custom items specified:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie95_45EE8BCE.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ie9-5" border="0" alt="ie9-5" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie95_thumb_0B9315ED.png" width="281" height="359" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To remove the custom category with its items, you can use:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;windowsIntegration.clearJumpList();&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;h4&gt;Flash button&lt;/h4&gt;

&lt;p&gt;If you want to alert the user, you can make the button flash, if it´s in the background. To do it, use:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;windowsIntegration.flash();&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;h4&gt;Add overlay image&lt;/h4&gt;

&lt;p&gt;Another way to alert the user is to use an overlay image. This function adds an overlay:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;windowsIntegration.addOverlay(&lt;span class="str"&gt;'Content/Refresh.ico'&lt;/span&gt;, &lt;span class="str"&gt;'Text!'&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;And this removes it:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;windowsIntegration.clearOverlay();&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The button looks like this when we add an overlay:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie96_6A337050.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ie9-6" border="0" alt="ie9-6" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/ie96_thumb_30442D64.png" width="86" height="52" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;Use it on your own site&lt;/h4&gt;

&lt;p&gt;If you want to use this on your own site, please download the JavaScript file that makes this easier. You can find the files for this demo here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bit.ly/ar0hLh"&gt;http://bit.ly/ar0hLh&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you want to try it out, look here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bit.ly/dhQpEB"&gt;http://bit.ly/dhQpEB&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 20 Sep 2010 20:09:17 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/new-internet-explorer-9-apis</guid><category>Internet Explorer 9</category><category>Javascript</category><category>Windows 7</category></item><item><title>Get started with HTML5 – Canvas</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/get-started-with-html5-canvas</link><description>&lt;p&gt;Playing games on the internet using Silverlight or Flash is getting really popular, which you can see if you are using Facebook (Farmville, anyone?). To play these games you need to install a plugin to your browser, or you won’t be able to play them. On some devices you can´t install plugins like these, which make it impossible to play them. Instead you will have to create separate applications for each device, but then you will have to maintain several versions of your application.&lt;/p&gt;  &lt;p&gt;To get it to work in a smooth way on computers, phones and other devices you can use Canvas. Canvas is part of the HTML5 specification, and makes it possible to draw objects on the screen using JavaScript APIs.&lt;/p&gt;  &lt;p&gt;In my examples I use Internet Explorer 9 which supports hardware acceleration for Canvas, but you should be able to use the same code on all modern browsers.&lt;/p&gt;  &lt;h4&gt;Create a canvas object&lt;/h4&gt;  &lt;p&gt;To be able to use Canvas on the page, we will need to use the new Canvas element in HTML5.&lt;/p&gt;  &lt;p&gt;I have created a template which I will use:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;HTML&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Canvas&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        body&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            background-color: #000;&lt;/pre&gt;

  &lt;pre&gt;            text-align: center;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        }&lt;/pre&gt;

  &lt;pre&gt;        &lt;/pre&gt;

  &lt;pre class="alt"&gt;        div&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            margin: 0px auto;&lt;/pre&gt;

  &lt;pre&gt;            width: 400px;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        }&lt;/pre&gt;

  &lt;pre&gt;        &lt;/pre&gt;

  &lt;pre class="alt"&gt;        canvas&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            background-color: #fff;&lt;/pre&gt;

  &lt;pre&gt;        }&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;canvas&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;canvas&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;300&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            Your browser does not support Canvas.&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;I use the new HTML5 doctype to tell the browser that I´m using HTML5 here. I also add a Canvas element which is 300x300 pixels. If we open the site in a browser without Canvas support, the text will be displayed, and if we open it in Internet Explorer 9, we will get this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas0_666C6A13.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="canvas0" border="0" alt="canvas0" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas0_thumb_0BF5E775.png" width="644" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The white area is our canvas where we will start drawing objects. First of all, I would like to set the background to a linear gradient which shows red and white.&lt;/p&gt;

&lt;p&gt;To do this, I add the following code between the script elements:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; init() {&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; c = document.getElementById(&lt;span class="str"&gt;'canvas'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; ctx = c.getContext(&lt;span class="str"&gt;'2d'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; grad = ctx.createLinearGradient(0, 0, 300, 300);&lt;/pre&gt;

  &lt;pre&gt;    grad.addColorStop(0, &lt;span class="str"&gt;'#FFFFFF'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    grad.addColorStop(0.5, &lt;span class="str"&gt;'#FF0000'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    grad.addColorStop(1, &lt;span class="str"&gt;'#FFFFFF'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.fillStyle = grad;&lt;/pre&gt;

  &lt;pre&gt;    ctx.fillRect(0, 0, 300, 300);&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;If we take a look at the page again, we will see this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas1_0EBB9C68.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="canvas1" border="0" alt="canvas1" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas1_thumb_344519C9.png" width="644" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you want to draw on a canvas you will first have to get the canvas object. I use document.getElementById here, but you could use jQuery selectors as well to get the element. The next step is to create a 2d context, which is the only available context in HTML5. The object we get here is what we will use to draw on the canvas.&lt;/p&gt;

&lt;p&gt;Now when we have the canvas element and have got the 2d context, we can start drawing on it. What we want is a gradient that starts on the upper left (0,0) and stops at the lower right (300,300) in the current LinearGradient object.&lt;/p&gt;

&lt;p&gt;Then we set the colors we want. It should start with white, be red in the middle, and then stop as white again. Notice that 0 is the start and 1 is the end, which makes 0.5 the middle.&lt;/p&gt;

&lt;p&gt;At last we will fill the canvas element with the gradient we just created. To do this, we sett fillStyle to “grad” which is our object, and then call fillRect() where we set the start and stop for the drawing.&lt;/p&gt;

&lt;p&gt;Now we will get a gradient background!&lt;/p&gt;

&lt;h4&gt;Draw patterns&lt;/h4&gt;

&lt;p&gt;With only a background we will probably don´t get far, what we need to do is to add other objects on the canvas.&lt;/p&gt;

&lt;p&gt;The next step here is to draw a transparent square with shadows on top of the background.&lt;/p&gt;

&lt;p&gt;What we will add after the previous code is:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;ctx.shadowOffsetX = 3;&lt;/pre&gt;

  &lt;pre&gt;ctx.shadowOffsetY = 3;&lt;/pre&gt;

  &lt;pre class="alt"&gt;ctx.shadowBlur = 5;&lt;/pre&gt;

  &lt;pre&gt;ctx.shadowColor = &lt;span class="str"&gt;'rgba(0, 0, 0, 0.7)'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;ctx.fillStyle = &lt;span class="str"&gt;'rgba(0, 0, 255, 0.3)'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;ctx.fillRect(50, 50, 200, 200);&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We are still using the same object as before, but continue to draw on the canvas after we have set the background.&lt;/p&gt;

&lt;p&gt;First we will have to set the shadow on the object we want to draw. I have set offset to 3 for both X and Y, which gives us a 3px shadow. I have also set shadowBlur to 5, which settles how blurred the shadow should be (a higher number makes it blurrier). I also set the color on the shadow to black, but the opacity to 0.7 to make it more transparent.&lt;/p&gt;

&lt;p&gt;When we have set the properties for the shadow we will set the color for the object to draw. We will use RGBA here too since we wants the square to be transparent. I set the color to blue and opacity to 0.3.&lt;/p&gt;

&lt;p&gt;The last thing to do is to draw the object on the canvas. It should be positioned 50px from the top and the left, and should be 200x200px.&lt;/p&gt;

&lt;p&gt;If we look at the site again we will see this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas2_40D2C6E5.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="canvas2" border="0" alt="canvas2" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas2_thumb_1853E4D1.png" width="644" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With a little help from our beloved friend JavaScript, we have done what we earlier should have had to use a real image for. Since it´s JavaScript we can make this process much more dynamic.&lt;/p&gt;

&lt;h4&gt;Animate the square&lt;/h4&gt;

&lt;p&gt;To make it do something, we can animate the canvas. Since there is not state for the objects in the canvas, we will have to keep track of that ourselves. What we will do here is a very simple animation where the square will move between two different positions every 500 millisecond.&lt;/p&gt;

&lt;p&gt;To make it easier to animate the canvas, I will move the code for drawing the object to a separate function. I will call this function when the page is first loaded, and then every 500 millisecond. The code needed to do this is:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; position = 75;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; init3() {&lt;/pre&gt;

  &lt;pre&gt;    drawImage();&lt;/pre&gt;

  &lt;pre class="alt"&gt;    setInterval(&lt;span class="kwrd"&gt;function&lt;/span&gt; () { drawImage(); }, 500);&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; drawImage() {&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; c = document.getElementById(&lt;span class="str"&gt;'canvas'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; ctx = c.getContext(&lt;span class="str"&gt;'2d'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; grad = ctx.createLinearGradient(0, 0, 300, 300);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    grad.addColorStop(0, &lt;span class="str"&gt;'#FFFFFF'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    grad.addColorStop(0.5, &lt;span class="str"&gt;'#FF0000'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    grad.addColorStop(1, &lt;span class="str"&gt;'#FFFFFF'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    ctx.fillStyle = grad;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.fillRect(0, 0, 300, 300);&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.shadowOffsetX = 3;&lt;/pre&gt;

  &lt;pre&gt;    ctx.shadowOffsetY = 3;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.shadowBlur = 5;&lt;/pre&gt;

  &lt;pre&gt;    ctx.shadowColor = &lt;span class="str"&gt;'rgba(0, 0, 0, 0.7)'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.fillStyle = &lt;span class="str"&gt;'rgba(0, 0, 255, 0.3)'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;    ctx.fillRect(position, position, 200, 200);&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;    position = (position == 25) ? 75 : 25;&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We are using pure JavaScript to draw an animated object on the screen using only web standards. This is probably not the most advanced example you will ever see, but there are far more advanced games out there. A good source for Canvas based games is &lt;a href="http://www.canvasdemos.com"&gt;http://www.canvasdemos.com&lt;/a&gt; where you can find a lot of games and programs that won´t need a third party plugin.&lt;/p&gt;

&lt;p&gt;Since Internet Explorer 9 have hardware acceleration for Canvas, it is going to be possible to write really advanced games and applications which will use the graphic card to render your canvas, and all this is possible using only HTML5 and JavaScript!&lt;/p&gt;</description><pubDate>Thu, 16 Sep 2010 19:06:58 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/get-started-with-html5-canvas</guid><category>HTML 5</category><category>Internet Explorer 9</category></item><item><title>Introduction to HTML5</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/introduction-to-html5</link><description>&lt;p&gt;HTML5 is the next version of the HTML standard and is developed by W3C and WHATWG. After HTML 4.01 was released W3C started to work with XHTML 1.0, which have the same elements as HTML 4.01 but gives us a XML compatible syntax. They continued with XHTML 2.0, which should have many new elements, and wouldn´t be compatible with XHTML 1.x at all. Meanwhile a new group called WHATWG (Web Hypertext Technology Working Group) started to work on a new separate standard called Web Applications 1.0, which should be a natural next step of HTML 4.01.&lt;/p&gt;  &lt;p&gt;Since XHTML 2.0 received a lot of critics because of the complexity and lack of compatibility with XHTML 1.x, W3C decided to stop working on that and instead cooperate with WHATWG on Web Applictions 1.0, which became HTML 5.&lt;/p&gt;  &lt;h4&gt;Same same, but different&lt;/h4&gt;  &lt;p&gt;Many advocates of XHTML thinks that HTML will again make the web more incompatible because of the possibility to write sloppy HTML since you don´t need to have apostrophes around attribute values, and other things that is required according to the SGML standard. Because of this, you will be able to write HTML5 in two different ways, with HTML syntax and with XML syntax. The latter requires you to send the document with the correct MIME type (application/xhtml+xml), which isn´t supported by Internet Explorer 8 and earlier versions (Internet Explorer 9 supports this). If you use the HTML syntax, the pages should be delivered as text/html like earlier.&lt;/p&gt;  &lt;h4&gt;Why HTML5?&lt;/h4&gt;  &lt;p&gt;HTML 4 has been used by developers since the 90’s, and it became a standard in 1999. If we want to have more advanced content, we can use Silverlight, Flash and other plugins to do what we want. So why should we care about HTML5?&lt;/p&gt;  &lt;p&gt;We need HTML5 since it´s a modern standard which correlates to how we created modern web sites, and makes it possible to view those pages on all platforms. If you are dependent on a plugin, you can´t be sure it will work on your phone for example. By using HTML5 we can use the same web site on all platforms to view videos, play games, listen to music, create advanced web based applications etc. That is why we need HTML5 now.&lt;/p&gt;  &lt;h4&gt;News in HTML5&lt;/h4&gt;  &lt;p&gt;There are a lot of new features in HTML5 that makes it possible to write modern standard compliant sites. HTML 4.01 became a standard in 1999 when almost everyone had slow modems. What have happened since then is that we have got much faster connections, which makes it possible to watch videos, plays music and other things on the web.&lt;/p&gt;  &lt;p&gt;Some of my favorite new features in HTML5 are:&lt;/p&gt;  &lt;h5&gt;New HTML elements&lt;/h5&gt;  &lt;p&gt;The specification contains some new elements such as section, nav, article, aside, hgroup, footer etc. They will make it easier to group the content instead of using div elements with corresponding id´s.&lt;/p&gt;  &lt;h5&gt;Video &amp;amp; audio&lt;/h5&gt;  &lt;p&gt;Thanks to the new video and audio elements, we will be able to play video and audio on the web site without using third party plugins. So far, there are no specific formats in the specification, so it´s up to the browser vendors to choose what to support.&lt;/p&gt;  &lt;h5&gt;Canvas&lt;/h5&gt;  &lt;p&gt;With canvas, it´s possible to draw objects on the browser without the need of images (you can use images in canvas though). Thanks to the hardware acceleration in Internet Explorer 9, we can create games and applications using canvas. If you want to use audio in your game you could use the audio element.&lt;/p&gt;  &lt;h5&gt;Inline SVG&lt;/h5&gt;  &lt;p&gt;SVG have been a standard for a while, but with HTML5 we will be able to use inline SVG in our documents instead of using separate SVG files. Like canvas, we can draw images in the browser, but the difference is that canvas uses JavaScript, and SVG is XML based and used to draw vector images.&lt;/p&gt;  &lt;h5&gt;New input types in forms&lt;/h5&gt;  &lt;p&gt;When we create forms on web sites today, we often use JavaScript with strange regular expressions to validate the input. If you require a date you might add a calendar using JavaScript. In HTML 5 there will be new types of input elements like date, datetime, email, phonenumber etc, which makes it possible for the browser to validate the input. In that way you won´t need to care about it (except for the validation on the server side of course).&lt;/p&gt;  &lt;h5&gt;New JavaScript APIs&lt;/h5&gt;  &lt;p&gt;Except for the HTML of HTML5, there are some related specifications that are often included. These are not part of the HTML5 standard per se, but separate specifications. These are Selectors, Web Storage, Web Sockets, Web Workers, Geolocation, Offline Web Applications and many others. Even Internet Explorer 8 had support for both Selectors and Web Storage, which means many users can take advantage of these right away.&lt;/p&gt;  &lt;h4&gt;The future of HTML5&lt;/h4&gt;  &lt;p&gt;Since HTML5 is still under development, many developers wants to know when it will become a standard, so… When? The specification is estimated to be a recommendation in 2022. Yepp, 2022. It may sound scary, but don´t forget that not even CSS 2.1 is a recommendation yet. The Candidate Recommendation (feature complete, and only really important changes will be made) of HTML5 is supposed to be released in 2012. If a Candidate Recommendation is going to be a Recommendation, at least two full implementations are needed.&lt;/p&gt;  &lt;h4&gt;Get started today&lt;/h4&gt;  &lt;p&gt;To prepare for HTML5 you can download Internet Explorer 9 Beta 1, which has support for many new HTML5 features, such as video, audio, inline SVG and Canvas. It also supports many new features in the coming CSS 3 specification.&lt;/p&gt;  &lt;p&gt;Internet Explorer 9 Beta 1 can be downloaded here:    &lt;br /&gt;&lt;a href="http://windows.microsoft.com/en-US/internet-explorer/download/ie-9/worldwide"&gt;http://windows.microsoft.com/en-US/internet-explorer/download/ie-9/worldwide&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 16 Sep 2010 18:56:22 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/introduction-to-html5</guid><category>HTML 5</category><category>Internet Explorer 9</category></item><item><title>Kom igång med HTML5 – Canvas</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/kom-ig-229-ng-med-html5-canvas</link><description>&lt;p&gt;Att spela spel på internet genom Silverlight- eller Flash-baserade gränssnitt blir alltmer populärt, vilket man kan se om man är flitig användare av Facebook. Dessa spel kräver att man har rätt komponent installerad för att kunna köra dem över huvud taget. På vissa enheter som till exempel mobiltelefoner händer det ofta att man inte kan installera dessa plugins, och då måste man lösa det på ett annat sätt. Det skulle t.ex. kunna lösas genom att man skriver ett separat program som påminner om det man visade på sidan, men även det kan ge problem då man har flera olika applikationer att underhålla.&lt;/p&gt;  &lt;p&gt;För att smidigt få det att fungera på både datorer, mobiltelefoner och andra enheter så skulle man kunna använda Canvas. Canvas är en del av HTML5 och gör det möjligt att rita ut objekt direkt på skärmen med hjälp av nya JavaScript-API:er.&lt;/p&gt;  &lt;p&gt;I exemplen så använder jag Internet Explorer 9 som använder hårdvaruaccelerering för att rendera objekten, men alla webbläsare med stöd för Canvas bör klara av detta.&lt;/p&gt;  &lt;h4&gt;Skapa ett Canvas-objekt&lt;/h4&gt;  &lt;p&gt;För att få in Canvas på hemsidan så måste vi använda oss utav det nya Canvas-elementet i HTML5.&lt;/p&gt;  &lt;p&gt;Jag har en grundsida som ser ut så här:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;HTML&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Canvas&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        body&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            background-color: #000;&lt;/pre&gt;

  &lt;pre&gt;            text-align: center;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        }&lt;/pre&gt;

  &lt;pre&gt;        &lt;/pre&gt;

  &lt;pre class="alt"&gt;        div&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            margin: 0px auto;&lt;/pre&gt;

  &lt;pre&gt;            width: 400px;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        }&lt;/pre&gt;

  &lt;pre&gt;        &lt;/pre&gt;

  &lt;pre class="alt"&gt;        canvas&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            background-color: #fff;&lt;/pre&gt;

  &lt;pre&gt;        }&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;canvas&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;canvas&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;300&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            Din webbläsare har inte stöd för canvas.&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Här använder jag den nya doctypen för HTML5 för att visa för webbläsaren att det är det jag vill använda. Sedan har jag lagt in ett Canvas-element som är 300x300 pixlar stort. Om vi öppnar upp det i en webbläsare utan stöd för Canvas så får vi upp texten innanför start- och sluttaggarna.&lt;/p&gt;

&lt;p&gt;Om vi öppnar upp det här nu så får vi:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas0_7C715150.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="canvas0" border="0" alt="canvas0" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas0_thumb_218E9BBD.png" width="644" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Den vita ytan är vår canvas där vi kan börja rita med hjälp av JavaScript. Till att börja med så vill jag få dit en bakgrund som ska skifta mellan vitt och rött.&lt;/p&gt;

&lt;p&gt;Jag lägger nu till det här mellan script-elementen:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; init() {&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; c = document.getElementById(&lt;span class="str"&gt;'canvas'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; ctx = c.getContext(&lt;span class="str"&gt;'2d'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; grad = ctx.createLinearGradient(0, 0, 300, 300);&lt;/pre&gt;

  &lt;pre&gt;    grad.addColorStop(0, &lt;span class="str"&gt;'#FFFFFF'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    grad.addColorStop(0.5, &lt;span class="str"&gt;'#FF0000'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    grad.addColorStop(1, &lt;span class="str"&gt;'#FFFFFF'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.fillStyle = grad;&lt;/pre&gt;

  &lt;pre&gt;    ctx.fillRect(0, 0, 300, 300);&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Ser vi på sidan nu så ser vi att vi har fått det här:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas1_7FC2C32B.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="canvas1" border="0" alt="canvas1" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas1_thumb_04C500DB.png" width="644" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;När man ska rita på en canvas-yta så måste man först få tag i canvas-elementet. Här använder jag document.getElementById, men det går lika bra att använda jQuery för att få rätt element. Nästa steg är att skapa upp en 2d-context, vilket är den enda som finns i HTML5. Det objektet vi får där är det vi ska använda för att rita ut de olika delarna på canvasen.&lt;/p&gt;

&lt;p&gt;Nu när vi har ett canvas-element och fått tag i dess 2d-context så kan vi börja rita på den. Det vi vill ha är en gradient som börjar skifta färg längst upp till vänster (0,0) och slutar längst ned till höger (300, 300) i det aktuella LinearGradient-objektet.&lt;/p&gt;

&lt;p&gt;Vi sätter sedan färgerna vi vill ha. I början ska det vara vitt, i mitten ska det ha blivit rött, och mot slutet ska det ha gått tillbaka till vitt. Värt att notera är att 0 är början och 1 är slutet.&lt;/p&gt;

&lt;p&gt;Till sist så vill vi fylla vårt canvas-element med den gradient vi just skapade. För att göra det så sätter vi fillStyle till ”grad” som är vårt objekt, och anropar sedan fillRect() där vi sätter att vi ska börja rita längst upp till vänster och sluta längst ned till höger.&lt;/p&gt;

&lt;p&gt;Det som händer nu är att vi får en bakgrund med skiftande färg direkt på sidan.&lt;/p&gt;

&lt;h4&gt;Rita ut mönster&lt;/h4&gt;

&lt;p&gt;Med bara en bakgrundsbild kommer vi dock inte långt, utan på denna kanske vi vill lägga till objekt. Det vi ska göra härnäst är att rita ut en genomskinlig kvadrat med skugga bakom mitt på ytan, och det gör vi på nästan samma sätt som vi ritade ut bakgrunden.&lt;/p&gt;

&lt;p&gt;Det vi behöver lägga till efter den tidigare koden är det här:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;ctx.shadowOffsetX = 3;&lt;/pre&gt;

  &lt;pre&gt;ctx.shadowOffsetY = 3;&lt;/pre&gt;

  &lt;pre class="alt"&gt;ctx.shadowBlur = 5;&lt;/pre&gt;

  &lt;pre&gt;ctx.shadowColor = &lt;span class="str"&gt;'rgba(0, 0, 0, 0.7)'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;ctx.fillStyle = &lt;span class="str"&gt;'rgba(0, 0, 255, 0.3)'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;ctx.fillRect(50, 50, 200, 200);&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Vi använder fortfarande det objektet vi hämtade tidigare, men fortsätter att rita vidare på canvasen efter att ha ritat ut bakgrunden.&lt;/p&gt;

&lt;p&gt;Först och främst så vill vi sätta skugga på det objektet vi vill rita ut. Jag har satt Offset till 3 på både X och Y vilket ger en 3 px stor skugga. Jag har sedan satt shadowBlur till 5, vilket avgör hur suddigt det ska vara (ju högre siffra desto suddigare skugga). Jag sätter därefter färgen på skuggan till svart, men opacity till 0,7 för att få skuggan lite svagare.&lt;/p&gt;

&lt;p&gt;När vi har satt egenskaper för skuggan så ska vi sätta färgen på själva objektet som ska ritas ut. Här använder vi återigen RGBA för att kunna sätta opacitet. Jag väljer att sätta färgen till blå, men med 0.3 i opacitet.&lt;/p&gt;

&lt;p&gt;Det sista vi gör är att rita ut objektet på canvasen. Det skall hamna 50px från toppen och vänster, samt vara 200x200px stort.&lt;/p&gt;

&lt;p&gt;Kikar vi på sidan nu så kan vi se att vi har fått det här:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas2_583BD0F4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="canvas2" border="0" alt="canvas2" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/canvas2_thumb_01CF9C28.png" width="644" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Med lite JavaScript har vi nu gjort vad som tidigare krävde att vi lade in en bild. Då det är JavaScript så kan vi dessutom göra det här väldigt dynamiskt.&lt;/p&gt;

&lt;h4&gt;Animera rutan&lt;/h4&gt;

&lt;p&gt;För att få lite liv i canvasen så kan vi animera innehållet. Då det inte finns någon state för det som ritas ut så får vi hålla reda på det själv. Det vi ska göra här är en väldigt enkel animering där rutan ska flyttas fram och tillbaka mellan två olika positioner med 500 millisekunders mellanrum.&lt;/p&gt;

&lt;p&gt;För att göra det enklare att animera så flyttar jag ut koden för att rita ut objektet till en separat funktion. Jag anropar sedan den funktionen när sidan laddas för att få en bild direkt, och anropar den sedan igen var 500:e millisekund. Koden för det blir det här:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; position = 75;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; init3() {&lt;/pre&gt;

  &lt;pre&gt;    drawImage();&lt;/pre&gt;

  &lt;pre class="alt"&gt;    setInterval(&lt;span class="kwrd"&gt;function&lt;/span&gt; () { drawImage(); }, 500);&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; drawImage() {&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; c = document.getElementById(&lt;span class="str"&gt;'canvas'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; ctx = c.getContext(&lt;span class="str"&gt;'2d'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;var&lt;/span&gt; grad = ctx.createLinearGradient(0, 0, 300, 300);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    grad.addColorStop(0, &lt;span class="str"&gt;'#FFFFFF'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    grad.addColorStop(0.5, &lt;span class="str"&gt;'#FF0000'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;    grad.addColorStop(1, &lt;span class="str"&gt;'#FFFFFF'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;    ctx.fillStyle = grad;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.fillRect(0, 0, 300, 300);&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.shadowOffsetX = 3;&lt;/pre&gt;

  &lt;pre&gt;    ctx.shadowOffsetY = 3;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.shadowBlur = 5;&lt;/pre&gt;

  &lt;pre&gt;    ctx.shadowColor = &lt;span class="str"&gt;'rgba(0, 0, 0, 0.7)'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    ctx.fillStyle = &lt;span class="str"&gt;'rgba(0, 0, 255, 0.3)'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;    ctx.fillRect(position, position, 200, 200);&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;    position = (position == 25) ? 75 : 25;&lt;/pre&gt;

  &lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Det är helt vanlig JavaScript som nu ritar ut ett animerat objekt direkt på skärmen. Det här exemplet är inte särskilt avancerat, men det finns redan nu spel skrivna med Canvas. En bra källa för Canvas-spel är &lt;a href="http://www.canvasdemos.com"&gt;http://www.canvasdemos.com&lt;/a&gt; där man kan hitta en mängd spel och program som inte kräver att man har något plugin installerat.&lt;/p&gt;

&lt;p&gt;Då Internet Explorer 9 kommer med hårdvaruaccelerering för Canvas så kommer det bli möjligt att skapa väldigt avancerade spel och program som renderas med hjälp av grafikkortet, och det genom att använda HTML5 och JavaScript!&lt;/p&gt;</description><pubDate>Wed, 15 Sep 2010 19:38:53 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/kom-ig-229-ng-med-html5-canvas</guid><category>HTML 5</category><category>Internet Explorer 9</category></item><item><title>Introduktion till HTML5</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/introduktion-till-html5</link><description>&lt;p&gt;HTML5 är nästa version av HTML-standarden och tas fram av W3C tillsammans med WHATWG. Efter att HTML 4.01 släpptes så började W3C arbetet med XHTML 1.0, vilket har exakt samma element som HTML 4.01, men ger en syntax mer lik XML. De fortsatte sedan med XHTML 2.0, vilket skulle ha helt nya element, och då inte alls bakåtkompatibelt med XHTML 1.0. Under tiden började en ny grupp kallad WHATWG (Web Hypertext Technology Working Group) med en separat standard kallad Web Applications 1.0, vilket skulle bli en fortsättning på HTML 4.01.&lt;/p&gt;  &lt;p&gt;Då XHTML 2.0 fick mycket kritik på grund av komplexiteten och då det inte var bakåtkompatibelt med tidigare versioner av HTML och XHTML beslutade W3C att lägga ned arbetet med det och istället satsa på HTML5 tillsammans med WHATWG.&lt;/p&gt;  &lt;h4&gt;Same same, but different&lt;/h4&gt;  &lt;p&gt;Många förespråkare för XHTML menar att HTML ger svagare krav på utvecklaren då man inte längre behöver stänga element, ha apostrofer runt attributens värden och annat som krävs i SGML. Det här har dock lett till att det kommer att bli möjligt att skriva HTML5 på två olika sätt – med HTML-syntax och med XML-syntax. Det senare kräver dock att hela sidan skickas med rätt MIME type (application/xhtml+xml) , vilket Internet Explorer 8 och tidigare inte klarar av (Internet Explorer 9 har dock stöd för det). Vill man använda HTML-syntaxen så levereras sidorna som tidigare med text/html.&lt;/p&gt;  &lt;h4&gt;Varför HTML5?&lt;/h4&gt;  &lt;p&gt;En fråga som många ställer sig är varför vi skulle behöva HTML5 när vi idag med HTML 4.01/XHTML 1.1, JavaScript, Silverlight, Flash och annat redan kan göra allt vi behöver. Svaret på det är att genom att erbjuda en standard gör det möjligt att skapa moderna webbsajter så som de flesta fungerar idag, och samtidigt kunna visa den i alla webbläsare på alla plattformar. Krävs det ett plugin för att se till exempel filmer så låser man lätt ute användare på andra plattformar än den man har skapat sidan för. Genom att använda HTML5 så räcker det med att använda en webbläsare med stöd för det för att man ska kunna erbjuda samma upplevelse för även dessa personer.&lt;/p&gt;  &lt;h4&gt;Nyheter i HTML5&lt;/h4&gt;  &lt;p&gt;Det finns en mängd nyheter i HTML5 som leder oss in i nutiden. HTML 4.01 blev en standard 1999 när i stort sett alla fortfarande satt med slöa modem. Vad som har hänt de senaste 11 åren är att vi har fått helt klart snabbare uppkopplingar, vilket ger möjligheten att visa filmer, spela musik och annat direkt på hemsidorna.&lt;/p&gt;  &lt;p&gt;Några av de största nyheterna i HTML5 är:&lt;/p&gt;  &lt;h5&gt;Nya HTML-element&lt;/h5&gt;  &lt;p&gt;Det tillkommer en del nya element så som section, nav, article, aside, hgroup, header, footer m.m. Dessa används för att enklare gruppera sidan i olika delar där vi idag ofta har div-element med ett id som förklarar vilken del av sidan det gäller.&lt;/p&gt;  &lt;h5&gt;Video &amp;amp; audio&lt;/h5&gt;  &lt;p&gt;Med de nya video- samt audio-elementen kan vi spela upp video och ljud direkt på hemsidorna utan att behöva tredjepartsplugins. Det finns än så länge inte någon specifikation för vilka format som skall ingå i standarden, utan som det ser ut nu så är det till stor del upp till webbläsartillverkaren.&lt;/p&gt;  &lt;h5&gt;Canvas&lt;/h5&gt;  &lt;p&gt;Med Canvas kan vi rita ut objekt direkt i webbläsaren utan att behöva använda bilder (det går dock att använda bilder i canvas). Tack vare hårdvaruaccelereringen som finns i till exempel Internet Explorer 9 så kan vi skapa spel och annat som tidigare krävde Silverlight eller Flash, genom att med canvas-elementet och JavaScript rita ut alla objekt. Vill man få in ljudeffekter kan man med fördel använda det nya audio-elementet.&lt;/p&gt;  &lt;h5&gt;Inline SVG&lt;/h5&gt;  &lt;p&gt;SVG är sedan tidigare en W3C-standard, men med HTML5 slipper vi ha separata SVG-filer, och kan nu istället använda SVG direkt i våra HTML-dokument. SVG kan precis som canvas användas för att rita ut objekt på skärmen, men med skillnaden att SVG är XML-baserat och renderar vektorgrafik, medan canvas används med JavaScript för att rita ut objekten.&lt;/p&gt;  &lt;h5&gt;Nya input-typer i formulär&lt;/h5&gt;  &lt;p&gt;När man skapar formulär på hemsidor idag så används ofta JavaScript på klienten för att validera det som skrivs in. Vi kanske har telefonnummer, e-postadresser och annat i vanliga text-fält, vilka sedan måste valideras manuellt. Som en del av HTML5 kommer det dock stöd för nya typer av input-fält, vilket gör att vi får valideringen inbyggd i webbläsaren.&lt;/p&gt;  &lt;h5&gt;Nya JavaScript-API:er&lt;/h5&gt;  &lt;p&gt;Förutom just det HTML5-specifika så brukar man räkna med en del olika JavaScript-API:er i standarden. Dessa är bland annat Selectors, Web Storage, Web Sockets, Web Workers, Geolocation, Offline Web Applications med flera. Redan Internet Explorer 8 hade stöd för bade Selectors och Web Storage, vilket betyder att väldigt många kan använda det redan idag.&lt;/p&gt;  &lt;h4&gt;Framtiden för HTML5&lt;/h4&gt;  &lt;p&gt;Så när beräknas HTML5 bli en färdig standard? Det talas ofta om att år 2022 är då det blir en rekommendation hos W3C. Det låter som en ganska skrämmande siffra, men med tanke på att det kräver två fulla implementationer av standarden så är det inte så konstigt trots allt. Som jämförelse kan man ta CSS 2.1 som trots att det är vad man använder idag, fortfarande inte är en standard utan bara en ”Candidate Recommendation” vilket betyder att standarden är så gott som klar, men att det eventuellt kan ske någon ändring som upptäcks när standarden skall implementeras i flera webbläsare. Man räknar med att HTML5 skall nå det stadiet år &lt;b&gt;2012&lt;/b&gt;, så om två år från att det här skrivs så bör alla funktioner och element vara färdiga och redo att implementeras och användas.&lt;/p&gt;  &lt;h4&gt;Kom igång redan idag&lt;/h4&gt;  &lt;p&gt;För att förbereda sig på vad som komma skall så kan man redan idag ladda ned Internet Explorer 9 Beta 1, vilket har stöd för många av de kommande funktionerna i HTML5, som till exempel video, audio, inline SVG och Canvas, men även stöd för en annan kommande standard – CSS 3.&lt;/p&gt;  &lt;p&gt;Internet Explorer 9 Beta 1 kan laddas ned här:   &lt;br /&gt;&lt;a href="http://windows.microsoft.com/en-US/internet-explorer/download/ie-9/worldwide"&gt;http://windows.microsoft.com/en-US/internet-explorer/download/ie-9/worldwide&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 15 Sep 2010 19:32:08 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/introduktion-till-html5</guid><category>HTML 5</category><category>Internet Explorer 9</category></item><item><title>Use HTML5 forms in ASP.NET MVC</title><link>https://weblogs.asp.net:443/mikaelsoderstrom/use-html5-forms-in-asp-net-mvc</link><description>&lt;p&gt;With the release of ASP.NET MVC 2 we got support for DisplayTemplates and EditorTemplates, which make it possible to create custom forms for the edit views. With this feature, we can easily take advantage of the new input fields in HTML5 such as date, color, email etc.&lt;/p&gt;  &lt;p&gt;The first thing we need to do is to create a new ASP.NET MVC project and add a controller. After that we have to create a new folder, ~\Views\Shared\EditorTemplates. We will have out EditorTemplates here.&lt;/p&gt;  &lt;p&gt;The controller will be very basic in this test:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Mvc;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Html5Templates.Controllers&lt;/pre&gt;

  &lt;pre&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Html5Controller : Controller&lt;/pre&gt;

  &lt;pre&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult Create()&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; View();&lt;/pre&gt;

  &lt;pre&gt;        }&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We will also add a very simple view:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&amp;lt;%@ Page Language=&lt;span class="str"&gt;&amp;quot;C#&amp;quot;&lt;/span&gt; MasterPageFile=&lt;span class="str"&gt;&amp;quot;~/Views/Shared/Site.Master&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;Inherits=&lt;span class="str"&gt;&amp;quot;System.Web.Mvc.ViewPage&amp;lt;Html5Templates.Models.Templates&amp;gt;&amp;quot;&lt;/span&gt; %&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&amp;lt;asp:Content ContentPlaceHolderID=&lt;span class="str"&gt;&amp;quot;MainContent&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    &amp;lt;h2&amp;gt;Create&amp;lt;/h2&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;    &amp;lt;% &lt;span class="kwrd"&gt;using&lt;/span&gt; (Html.BeginForm()) {%&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &amp;lt;%: Html.ValidationSummary(&lt;span class="kwrd"&gt;true&lt;/span&gt;) %&amp;gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        &amp;lt;fieldset&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;            &amp;lt;legend&amp;gt;Fields&amp;lt;/legend&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;            &amp;lt;%: Html.EditorFor(_ =&amp;gt; Model) %&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;/pre&gt;

  &lt;pre&gt;            &amp;lt;p&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &amp;lt;input type=&lt;span class="str"&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;Create&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;            &amp;lt;/p&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &amp;lt;/fieldset&amp;gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;    &amp;lt;% } %&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;&amp;lt;/asp:Content&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;As you can see in the Page directive, the model is of the type “Templates”, which we will have to create. In our model, we will take advantage of some attributes in the DataAnnotations namespace, DataType and UIHint. We will now create a property for every new type in HTML5 forms:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ComponentModel.DataAnnotations;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Html5Templates.Models&lt;/pre&gt;

  &lt;pre class="alt"&gt;{&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Templates&lt;/pre&gt;

  &lt;pre class="alt"&gt;    {&lt;/pre&gt;

  &lt;pre&gt;        [UIHint(&lt;span class="str"&gt;&amp;quot;Color&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Color { get; set; }&lt;/pre&gt;

  &lt;pre&gt;        &lt;/pre&gt;

  &lt;pre class="alt"&gt;        [DataType(DataType.Date)]&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DateTime Date { get; set; }&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;/pre&gt;

  &lt;pre&gt;        [DataType(DataType.DateTime)]&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DateTime DateTime { get; set; }&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        [UIHint(&lt;span class="str"&gt;&amp;quot;DateTimeLocal&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DateTime DateTimeLocal { get; set; }&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;/pre&gt;

  &lt;pre&gt;        [DataType(DataType.EmailAddress)]&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Email { get; set; }&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        [UIHint(&lt;span class="str"&gt;&amp;quot;Month&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Month { get; set; }&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;        [UIHint(&lt;span class="str"&gt;&amp;quot;Number&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Number { get; set; }&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        [UIHint(&lt;span class="str"&gt;&amp;quot;Range&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Range { get; set; }&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;/pre&gt;

  &lt;pre&gt;        [DataType(DataType.PhoneNumber)]&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; PhoneNumber { get; set; }&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        [DataType(DataType.Time)]&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DateTime Time { get; set; }&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;/pre&gt;

  &lt;pre&gt;        [DataType(DataType.Url)]&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Url { get; set; }&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;        [UIHint(&lt;span class="str"&gt;&amp;quot;Week&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Week { get; set; }&lt;/pre&gt;

  &lt;pre class="alt"&gt;    }&lt;/pre&gt;

  &lt;pre&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;When use DataType when possible, and UIHint when we can´t. To be able to use this, we will have to create a new EditorTemplate for each input type. For example, we will have a DateTime.ascx file with this content:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Control Language=&amp;quot;C#&amp;quot; Inherits=&amp;quot;System.Web.Mvc.ViewUserControl&amp;lt;System.String&amp;gt;&amp;quot; %&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;: Html.TextBoxFor(_ =&amp;gt; Model, &lt;span class="kwrd"&gt;new&lt;/span&gt; { type = &lt;span class="str"&gt;&amp;quot;datetime&amp;quot;&lt;/span&gt; }) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;You can find a link to a sample project at the end of the post.&lt;/p&gt;

&lt;p&gt;If we run the page in Opera, you will see this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/1Opera_3C47EF80.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="1 - Opera" border="0" alt="1 - Opera" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/1Opera_thumb_42EAD336.png" width="224" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looks great! But what about Internet Explorer 8? If we open the same page in IE 8, we will get this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/2IE8_1E95C8E7.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="2 - IE8" border="0" alt="2 - IE8" src="https://aspblogs.blob.core.windows.net/media/mikaelsoderstrom/Media/2IE8_thumb_5FE0CB80.png" width="148" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the browser will still render normal textboxes if HTML5 forms isn´t supported, so it won´t break your page.&lt;/p&gt;

&lt;p&gt;Thanks to the awesome open source library “jQuery Tools” with its Forms functionality, we can add actually get HTML5 forms support for older browsers such as Internet Explorer 8.&lt;/p&gt;

&lt;p&gt;To load the library including jQuery, add this to your site:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://cdn.jquerytools.org/1.2.4/full/jquery.tools.min.js&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&amp;lt;script&amp;gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;    $(document).ready(&lt;span class="kwrd"&gt;function&lt;/span&gt; () {&lt;/pre&gt;

  &lt;pre&gt;        $(&lt;span class="str"&gt;&amp;quot;:date&amp;quot;&lt;/span&gt;).dateinput();&lt;/pre&gt;

  &lt;pre class="alt"&gt;    });&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;

&lt;p&gt;This will add support for the date field, and you can also add support for Range and add validation using this tool. To know more about it and to download it, take a look at this site:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://flowplayer.org/tools/release-notes/index.html#form"&gt;http://flowplayer.org/tools/release-notes/index.html#form&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source code for the project can be downloaded here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bit.ly/bIflxw"&gt;http://bit.ly/bIflxw&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 18 Aug 2010 13:06:55 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/mikaelsoderstrom/use-html5-forms-in-asp-net-mvc</guid><category>ASP.NET MVC 2</category><category>HTML 5</category><category>VS2010</category></item></channel></rss>