<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.jasongaylord.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>A blog by Jason Gaylord</title><link>http://jasongaylord.com:80/blog</link><description>A blog by Jason Gaylord</description><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.jasongaylord.com/JasonNGaylord" /><feedburner:info uri="jasonngaylord" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>41.337585</geo:lat><geo:long>-75.815873</geo:long><item><title>Detecting Browser Features and Internet Explorer Compatibility Mode</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/KnYZ1L4LiyA/detecting-browser-features-and-ie-compatibility-mode</link><description>&lt;p&gt;First of all, before I begin, please know that in every case, you should detect browser features and not browser versions. However, there are still times that you may need to know the browser version (such as providing screenshots of various browser alerts – ie: ActiveX installation).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Detecting IE Compatibility Mode&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;There are several JavaScript files that are available to detect browsers and their versions. However, I have never come across something that can properly detect IE compatibility mode. This is important as IE10, when run in compatibility mode, runs IE7 quirks mode. &lt;/p&gt; &lt;p&gt;You can obtain the desired values by capturing the &lt;font size="2" face="Courier New"&gt;userAgent&lt;/font&gt; string and parsing it. I’ve created a quick JavaScript function to capture three different properties: &lt;font size="2" face="Courier New"&gt;compatibilityMode&lt;/font&gt; (true/false), &lt;font size="2" face="Courier New"&gt;version&lt;/font&gt; (float), and &lt;font size="2" face="Courier New"&gt;renderVersion&lt;/font&gt; (float). If &lt;font size="2" face="Courier New"&gt;compatibilityMode&lt;/font&gt; is true, the &lt;font size="2" face="Courier New"&gt;renderVersion&lt;/font&gt; is set to a different value than &lt;font size="2" face="Courier New"&gt;version&lt;/font&gt;. This is the version of IE that is emulated within the browser.&lt;/p&gt; &lt;p&gt;A complete example is shown below:&lt;/p&gt;&lt;script src="https://gist.github.com/jasongaylord/5733469.js"&gt;&lt;/script&gt; &lt;p&gt;The output for this looks like the following:&lt;/p&gt;&lt;iframe style="border-top: navy 1px solid; height: 60px; border-right: navy 1px solid; border-bottom: navy 1px solid; border-left: navy 1px solid; width: 100%" src="http://jasongaylord.com/Media/Default/Post-Downloads/IECompatMode/ieCompatModeTest.html"&gt;&lt;/iframe&gt; &lt;p&gt;If you change over to compatibility mode in IE, you’ll notice that the output changes.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;font size="2"&gt;NOTE: The above demonstrates how to read the User Agent string to check to see if IE compatibility mode is enabled. This does not check all browser types and, if used, this should be expanded for your specific purpose.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Why is this Bad?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;When you review the JavaScript, you’ll notice that we’re checking for IE versions 7 through 10. However, there are hundreds of user agent strings. As an example, look at the following link to see the user agents that have been documented for Internet Explorer: &lt;a href="http://jasong.us/18e0VUd" target="_blank"&gt;http://useragentstring.com/pages/Internet%20Explorer/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;What do we do when Chrome 74 is released? What about Internet Explorer 11? Keeping up with user agent strings is a nightmare which is why there are so many commercial products that attempt to detect browser versions.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The Solution: Detecting Browser Features&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;In the past, it may have been difficult to detect browser features as there were so many potential implementations of a feature. In nearly all modern browsers, features have all been standardized around HTML 5. &lt;a href="http://www.modern.ie/en-us" target="_blank"&gt;&lt;a href="http://jasong.us/18e1FIW" target="_blank"&gt;Internet Explorer 10&lt;/a&gt;&lt;/a&gt; standardizes in HTML 5. Google &lt;a href="http://jasong.us/13MvMkq" target="_blank"&gt;recently announced that their abandoning WebKit&lt;/a&gt; to standardize more.&lt;/p&gt; &lt;p&gt;It’s not that difficult to check for features. It’s as simple as checking to see if the feature is undefined and then acting upon it. You can see an example below:&lt;/p&gt;&lt;script src="https://gist.github.com/jasongaylord/5734097.js"&gt;&lt;/script&gt; &lt;p&gt;In this case, since WebKit has its own implementation of the getUserMedia() method, we must include the webkit preface to some of the properties.&lt;/p&gt; &lt;p&gt;You can see this in live action by &lt;a href="http://jasong.us/13MwxtO" target="_blank"&gt;clicking here&lt;/a&gt;. If you are using Chrome or another WebKit browser, you’ll be prompted to allow the browser to have access to your webcam. If not, you should get an error message.&lt;/p&gt; &lt;p&gt;Feel free to &lt;a href="https://gist.github.com/jasongaylord/5734097" target="_blank"&gt;&lt;a href="https://gist.github.com/jasongaylord/5734097" target="_blank"&gt;fork the Gist&lt;/a&gt;&lt;/a&gt; above and begin adding your own features to detect to the BrowserFeatures object.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KnYZ1L4LiyA:dkLeqeWxD10:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KnYZ1L4LiyA:dkLeqeWxD10:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KnYZ1L4LiyA:dkLeqeWxD10:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=KnYZ1L4LiyA:dkLeqeWxD10:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KnYZ1L4LiyA:dkLeqeWxD10:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KnYZ1L4LiyA:dkLeqeWxD10:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=KnYZ1L4LiyA:dkLeqeWxD10:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/KnYZ1L4LiyA" height="1" width="1"/&gt;</description><pubDate>Sat, 08 Jun 2013 04:57:45 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/detecting-browser-features-and-ie-compatibility-mode</guid><feedburner:origLink>http://jasongaylord.com:80/blog/detecting-browser-features-and-ie-compatibility-mode</feedburner:origLink></item><item><title>Update your Windows Phone App to Support Theme Changes</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/svTxJWla_0k/update-windows-phone-app-to-support-theme-changes</link><description>&lt;p&gt;If you’ve ever built a Windows Phone 7 or Windows Phone 8 application, you may have found that your app looks great when building it in Visual Studio. However, as soon as you attempt to change the theme of the application, the design would not appear correct.&lt;/p&gt; &lt;p&gt;One resource on MSDN that you may find useful is the article titled &lt;a href="http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff769552(v=vs.105).aspx" target="_blank"&gt;&lt;a href="http://jasong.us/18zjeT2" target="_blank"&gt;Theme Resources for Windows Phone&lt;/a&gt;&lt;/a&gt;. This article shows several tables that explain the built-in resource names for themes. Besides setting a brush or color within your application to one of the resource values, you may be interested in knowing the theme color (light or dark) or the foreground color chosen within the settings.&lt;/p&gt; &lt;p&gt;Windows Phone does not provide a resource that contains a value as to which theme is chosen. Rather, the visibility of one (or both) of the theme visibility resources must be checked. An example of this is shown below:&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt; &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; Visibility isVisible = &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;    (Visibility)Application.Current.Resources[&lt;span style="color: #006080"&gt;"PhoneLightThemeVisibility"&lt;/span&gt;];&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The foreground is a bit easier. In my case, I usually obtain a brush. The reason for this is that I’m usually using this to programmatically set the background color of one or more controls to this color. Rather than obtaining the foreground brush, I’m really interested in the foreground accent brush. The reason for this is that the accent is the color choice that is made in settings. I can get this be doing the following:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; SolidColorBrush Foreground = &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;    (SolidColorBrush)Application.Current.Resources[&lt;span style="color: #006080"&gt;"PhoneAccentBrush"&lt;/span&gt;];&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;After doing this once, I quickly realized that this should go into a common class library that I've begun to include on every phone project. So, I created a class called theme.cs which is available in a &lt;a href="http://jasong.us/18zpLgs" target="_blank"&gt;GitHub Gist&lt;/a&gt; (please feel free to submit revisions or suggestions as necessary). The complete Gist can also be copied from below:&lt;/p&gt;&lt;script src="https://gist.github.com/jasongaylord/5680181.js"&gt;&lt;/script&gt;
&lt;p&gt;One of the reasons you may need to know the theme is when you are deciding what logo to use. For instance, you wouldn’t want a white logo to appear on the light background. So, to see the Theme.cs in action, I would first update the App.xaml.cs file to call the static method by using &lt;font size="2" face="Courier New"&gt;Theme.Detect()&lt;/font&gt;. This should be done in both the &lt;font size="2" face="Courier New"&gt;Application_Launching&lt;/font&gt; and &lt;font size="2" face="Courier New"&gt;Application_Activated&lt;/font&gt; methods. Then, update each of the pages that use the logo to set the source in a manner similar to the following:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; Logo.Source = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BitmapImage(&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;                  &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Uri(&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;                     Theme.CurrentTheme == Theme.ThemeColor.Dark ? &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;                        &lt;span style="color: #006080"&gt;"/Assets/Logo-Light.png"&lt;/span&gt; : &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;                        &lt;span style="color: #006080"&gt;"/Assets/Logo-Dark.png"&lt;/span&gt;, &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;                        UriKind.Relative));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Another way to accomplish this would be to consistently use the same naming convention and location for assets such as logos. If this is the case, you can move this to the Theme.cs class and create a new static property with a private setter that automatically populates the bitmap.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=svTxJWla_0k:-VKxTjUkjFE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=svTxJWla_0k:-VKxTjUkjFE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=svTxJWla_0k:-VKxTjUkjFE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=svTxJWla_0k:-VKxTjUkjFE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=svTxJWla_0k:-VKxTjUkjFE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=svTxJWla_0k:-VKxTjUkjFE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=svTxJWla_0k:-VKxTjUkjFE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/svTxJWla_0k" height="1" width="1"/&gt;</description><pubDate>Thu, 30 May 2013 21:39:00 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/update-windows-phone-app-to-support-theme-changes</guid><feedburner:origLink>http://jasongaylord.com:80/update-windows-phone-app-to-support-theme-changes</feedburner:origLink></item><item><title>Using PowerShell to Obtain CD/DVD Disk Information</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/Y0X_lzYJJdo/using-powershell-to-obtain-cd-dvd-disk-information</link><description>&lt;p&gt;As the years go by, more and more research, information, and documents can be found online. However, several business verticals still use CDs and DVDs to access research content, backup documents, and share files. In every position that I’ve ever held, I have been asked by someone to locate a disk. I had an old WMI script that would grab the information, place it in a text file on a machine, and notify me via a net message that the file was ready. This was great and did the job, but I wanted to see how I can do the same using PowerShell (and WMI).&lt;/p&gt; &lt;p&gt;When you install PowerShell, it’s capabilities can be expanded through modules. One of the modules that is found in the base installation of PowerShell is the Microsoft.PowerShell.Management module. This module contains a method called &lt;font size="2" face="Courier New"&gt;Get-WmiObject&lt;/font&gt;. This method will use WMI to gain access to certain machine information. In this case, we can obtain the drive information by using the class &lt;font size="2" face="Courier New"&gt;Win32_LogicalDisk&lt;/font&gt; and filtering the drive type to &lt;font size="2" face="Courier New"&gt;2&lt;/font&gt; and &lt;font size="2" face="Courier New"&gt;5&lt;/font&gt;. We’ll choose 2 and 5 as this will return only the Removable Disc and Compact Disc drives. The &lt;a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa394173(v=vs.85).aspx" target="_blank"&gt;&lt;a href="http://jasong.us/146i3n5" target="_blank"&gt;other drive types&lt;/a&gt;&lt;/a&gt; are shown below:&lt;/p&gt; &lt;blockquote&gt; &lt;table cellspacing="0" cellpadding="2" width="238" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="57"&gt;&lt;font face="Segoe UI Semibold"&gt;Value&lt;/font&gt;&lt;/td&gt; &lt;td valign="top" width="179"&gt;&lt;font face="Segoe UI Semibold"&gt;Meaning&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="57"&gt;0&lt;/td&gt; &lt;td valign="top" width="179"&gt;Unknown&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="57"&gt;1&lt;/td&gt; &lt;td valign="top" width="179"&gt;No Root Directory&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="57"&gt;2&lt;/td&gt; &lt;td valign="top" width="179"&gt;Removable Disk&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="57"&gt;3&lt;/td&gt; &lt;td valign="top" width="179"&gt;Local Disk&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="57"&gt;4&lt;/td&gt; &lt;td valign="top" width="179"&gt;Network Drive&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="57"&gt;5&lt;/td&gt; &lt;td valign="top" width="179"&gt;Compact Disk&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="57"&gt;6&lt;/td&gt; &lt;td valign="top" width="179"&gt;RAM Disk&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/blockquote&gt; &lt;p&gt;From each of these drives, we’ll be able to obtain the &lt;font size="2" face="Courier New"&gt;DriveID&lt;/font&gt; (drive letter) and &lt;font size="2" face="Courier New"&gt;VolumeName&lt;/font&gt; (CD/DVD label or name of the removable device). Finally, we’ll pass this information into a custom &lt;font size="2" face="Courier New"&gt;psobject&lt;/font&gt; to display a result table such as below:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d509056adb9f_8B32/Get-ADComputerCDRomInfo_2.png"&gt;&lt;img title="Get-ADComputerCDRomInfo" 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="Get-ADComputerCDRomInfo" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d509056adb9f_8B32/Get-ADComputerCDRomInfo_thumb.png" width="484" height="36"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The final script appears as below:&lt;/p&gt;&lt;script src="https://gist.github.com/jasongaylord/5672298.js"&gt;&lt;/script&gt; &lt;p&gt;For this script to work, remote RPC needs to be enabled, it should be executed from an administrator account, and it should either be signed or executed by allowing (temporarily) unsigned scripts to be executed. This script has been tested to work with PowerShell v1 so that it will work with legacy versions of PowerShell. With later versions of PowerShell (and potentially with this version), this may be able to be refactored.&lt;/p&gt; &lt;p&gt;Feel free to submit revisions to this &lt;a href="http://jasong.us/11zC7lO" target="_blank"&gt;Gist&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Y0X_lzYJJdo:C4qAxbWJjZ8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Y0X_lzYJJdo:C4qAxbWJjZ8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Y0X_lzYJJdo:C4qAxbWJjZ8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=Y0X_lzYJJdo:C4qAxbWJjZ8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Y0X_lzYJJdo:C4qAxbWJjZ8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Y0X_lzYJJdo:C4qAxbWJjZ8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=Y0X_lzYJJdo:C4qAxbWJjZ8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/Y0X_lzYJJdo" height="1" width="1"/&gt;</description><pubDate>Wed, 29 May 2013 20:28:51 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/using-powershell-to-obtain-cd-dvd-disk-information</guid><feedburner:origLink>http://jasongaylord.com:80/blog/using-powershell-to-obtain-cd-dvd-disk-information</feedburner:origLink></item><item><title>What came first? The baby or the app</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/75ywapszLyk/what-came-first-baby-or-app</link><description>&lt;p&gt;So today is the big day where my wife is being induced with our fourth child. Given the past, today’s experience should last between 6-10 hours. Knowing I’ll be hearing monitors in the background, I figured I should do some work. Since I haven’t spent the time to complete an &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200125539" target="_blank"&gt;&lt;a href="http://jasong.us/SRpCMh" target="_blank"&gt;app for Windows Phone&lt;/a&gt;&lt;/a&gt; yet I figured I would challenge myself. I’ll be live blogging this experience today and am up against mother nature. My goal is to see what comes first: my new baby boy or my new &lt;a href="http://jasong.us/SRpCMh" target="_blank"&gt;Windows Phone app&lt;/a&gt;. Wish me luck (on both fronts)!&lt;/p&gt; &lt;p&gt;&lt;u&gt;Current Update:&lt;/u&gt;&lt;br&gt;Bryce Liam was born just before 3pm (my 3pm update was premature). Someone from the Azure Mobile Services team is checking my issue with the app. So, Bryce won the prize (rightfully so as my app definitely is not as good lucking is the little guy), but I’ll still be publishing the application soon. Thanks to everyone that followed today.&lt;/p&gt; &lt;p&gt;3pm At this point, the baby is going to win. I still cannot get Azure Mobile&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Services working properly. I’ll update everyone later this evening. &lt;/p&gt; &lt;p&gt;2pm Lisa’s status hasn’t changed since 8am. I’m getting bonus time now at &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the expense of my wife. I have a few things that I came across to blog&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; about after the app is further along. Stay tuned.&lt;/p&gt; &lt;p&gt;1pm I decided to take a lunch break. Nothing is changing on either front.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The fire alarm at the house is going off again.&lt;/p&gt; &lt;p&gt;12pm Lisa is still hanging in there. Doc hasn’t been in the room in awhile so &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I’m sure we’ll get an update soon. Most of the application style has been &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set. There’s no data as I’ll need to build that out after the fact. &lt;/p&gt; &lt;p&gt;11am As time is passing, I get a phone call from my house. The fire alarm is&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; going off. As the alarm is going off, my mother-in-law proceeds to ask&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; me to hold on so she can answer the phone. There goes 30 minutes of&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; development time. However, I have something compiling (but without&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data). I’m &lt;a href="http://stackoverflow.com/questions/16673219/referencing-windows-azure-mobile-services-in-brand-new-windows-phone-8-app" target="_blank"&gt;&lt;a href="http://jasong.us/12SGhC7" target="_blank"&gt;getting an error when including Azure Mobile Services&lt;/a&gt;&lt;/a&gt; about&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; referencing System.Runtime.&lt;/p&gt; &lt;p&gt;10am Lisa is doing well. She’s continuing to press on. I’m sure things will speed&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; up shortly. I have 3 tables defined on paper and am starting to update&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Azure with the columns. I’m having issues with mobile services.&lt;/p&gt; &lt;p&gt;9am&amp;nbsp; Lisa has contractions around 4 minutes apart. My aunt (doc) still has a 9am&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; surgery. I have my mobile service created in &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200125538" target="_blank"&gt;&lt;a href="http://jasong.us/15lvJ0g" target="_blank"&gt;Azure&lt;/a&gt;&lt;/a&gt; and the logo, tile icons,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and general layout mocked out in &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200125537" target="_blank"&gt;&lt;a href="http://jasong.us/QJs6gH" target="_blank"&gt;VS Express for Phone&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;8am&amp;nbsp; Lisa is now 3cm. I have a logo for the app and the app project started.&lt;/p&gt; &lt;p&gt;7am&amp;nbsp; It’s beginning – I have an idea on paper. Notice the attention to detail.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img title="WP_20130521_002" 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="WP_20130521_002" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/What-came-first-The-baby-or-the-app_5D3F/WP_20130521_002_3.jpg" width="244" height="139"&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=75ywapszLyk:4PKNInNV8y8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=75ywapszLyk:4PKNInNV8y8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=75ywapszLyk:4PKNInNV8y8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=75ywapszLyk:4PKNInNV8y8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=75ywapszLyk:4PKNInNV8y8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=75ywapszLyk:4PKNInNV8y8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=75ywapszLyk:4PKNInNV8y8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/75ywapszLyk" height="1" width="1"/&gt;</description><pubDate>Tue, 21 May 2013 11:00:50 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/what-came-first-baby-or-app</guid><feedburner:origLink>http://jasongaylord.com:80/what-came-first-baby-or-app</feedburner:origLink></item><item><title>Professional ASP.NET 4.5 in C# and VB</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/P4nGRthgL8M/professional-aspnet-45-in-csharp-and-vb</link><description>&lt;p&gt;On May 3rd, &lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-ASP-NET-4-5-in-C-and-VB.productCd-1118311825.html" target="_blank"&gt;&lt;a href="http://jasong.us/16Tpd4h" target="_blank"&gt;Wrox Press&lt;/a&gt;&lt;/a&gt; released &lt;a href="http://jasong.us/amzn-aspnet45" target="_blank"&gt;Professional ASP.NET 4.5 in C# and VB&lt;/a&gt;. I co-authored this book with two Microsoft employees (&lt;a href="http://twitter.com/rustd" target="_blank"&gt;&lt;a href="http://jasong.us/16Tw4ut" target="_blank"&gt;Pranav Rastogi&lt;/a&gt;&lt;/a&gt; and &lt;a href="http://jasong.us/16TxXXY" target="_blank"&gt;Scott Hanselman&lt;/a&gt;)as well as two Microsoft MVPs (&lt;a href="http://twitter.com/chwenz" target="_blank"&gt;&lt;a href="http://jasong.us/16TwAsg" target="_blank"&gt;Christian Wenz&lt;/a&gt;&lt;/a&gt; and &lt;a href="http://jasong.us/16TxYLz" target="_blank"&gt;Todd Miranda&lt;/a&gt;). The book is packed with the most current information about ASP.NET 4.5. It is also the only book I am aware of that explains One ASP.NET. The foreword for this book is written by &lt;a href="http://twitter.com/coolcsh" target="_blank"&gt;&lt;a href="http://jasong.us/16Tx9lR" target="_blank"&gt;Scott Hunter&lt;/a&gt;&lt;/a&gt; of the ASP.NET team.&lt;/p&gt; &lt;p&gt;There are ten parts, 35 chapters, 7 appendixes, and nearly 1500 pages in this book. Here’s the table of contents for the book:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Part 1: ASP.NET Fundamentals&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 1: One ASP.NET&lt;/li&gt; &lt;li&gt;Chapter 2: HTML5 and CSS3 Design with ASP.NET&lt;/li&gt; &lt;li&gt;Chapter 3: ASP.NET Web Forms Structure&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part 2: Controls&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 4: ASP.NET Server Controls&lt;/li&gt; &lt;li&gt;Chapter 5: ASP.NET Web Server Controls&lt;/li&gt; &lt;li&gt;Chapter 6: Validation Server Controls&lt;/li&gt; &lt;li&gt;Chapter 7: User and Server Controls&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part 3: Data Access&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 8: Data Binding&lt;/li&gt; &lt;li&gt;Chapter 9: Model Binding&lt;/li&gt; &lt;li&gt;Chapter 10: Querying with LINQ&lt;/li&gt; &lt;li&gt;Chapter 11: Entity Framework&lt;/li&gt; &lt;li&gt;Chapter 12: ASP.NET Dynamic Data&lt;/li&gt; &lt;li&gt;Chapter 13: Working with Services&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part IV: Providers&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 14: Introduction to the Provider Model&lt;/li&gt; &lt;li&gt;Chapter 15: Extending the Provider Model&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part V: ASP.NET Features&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 16: Working with Master Pages&lt;/li&gt; &lt;li&gt;Chapter 17: Site Navigation&lt;/li&gt; &lt;li&gt;Chapter 18: Personalization&lt;/li&gt; &lt;li&gt;Chapter 19: Membership and Role Management&lt;/li&gt; &lt;li&gt;Chapter 20: Security&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part VI: Application State&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 21: State Management&lt;/li&gt; &lt;li&gt;Chapter 22: Caching&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part VII: Client-Side Development&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 23: ASP.NET AJAX&lt;/li&gt; &lt;li&gt;Chapter 24: AJAX Control Toolkit&lt;/li&gt; &lt;li&gt;Chapter 25: jQuery&lt;/li&gt; &lt;li&gt;Chapter 26: Real-time Communication&lt;/li&gt; &lt;li&gt;Chapter 27: Developing Websites with Mobile in Mind&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part VIII: Application Configuration and Deployment&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 28: Configuration&lt;/li&gt; &lt;li&gt;Chapter 29: Debugging and Error Handling&lt;/li&gt; &lt;li&gt;Chapter 30: Modules and Handlers&lt;/li&gt; &lt;li&gt;Chapter 31: Asynchronous Communication&lt;/li&gt; &lt;li&gt;Chapter 32: Building Global Applications&lt;/li&gt; &lt;li&gt;Chapter 33: Packaging and Deploying ASP.NET&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part IX: Additional ASP.NET Technologies&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Chapter 34: ASP.NET MVC&lt;/li&gt; &lt;li&gt;Chapter 35: ASP.NET Web Pages and Razor &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Part X: Appendixes&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Appendix A: Migrating Older ASP.NET Projects&lt;/li&gt; &lt;li&gt;Appendix B: COM Integration&lt;/li&gt; &lt;li&gt;Appendix C: ASP.NET Ultimate Tools&lt;/li&gt; &lt;li&gt;Appendix D: Administration and Management&lt;/li&gt; &lt;li&gt;Appendix E: Dynamic Types and Languages&lt;/li&gt; &lt;li&gt;Appendix F: ASP.NET Online Resources&lt;/li&gt; &lt;li&gt;Appendix G: Visual Studio Extensibility with NuGet&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;p&gt;You can pick up a copy at Amazon by visiting &lt;a title="http://jasong.us/amzn-aspnet45" href="http://jasong.us/amzn-aspnet45" target="_blank"&gt;http://jasong.us/amzn-aspnet45&lt;/a&gt;. If you do pick up a copy, be sure to post a review of the book on your own blog, on Amazon, or via the forums on Wrox.com.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=P4nGRthgL8M:M1yBeTjT7_Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=P4nGRthgL8M:M1yBeTjT7_Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=P4nGRthgL8M:M1yBeTjT7_Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=P4nGRthgL8M:M1yBeTjT7_Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=P4nGRthgL8M:M1yBeTjT7_Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=P4nGRthgL8M:M1yBeTjT7_Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=P4nGRthgL8M:M1yBeTjT7_Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/P4nGRthgL8M" height="1" width="1"/&gt;</description><pubDate>Tue, 07 May 2013 18:03:37 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/professional-aspnet-45-in-csharp-and-vb</guid><feedburner:origLink>http://jasongaylord.com:80/professional-aspnet-45-in-csharp-and-vb</feedburner:origLink></item><item><title>Samsung Focus to Windows Phone 7.8 to Straight Talk</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/ukNgFQOL6m8/samsung-focus-windows-phone-7.8-straight-talk</link><description>&lt;p&gt;Recently, we made the decision to change one of our Verizon Wireless plans. The plan was a family share plan that has existed for quite some time now. Both phones on the plan were “dumb” phones and the near $130 price point for up to 1400 minutes and no data seemed way too steep. When evaluating other Verizon Wireless plans, the price would increase even more for the two devices plus taxes.&lt;/p&gt; &lt;p&gt;After some discussion, we realized that Verizon Wireless plans just didn’t make sense for these two devices. I had a Samsung Focus v1.3 phone that I received from Microsoft when Windows Phone was first released. The phone still had Windows Phone 7.1 installed on it.&lt;/p&gt; &lt;h2&gt;Upgrading the Samsung Focus to Windows Phone 7.8&lt;/h2&gt; &lt;p&gt;Before deciding to upgrade to Straight Talk, I took to the Internet to see what issues others have been experiencing. One of the issues had to do with MMS messaging and the Samsung Focus. For some reason, there was some issue with the software installed on the Focus.&amp;nbsp; After some searching, I finally found a tutorial to upgrade the phone to Windows Phone 7.8.&amp;nbsp; The best part of this process was that the phone would look like a Nokia Lumia 800 device. &lt;/p&gt; &lt;p&gt;Before we begin, the following will be needed:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Zune software installed on your machine  &lt;li&gt;Application to unzip .rar files such as &lt;a href="http://jasong.us/10KXhJd" target="_blank"&gt;7-zip&lt;/a&gt;  &lt;li&gt;&lt;a title="Skip Ad" href="http://forum.xda-developers.com/attachment.php?attachmentid=891696&amp;amp;d=1328640699" target="_blank"&gt;&lt;a title="Skip Ad" href="http://jasong.us/10KXigh" target="_blank"&gt;DarkForcesTeam MAGLDR Installer&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a href="http://fs1.d-h.st/download/00017/hOp/FOCUS%2520V1.3-ROM%25208835%2520WP7.8%2520V5.3.rar%3Fdownload%26psid%3D1" target="_blank"&gt;&lt;a href="http://jasong.us/10KXiwH" target="_blank"&gt;Samsung Focus 1.3 Image&lt;/a&gt;&lt;/a&gt; (note: save this as SamsungFocus.rar when downloading)&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;In preparation for the install, I found it easiest to copy all files to a common folder on my machine. I used 7-zip to expand the .rar file and extract the files contained within. An example of what these look like can be found below:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/image_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/image_thumb.png" width="244" height="167"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Next, I followed the step-by-step process outlined in this great video by &lt;a href="http://jasong.us/10IoDRL" target="_blank"&gt;Leapy Tech&lt;/a&gt; on Youtube. If this process works for you, definitely click the their name in the previous sentence and give them a shout out on Twitter.&lt;/p&gt; &lt;p&gt;Here is the step-by-step process to getting the ROM loaded:&lt;/p&gt; &lt;p&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/k3f7qiCWH-0" frameborder="0" width="560" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/p&gt; &lt;h2&gt;Enabling Straight Talk on our Samsung Focus&lt;/h2&gt; &lt;p&gt;Between the upgrade of OS and the switch in provider, the provider switch was definitely the more trying process. I’ll end with these pain points in hopes that someone who cares at Tracfone (the technical partner of Straight Talk) actually pays attention.&lt;/p&gt; &lt;p&gt;There were a bunch of steps required for this to work:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;We needed to order a SIM card for the phone. These are best to be acquired directly through &lt;a href="http://jasong.us/10KXqwb" target="_blank"&gt;Straight Talk&lt;/a&gt;. Click on the Shop menu option and choose SIM cards. For the Samsung Focus to work, the phone must be &lt;u&gt;&lt;strong&gt;unlocked&lt;/strong&gt;&lt;/u&gt;. This is extremely important. If you are coming off your contract, your provider, most likely AT&amp;amp;T, should help to unlock the device.&lt;br&gt; &lt;li&gt;In my case, I had to port my number from Verizon Wireless. To do this, you must call Straight Talk using the phone number on the SIM card paper. You will be transferred to at least one other rep that can better assist you. You will be required to have your &lt;u&gt;account number&lt;/u&gt; and &lt;u&gt;password or PIN&lt;/u&gt;. In the case of Verizon Wireless, it is the PIN that you’ll need. You’ll be told that this will take up to 72 hours to migrate, but it actually takes around 15 minutes. Calling into the phone will take longer. This may take up to 4 hours to complete. I would recommend removing the battery and placing it back in every so often to completely reset the phone.&lt;br&gt; &lt;li&gt;Update the APN settings for the web and MMS to work. This was painful, but I finally have it working. I’ll break this down further below.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Before attempting to update the APN settings in the Cellular menu option in Settings, be sure to read this. Nokia has a great app that has full APN capabilities. The app is called Network Setup and can be downloaded in the Marketplace:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture_2.jpg"&gt;&lt;img title="Screen Capture" 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="Screen Capture" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture_thumb.jpg" width="148" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;After it’s installed, find it in your app listing:&lt;/p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(5)_2.jpg"&gt;&lt;img title="Screen Capture (5)" 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="Screen Capture (5)" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(5)_thumb.jpg" width="148" height="244"&gt;&lt;/a&gt;  &lt;p&gt;Next, open up the app. Once you’re in the app, you’ll notice that you can edit an APN or add a new one. Add a new one called Straight Tal (note the name only allows so many characters.)&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(3)_2.jpg"&gt;&lt;img title="Screen Capture (3)" 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="Screen Capture (3)" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(3)_thumb.jpg" width="148" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Since I already have it added, I’ll choose Edit so you can see all of the settings:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(4)_2.jpg"&gt;&lt;img title="Screen Capture (4)" 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="Screen Capture (4)" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(4)_thumb.jpg" width="148" height="244"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(2)_2.jpg"&gt;&lt;img title="Screen Capture (2)" 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="Screen Capture (2)" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(2)_thumb.jpg" width="148" height="244"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(1)_2.jpg"&gt;&lt;img title="Screen Capture (1)" 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="Screen Capture (1)" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Samsung-Focus-to-Wind.8-to-Straight-Talk_14B7A/Screen%20Capture%20(1)_thumb.jpg" width="148" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Now, reboot your phone. It may take a bit for your phone to realize that the MMS settings are correct. I had issues receiving MMS messages. However, after approximately 6-8 hrs of the phone sitting, everything worked.&lt;/p&gt; &lt;h2&gt;My Complaints about Straight Talk&lt;/h2&gt; &lt;p&gt;I have several. Rather than boring you with details, here are the most important ones:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Straight Talk seems to use T-Mobile in our area. In our neighborhood in Northeastern PA, there are very few 3G areas. Verizon Wireless has full 4G service. So, we tend to drop to a very slow connection. For most picture messages or downloads, we connect the phone to our wireless.  &lt;li&gt;The Straight Talk SIM cards are horrible. There are plenty of horror stories on the Internet. They’re mostly true. The cards aren’t that reliable and tend to drop signal. I’m not sure if it’s a programming issue or a short in the card. Regardless, it’s painful.  &lt;li&gt;Support? What support? Be prepared for offshore support. If it’s not documented (and you have access to all of the documentation) they don’t know it. In fact, they contradict themselves telling you one thing, then later saying “don’t do that.” They even told me that Windows Phones don’t work on Straight Talk. I’m hoping that the service gets better because if not, we’ll realize that we’re getting what we’re paying for.  &lt;li&gt;The “bring-your-own-phone” process is also poor. If it wasn’t, I wouldn’t have the need for this post. We’re struggling to find out how to setup voicemail. I’m only hoping that visual voicemail works. However, I have my doubts.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Overall, I can’t say anything much more critical about the service yet. We’re still testing the waters. I do know that the one phone we needed, we were able to save over $50. That’s $1200 over the normal two year commitment by Verizon Wireless and we’re not locked into a contract.&lt;/p&gt; &lt;p&gt;If you have any additional feedback, please leave me a comment.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=ukNgFQOL6m8:mA9PXvsuS8U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=ukNgFQOL6m8:mA9PXvsuS8U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=ukNgFQOL6m8:mA9PXvsuS8U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=ukNgFQOL6m8:mA9PXvsuS8U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=ukNgFQOL6m8:mA9PXvsuS8U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=ukNgFQOL6m8:mA9PXvsuS8U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=ukNgFQOL6m8:mA9PXvsuS8U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/ukNgFQOL6m8" height="1" width="1"/&gt;</description><pubDate>Wed, 10 Apr 2013 04:38:54 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/samsung-focus-windows-phone-7.8-straight-talk</guid><feedburner:origLink>http://jasongaylord.com:80/samsung-focus-windows-phone-7.8-straight-talk</feedburner:origLink></item><item><title>How the Web has Changed–As witnessed through the Webby Awards</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/KlVmBbqdHY4/how-the-web-has-changed%E2%80%93as-witnessed-through-the-webby-awards</link><description>&lt;p&gt;Earlier today, the &lt;a href="http://www.webbyawards.com/press/press-release.php?id=237" target="_blank"&gt;&lt;a href="http://jasong.us/Ytn7mW" target="_blank"&gt;Webby Awards and Internet Explorer teams announced&lt;/a&gt;&lt;/a&gt; a joint project to showcase the Webby Award winners since the awards were handed out in 1997. This new website is built on Web standards which are truly emphasized in &lt;a href="http://windows.microsoft.com/en-US/internet-explorer/download-ie" target="_blank"&gt;Internet Explorer 10&lt;/a&gt;. I’ll have a post in the future to highlight Web standards and the modern Web. However, if you’re too anxious to wait, feel free to check it out on the IE team’s &lt;a href="http://www.modern.ie/" target="_blank"&gt;&lt;a href="http://jasong.us/Z3NLFG" target="_blank"&gt;Modern.IE website&lt;/a&gt;&lt;/a&gt;. In fact, the IE team seems to be so pumped up about the Webby Awards that they released an updated version of the Modern.IE website along with some cool offers such as a &lt;a href="http://blogs.msdn.com/b/ie/archive/2013/04/02/new-on-modern-ie-free-vm-downloads-windows-8-quickstart-kits-enhanced-code-scanning-tools-and-more.aspx" target="_blank"&gt;&lt;a href="http://jasong.us/Z3xYq9" target="_blank"&gt;special offer for Mac developers&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;font face="Segoe UI Semibold"&gt;You can check out this new Webby Awards at &lt;a title="http://winners.webbyawards.com/" href="http://jasong.us/Z3OzKv" target="_blank"&gt;http://winners.webbyawards.com/&lt;/a&gt;&lt;font face="Segoe UI Semibold"&gt;&lt;/font&gt;&lt;/font&gt;&lt;a title="http://winners.webbyawards.com/" href="http://winners.webbyawards.com/"&gt;&lt;font face="Segoe UI Semibold"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="Segoe UI Semibold"&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasong.us/Z3OzKv" target="_blank"&gt;&lt;img title="image" 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="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_19.png" width="640" height="198"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;It’s great to see how the Web has changed over the years. These days, gamers spend a lot of time playing games such as &lt;em&gt;Halo&lt;/em&gt; or &lt;em&gt;Call of Duty&lt;/em&gt;, yet back in the day, many of us played &lt;em&gt;You Don’t Know Jack&lt;/em&gt; (1997 Games winner):&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasong.us/Z3SdEl" target="_blank"&gt;&lt;img title="image" 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="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_20.png" width="260" height="173"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;While a lot has changed, some things haven’t. Most of us still use Amazon for purchasing products online. Unlike social media companies such as Facebook or Twitter, Amazon has been around for quite some time. In fact, they won a Webby award in 1999:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasong.us/Z3RV02" target="_blank"&gt;&lt;img title="image" 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="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_18.png" width="260" height="173"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Also, we didn’t need to hear Mitt Romney’s opinion of Sesame Street being cancelled. In fact, that idea was probably derived from this Webby award winner in 1998 (though I have no facts to back this up):&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasong.us/Z3RGlF" target="_blank"&gt;&lt;img title="image" 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="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_17.png" width="260" height="174"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;But, enough about the 1799 Webby award winners since 1997. The Web has changed drastically in this time. Let’s take a look at a few charts based on the data the Webby award site has collected.&lt;/p&gt; &lt;p&gt;First, the world is growing. In a period of 15 years, we added nearly 20% more people in the world. In contrast, the number of Internet users in the world has also grown, but at an increased pace. In fact, it’s estimated that in 1997, only 1% of the world were considered Internet users. However, in 2012, nearly 34% of the world surfed the World Wide Web.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_8.png"&gt;&lt;img title="image" 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="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_thumb_3.png" width="244" height="148"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_10.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_thumb_4.png" width="244" height="148"&gt;&lt;/a&gt;&lt;/p&gt;   &lt;p&gt;Another interesting bit of information to consider is the number of web pages in existence. Back in 1997, only 1.6 million pages existed. In 2012, it was estimated to be 633 million pages. That’s an increase of nearly 400 times! What’s quite astonishing is the fact that although the “.com boom” helped bring many companies online, the upswing in websites really didn’t occur until 2005 and have more than doubled between 2010 and 2012. The “.com bust” in the early 2000’s halted growth for a year or so, but overall had little effect on where we’re at today. &lt;/p&gt; &lt;p&gt;To help put this into perspective, I wanted to examine the number of Internet users per web page. In 1997, there were 41 Internet users per web page. Just last year, this dropped to 3.8 users per page. Blowing this out to a more grand scale, In 1997, there were 3483 people worldwide per page. Again, this dropped to just over 11 people per page worldwide.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_12.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_thumb_5.png" width="244" height="148"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_14.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d3245dd5d663_88AA/image_thumb_6.png" width="244" height="148"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Seeing these numbers is crazy. It makes me wonder if we’ll ever see more web pages than people. At the current trends, this should happen by 2015. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KlVmBbqdHY4:gvN7DFOMjqI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KlVmBbqdHY4:gvN7DFOMjqI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KlVmBbqdHY4:gvN7DFOMjqI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=KlVmBbqdHY4:gvN7DFOMjqI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KlVmBbqdHY4:gvN7DFOMjqI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=KlVmBbqdHY4:gvN7DFOMjqI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=KlVmBbqdHY4:gvN7DFOMjqI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/KlVmBbqdHY4" height="1" width="1"/&gt;</description><pubDate>Tue, 02 Apr 2013 15:31:00 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/how-the-web-has-changed%E2%80%93as-witnessed-through-the-webby-awards</guid><feedburner:origLink>http://jasongaylord.com:80/blog/how-the-web-has-changed%E2%80%93as-witnessed-through-the-webby-awards</feedburner:origLink></item><item><title>Get the Nth Past Date After Removing a List of Dates from MSSQL</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/DiSzSACeTNc/get-the-nth-past-date-after-removing-a-list-of-dates-from-mssql</link><description>&lt;p&gt;This stemmed from a strange request that came across my desk. I had the need to pull a date 7 business days ago by using T-SQL in Microsoft SQL Server. Sounds simple right? Here’s the catch: the date had to be the 7th business day in the past after removing the days the individual was off.&lt;/p&gt; &lt;p&gt;As an example, let’s assume that we’re running this today, March 5th, 2013. The US representation for this is ‘3/5/2013’. Now, let’s assume that the person we’re pulling this for usually has weekends off. However, when he has to work weekends, he has the Wednesday before and after the weekend he’s working off. So, going back a couple of weeks, this would mean that the following dates would be “off dates:” '2/20/2013', '2/27/2013', '3/2/2013', and '3/3/2013'. If you’re looking at a calendar, you may have counted back to February 24th. However, let’s see how we can do this in T-SQL.&lt;/p&gt; &lt;p&gt;First, before we begin, I’d recommend downloading the latest version of &lt;a href="http://jasong.us/YMpXib" target="_blank"&gt;LINQPad&lt;/a&gt;. LINQPad is a great tool that allows you to run various languages against various databases and test the results. Of course it’s main purpose is to use it for LINQ to Entities. Here’s what it looks like:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/bf79b020b0b3_130A6/image_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/bf79b020b0b3_130A6/image_thumb.png" width="244" height="147"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;There’s several ways we can tackle this problem. The best way I could think of is to use a stored procedure (sproc) passing in the date from where we want to go back from (in my sample I'm just using GetDate()) and the number of days to go back (in my sample I have this hard coded to 7). Next, I’d check each date, one at a time, to see if they are in the table of values that store the days off (table variable defined as @myDaysOff, but would likely be an actual table in the database). &lt;/p&gt; &lt;p&gt;Here’s what I came up with:&lt;/p&gt; &lt;p&gt;&lt;script src="https://gist.github.com/jasongaylord/5096224.js"&gt;&lt;/script&gt;&lt;/p&gt; &lt;p&gt;You can view all of my Github Gists at &lt;a href="https://gist.github.com/jasongaylord" target="_blank"&gt;https://gist.github.com/jasongaylord&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=DiSzSACeTNc:w72yEi2ftsM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=DiSzSACeTNc:w72yEi2ftsM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=DiSzSACeTNc:w72yEi2ftsM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=DiSzSACeTNc:w72yEi2ftsM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=DiSzSACeTNc:w72yEi2ftsM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=DiSzSACeTNc:w72yEi2ftsM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=DiSzSACeTNc:w72yEi2ftsM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/DiSzSACeTNc" height="1" width="1"/&gt;</description><pubDate>Wed, 06 Mar 2013 03:02:15 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/get-the-nth-past-date-after-removing-a-list-of-dates-from-mssql</guid><feedburner:origLink>http://jasongaylord.com:80/blog/get-the-nth-past-date-after-removing-a-list-of-dates-from-mssql</feedburner:origLink></item><item><title>Getting the Shutdown Dialog in Windows 8</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/X7u8kGlWL3Y/getting-the-shutdown-dialog-in-windows-8</link><description>&lt;p&gt;One of the tasks that seem awkward in Windows 8 is the shutdown and restart process. One of my co-workers, Mark Beleski, had discovered a nice keyboard shortcut today. It’s nothing new, but something that I rarely used.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Alt + F4&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you’re in an application, this usually closes out of the app (in desktop or the start menu modes). However, if Windows Explorer has focus (such as clicking on the task bar), you can press this key combination to get the shutdown dialog box:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Getting-the-Shutdown-Dialog-in-Windows-8_EED6/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Getting-the-Shutdown-Dialog-in-Windows-8_EED6/image_thumb.png" width="244" height="128"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=X7u8kGlWL3Y:olqEpW-tN7M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=X7u8kGlWL3Y:olqEpW-tN7M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=X7u8kGlWL3Y:olqEpW-tN7M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=X7u8kGlWL3Y:olqEpW-tN7M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=X7u8kGlWL3Y:olqEpW-tN7M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=X7u8kGlWL3Y:olqEpW-tN7M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=X7u8kGlWL3Y:olqEpW-tN7M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/X7u8kGlWL3Y" height="1" width="1"/&gt;</description><pubDate>Wed, 27 Feb 2013 22:24:49 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/getting-the-shutdown-dialog-in-windows-8</guid><feedburner:origLink>http://jasongaylord.com:80/blog/getting-the-shutdown-dialog-in-windows-8</feedburner:origLink></item><item><title>On the Surface, the Marketing Stinks Already!</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/offCD_kGn-E/on-the-surface-the-marketing-stinks-already</link><description>&lt;p&gt;Tonight, February 9th, Microsoft is releasing their second tablet, the &lt;a href="http://jasong.us/11DSJnC" target="_blank"&gt;Surface Pro&lt;/a&gt;. Besides the Microsoft diehards, such as myself that will be ordering one within the first few minutes possible, I’m concerned that the masses are unaware. So, to solve my curiosity, I set out to see if I could find the answer for sure.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Stop 1: The Sunday Newspaper Advertisements&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;My first stop was to check out the Sunday advertisements found in my local newspaper for the week of February 3rd, 2013. Knowing that both Best Buy and Staples will be selling these devices, I assumed that I would at least see a notice stating that the Surface Pro is “coming this Saturday” on the front page. The advertisements contain upcoming video games and other technology products. &lt;/p&gt; &lt;p&gt;I came across the Staples ad first and found this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasong.us/11DWIR8" target="_blank"&gt;&lt;img title="image" 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="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/On-the-Surface_A5AD/image_3.png" width="244" height="243"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;So, let’s evaluate what was contained on the front page: an advertisement for the $199 Google Nexus, a $329 HP laptop, paper deals, Turbo Tax, 99 cent earbuds, and a price for the Office 365 Pro subscription. That’s it. Next, I ventured through the pages of the advertisement. Surely I should find something about it tucked inside somewhere. I panned through and found nothing about the Surface Pro. However, I did stumble across a small 1.5” listing for the Surface with Windows RT (which also sported the old Microsoft logo) on the third page which also contained the other Windows 8 machines.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/On-the-Surface_A5AD/image_5.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/On-the-Surface_A5AD/image_thumb_1.png" width="244" height="199"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Disappointed, I continued on. The Best Buy advertisement was next. After a scan through this advertisement, neither Surface version was found or even mentioned. Rather, the cover showed 3 Android phones and advertised Sprint, Verizon Wireless, and AT&amp;amp;T.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Stop 2: Super Bowl Advertisements&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Each year, the Super Bowl attacks more than 100 million viewers across the United States alone. This year was no different with over &lt;a href="http://jasong.us/12Afk9f" target="_blank"&gt;108 million viewers&lt;/a&gt;. Knowing that a good portion of those viewers pay more attention to the commercials rather than the game, and with rumors swirling on sites such as &lt;a href="http://www.neowin.net/news/microsoft-nothing-to-share-on-plans-for-a-super-bowl-tv-ad" target="_blank"&gt;&lt;a href="http://jasong.us/12AfwFA" target="_blank"&gt;Neowin about a potential Microsoft commercial&lt;/a&gt;&lt;/a&gt;, I was at the edge of my seat looking for a surprise commercial about the Surface Pro. Nothing arrived. Microsoft just lost out on the single largest conduit to informing customers about these new tablets/ultra-books that they have to offer.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;My Psuedo Solution&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Without a solution from Microsoft to &lt;a href="http://www.theverge.com/2012/10/17/3514556/windows-8-vs-windows-rt-surface-confused-microsoft-store-employees" target="_blank"&gt;&lt;a href="http://jasong.us/12AgEZV" target="_blank"&gt;explain the differences between Pro and RT&lt;/a&gt;&lt;/a&gt;, I decided I needed to help. &lt;/p&gt; &lt;p&gt;&lt;a href="http://jasong.us/VM01sr" target="_blank"&gt;&lt;img title="surface-flyer" 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="surface-flyer" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/On-the-Surface_A5AD/surface-flyer_3.png" width="190" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasong.us/VM01sr" target="_blank"&gt;Click here to download a very basic&lt;/a&gt;, single page explaining the two tablets/ultra-books.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;2/8/2013 11:54 PM – The MicrosoftStore.com website now has the Microsoft Surface Pro listed for sale. However, Best Buy and Staples still do not. Best Buy lists the products as Coming Soon, but does not provide specifics. Staples does not list it online.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=offCD_kGn-E:pexU_OfZl_o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=offCD_kGn-E:pexU_OfZl_o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=offCD_kGn-E:pexU_OfZl_o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=offCD_kGn-E:pexU_OfZl_o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=offCD_kGn-E:pexU_OfZl_o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=offCD_kGn-E:pexU_OfZl_o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=offCD_kGn-E:pexU_OfZl_o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/offCD_kGn-E" height="1" width="1"/&gt;</description><pubDate>Sat, 09 Feb 2013 03:26:16 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/on-the-surface-the-marketing-stinks-already</guid><feedburner:origLink>http://jasongaylord.com:80/on-the-surface-the-marketing-stinks-already</feedburner:origLink></item><item><title>Microsoft Surface Hard Drive Size Is Not An Issue</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/Q-zgWT-VLIA/microsoft-surface-hard-drive-size-is-not-an-issue</link><description>&lt;p&gt;Yesterday, there have been &lt;a href="http://jasong.us/VmFLYX" target="_blank"&gt;numerous&lt;/a&gt; &lt;a href="http://jasong.us/VmFRzC" target="_blank"&gt;reports&lt;/a&gt; &lt;a href="http://jasong.us/VmFTaL" target="_blank"&gt;discussing&lt;/a&gt; the &lt;a href="http://jasong.us/VmFXHE" target="_blank"&gt;hard&lt;/a&gt; &lt;a href="http://www.theverge.com/2013/1/29/3929110/surface-pro-disk-space-windows-8" target="_blank"&gt;&lt;a href="http://jasong.us/VmFZzf" target="_blank"&gt;drive&lt;/a&gt;&lt;/a&gt; size of the Microsoft Surface Pro. I’ll be getting mine when they come out and will be getting the 128 GB size. Most of the world recognizes that 1 GB is 1024 MB and that 1 MB is 1024 KB and so on and so forth. But, in the hard drive manufacturer world, 1 KB is 1000 bytes. Strange right? Think about your last PC. Remember that 1 TB drive you though you had? Funny thing, it was actually just over 900 GB of useable space. There’s a great post that already calculated the math found at &lt;a title="http://www.sevenforums.com/hardware-devices/23890-hdds-advertized-size-vs-actual-size.html" href="http://jasong.us/VmEBMW" target="_blank"&gt;http://jasong.us/VmEBMW&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;So, back to the Microsoft Surface Pro. We’ll cover the 128 GB machine. Before Microsoft even touched the drive, subtract the 9 GB for the manufacturer “rounding.” According to the &lt;a href="http://jasong.us/VmF3dY" target="_blank"&gt;estimates by Microsoft&lt;/a&gt;&lt;a href="http://www.microsoft.com/Surface/en-US/storage" target="_blank"&gt;,&lt;/a&gt; we should be subtracting 12 GB. This will take us to 116 GB. My 240 GB SSD is similar:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d0fdec6829a4_14A66/SNAGHTMLabcd05a2.png"&gt;&lt;img title="SNAGHTMLabcd05a2" 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="SNAGHTMLabcd05a2" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d0fdec6829a4_14A66/SNAGHTMLabcd05a2_thumb.png" width="189" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The Windows 8 RT operating system plus pre-installed apps and recovery partition are estimated to take up 13 GB on the RT model. Windows 8 Pro on my laptop is currently occupying 21 GB:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d0fdec6829a4_14A66/SNAGHTMLabcf393f.png"&gt;&lt;img title="SNAGHTMLabcf393f" 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="SNAGHTMLabcf393f" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/d0fdec6829a4_14A66/SNAGHTMLabcf393f_thumb.png" width="189" height="244"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Keep in mind that the libraries necessary to run traditional Windows applications are not included in the RT model. So, once I subtract that from the space mentioned earlier, I’m down to 96 GB. The reported useable space is 83 GB meaning that there is still 13 GB unaccounted for. After we consider the recovery partition size (which can be deleted) at an estimated 8-10 GB, the remaining 3-5 GB are for the preinstalled apps. Rumor has it that 3.5 GB of this amount includes a trial version of Office 2013.&lt;/p&gt; &lt;p&gt;As always, gurus always try to compare this to Apple and to the iPad. In this case (Surface Pro), that’s difficult. Think of an iPad but running Mac OS X instead of iOS. There are plenty of people out there that peg OS X to be between &lt;a href="https://discussions.apple.com/thread/1408916?start=0&amp;amp;tstart=0" target="_blank"&gt;&lt;a href="https://discussions.apple.com/thread/1408916?start=0&amp;amp;tstart=0" target="_blank"&gt;16 GB&lt;/a&gt;&lt;/a&gt; – &lt;a href="http://forum.notebookreview.com/apple-mac-os-x/164607-how-much-disk-space-does-osx-use.html" target="_blank"&gt;&lt;a href="http://jasong.us/WxSgUG" target="_blank"&gt;20 GB&lt;/a&gt;&lt;/a&gt; on a fresh install.&lt;/p&gt; &lt;h2&gt;Fixing the Storage Concerns of the Microsoft Surface&lt;/h2&gt; &lt;p&gt;Let’s reverse the storage concerns. We’ll start with the 83 GB. Start by removing the recovery partition. We don’t need it. If we really wanted to, we could create a recovery USB drive using that old thumb drive we have laying around. Remember, it’s rare to find a recovery partition on other, non-Microsoft tablets. This should get us back to the 91-93 GB range. Then, let’s remove the unnecessary software and Windows features (if there are any). Let’s also remove any trial software. Instead, spend the $6 a month on a personal Office 365 account. You can download the full-fledged software, get 20GB in extra SkyDrive storage, and use the web version of the apps. We should approach 95 GB and may be closer to the 100 GB mark. At this point, we are stuck. It’s a full OS will backwards compatibility of &lt;u&gt;most&lt;/u&gt; of our applications. I know that first hand as I have a Visual Basic 6 application that still runs fairly flawlessly on Windows 8.&lt;/p&gt; &lt;p&gt;We can still grow our storage space. Remember that the Surface Pro has a full-size USB 3.0 port. It also has a microSDXC card slot that supports up to a 64 GB card. The full USB 3.0 can support any size USB drive. Currently, you can purchase a 32 GB nano USB drive. Full size drives can be purchased well over 1 TB.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Q-zgWT-VLIA:n4FPENKHylg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Q-zgWT-VLIA:n4FPENKHylg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Q-zgWT-VLIA:n4FPENKHylg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=Q-zgWT-VLIA:n4FPENKHylg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Q-zgWT-VLIA:n4FPENKHylg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Q-zgWT-VLIA:n4FPENKHylg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=Q-zgWT-VLIA:n4FPENKHylg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/Q-zgWT-VLIA" height="1" width="1"/&gt;</description><pubDate>Wed, 30 Jan 2013 12:03:00 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/microsoft-surface-hard-drive-size-is-not-an-issue</guid><feedburner:origLink>http://jasongaylord.com:80/blog/microsoft-surface-hard-drive-size-is-not-an-issue</feedburner:origLink></item><item><title>My Host: Cytanium</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/E4yunmoeHFc/my-host-cytanium</link><description>&lt;p&gt;So I&amp;rsquo;m asked quite often who I use for hosting. There was a time when I hosted my own stuff and co-owned a small, regional hosting firm. In fact, at one point, I think we had nearly 50 business customers. However, time has passed and the hosting space became way too competitive for us. We didn&amp;rsquo;t have a multi-location infrastructure and the most complex load-balancing method we used was DNS load balancing. Even though we started to back off from business hosting, I still hosted my own site. That is, until one of my good friends, &lt;a href="http://jasong.us/VTyRMz" target="_blank"&gt;Brad Kingsley&lt;/a&gt;, had approached me about testing out a new service they were going to be providing.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t know Brad, he is the founder and CEO of &lt;a href="http://jasong.us/VTyUb8" target="_blank"&gt;Orcsweb&lt;/a&gt;. Even though companies such as Rackspace or GoDaddy are more recognizable, Orcsweb has still found a way to succeed and host some really popular websites and web applications.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jasong.us/VTAc5X" target="_blank"&gt;Cytanium&lt;/a&gt; is a service that Brad&amp;rsquo;s team had developed a few years ago. It is a Windows shared hosting service that offers reliable Windows hosting at a reasonable price. In fact, you can get Windows hosting for as cheap as $2.50 per month! You can also get VPS hosting through them. I&amp;rsquo;d definitely recommend checking them out.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=E4yunmoeHFc:r8iuAIuxm7Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=E4yunmoeHFc:r8iuAIuxm7Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=E4yunmoeHFc:r8iuAIuxm7Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=E4yunmoeHFc:r8iuAIuxm7Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=E4yunmoeHFc:r8iuAIuxm7Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=E4yunmoeHFc:r8iuAIuxm7Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=E4yunmoeHFc:r8iuAIuxm7Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/E4yunmoeHFc" height="1" width="1"/&gt;</description><pubDate>Wed, 30 Jan 2013 03:45:00 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/my-host-cytanium</guid><feedburner:origLink>http://jasongaylord.com:80/my-host-cytanium</feedburner:origLink></item><item><title>New Year, New Post</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/Gin0tftCGoI/new-year-2013</link><description>&lt;p&gt;So, it's been just over a month since my last post. But, I haven't been too quiet. In fact, I was hard at work customizing and updating one of my other websites, &lt;a href="http://MyLightDisplay.com" target="_blank"&gt;MyLightDisplay.com&lt;/a&gt;. Each year the holidays tend to consume any time I'd typically have to post or work on projects. This year, I have had two different projects that has had 90% of my focus and the other 10% went into our Christmas light display and &lt;a href="http://MyLightDisplay.com" target="_blank"&gt;MyLightDisplay.com&lt;/a&gt;. However, 2013 will be a bit different. I'll be blogging more and will be in the community even more than I have been. I've got a couple of things I'll be talking about shortly so stay tuned. In the meantime, thanks as always for stopping by and Happy New Year!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Gin0tftCGoI:eybRryW04Qs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Gin0tftCGoI:eybRryW04Qs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Gin0tftCGoI:eybRryW04Qs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=Gin0tftCGoI:eybRryW04Qs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Gin0tftCGoI:eybRryW04Qs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=Gin0tftCGoI:eybRryW04Qs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=Gin0tftCGoI:eybRryW04Qs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/Gin0tftCGoI" height="1" width="1"/&gt;</description><pubDate>Tue, 01 Jan 2013 13:00:00 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/new-year-2013</guid><feedburner:origLink>http://jasongaylord.com:80/new-year-2013</feedburner:origLink></item><item><title>Weather.com Drops Support for Internet Explorer 7</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/BBR6BpJsylU/weather.com-drops-support-for-internet-explorer-7</link><description>&lt;p&gt;Earlier this evening, I visited &lt;a href="http://weather.com/" target="_blank"&gt;weather.com&lt;/a&gt; to find the following:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Wea.com-Drops-Support-for-Internet-Explo_143B3/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Wea.com-Drops-Support-for-Internet-Explo_143B3/image_thumb.png" width="244" height="62"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I’m quite surprised that IE7 is being dropped especially on such a popular website. However, I commend them on moving forward. IE7 is now over 6 years old and &lt;a href="http://jasong.us/UoS09H" target="_blank"&gt;estimates are that less than 3%&lt;/a&gt; of users are still using IE7. That’s less than Internet Explorer 8, Internet Explorer 9, Chrome 22, Firefox 15, Firefox 16, and even Internet Explorer 6 – &lt;a href="http://jasong.us/UoS0GG" target="_blank"&gt;which is slowly dying off, but not fast enough&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;As a reminder, if you’re using Windows 7, you can download &lt;a href="http://jasong.us/UoSD2S" target="_blank"&gt;Internet Explorer 10 Release Preview here&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=BBR6BpJsylU:qoHGDAsozMw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=BBR6BpJsylU:qoHGDAsozMw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=BBR6BpJsylU:qoHGDAsozMw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=BBR6BpJsylU:qoHGDAsozMw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=BBR6BpJsylU:qoHGDAsozMw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=BBR6BpJsylU:qoHGDAsozMw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=BBR6BpJsylU:qoHGDAsozMw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/BBR6BpJsylU" height="1" width="1"/&gt;</description><pubDate>Tue, 27 Nov 2012 04:17:40 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/weather.com-drops-support-for-internet-explorer-7</guid><feedburner:origLink>http://jasongaylord.com:80/blog/weather.com-drops-support-for-internet-explorer-7</feedburner:origLink></item><item><title>Syncing “Application Installations” Across Windows 8 Machines</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/HEm2XFOuIFw/syncing-application-installations-across-windows-8-machines</link><description>&lt;p&gt;Windows 8 has done a great job with syncing settings across machines. So good in fact that you can even see what you’ve “purchased” from the Windows Store and what you’ve “purchased” that is not installed. I’m using the term “purchased” loosely as this infers that you’ve downloaded and includes free apps.&lt;/p&gt; &lt;p&gt;So, how do we sync theses application installations? Quite easily.&lt;/p&gt; &lt;p&gt;Go into the Windows Store, right click or swipe down) and choose the item at the top that says “Your Apps”.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Syncing-Application-Installations-Across_B24C/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Syncing-Application-Installations-Across_B24C/image_thumb.png" width="244" height="147"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When that loads, you’ll notice a drop down that shows Apps not installed on this PC. If you choose it, you’ll see all of the Windows 8 machines that are tied to your Microsoft Live account.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Syncing-Application-Installations-Across_B24C/image_4.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Syncing-Application-Installations-Across_B24C/image_thumb_1.png" width="244" height="164"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can choose any of these machines to see what’s installed on that machine, select all of the apps that you’d like to install, and install them to the current machine.&lt;/p&gt; &lt;p&gt;So far, the only caveat that I’ve found (though I’m sure there’s someway to do it), is that my start menu items and groups are not sync’d between machines. If I could get that, this would be a huge win. Until then, cheers!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=HEm2XFOuIFw:Kp47HpI7r4s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=HEm2XFOuIFw:Kp47HpI7r4s:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=HEm2XFOuIFw:Kp47HpI7r4s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=HEm2XFOuIFw:Kp47HpI7r4s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=HEm2XFOuIFw:Kp47HpI7r4s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=HEm2XFOuIFw:Kp47HpI7r4s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=HEm2XFOuIFw:Kp47HpI7r4s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/HEm2XFOuIFw" height="1" width="1"/&gt;</description><pubDate>Mon, 26 Nov 2012 20:12:29 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/syncing-application-installations-across-windows-8-machines</guid><feedburner:origLink>http://jasongaylord.com:80/syncing-application-installations-across-windows-8-machines</feedburner:origLink></item><item><title>Dropping MS SQL Tables that have a Prefix using T-SQL</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/tgz4o0mhw9c/dropping-ms-sql-tables-that-have-a-prefix-using-t-sql</link><description>&lt;p&gt;How many times have you wanted to drop a selection of Microsoft SQL Server tables that have begin with some common characters? I have many times especially when I’m testing certain web applications, such as Orchard CMS, and using different database prefix values to switch between instances. Thanks to &lt;a href="http://blogs.msdn.com/b/curth/" target="_blank"&gt;&lt;a href="http://jasong.us/UJWppw" target="_blank"&gt;Curt Hagenlocher&lt;/a&gt;&lt;/a&gt; over at a &lt;a href="http://stackoverflow.com/questions/4393/sql-server-drop-all-tables-whose-names-begin-with-a-certain-string" target="_blank"&gt;&lt;a href="http://jasong.us/UJWt8T" target="_blank"&gt;StackOverflow post&lt;/a&gt;&lt;/a&gt;, I now can.&lt;/p&gt; &lt;p&gt;&lt;script src="https://gist.github.com/4091658.js?file=delete_tables_byprefix.sql"&gt;&lt;/script&gt;&lt;/p&gt; &lt;p&gt;This can easily be updated to include views, stored procedures, and functions.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=tgz4o0mhw9c:E4U6L9CDJ-U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=tgz4o0mhw9c:E4U6L9CDJ-U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=tgz4o0mhw9c:E4U6L9CDJ-U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=tgz4o0mhw9c:E4U6L9CDJ-U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=tgz4o0mhw9c:E4U6L9CDJ-U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=tgz4o0mhw9c:E4U6L9CDJ-U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=tgz4o0mhw9c:E4U6L9CDJ-U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/tgz4o0mhw9c" height="1" width="1"/&gt;</description><pubDate>Fri, 16 Nov 2012 22:43:29 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/dropping-ms-sql-tables-that-have-a-prefix-using-t-sql</guid><feedburner:origLink>http://jasongaylord.com:80/blog/dropping-ms-sql-tables-that-have-a-prefix-using-t-sql</feedburner:origLink></item><item><title>Being a Microsoft MVP for 10 Years</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/5BOmImBzTGg/being-a-microsoft-mvp-for-10-years</link><description>&lt;p&gt;First of all, thanks to all who are involved with the Microsoft MVP program for acknowledging the technical community. It is much appreciated.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Being-a-Microsoft-MVP-for-10-Years_1096B/WP_002712_2.jpg"&gt;&lt;img title="WP_002712" 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="WP_002712" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Being-a-Microsoft-MVP-for-10-Years_1096B/WP_002712_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;It’s hard to believe, but it’s been 10 years since I first became a Microsoft MVP. I still remember where I was 10 years ago. &lt;/p&gt; &lt;p&gt;&lt;img title="mvp-10-year-thoughts" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; border-left: 0px; display: inline; padding-right: 0px; margin-right: 0px" border="0" alt="mvp-10-year-thoughts" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Being-a-Microsoft-MVP-for-10-Years_1096B/mvp-10-year-thoughts_5.png" width="500" height="202"&gt;&lt;/p&gt; &lt;p&gt;Since that time, I feel that I’ve grown as a community leader and have become a better developer. I think I’ve learned that our user group, &lt;a href="http://jasong.us/T4s4iy" target="_blank"&gt;.NET Valley&lt;/a&gt;, will always have peaks and valleys. Even though we haven’t had consistent attendance, we’ve still managed to observer over 20 IT professionals and developers successfully secure jobs through user group networking at our events. When someone’s livelihood has been positively affected, it’s worth it.&lt;/p&gt; &lt;p&gt;To find out more about the MVP program and similar programs in the technology community, be sure to read my blog post about the MVP program at &lt;a title="http://jasongaylord.com/blog/microsoft-mvp-2012" href="http://jasong.us/WeTwdT"&gt;http://jasongaylord.com/blog/microsoft-mvp-2012&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Finally, I can’t take all of the credit. Besides coworkers and other friends in the technology community, I have to thank my wife, Lisa. She’s tolerated my late nights writing articles, prepping for talks, answering community forums, and traveling to events. Even in all of her spare time, she’s pitched in and helped stuff giveaway grab bags for our &lt;a href="http://techbash.com" target="_blank"&gt;TECHbash&lt;/a&gt; and NEPA GiveCamp events.&lt;/p&gt; &lt;p&gt;I can only hope that I can continue to help out the technology community for the next 10 years with as much success as I have the first 10 years.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=5BOmImBzTGg:tqnj4eouhFg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=5BOmImBzTGg:tqnj4eouhFg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=5BOmImBzTGg:tqnj4eouhFg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=5BOmImBzTGg:tqnj4eouhFg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=5BOmImBzTGg:tqnj4eouhFg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=5BOmImBzTGg:tqnj4eouhFg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=5BOmImBzTGg:tqnj4eouhFg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/5BOmImBzTGg" height="1" width="1"/&gt;</description><pubDate>Fri, 16 Nov 2012 02:37:22 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/being-a-microsoft-mvp-for-10-years</guid><feedburner:origLink>http://jasongaylord.com:80/blog/being-a-microsoft-mvp-for-10-years</feedburner:origLink></item><item><title>Microsoft Stack for Startups</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/cJ2F_YYcVgk/microsoft-stack-for-startups</link><description>&lt;p&gt;One of the questions I’ve been getting asked lately at user group meetings, advisory board meetings, and lunch discussions about technology is “What startups are using Microsoft technology?” The perception is that building on top of the Microsoft stack costs money, much more than using LAMP (Linux, Apache, MySQL, and PHP). Let’s see what Microsoft can offer as of today.&lt;/p&gt; &lt;h2&gt;Microsoft BizSpark&lt;/h2&gt; &lt;p&gt;Many startups aren’t aware of &lt;a href="http://jasong.us/W1fCmJ" target="_blank"&gt;BizSpark&lt;/a&gt;. BizSpark is very similar to WebSpark (for web developers) and DreamSpark (for students) in that businesses can have access to &lt;a href="http://jasong.us/SjCszF" target="_blank"&gt;Microsoft software and services&lt;/a&gt; and &lt;a href="http://jasong.us/SjCeIM" target="_blank"&gt;partner expertise&lt;/a&gt; during a three year time period. At that time, participants “graduate” and get to keep everything that they’ve used during the time period as well as receive steep discounts on future software. To qualify, startups must be less than five years old, be privately held, have less than $1 million in revenue and be developing software. If you’re a student, you can even participate in the &lt;a href="http://jasong.us/W1f5kQ" target="_blank"&gt;annual ImagineCup&lt;/a&gt; competition. Looking for some VC funding? &lt;a href="http://jasong.us/X3mZeO" target="_blank"&gt;Bing Fund&lt;/a&gt; is a potential place to check out. You can find out more about the BizSpark program by &lt;a href="http://jasong.us/W1fCmJ" target="_blank"&gt;visiting the website&lt;/a&gt; or by &lt;a href="http://jasong.us/SjIQXT" target="_blank"&gt;downloading the fact sheet&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Since I’m based in Pennsylvania, I wanted to show my user group members the following in our area and surrounding areas. I think this graphic is pretty telling:&lt;/p&gt; &lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/c807bf986c7f_8993/BizSparkParticipation20121113_2.jpg"&gt;&lt;img title="BizSparkParticipation20121113" 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="BizSparkParticipation20121113" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/c807bf986c7f_8993/BizSparkParticipation20121113_thumb.jpg" width="244" height="129"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Mono Tools&lt;/h2&gt; &lt;p&gt;So, let’s assume that you’re worried that Windows and Windows Server will cost way too much down the road. However, you love Visual Studio and .NET. For many years, there has been a toolset that allows you to build .NET applications and deploy them to Linux. The toolset is called the &lt;a href="http://jasong.us/GXczzu" target="_blank"&gt;Mono Project&lt;/a&gt;. The Mono Project is a port of functionality based on the CLR and specifically C# to Linux. Currently, it covers C# through version 4.0. A commercial product, called &lt;a href="http://jasong.us/SjJLaL" target="_blank"&gt;Mono Tools&lt;/a&gt;, allows developers to have a more seamless integration of the Mono Project within Visual Studio. Mono also has an increasingly large community and you can find out more by reading the &lt;a href="http://jasong.us/SjLaOC" target="_blank"&gt;Monologue&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;One of the major sponsors of the Mono Project is a company called &lt;a href="http://jasong.us/SjM39E" target="_blank"&gt;Xamarin&lt;/a&gt;. The company’s founder, Miguel de Icaza, was the primary force behind the Mono Project before Novell had shut it down. Miguel’s company Xamarin has continued development on the Mono Project and two other interesting projects: &lt;a href="http://jasong.us/SjM9hI" target="_blank"&gt;monotouch&lt;/a&gt; and &lt;a href="http://jasong.us/SjMeSs" target="_blank"&gt;mono for Android&lt;/a&gt;. The monotouch product allows developers to write C# applications for iOS while the mono for Android product allows the same for Android devices. If you’re interested in learning more about either, check out the following books written by Wally McClure:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="200" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="100"&gt;&lt;a href="http://www.amazon.com/gp/product/047063782X/ref=as_li_ss_il?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=047063782X&amp;amp;linkCode=as2&amp;amp;tag=jasongaylordc-20"&gt;&lt;img border="0" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=047063782X&amp;amp;Format=_SL110_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=jasongaylordc-20"&gt;&lt;/a&gt;&lt;img style="border-top-style: none !important; border-left-style: none !important; border-bottom-style: none !important; border-right-style: none !important; margin: 0px" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=jasongaylordc-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=047063782X" width="1" height="1"&gt;&lt;/td&gt; &lt;td valign="top" width="100"&gt;&lt;a href="http://www.amazon.com/gp/product/1118026438/ref=as_li_ss_il?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1118026438&amp;amp;linkCode=as2&amp;amp;tag=jasongaylordc-20"&gt;&lt;img border="0" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=1118026438&amp;amp;Format=_SL110_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=jasongaylordc-20"&gt;&lt;/a&gt;&lt;img style="border-top-style: none !important; border-left-style: none !important; border-bottom-style: none !important; border-right-style: none !important; margin: 0px" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=jasongaylordc-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1118026438" width="1" height="1"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;h2&gt;Other Free Microsoft Resources&lt;/h2&gt; &lt;p&gt;If I were to research and list all of the free resources that Microsoft has for startups, I may never stop typing. So, below is an incomplete list of resources. If you are aware of others, feel free to leave them as a comment and I’ll try to keep this list as complete as possible.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://jasong.us/W1uy4g" target="_blank"&gt;Visual Studio 2012 Express Products&lt;/a&gt; – Please don’t look at the term &lt;em&gt;Express&lt;/em&gt; and think that these products are not feature rich. These products include most of what a startup would need if not everything. If you do need a full version of Visual Studio, look at the Spark programs. If you don’t, you have access the following products:  &lt;ul&gt; &lt;li&gt;Express for Web – For web development  &lt;li&gt;Express for Windows 8 – For WindowsRT design style applications  &lt;li&gt;Express for Windows Desktop – For traditional desktop applications  &lt;li&gt;Express for Windows Phone – For Windows Phone applications  &lt;li&gt;Team Foundation Server Express – For source code management for small teams. If TFS Express isn’t your cup of tea because you use GitHub, you can always consider &lt;a href="http://jasong.us/W1Aryt" target="_blank"&gt;GitHub for Windows&lt;/a&gt; by the GitHub team which is also free.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;SQL Server Products  &lt;ul&gt; &lt;li&gt;&lt;a href="http://jasong.us/W1vVzO" target="_blank"&gt;SQL Server Express 2012&lt;/a&gt; – This is a great way to start off with creating a database that will eventually grow up to and beyond 10 GB. SQL Server Express databases can be migrated over to full blown SQL databases and clustering. &lt;a href="http://jasong.us/W1weuu" target="_blank"&gt;Click here for a full comparison&lt;/a&gt;.  &lt;li&gt;&lt;a href="http://jasong.us/W1wGZZ" target="_blank"&gt;SQL Server 2012 Compact Edition&lt;/a&gt; – SQL Server Compact is not full featured, but is a free, embedded database that can be used with applications. If you’re just looking to store some core data and not looking to do lots with your data, this is perfect. However, you can always use WebMatrix (mentioned next) to convert the database later on if you made the “wrong” choice.&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;a href="http://jasong.us/W1wWrI" target="_blank"&gt;WebMatrix&lt;/a&gt; – This tool is phenomenal. It’s a great lightweight tool for creating web applications. It has been optimized for open source and allows developers to spin up Wordpress and other popular open source applications. It also includes IIS Express (mentioned next)  &lt;li&gt;&lt;a href="http://jasong.us/W1xVYW" target="_blank"&gt;IIS Express&lt;/a&gt; – IIS Express is a free version of the IIS Web Server that can be installed and setup to point to any directory. This is a great tool during the development process. Oh, and this is also bundled with WebMatrix and Visual Studio.  &lt;li&gt;&lt;a href="http://jasong.us/W1yqCg" target="_blank"&gt;Azure Cloud Services&lt;/a&gt; – So this one is tricky. It’s not really free. There is a 90 day trial and the team frequently offers free services for a limited time when they offer new features or products. However, if you don’t want to pay for hardware, this is a great way to host your entire business (or parts of it). Active Directory (for authentication), Exchange (for email), SQL Azure, etc. are all part of the same service.  &lt;li&gt;&lt;a href="http://jasong.us/W1zo1v" target="_blank"&gt;Outlook.com Email&lt;/a&gt; – Outlook.com is the new Hotmail. One of the cool features is that if you already own a custom domain name, you can set it up with Outlook.com for email. Check out &lt;a href="http://domains.live.com"&gt;http://domains.live.com&lt;/a&gt; for more information.  &lt;li&gt;Open Source Projects – There are too many to name them all. However, check out these resources that highlight Microsoft supported and community open source projects on the Microsoft stack:  &lt;ul&gt; &lt;li&gt;&lt;a href="http://jasong.us/W1zPsw" target="_blank"&gt;ASP.NET MVC, ASP.NET Web API, and Razor&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/W1zZAa" target="_blank"&gt;Microsoft Open Source Directory&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/W1ARVv" target="_blank"&gt;Orchard CMS&lt;/a&gt; – A CMS system for developing feature rich web applications.  &lt;li&gt;&lt;a href="http://jasong.us/W1BiiF" target="_blank"&gt;Outercurve Foundation&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/W1Ab2t" target="_blank"&gt;CodePlex&lt;/a&gt; and &lt;a href="http://jasong.us/UAJFlf" target="_blank"&gt;GitHub&lt;/a&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Startups Currently Using the Microsoft Stack&lt;/h2&gt; &lt;p&gt;Much like the free resource listing above, this list is (very) incomplete. If you are aware of a startup that is using the Microsoft stack, please let me know in the comment section and I’ll try to keep this up to date. Microsoft also has an &lt;a href="http://jasong.us/W1BSNf" target="_blank"&gt;incomplete listing on their website&lt;/a&gt;.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://jasong.us/W1BBtU" target="_blank"&gt;StackOverflow&lt;/a&gt; and the entire &lt;a href="http://jasong.us/W1BJJL" target="_blank"&gt;StackExchange&lt;/a&gt; network  &lt;li&gt;&lt;a href="http://jasong.us/SOTlCS" target="_blank"&gt;Woot!&lt;/a&gt;  &lt;li&gt;Several companies at &lt;a href="http://jasong.us/TDiVfA" target="_blank"&gt;nebraskaGlobal&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/TDj6aF" target="_blank"&gt;Axosoft&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/QFCFC4" target="_blank"&gt;Watt Metrics&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/QFCLcR" target="_blank"&gt;Digital Folio&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/TDjjus" target="_blank"&gt;EventDay&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/TYI9Hs" target="_blank"&gt;ZocDoc&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/TYIpGn" target="_blank"&gt;Adzerk&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/TYIwl8" target="_blank"&gt;PlumReward.com&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/TDfu8M" target="_blank"&gt;Plenty of Fish&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/TDgolA" target="_blank"&gt;Market Invoice&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/TDipOI" target="_blank"&gt;EffectCheck&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/SOTBSt" target="_blank"&gt;GoEleven&lt;/a&gt;  &lt;li&gt;&lt;a href="http://jasong.us/SOTshK" target="_blank"&gt;InDxLogic&lt;/a&gt;  &lt;li&gt;And of course, numerous first time applications that have come first to Windows Phone or Windows 8 such as &lt;a href="ms-windows-store:PDP?PFN=HiddenPineappleLLC.Rowi_8364z769gkj0p&amp;amp;qpvt=Rowi" target="_blank"&gt;Rowi&lt;/a&gt;.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p align="center"&gt;&lt;em&gt;Special thanks to: Scott Hanselman, Julie Lerman, Kathleen Dollard, Jonathan Goodyear, Dave Ward, and many others for contributing to this initial list of startups.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;So, hopefully you have a better idea as to what the Microsoft Stack can do for your startup. If you have any suggestions for items you’d like to see added, be sure to let me know in the comments of this post.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=cJ2F_YYcVgk:8kkutjfR2dw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=cJ2F_YYcVgk:8kkutjfR2dw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=cJ2F_YYcVgk:8kkutjfR2dw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=cJ2F_YYcVgk:8kkutjfR2dw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=cJ2F_YYcVgk:8kkutjfR2dw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=cJ2F_YYcVgk:8kkutjfR2dw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=cJ2F_YYcVgk:8kkutjfR2dw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/cJ2F_YYcVgk" height="1" width="1"/&gt;</description><pubDate>Wed, 14 Nov 2012 02:44:56 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/microsoft-stack-for-startups</guid><feedburner:origLink>http://jasongaylord.com:80/blog/microsoft-stack-for-startups</feedburner:origLink></item><item><title>Embed JavaScript in Custom ASP.NET Server Controls</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/vE3Ca48Q0bE/embed-javascript-in-custom-asp.net-server-controls</link><description>&lt;p&gt;As ASP.NET evolves, using ASP.NET WebForms is still the most popular way to serve up ASP.NET. One of the biggest benefits of ASP.NET WebForms is the fact that we can use re-usable code in several ways including in a compiled server control. What you may not know is that server controls can be quite powerful and can allow referencing JavaScript files. But, if you’re distributing your controls or do not have the means to host your JavaScript files on a content delivery network (CDN), you may want to package the files with your control. &lt;/p&gt; &lt;p&gt;So, let’s start from the beginning. Let’s assume that we’re building a sample web application to test our control output. We’ll create a brand new solution in Visual Studio 2012 along with an ASP.NET Empty Web Application. After the project is created, we’ll add another new project: an ASP.NET Server Control project called ‘OurSuperCoolControlSuite’.&lt;/p&gt; &lt;p&gt;After our server control project has been added, we’ll see a .cs file (or .vb file if we are using Visual Basic) named ServerControl1.cs. For this example, let’s rename this to GreetingControl.cs. I then have updated my GreetingControl.cs to include a basic input text element that calls some custom JavaScript when the input element loses focus to show a Greeting alert. Here’s what the GreetingControl.cs looks like:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;GreetingControl.cs&lt;/strong&gt;&lt;/p&gt; &lt;div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: 'Courier New', courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4"&gt; &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.ComponentModel;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Threading.Tasks;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Web.UI;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; OurSuperCoolControlSuite&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt;     [DefaultProperty(&lt;span style="color: #006080"&gt;"Text"&lt;/span&gt;)]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;     [ToolboxData(&lt;span style="color: #006080"&gt;"&amp;lt;{0}:GreetingControl runat=server&amp;gt;&amp;lt;/{0}:GreetingControl&amp;gt;"&lt;/span&gt;)]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; GreetingControl : WebControl&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum16" style="color: #606060"&gt;  16:&lt;/span&gt;     {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum17" style="color: #606060"&gt;  17:&lt;/span&gt;         [Bindable(&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;)]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum18" style="color: #606060"&gt;  18:&lt;/span&gt;         [Category(&lt;span style="color: #006080"&gt;"Appearance"&lt;/span&gt;)]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum19" style="color: #606060"&gt;  19:&lt;/span&gt;         [DefaultValue(&lt;span style="color: #006080"&gt;""&lt;/span&gt;)]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum20" style="color: #606060"&gt;  20:&lt;/span&gt;         [Localizable(&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;)]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum21" style="color: #606060"&gt;  21:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Text&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum22" style="color: #606060"&gt;  22:&lt;/span&gt;         {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum23" style="color: #606060"&gt;  23:&lt;/span&gt;             get&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum24" style="color: #606060"&gt;  24:&lt;/span&gt;             {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum25" style="color: #606060"&gt;  25:&lt;/span&gt;                 String s = (String)ViewState[&lt;span style="color: #006080"&gt;"Text"&lt;/span&gt;];&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum26" style="color: #606060"&gt;  26:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; ((s == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)? &lt;span style="color: #006080"&gt;"Jason"&lt;/span&gt; : s);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum27" style="color: #606060"&gt;  27:&lt;/span&gt;             }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum28" style="color: #606060"&gt;  28:&lt;/span&gt;  &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum29" style="color: #606060"&gt;  29:&lt;/span&gt;             set&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum30" style="color: #606060"&gt;  30:&lt;/span&gt;             {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum31" style="color: #606060"&gt;  31:&lt;/span&gt;                 ViewState[&lt;span style="color: #006080"&gt;"Text"&lt;/span&gt;] = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum32" style="color: #606060"&gt;  32:&lt;/span&gt;             }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum33" style="color: #606060"&gt;  33:&lt;/span&gt;         }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum34" style="color: #606060"&gt;  34:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum35" style="color: #606060"&gt;  35:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; OnPreRender(EventArgs e)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum36" style="color: #606060"&gt;  36:&lt;/span&gt;         {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum37" style="color: #606060"&gt;  37:&lt;/span&gt;             Page.ClientScript.RegisterClientScriptResource(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(GreetingControl), &lt;span style="color: #006080"&gt;"OurSuperCoolControlSuite.Scripts.Greeting.js"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum38" style="color: #606060"&gt;  38:&lt;/span&gt;             Page.ClientScript.RegisterStartupScript(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(Page), &lt;span style="color: #006080"&gt;"ControlFocus"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"document.getElementById('"&lt;/span&gt; + &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.ClientID + &lt;span style="color: #006080"&gt;"').focus();"&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum39" style="color: #606060"&gt;  39:&lt;/span&gt;         } &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum40" style="color: #606060"&gt;  40:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum41" style="color: #606060"&gt;  41:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; RenderContents(HtmlTextWriter output)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum42" style="color: #606060"&gt;  42:&lt;/span&gt;         {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum43" style="color: #606060"&gt;  43:&lt;/span&gt;             output.RenderBeginTag(HtmlTextWriterTag.Div);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum44" style="color: #606060"&gt;  44:&lt;/span&gt;             output.AddAttribute(HtmlTextWriterAttribute.Type, &lt;span style="color: #006080"&gt;"text"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum45" style="color: #606060"&gt;  45:&lt;/span&gt;             output.AddAttribute(HtmlTextWriterAttribute.Id, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.ClientID);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum46" style="color: #606060"&gt;  46:&lt;/span&gt;             output.AddAttribute(HtmlTextWriterAttribute.Name, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.ClientID);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum47" style="color: #606060"&gt;  47:&lt;/span&gt;             output.AddAttribute(HtmlTextWriterAttribute.Value, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Text);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum48" style="color: #606060"&gt;  48:&lt;/span&gt;             output.AddAttribute(&lt;span style="color: #006080"&gt;"onBlur"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"greetMe(this.value);"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum49" style="color: #606060"&gt;  49:&lt;/span&gt;             output.RenderBeginTag(HtmlTextWriterTag.Input);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum50" style="color: #606060"&gt;  50:&lt;/span&gt;             output.RenderEndTag();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum51" style="color: #606060"&gt;  51:&lt;/span&gt;             output.RenderEndTag();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum52" style="color: #606060"&gt;  52:&lt;/span&gt;         }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum53" style="color: #606060"&gt;  53:&lt;/span&gt;     }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum54" style="color: #606060"&gt;  54:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Next, we’ll add a &lt;em&gt;Scripts&lt;/em&gt; folder to this same project. We don’t have to, but this allows us to organize our JavaScript files better. So, if you look in the code snippet above, you’ll notice on Line 37, we’re using ClientScript.RegisterClientScriptResource. This method takes two attributes: a type and a string of the resource. For the type, it’s best to use the class name of the control you are building. The reasoning behind this is that if you are sharing the same script across multiple controls, you may run into some strange behavior as the embedded resource will be shared between all of the controls using the same type. This means that if your end users are using two different controls that use the same resource on the same page and that resource contains a variable to store a value, the value is used between both controls. The second attribute is our JavaScript file. Now, in a minute, we’ll add Greeting.js to our Scripts folder. But, we can have multiple Greeting.js files in our application. So, to clarify which one we would like to use, we need to specify the assembly name, folder structure, and JavaScript file name. In this case, our default namespace and assembly are both OurSuperCoolControlSuite. The folder structure is just Scripts. We’ll separate these using periods to get &lt;em&gt;OurSuperCoolControlSuite.Scripts.Greeting.js&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Let’s add that JavaScript file now and change the Build Action of the file in the properties window to ‘Embedded Resource’.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Greeting.js&lt;/strong&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: 'Courier New', courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4"&gt;
&lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; greetMe(value) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     alert(&lt;span style="color: #006080"&gt;'Welcome, '&lt;/span&gt; + value);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt; }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;We’re almost there. We have our JavaScript embedded into the binary and we’re looking to register the script file in our control, but at this point we haven’t specified that this resource is available to the Web. So, just to keep all of our assembly information together in AssemblyInfo.cs by adding the following to that file (found in the Properties folder):&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;[assembly: WebResource(&lt;span style="color: #006080"&gt;"OurSuperCoolControlSuite.Scripts.Greeting.js"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;)]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Now, let’s compile our server control project OurSuperCoolControlSuite.&lt;/p&gt;
&lt;p&gt;Going back to our ASP.NET Web project, let’s add a new ASP.NET WebForm called default.aspx. We’ll switch to design mode as this refreshes the Toolbox window. We should now see our control appear at the top of the toolbox as shown below:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Embed-JavaScript-in-.NET-Server-Controls_14FF5/image_2.png"&gt;&lt;img title="image" 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="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Embed-JavaScript-in-.NET-Server-Controls_14FF5/image_thumb.png" width="244" height="120"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Finally, let’s drag our control to the designer. We’ll leave all of the default values of the control and simply run our Web application to see what we’ve done. When we leave the input control, we’ll get our JavaScript alert like we’re expecting:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Embed-JavaScript-in-.NET-Server-Controls_14FF5/image_4.png"&gt;&lt;img title="image" 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="image" src="http://jasongaylord.com/Media/Default/Windows-Live-Writer/Embed-JavaScript-in-.NET-Server-Controls_14FF5/image_thumb_1.png" width="644" height="317"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So, let’s check out the rendered markup:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: 'Courier New', courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4"&gt;
&lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #800000"&gt;DOCTYPE&lt;/span&gt; &lt;span style="color: #ff0000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;form&lt;/span&gt; &lt;span style="color: #ff0000"&gt;method&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="post"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;action&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="default.aspx"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="form1"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="aspNetHidden"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="hidden"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="__VIEWSTATE"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="__VIEWSTATE"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="ujUKHFd/M66UGv4J0cHNpTYhArBWf9fbtT2EnoPIeBCTvKsxnv8RhqWiclz4isaDVA5RGAq34QhgzP1u00nUnc2G+uo9cHBXO93wo4KVt0g="&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum14" style="color: #606060"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum15" style="color: #606060"&gt;  15:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum16" style="color: #606060"&gt;  16:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/WebResource.axd?d=-P4RDcgXkNOn_YBSzQs9QnlpUkuyKvL9dN_aN24z9gNtNbp8N0RegRa0qyC9MB1-76d6lcsPvf-em95iFJrp2hesCfrTWRkCgd7vEMF3yI3Rfc_Eyywc7m9bEtxaWp_rVl_WDYbyF97Ehy42Q0Z1WQ2&amp;amp;amp;t=634880155251801752"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     &amp;lt;div&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;         &amp;lt;span id=&lt;span style="color: #006080"&gt;"GreetingControl1"&lt;/span&gt;&amp;gt;&amp;lt;div&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;     &amp;lt;input type=&lt;span style="color: #006080"&gt;"text"&lt;/span&gt; id=&lt;span style="color: #006080"&gt;"GreetingControl1"&lt;/span&gt; name=&lt;span style="color: #006080"&gt;"GreetingControl1"&lt;/span&gt; value=&lt;span style="color: #006080"&gt;"Jason"&lt;/span&gt; onBlur=&lt;span style="color: #006080"&gt;"greetMe(this.value);"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt; &amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;     &amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;     &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum11" style="color: #606060"&gt;  11:&lt;/span&gt; &amp;lt;script type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum12" style="color: #606060"&gt;  12:&lt;/span&gt; &lt;span style="color: #008000"&gt;//&amp;lt;![CDATA[&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum13" style="color: #606060"&gt;  13:&lt;/span&gt; document.getElementById(&lt;span style="color: #006080"&gt;'GreetingControl1'&lt;/span&gt;).focus();&lt;span style="color: #008000"&gt;//]]&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum17" style="color: #606060"&gt;  17:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;form&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum18" style="color: #606060"&gt;  18:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum19" style="color: #606060"&gt;  19:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Notice that in Line 16, we have a script reference. This reference is using an HttpHandler named WebResource.axd. Our JavaScript file has been referenced through this URL. &lt;/p&gt;
&lt;p&gt;What’s cool about this is that we now have a self-contained server control that has an embedded JavaScript file.&lt;/p&gt;
&lt;p&gt;So, if you’d like to skip right to the demo without building it yourself, feel free to download the solution using the link below.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jasong.us/Twz0RL" target="_blank"&gt;&lt;img style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-top-width: 0px" src="http://jasongaylord.com/Media/Default/S/Download.png"&gt;&lt;br&gt;Download&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=vE3Ca48Q0bE:DmujWCgUkuQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=vE3Ca48Q0bE:DmujWCgUkuQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=vE3Ca48Q0bE:DmujWCgUkuQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=vE3Ca48Q0bE:DmujWCgUkuQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=vE3Ca48Q0bE:DmujWCgUkuQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=vE3Ca48Q0bE:DmujWCgUkuQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=vE3Ca48Q0bE:DmujWCgUkuQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/vE3Ca48Q0bE" height="1" width="1"/&gt;</description><pubDate>Fri, 09 Nov 2012 05:54:26 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/embed-javascript-in-custom-asp.net-server-controls</guid><feedburner:origLink>http://jasongaylord.com:80/blog/embed-javascript-in-custom-asp.net-server-controls</feedburner:origLink></item><item><title>Windows Store is Missing Enterprise Capabilities</title><link>http://feeds.jasongaylord.com/~r/JasonNGaylord/~3/coCxChlGE0c/windows-store-is-missing-enterprise-capabilities</link><description>&lt;p&gt;The Windows Store is great. Seriously, it is. There are some minor issues with it that I’d like to see such as a way to track “recommended apps” by either your friends or by Microsoft and a way to sort Games by “Xbox” titles. However, the biggest thing the Windows Store is missing is a way for businesses to handle it. &lt;/p&gt; &lt;p&gt;IT professionals have never had to deal with this in the way they do now. Windows design style applications are coming out to accomplish so much and a lot of business functionality is moving to these types of applications. Although, iPads and the rest of the “iParade” could have connected to the network, the Apple world has generally been considered a “separate” network from the traditional machines. The question is, how would an enterprise level store work? Well, I have some recommendations:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The most obvious is the Group Policy update for enabling and disabling the Windows Store. However, when SalesForce or Microsoft CRM comes out with an app for the Start menu, we cannot disallow the Sales staff from installing it. That’s one of the reasons they like to use iPads now.  &lt;li&gt;Allow corporate sponsored applications to be deployed to Windows 8 devices. All Windows 8 devices. See, I’m a developer. And I know we’ll have WindowsRT devices in our organization. And I know I compile apps for x86 and x64. But, there has to be a way that Microsoft can decompile my .NET apps back into IL and allow for deployment to WindowsRT devices. I’m not that well versed in the deep inner-workings of the CLR, but I’m sure that there can be some magic there.  &lt;li&gt;Allow businesses to add apps to a custom store feed per OU or User. I’m sure this would cause a lot of work to be done and Microsoft would want to charge for it so it sounds like a great addition to System Center. I mean, how cool would it be to open up all games for the IT staff but leave only the Skype app for all other users? Keeping it real, there’s no reason why different departments can’t have different available apps through their store and can install the apps on demand.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Hopefully we’ll see something official from Microsoft in the next 12 months if not sooner. Some of us like the idea of early adoption, but an all or nothing store doesn’t help us out.&lt;/p&gt; &lt;p&gt;What are your thoughts?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;UPDATE – Partially Solved&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Apparently, in the first quarter of 2013, there will be an update for System Center to include a Self-Service Portal (confusing name) that is very similar to a private Windows Store for enterprises (explained more at &lt;a title="http://channel9.msdn.com/Events/Build/2012/2-104" href="http://channel9.msdn.com/Events/Build/2012/2-104"&gt;http://channel9.msdn.com/Events/Build/2012/2-104&lt;/a&gt;). This still doesn’t solve an issue for Small Businesses unless Microsoft is going to offer a Self-Service Portal Express version.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=coCxChlGE0c:R5G6iSgwHwU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=coCxChlGE0c:R5G6iSgwHwU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=coCxChlGE0c:R5G6iSgwHwU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=coCxChlGE0c:R5G6iSgwHwU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=coCxChlGE0c:R5G6iSgwHwU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.jasongaylord.com/~ff/JasonNGaylord?a=coCxChlGE0c:R5G6iSgwHwU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JasonNGaylord?i=coCxChlGE0c:R5G6iSgwHwU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JasonNGaylord/~4/coCxChlGE0c" height="1" width="1"/&gt;</description><pubDate>Wed, 07 Nov 2012 15:45:45 GMT</pubDate><guid isPermaLink="false">http://jasongaylord.com:80/blog/windows-store-is-missing-enterprise-capabilities</guid><feedburner:origLink>http://jasongaylord.com:80/blog/windows-store-is-missing-enterprise-capabilities</feedburner:origLink></item></channel></rss>
