<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkYHSHk6fyp7ImA9WhRaFEU.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938</id><updated>2012-02-17T13:02:19.717+01:00</updated><category term="SNMP" /><category term="System Resource Manager" /><category term="Visual Studio" /><category term="Remote Procedure Call" /><category term="DNS" /><category term="LEAP" /><category term="The Cornball" /><category term="Outlook" /><category term="Power Tools" /><category term="DST" /><category term="Diagnostics" /><category term="Data Collector Sets" /><category term="Cisco" /><category term="Berlin" /><category term="System.DirectoryServices" /><category term="Change" /><category term="Windows" /><category term="Camera icon" /><category term="Google Search Appliance" /><category term="Destroy" /><category term="ASP.NET" /><category term="Nostalgia" /><category term="Team Foundation Services" /><category term="WMI" /><category term="Work Item" /><category term="Local Security Authority" /><category term="Desktop virtualization" /><category term="Dropbox" /><category term="NUnit" /><category term="Policy" /><category term="WebBrowser" /><category term="Resource" /><category term="TACACS" /><category term="VDI" /><category term="Visio" /><category term="Gmail" /><category term="MSBuild" /><category term="Blogger" /><category term="IIS" /><category term="Connecta" /><category term="Windows Server" /><category term="SWEREF 99" /><category term="Development" /><category term="Privileges" /><category term="iPhone" /><category term="Google Plus" /><category term="Topology" /><category term="Administrator" /><category term="HTML" /><category term="Certificate" /><category term="ActiveSync" /><category term="Internet Explorer" /><category term="Dallas" /><category term=".NET" /><category term="Preloader" /><category term="Team Foundation Server" /><category term="Microsoft" /><category term="BPOS" /><category term="Binding" /><category term="Exchange" /><category term="English" /><category term="SQL Server" /><category term="Team Explorer" /><category term="Build" /><category term="Firewall" /><category term="Splash Screen" /><category term="Domain" /><category term="Azure" /><category term="Programming" /><category term="Configuration" /><category term="Sound Effects" /><category term="Chicago" /><category term="RADIUS" /><category term="TEC Europe" /><category term="C# .NET" /><category term="Cloud Day" /><category term="Animation" /><category term="Cloud" /><category term="BriForum" /><category term="Certification" /><category term="Getdate" /><category term="Double Click" /><category term="Testrunconfig" /><category term="WordPress" /><category term="Redmond" /><category term="EDNS0" /><category term="Intune" /><category term="System.DirectoryServices.AccountManagement" /><category term="RemoteFX" /><category term="NPS" /><category term="SkipWorkItemCreation" /><category term="System.DirectoryServices.Protocols" /><category term="Handheld" /><category term="System Attendant" /><category term="Bing Maps" /><category term="Active Directory" /><category term="Password" /><category term="WPF" /><category term="Google Apps" /><category term="CodePlex" /><category term="Silverlight" /><title>Victor Stodell</title><subtitle type="html">.NET, TFS, Azure or anything Microsoft</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://victor.stodell.se/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://victor.stodell.se/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/VictorStodell" /><feedburner:info uri="victorstodell" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CkYHSHk5cCp7ImA9WhRaFEU.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-1951942085738136569</id><published>2012-02-16T19:00:00.000+01:00</published><updated>2012-02-17T13:02:19.728+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-17T13:02:19.728+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Azure" /><category scheme="http://www.blogger.com/atom/ns#" term="LEAP" /><title>First gathering of LEAP Sweden 2012</title><content type="html">I am back home in the couch after the second day on the first gathering of &lt;a href="http://victor.stodell.se/2012/01/microsoft-leap-sweden-2012.html" target="_blank"&gt;Microsoft LEAP Sweden 2012&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It has been two days packed with lectures on architecture and cloud computing. Without giving away too much, here are some short notes from this first gathering:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;In software arcitecture, knowing your patterns and practices is always a good thing. The same goes for best practices. &lt;a href="http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)" target="_blank"&gt;SOLID&lt;/a&gt; is not a new concept, but it bears repeating!&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The future is all about &lt;a href="http://en.wikipedia.org/wiki/Bring_your_own_device" target="_blank"&gt;bring-you-own-device&lt;/a&gt;, the cloud in general and&amp;nbsp;&lt;a href="https://www.windowsazure.com/en-us/" target="_blank"&gt;Azure&lt;/a&gt;&amp;nbsp;in particular.&amp;nbsp;Also, the future is now!&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh545593.aspx" target="_blank"&gt;Windows Azure HPC Scheduler&lt;/a&gt; is awesome for high performance computing scenarios where an extra boost is needed. You gotta love the elastic cloud!&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;I will start working on a &lt;a href="http://www.rockpaperazure.com/" target="_blank"&gt;Rock Paper Azure&lt;/a&gt; bot this weekend and try to conquer the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
The speakers that shared this information with us were among others &lt;a href="http://blog.lowendahl.net/" target="_blank"&gt;Patrik Löwendahl&lt;/a&gt;,&amp;nbsp;&lt;a href="http://brianhprince.com/" target="_blank"&gt;Brian Prince&lt;/a&gt;&amp;nbsp;and of course&amp;nbsp;&lt;a href="http://bjorneriksen.blogspot.com/" target="_blank"&gt;Björn Eriksen&lt;/a&gt;&amp;nbsp;that is organizing all of this.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I am already looking forward to the next gathering in march when the topic will be Identity &amp;amp; Access Management.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-YdXmkqeq5Qw/TxaF9EZhK5I/AAAAAAAAAQ4/innRd834ZH8/s1600/LEAP2012.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="84" src="http://2.bp.blogspot.com/-YdXmkqeq5Qw/TxaF9EZhK5I/AAAAAAAAAQ4/innRd834ZH8/s640/LEAP2012.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-1951942085738136569?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/mZapcT83GVw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/1951942085738136569/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2012/02/first-gathering-of-leap-sweden-2012.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/1951942085738136569?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/1951942085738136569?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/mZapcT83GVw/first-gathering-of-leap-sweden-2012.html" title="First gathering of LEAP Sweden 2012" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-YdXmkqeq5Qw/TxaF9EZhK5I/AAAAAAAAAQ4/innRd834ZH8/s72-c/LEAP2012.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2012/02/first-gathering-of-leap-sweden-2012.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAGQns5fip7ImA9WhRaFEs.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-1769049272084946402</id><published>2012-02-07T10:19:00.000+01:00</published><updated>2012-02-17T09:18:43.526+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-17T09:18:43.526+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPF" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="C# .NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Binding" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><category scheme="http://www.blogger.com/atom/ns#" term="WebBrowser" /><title>Binding a HTML-formatted string to a WPF WebBrowser control</title><content type="html">Sometimes there is a need to display a HTML formatted string in a WPF application. There are a couple of ways to do this, but the most stright forward is to use a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx" target="_blank"&gt;WebBrowser&lt;/a&gt; control and the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.navigatetostring.aspx" target="_blank"&gt;NavigateToString&lt;/a&gt; method.&lt;br /&gt;
&lt;br /&gt;
This approach has one big flaw, you cannot use binding to a string out of the box, but I found a great solution through &lt;a href="http://stackoverflow.com/questions/2585782/displaying-html-from-string-in-wpf-webbrowser-control" target="_blank"&gt;Stack Overflow&lt;/a&gt; which adds a bindable property to the&amp;nbsp;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx" target="_blank"&gt;WebBrowser&lt;/a&gt;&amp;nbsp;control using&amp;nbsp;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.navigatetostring.aspx" target="_blank"&gt;NavigateToString&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The following class is all that is needed to add that behavior. A new depencency property named Html is introduced to the&amp;nbsp;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx" target="_blank"&gt;WebBrowser&lt;/a&gt;&amp;nbsp;and the proper change action is performed in the OnHtmlChanged method.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;public class BrowserBehavior
{
    public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
        "Html", typeof(string), typeof(BrowserBehavior), new FrameworkPropertyMetadata(OnHtmlChanged));

    [AttachedPropertyBrowsableForType(typeof(WebBrowser))]
    public static string GetHtml(WebBrowser browser)
    {
        return (string)browser.GetValue(HtmlProperty);
    }

    public static void SetHtml(WebBrowser browser, string value)
    {
        browser.SetValue(HtmlProperty, value);
    }

    static void OnHtmlChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
    {
        var browser = dependencyObject as WebBrowser;
        if (browser != null)
        {
            browser.NavigateToString(e.NewValue);
        }
    }
}&lt;/pre&gt;
&lt;br /&gt;
To bind this property the XAML looks like this:&lt;br /&gt;
&lt;pre&gt;&amp;lt;WebBrowser local:BrowserBehavior.Html="{Binding Path=HtmlText}"&amp;gt;&amp;lt;/WebBrowser&amp;gt;&lt;/pre&gt;
&lt;br /&gt;
Since we are printing some swedish characters the encoding got a little bit funky. This is nothing that the&amp;nbsp;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx" target="_blank"&gt;WebBrowser&lt;/a&gt;&amp;nbsp;control itself affects, but it has to be set with an encoding meta tag in the HTML. So simply add the following meta tag to the head section of the HTML to be shown in the browser control:&lt;br /&gt;
&lt;pre&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /&amp;gt;&lt;/pre&gt;
&lt;br /&gt;
Another thing that does not seem to be able to affect on the&amp;nbsp;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.aspx" target="_blank"&gt;WebBrowser&lt;/a&gt;&amp;nbsp;control is the context menu. The default context menu is the same as you would get in an Internet Explorer window. When using the&amp;nbsp;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser.navigatetostring.aspx" target="_blank"&gt;NavigateToString&lt;/a&gt;&amp;nbsp;method to add the content the navigation in the browser control will not work. Hence we would like to hide the context menu. The easiest way to do so is with a litte javascript in the rendered HTML:&lt;br /&gt;
&lt;pre&gt;&amp;lt;body oncontextmenu="return false;"&amp;gt;&lt;/pre&gt;
&lt;br /&gt;
By adding these little hacks we have an easy way to show HTML content in a bindable fashion. Sure there are still some caveats to this solution, for instance an F5 keystroke will refresh the browser window. But we cannot use &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.webbrowsershortcutsenabled.aspx" target="_blank"&gt;WebBrowserShortcutsEnabled&lt;/a&gt; since we want the users to be able to copy text from the browser using the Ctrl-C shortcut.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-1769049272084946402?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/Bk74WAk-qk4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/1769049272084946402/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2012/02/binding-html-formatted-string-to-wpf.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/1769049272084946402?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/1769049272084946402?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/Bk74WAk-qk4/binding-html-formatted-string-to-wpf.html" title="Binding a HTML-formatted string to a WPF WebBrowser control" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2012/02/binding-html-formatted-string-to-wpf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcHR345eip7ImA9WhRUEUo.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-6349250276400460639</id><published>2012-01-21T20:10:00.000+01:00</published><updated>2012-01-21T20:10:36.022+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-21T20:10:36.022+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sound Effects" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><category scheme="http://www.blogger.com/atom/ns#" term="Double Click" /><category scheme="http://www.blogger.com/atom/ns#" term="The Cornball" /><title>New Silverlight 5 features in The Cornball</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-TdR7iklbQ2E/TxrmTbzLYPI/AAAAAAAAARA/2Kl1b-O1rRk/s1600/Microsoft_Silverlight_logo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-TdR7iklbQ2E/TxrmTbzLYPI/AAAAAAAAARA/2Kl1b-O1rRk/s200/Microsoft_Silverlight_logo.png" width="180" /&gt;&lt;/a&gt;&lt;/div&gt;
The release of &lt;a href="http://www.silverlight.net/learn/overview/what's-new-in-silverlight-5" target="_blank"&gt;Silverlight 5&lt;/a&gt; is allegedly the last major release of &lt;a href="http://www.silverlight.net/" target="_blank"&gt;Silverlight&lt;/a&gt;, but it brought some great stuff that I have now incorporated in the latest release of &lt;a href="http://cornball.cloudapp.net/" target="_blank"&gt;The Cornball&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
There are a lot of good descriptions and even video samples of the new features in&amp;nbsp;&lt;a href="http://www.silverlight.net/learn/overview/what's-new-in-silverlight-5" target="_blank"&gt;What's new in Silverlight 5&lt;/a&gt;. These are the two new features that I am using in &lt;a href="http://cornball.cloudapp.net/" target="_blank"&gt;The Cornball&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Mouse Button Double Click&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Previously I have used a custom implementation with a timer to capture double clicks on the cards. But since this feature finally is included in the framework I decided to use that instead. The &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.input.mousebuttoneventargs(v=vs.95).aspx" target="_blank"&gt;MouseButtonEventArgs&lt;/a&gt; now has a &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.input.mousebuttoneventargs.clickcount(v=vs.95).aspx" target="_blank"&gt;ClickCount&lt;/a&gt; property which simply indicates the number of times the mouse button was clicked. That leaves us with a much cleaner implementation of the single and double click scenario.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;private void CardMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    switch (e.ClickCount)
    {
    case 1:
        // Handle single click
        break;
    case 2:
        // Handle double click
        break;
    }
}&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Low-Latency Sound Effects&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
I have had plans to include sound effects before, but there haven't really been a good enough solution to do so. The MediaElement tag made it possible to play video and audio, but was never really meant to play sound effects in this matter. In Silverlight 5 a couple of classes from the XNA framework are included, SoundEffect and SoundEffectInstance.&lt;br /&gt;
&lt;br /&gt;
Instead of showing any of my code I would like to recommend the &lt;a href="http://www.silverlight.net/learn/overview/what's-new-in-silverlight-5/silverlight-5-low-latency-sound-effects" target="_blank"&gt;video sample&lt;/a&gt; by Pete Brown that displays these new features in a very good way.&lt;br /&gt;
&lt;br /&gt;
To see the results of what I accomplished, please visit &lt;a href="http://cornball.cloudapp.net/" target="_blank"&gt;The Cornball&lt;/a&gt; and try to beat the high score!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-6349250276400460639?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/bAdDnkzeFQk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/6349250276400460639/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2012/01/new-silverlight-5-features-in-cornball_21.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6349250276400460639?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6349250276400460639?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/bAdDnkzeFQk/new-silverlight-5-features-in-cornball_21.html" title="New Silverlight 5 features in The Cornball" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-TdR7iklbQ2E/TxrmTbzLYPI/AAAAAAAAARA/2Kl1b-O1rRk/s72-c/Microsoft_Silverlight_logo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2012/01/new-silverlight-5-features-in-cornball_21.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IGQ3c-eSp7ImA9WhRUFU0.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-2607129077856205580</id><published>2012-01-18T09:30:00.002+01:00</published><updated>2012-01-25T16:32:02.951+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-25T16:32:02.951+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Redmond" /><category scheme="http://www.blogger.com/atom/ns#" term="LEAP" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title>Microsoft LEAP Sweden 2012</title><content type="html">I have been privileged to participate in the&amp;nbsp;&lt;a href="http://bjorneriksen.blogspot.com/2011/12/leaplead-enterprise-architect-program.html" target="_blank"&gt;Lead Enterprise Architect Program&lt;/a&gt;&amp;nbsp;at Microsoft this spring.&lt;br /&gt;
&lt;blockquote&gt;
The Lead Enterprise Architect Program (LEAP) is a program that aims to give understanding of the strategic core components of the Microsoft platform.&lt;br /&gt;
&lt;br /&gt;
LEAP consists of five master class training sessions as well as three days of sessions at Microsoft headquarters in Redmond, Seattle.&lt;/blockquote&gt;
The direction of the classes are extremely appealing and I really hope that they will live up to my expectations:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Application architecture on the Microsoft Platform&lt;/li&gt;
&lt;li&gt;Cloud computing for Architects&lt;/li&gt;
&lt;li&gt;Identity &amp;amp; Access Management&lt;/li&gt;
&lt;li&gt;Integration on premises and in the cloud&lt;/li&gt;
&lt;li&gt;Business Intelligence and Enterprise Search&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
The program starts in February and ends with the trip to Redmond in the end of May. During this time I will try to write as much as possible about this whole experience, which I hope will be amazing!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-YdXmkqeq5Qw/TxaF9EZhK5I/AAAAAAAAAQ4/innRd834ZH8/s1600/LEAP2012.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://2.bp.blogspot.com/-YdXmkqeq5Qw/TxaF9EZhK5I/AAAAAAAAAQ4/innRd834ZH8/s640/LEAP2012.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-2607129077856205580?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/mic4q2Jm4g4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/2607129077856205580/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2012/01/microsoft-leap-sweden-2012.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/2607129077856205580?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/2607129077856205580?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/mic4q2Jm4g4/microsoft-leap-sweden-2012.html" title="Microsoft LEAP Sweden 2012" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-YdXmkqeq5Qw/TxaF9EZhK5I/AAAAAAAAAQ4/innRd834ZH8/s72-c/LEAP2012.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2012/01/microsoft-leap-sweden-2012.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAMRH8_eip7ImA9WhRVEkQ.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-6923369710718600676</id><published>2012-01-11T10:58:00.000+01:00</published><updated>2012-01-11T15:56:25.142+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T15:56:25.142+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Team Foundation Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="Team Foundation Services" /><category scheme="http://www.blogger.com/atom/ns#" term="The Cornball" /><title>My experience with TFS Preview</title><content type="html">I have been using the &lt;a href="http://www.tfspreview.com/" target="_blank"&gt;Team Foundation Services preview&lt;/a&gt; for a while now, and the least I can say is that I am impressed! The web interface has a nice &lt;a href="http://en.wikipedia.org/wiki/Metro_(design_language)" target="_blank"&gt;Metro style design&lt;/a&gt; and gives a high quality experience overall.&lt;br /&gt;
&lt;br /&gt;
By installing the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=212065"&gt;KB2581206&lt;/a&gt;&amp;nbsp;hotfix I can also access my TFS account from Visual Studio, which is absolutely fantastic. I might even sound a bit fanatic by saying that it is like a dream come true... The server appears as a traditional Team Foundation Server in Visual Studio apart from the logon process (a Windows Live popup window). &lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2011/09/14/learning-about-team-foundation-service-preview.aspx" target="_blank"&gt;Read more&lt;/a&gt; and try it out yourself!&lt;br /&gt;
&lt;br /&gt;
Besides playing around with the user interface I have actually tried to work a little seriously with the service as well. Partly by uploading my project the Cornball and developing against the TFS in Visual Studio. So far this experience is very positive and I have not found any issues or oddities at all, except that the environment is kind of slow. This whole thing also takes me one step further out in the world of clouds. Particularly the Cornball, since hardly anything of that is left on my computer.&lt;br /&gt;
&lt;br /&gt;
Here is a snapshot of the start page in my Cornball project, which is very empty at the time...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;img border="0" height="392" src="http://1.bp.blogspot.com/-yAPuv5aB8Mg/Tw1eCcwvkvI/AAAAAAAAAQo/Ac14AbtrgGc/s640/tfscornball.PNG" width="640" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-6923369710718600676?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/2Q-JfBD20oY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/6923369710718600676/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2012/01/my-experience-with-tfs-preview.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6923369710718600676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6923369710718600676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/2Q-JfBD20oY/my-experience-with-tfs-preview.html" title="My experience with TFS Preview" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-yAPuv5aB8Mg/Tw1eCcwvkvI/AAAAAAAAAQo/Ac14AbtrgGc/s72-c/tfscornball.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2012/01/my-experience-with-tfs-preview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMDSX09cSp7ImA9WhRVGEo.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-8381278639949580906</id><published>2012-01-03T18:02:00.000+01:00</published><updated>2012-01-18T10:21:18.369+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-18T10:21:18.369+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Search Appliance" /><title>Google Search Appliance .NET solution</title><content type="html">I recently worked on a project to integrate the search results from a &lt;a href="http://www.google.se/enterprise/search/gsa.html" target="_blank"&gt;Google Search Appliance&lt;/a&gt; into a .NET application. Although it seems like a pretty straight forward task, there were some small issues that I thought I might share.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Background&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
The communication with the Google Search Appliance is made simply with a HTTP GET request, which returns an XML formatted response. As for the Suggest service, the request looks about the same but the result returned is JSON encoded. For more information, please see the &lt;a href="http://code.google.com/apis/searchappliance/documentation/" target="_blank"&gt;Google Search Appliance documentation&lt;/a&gt;,&amp;nbsp;which is very extensive.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Internationalization&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Since this solution was to incorporate several languages, the .NET application had to support and differentiate the languages. The GSA has very good built-in language support but there were at least one thing that was not completely obvious.&lt;br /&gt;
&lt;br /&gt;
The GSA uses either HTTP headers or query string parameters to determine in which language the request is made. If neither of these are supplied the GSA may not return a correct response. This was the issue in our case, where we got unpredictable results in the spelling suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Summary: &lt;/b&gt;Always send an appropriate &lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2" target="_blank"&gt;Accept-Charset&lt;/a&gt; and &lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4" target="_blank"&gt;Accept-Language&lt;/a&gt; HTTP header.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;XPath or LINQ to Xml?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
There is already a publicly available .NET library (&lt;a href="http://gsalib.codeplex.com/" target="_blank"&gt;GSALib&lt;/a&gt;) to communicate with the Google Search Appliance, but for several reasons I chose not to use that library and build our own customized library. Since all responses from the GSA is XML formatted a key element in the communication is the XML parsing.&lt;br /&gt;
&lt;br /&gt;
In .NET today there are basically two different choices, &lt;a href="http://msdn.microsoft.com/en-us/library/system.xml.xpath.aspx" target="_blank"&gt;XPath&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/system.xml.linq.aspx" target="_blank"&gt;LINQ to XML&lt;/a&gt;. In the decision making process there were two key features to consider, ease of use and performance. MSDN published an article on this subject,&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/bb675156.aspx" target="_blank"&gt;Comparison of XPath and LINQ to XML&lt;/a&gt;. The following blog even took their time to make a little performance test, &lt;a href="http://codehelp.smartdev.eu/2009/04/15/xpath-vs-linq-to-xml/" target="_blank"&gt;XPath vs LINQ to XML&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Summary&lt;/b&gt;: I chose LINQ to XML mostly because of its composition, which produces code that is easier to read and modify since we practically always read all elements in the XML file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-8381278639949580906?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/Ztq9Z1J0pqE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/8381278639949580906/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2012/01/google-search-appliance-net-solution.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/8381278639949580906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/8381278639949580906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/Ztq9Z1J0pqE/google-search-appliance-net-solution.html" title="Google Search Appliance .NET solution" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2012/01/google-search-appliance-net-solution.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08EQ3k_cCp7ImA9WhRVEk8.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-8069355887970242856</id><published>2011-12-01T20:20:00.000+01:00</published><updated>2012-01-10T21:03:22.748+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-10T21:03:22.748+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Change" /><category scheme="http://www.blogger.com/atom/ns#" term="Connecta" /><category scheme="http://www.blogger.com/atom/ns#" term="English" /><title>Changes in my life, and on my blog</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-vULz5I1jopg/TwyO-zxubTI/AAAAAAAAAQY/7ZcVUxv8xbE/s1600/changes.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-vULz5I1jopg/TwyO-zxubTI/AAAAAAAAAQY/7ZcVUxv8xbE/s320/changes.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Yesterday I did my last working day at my previous employer and the next week I will begin my employment as a Microsoft consultant at&amp;nbsp;&lt;a href="http://www.connecta.se/" target="_blank"&gt;Connecta&lt;/a&gt;&amp;nbsp;in Stockholm. Of course this means that things will change, but only for the better I hope. Leaving a position that you like on a workplace that you like is a tough decision. But in my case there are some amazing possibilities and challenges that I just cannot turn down.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The type of work I will be doing differs a bit from my previous position. I will be more focused on development, which also means that I will try to change the direction of this blog to be more development oriented. At the same time, I have come to realize that by blogging in Swedish I do not really contribute to the community as much as I could. Therefore I have chosen to translate my previous posts to English and continue to blog in English from now on.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Furthermore I have decided to focus more on my blog. I have some interesting projects ahead, both personal and professional, which mean that could I easily increase my blogging frequency. Because the more challenges I run into, the more I will have to write about. Hopefully this will all turn out well and if so, it will be a great 2012!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-8069355887970242856?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/DkM43qd2Uso" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/8069355887970242856/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/12/changes-in-my-life-and-on-my-blog.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/8069355887970242856?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/8069355887970242856?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/DkM43qd2Uso/changes-in-my-life-and-on-my-blog.html" title="Changes in my life, and on my blog" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-vULz5I1jopg/TwyO-zxubTI/AAAAAAAAAQY/7ZcVUxv8xbE/s72-c/changes.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/12/changes-in-my-life-and-on-my-blog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQMRXcycCp7ImA9WhRVEE4.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-7565906240433103231</id><published>2011-11-03T17:50:00.003+01:00</published><updated>2012-01-08T16:59:44.998+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T16:59:44.998+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Google Plus" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Apps" /><category scheme="http://www.blogger.com/atom/ns#" term="Gmail" /><title>Google+ finally for everyone!</title><content type="html">&lt;div class="separator" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-FGTDWuFLEy8/TrLGVDXR_II/AAAAAAAAAFk/y4OpFkxScCA/s200/google-plus.jpg" width="200" /&gt;&lt;/div&gt;There have been a lot of whining on Google from their Apps-users since the launch of&amp;nbsp;&lt;a href="http://plus.google.com/" target="_blank"&gt;Google+&lt;/a&gt;&amp;nbsp;for everyone with a regular Google-account. The Apps-users have not been able to use&amp;nbsp;&lt;a href="http://plus.google.com/" target="_blank"&gt;Google+&lt;/a&gt;, until now! (actually&amp;nbsp;&lt;a href="http://googleenterprise.blogspot.com/2011/10/google-is-now-available-with-google.html" target="_blank"&gt;october 27&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
As usual I am impressed with most of the things Google accomplishes, but now when all of their services have gotten a visual and functional touchup I am getting really impressed.&lt;br /&gt;
&lt;br /&gt;
As someone at an early stage pointed out it is really sweet of Google to play naive and let me fill in my profile information when I create my profile (as if Google did not already know), but after a few clicks I am on the go.&amp;nbsp;My albums from Picasa is automatically integrated and even the pictures I have uploaded to this blog is shown in&amp;nbsp;&lt;a href="http://plus.google.com/" target="_blank"&gt;Google+&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
But what happens next? Practically no one of my friends are on&amp;nbsp;&lt;a href="http://plus.google.com/" target="_blank"&gt;Google+&lt;/a&gt;&amp;nbsp;so what do I use it for? I guess we will see. Hopefully there will be even more integration between the social networks in the future. I am anyhow very satified with the fact that you now can find me on&amp;nbsp;&lt;a href="http://facebook.com/" target="_blank"&gt;Facebook&lt;/a&gt;, &lt;a href="http://linkedin.com/" target="_blank"&gt;LinkedIn&lt;/a&gt;, &lt;a href="http://twitter.com/" target="_blank"&gt;Twitter&lt;/a&gt;, &lt;a href="http://victor.stodell.se/" target="_blank"&gt;this blog&lt;/a&gt;&amp;nbsp;and now also&amp;nbsp;&lt;a href="http://plus.google.com/" target="_blank"&gt;Google+&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-7565906240433103231?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/XUtuy92SaxU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/7565906240433103231/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/11/google-plus-antligen-for-alla.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7565906240433103231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7565906240433103231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/XUtuy92SaxU/google-plus-antligen-for-alla.html" title="Google+ finally for everyone!" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-FGTDWuFLEy8/TrLGVDXR_II/AAAAAAAAAFk/y4OpFkxScCA/s72-c/google-plus.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/11/google-plus-antligen-for-alla.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEBQHoycSp7ImA9WhRWGUs.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-2296842473157008886</id><published>2011-08-19T11:23:00.002+02:00</published><updated>2012-01-07T20:14:11.499+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-07T20:14:11.499+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Local Security Authority" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>User.Identity returns old login name after name change</title><content type="html">When a person gets married or makes a name change for some other reason this usually means that the login name for the Active Directory-account changes as well. This is rarely a problem, but it turned out to cause some issues on our web server, where the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.httpcontext.user.aspx"&gt;User.Identity&lt;/a&gt;&amp;nbsp;property&amp;nbsp;was still returning the old login name.&lt;br /&gt;
&lt;br /&gt;
The user logged on with the new login name, but was identified by the web application as the old login name. The reason this occurs is because the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.httpcontext.user.aspx"&gt;User.Identity&lt;/a&gt;&amp;nbsp;property relies on the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/ms721799(v=vs.85).aspx"&gt;LsaLookupSids&lt;/a&gt;&amp;nbsp;method to convert the user SID to a login name. The method first calls the local&amp;nbsp;&lt;a href="http://technet.microsoft.com/en-us/library/cc961958.aspx"&gt;LSA-cache&lt;/a&gt;, which is not synchronized with the Active Directory.&lt;br /&gt;
&lt;br /&gt;
For this purpose a simple reboot of the web server to clear the&amp;nbsp;&lt;a href="http://technet.microsoft.com/en-us/library/cc961958.aspx"&gt;LSA-cache&lt;/a&gt;&amp;nbsp;propably would have sufficed. But since we didn't want to take the application offline rebooting was not an option. Instead, it is possible to set the registry value&amp;nbsp;&lt;a href="http://support.microsoft.com/kb/946358"&gt;LsaLookupCacheMaxSize&lt;/a&gt; in HKLM\SYSTEM\CurrentControlSet\Control\Lsa. If this value is set to 0 the &lt;a href="http://technet.microsoft.com/en-us/library/cc961958.aspx"&gt;LSA-cache&lt;/a&gt;&amp;nbsp;is cleared. It is recommended that the setting is reset after the cache is cleared, since the main purpose of the&amp;nbsp;&lt;a href="http://technet.microsoft.com/en-us/library/cc961958.aspx"&gt;LSA-cache&lt;/a&gt;&amp;nbsp;is to enhance performance.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
Read more about this issue and the solution here:&amp;nbsp;&lt;a href="http://support.microsoft.com/kb/946358"&gt;http://support.microsoft.com/kb/946358&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-2296842473157008886?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/jZcsrusgXMc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/2296842473157008886/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/08/systemsecurityprincipal-returnerar.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/2296842473157008886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/2296842473157008886?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/jZcsrusgXMc/systemsecurityprincipal-returnerar.html" title="User.Identity returns old login name after name change" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/08/systemsecurityprincipal-returnerar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EFQnkyfyp7ImA9WhRVEE4.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-7966506394118322589</id><published>2011-08-11T14:28:00.003+02:00</published><updated>2012-01-08T16:13:33.797+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T16:13:33.797+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DNS" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server" /><category scheme="http://www.blogger.com/atom/ns#" term="EDNS0" /><title>Windows Server 2008 R2 DNS issues</title><content type="html">This week we stumbled upon some weirdness in our new 2008 R2 DNS servers. A couple of URLs, for example www.smhi.se and www.stockholm.se could not be resolved from a 2008 R2 server. The existing 2003 servers with the same configuration worked perfectly.&lt;br /&gt;
&lt;br /&gt;
After thorough troubleshooting we found out that there is a new default setting in Windows Server 2008 R2 regarding the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/EDNS0"&gt;EDNS-protocol&lt;/a&gt;&amp;nbsp;that caused the issues. Not all of the DNS servers around the internet are able to handle&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/EDNS0"&gt;EDNS&lt;/a&gt;, but in 2008 R2 this protocol is enabled by default. Normally you would think there is a fallback mechanism to standard DNS protocol if an EDNS request fails, but Windows Server does not have that.&lt;br /&gt;
&lt;br /&gt;
The solution was simply to disable EDNS by using the command: &lt;i&gt;dnscmd /config /EnableEDNSProbes 0&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Scott Forsyth has written more about this issue and how he found the solution:&lt;br /&gt;
&lt;a href="http://weblogs.asp.net/owscott/archive/2009/09/15/windows-server-2008-r2-dns-issues.aspx"&gt;http://weblogs.asp.net/owscott/archive/2009/09/15/windows-server-2008-r2-dns-issues.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-7966506394118322589?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/JoJt5_BxHzY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/7966506394118322589/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/08/dns-problem-i-windows-server-2008-r2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7966506394118322589?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7966506394118322589?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/JoJt5_BxHzY/dns-problem-i-windows-server-2008-r2.html" title="Windows Server 2008 R2 DNS issues" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/08/dns-problem-i-windows-server-2008-r2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AHR3w5eCp7ImA9WhRVEk8.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-3170503845254293999</id><published>2011-08-03T11:28:00.000+02:00</published><updated>2012-01-10T22:08:56.220+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-10T22:08:56.220+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Firewall" /><category scheme="http://www.blogger.com/atom/ns#" term="Remote Procedure Call" /><category scheme="http://www.blogger.com/atom/ns#" term="Exchange" /><title>Configure static ports for Exchange</title><content type="html">In a firewalled Exchange environment it is always easier if Exchange communicates on static ports. Normally RPC on port 135 is used to initialize the communication. Any further communication is made through a port dynamically selected by each service on the Exchange-server.&lt;br /&gt;
&lt;br /&gt;
I will not go deeper into how this is made, because it has been described very well in this blog:&lt;br /&gt;
&lt;a href="http://www.proexchange.be/blogs/exchange2007/archive/2009/05/18/configuring-static-ports-for-exchange-2007.aspx"&gt;http://www.proexchange.be/blogs/exchange2007/archive/2009/05/18/configuring-static-ports-for-exchange-2007.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Except from the traditional bribes to the network guys, there were just a couple of registry settings on the Exchange-server and some of the clients to make everything work as a charm, even through the firewalls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-3170503845254293999?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/5Tkzt1Ci-MM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/3170503845254293999/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/08/konfigurera-statiska-portar-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/3170503845254293999?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/3170503845254293999?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/5Tkzt1Ci-MM/konfigurera-statiska-portar-for.html" title="Configure static ports for Exchange" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/08/konfigurera-statiska-portar-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08NQ38_fip7ImA9WhRVEE8.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-4637681473179724732</id><published>2011-06-21T08:25:00.004+02:00</published><updated>2012-01-08T14:38:12.146+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T14:38:12.146+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="Azure" /><category scheme="http://www.blogger.com/atom/ns#" term="The Cornball" /><title>Moving to the cloud - part 4</title><content type="html">&lt;div class="separator" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"&gt;
&lt;a href="http://lantisen.stodell.se/"&gt;&lt;img border="0" height="135" src="http://2.bp.blogspot.com/-06DOBBLg_rs/Tbap76HYVaI/AAAAAAAAADw/DIb_znVSWbc/s320/lantisen.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
When e-mail, files and blog are already in the cloud the Cornball is the only application left on my hosting provider. It is now getting really exciting because there is no doubt that the Corball should move to the&amp;nbsp;Microsoft cloud, &lt;a href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure&lt;/a&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The Cornball&amp;nbsp;is a &lt;a href="http://www.silverlight.net/"&gt;Silverlight&lt;/a&gt;&amp;nbsp;application which communicates through a&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/netframework/aa663324"&gt;WCF&lt;/a&gt;&amp;nbsp;service with a&amp;nbsp;&lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt;&amp;nbsp;database, all on the same hosting provider. This is about to be converted into a&amp;nbsp;&lt;a href="http://www.silverlight.net/"&gt;Silverlight&lt;/a&gt;&amp;nbsp;application which communicates through a&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/netframework/aa663324"&gt;WCF&lt;/a&gt;&amp;nbsp;service on&amp;nbsp;&lt;a href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure&lt;/a&gt;&amp;nbsp;that in turn communicates with an &lt;a href="http://www.microsoft.com/windowsazure/sqlazure/"&gt;SQL Azure&lt;/a&gt;&amp;nbsp;database.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; have published a lot of information to&amp;nbsp;&lt;a href="http://www.microsoft.com/windowsazure/getstarted/"&gt;get started with Windows Azure&lt;/a&gt;, but basically it is quite simple. After downloading the tools and SDK it is just to get on with the development. Through my MSDN subscription I have got some free Azure capacity so just by logging on to the &lt;a href="https://windows.azure.com/default.aspx"&gt;Windows Azure portal&lt;/a&gt;&amp;nbsp;I am ready to configure my cloud.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-3zJ68bB-BoQ/TgGFrTQfZ-I/AAAAAAAAAEg/vULiC0b9Krc/s1600/azure.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://1.bp.blogspot.com/-3zJ68bB-BoQ/TgGFrTQfZ-I/AAAAAAAAAEg/vULiC0b9Krc/s400/azure.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The Windows Azure Management Portal is a Silverlight based user interface which is very easy to use an intuitive. There is a wide variety of settings and possibilities, but the things I needed for my application was to create a Data Store, a database and also a Hosted Service. Once these components were created I could easily set up a connection in Visual Studion which enabled me to Deploy my application directly to the cloud.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-JupBb2y198o/TgGFsX4-cVI/AAAAAAAAAEk/udipqdW4V3g/s1600/sqlazure.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="291" src="http://2.bp.blogspot.com/-JupBb2y198o/TgGFsX4-cVI/AAAAAAAAAEk/udipqdW4V3g/s400/sqlazure.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;
SQL Azure has a Silverlight based user interface as well, and it works perfectly for my simple needs. I have only got two tables and a couple of stored procedures. There are some limitations in SQL Azure compared to SQL Server but since I was moving from a MySQL server that was nothing I really thought about.&lt;br /&gt;
&lt;br /&gt;
So, now I have moved e-mail, files, web sites and databases to the cloud and I could not be more happy! Everything has been running as clockwork and I have saved some money each year as well. I have also gained a lot of experience and set myself free from some worries.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-4637681473179724732?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/IolylABV6CM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/4637681473179724732/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/06/flytta-till-molnet-del-4.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/4637681473179724732?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/4637681473179724732?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/IolylABV6CM/flytta-till-molnet-del-4.html" title="Moving to the cloud - part 4" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-06DOBBLg_rs/Tbap76HYVaI/AAAAAAAAADw/DIb_znVSWbc/s72-c/lantisen.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/06/flytta-till-molnet-del-4.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IFRXg6eSp7ImA9WhRVEEk.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-5681471963634010668</id><published>2011-06-07T17:01:00.001+02:00</published><updated>2012-01-08T20:05:14.611+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T20:05:14.611+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="Blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="WordPress" /><title>Moving to the cloud - part 3</title><content type="html">&lt;div class="separator" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"&gt;
&lt;img border="0" src="http://4.bp.blogspot.com/-q9JCLUKtKeY/Tf9g0AyZq8I/AAAAAAAAAEc/mYB_PDCp9VY/s1600/victorstodell.png" /&gt;&lt;/div&gt;
This blog was previously published using&amp;nbsp;&lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;&amp;nbsp;at a service provider. There were no problems at all with that setup, on the contrary &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;&amp;nbsp;is a great platform. But if I am going to the cloud, I am going to do it fully.&lt;br /&gt;
&lt;br /&gt;
A quick solution would be to register an account on&amp;nbsp;&lt;a href="http://wordpress.com/"&gt;WordPress.com&lt;/a&gt;&amp;nbsp;which offers free&amp;nbsp;&lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;&amp;nbsp;hosting. The only problem is that if you would like your own domain name it is not free anymore. Not that it is expensive, it is just not free. After investigating som other options i finally ended up using &lt;a href="http://www.blogger.com/"&gt;Google's Blogger&lt;/a&gt;. Maybe not bacause it is the best solution, but mainly because it covers my needs just fine.&lt;br /&gt;
&lt;br /&gt;
As always it&amp;nbsp;is very easy to get going, and the transfer of my existing posts from&amp;nbsp;&lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;&amp;nbsp;worked perfectly thanks to &lt;a href="http://wordpress2blogger.appspot.com/"&gt;WordPress2Blogger&lt;/a&gt;. So after about an hour with configuring and converting this blog is now in the cloud.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-5681471963634010668?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/fEdzSCSHx24" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/5681471963634010668/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/06/flytta-till-molnet-del-3.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/5681471963634010668?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/5681471963634010668?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/fEdzSCSHx24/flytta-till-molnet-del-3.html" title="Moving to the cloud - part 3" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-q9JCLUKtKeY/Tf9g0AyZq8I/AAAAAAAAAEc/mYB_PDCp9VY/s72-c/victorstodell.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/06/flytta-till-molnet-del-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMCSH06fyp7ImA9WhRVEEg.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-1996868946298785726</id><published>2011-05-20T16:42:00.000+02:00</published><updated>2012-01-08T20:21:09.317+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T20:21:09.317+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="Dropbox" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Apps" /><category scheme="http://www.blogger.com/atom/ns#" term="Gmail" /><title>Moving to the cloud - part 2</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://www.dropbox.com/" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-solFPIG6pQY/Tf9ckyRS1tI/AAAAAAAAAEQ/InemK5Gfyhc/s1600/dropbox.png" /&gt;&lt;/a&gt;&lt;/div&gt;
I would really like to recommend&amp;nbsp;&lt;a href="http://www.dropbox.com/"&gt;Dropbox&lt;/a&gt;&amp;nbsp;to store your files. The free version offers 2 GB of storage and the software can run on all my computers and my phone. There are of course several services that do almost the same thing, but so far I have not found anyone that does it as good as&amp;nbsp;&lt;a href="http://www.dropbox.com/"&gt;Dropbox&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Moving the files to the cloud was easy. I just created an account, installed the software and moved my files to the designated directory. Since then my free account have been upgraded to 3 GB because I made some friends join Dropbox.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-nxWIZ1dQIQQ/Tf9c4ubE1DI/AAAAAAAAAEU/J8QK4LtEhjc/s1600/Smail-small.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-nxWIZ1dQIQQ/Tf9c4ubE1DI/AAAAAAAAAEU/J8QK4LtEhjc/s1600/Smail-small.png" /&gt;&lt;/a&gt;The next step was to move my e-mail from my current service provider to &lt;a href="http://www.gmail.com/"&gt;Gmail&lt;/a&gt;. Wint&amp;nbsp;&lt;a href="http://www.google.com/apps/"&gt;Google Apps&lt;/a&gt;&amp;nbsp;I get exactly the same functionality as a previously had, but also a better web user interface.&lt;br /&gt;
&lt;br /&gt;
The challenge in this move was to move all existing e-mails to my new&amp;nbsp;&lt;a href="http://www.google.com/apps/"&gt;Google Apps&lt;/a&gt;&amp;nbsp;account. It turned out to be pretty easy by activating POP-mail in&amp;nbsp;&lt;a href="http://www.gmail.com/"&gt;Gmail&lt;/a&gt;&amp;nbsp;and get all the e-mails from the existing mail server. When all e-mails were synchronized all that was left was to change the DNS pointers from the existing mail server to&amp;nbsp;&lt;a href="http://www.google.com/apps/"&gt;Google Apps&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
These were the two first and easiest projects in my cloudification. The next step will be to move web sites and databases, which will require some more work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-1996868946298785726?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/3mlLKZBDCRM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/1996868946298785726/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/06/flytta-till-molnet-del-2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/1996868946298785726?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/1996868946298785726?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/3mlLKZBDCRM/flytta-till-molnet-del-2.html" title="Moving to the cloud - part 2" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-solFPIG6pQY/Tf9ckyRS1tI/AAAAAAAAAEQ/InemK5Gfyhc/s72-c/dropbox.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/06/flytta-till-molnet-del-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08MQ3g7fSp7ImA9WhRVEkQ.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-5554628072251959127</id><published>2011-04-26T13:36:00.008+02:00</published><updated>2012-01-11T16:31:22.605+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T16:31:22.605+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="Dropbox" /><category scheme="http://www.blogger.com/atom/ns#" term="Azure" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Apps" /><category scheme="http://www.blogger.com/atom/ns#" term="The Cornball" /><title>Moving to the cloud - part 1</title><content type="html">I cannot with words describe the hype around the cloud today, and of course I had to join the croud. I have transferred all my applications, files and services to the cloud. I thought I would share some of the experiences and difficulties I have hit during my jourey.&lt;br /&gt;
&lt;br /&gt;
These are the steps I have performed in order to complete my move to the cloud:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Most of my files are safely stored with&amp;nbsp;&lt;a href="http://www.dropbox.com/"&gt;Dropbox&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;E-mail accounts for &lt;a href="http://stodell.se/"&gt;stodell.se&lt;/a&gt;&amp;nbsp;were moved from service provider to&amp;nbsp;&lt;a href="http://www.google.com/apps/"&gt;Google Apps&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cornball.cloudapp.net/" target="_blank"&gt;The Cornball&lt;/a&gt; was moved from&amp;nbsp;service provider to&amp;nbsp;&lt;a href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure&lt;/a&gt; och &lt;a href="http://www.microsoft.com/en-us/sqlazure/default.aspx"&gt;SQL Azure&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;This blog was moved from Wordpress at a service provider to&amp;nbsp;&lt;a href="http://www.blogger.com/"&gt;Google's Blogger&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
Even though&amp;nbsp;&lt;a href="http://www.loopia.se/"&gt;Loopia&lt;/a&gt; has been a great service provider during many years I have now been able to cancel all my services except the domain hosting with them. The replacement being free services and the Azure capacity that is included in the MSDN subscription.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-6Sxk_YISzpc/Twn-ZPj-TxI/AAAAAAAAAPg/zhtmNzGR518/s1600/image_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://4.bp.blogspot.com/-6Sxk_YISzpc/Twn-ZPj-TxI/AAAAAAAAAPg/zhtmNzGR518/s320/image_3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-5554628072251959127?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/CphXzkl-hRM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/5554628072251959127/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2011/04/flytten-till-molnet-del-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/5554628072251959127?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/5554628072251959127?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/CphXzkl-hRM/flytten-till-molnet-del-1.html" title="Moving to the cloud - part 1" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-6Sxk_YISzpc/Twn-ZPj-TxI/AAAAAAAAAPg/zhtmNzGR518/s72-c/image_3.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2011/04/flytten-till-molnet-del-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEBRXo_eCp7ImA9WhRVEkU.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-7791629644946052184</id><published>2010-12-22T12:20:00.004+01:00</published><updated>2012-01-11T14:14:14.440+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T14:14:14.440+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C# .NET" /><category scheme="http://www.blogger.com/atom/ns#" term="System.DirectoryServices.Protocols" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>Programming AD with C#.NET – part 4</title><content type="html">&lt;div&gt;
Our transition to the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;&amp;nbsp;has in the whole gone very smooth, but there have been some issues with one environment that contains subdomains. Most things are working fine, but writing to a subdomain does not work in the same way as it did before.&lt;br /&gt;
&lt;br /&gt;
What is generally bad with the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt; is the documentation, which is practically non-existent. But most things can &amp;nbsp;be figured out anyway since most classes just are wrappers for the wldap32.dll, which in turn is way better documented.&lt;br /&gt;
&lt;br /&gt;
I would like to have as little bindings to a specific server as possible but still be able to access the domain. In the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.ldapconnection.aspx" target="_blank" title="LdapConnection"&gt;LdapConnection&lt;/a&gt;&amp;nbsp;it is possible to set the identifier to &lt;em&gt;null&lt;/em&gt; and use the executing computer as a starting point to find a domain controller. But sometimes I must know that I am using a&amp;nbsp;Global Catalog, and with more and more RODC in the environment I sometimes must know that I am working against a writeable domain controller.&lt;br /&gt;
&lt;br /&gt;
With the property&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.ldapsessionoptions.locatorflag.aspx" target="_blank" title="SessionOptions.LocatorFlag"&gt;SessionOptions.LocatorFlag&lt;/a&gt;&amp;nbsp;I am able to set which type of domain controller that is selected when the connection is created. This beaviour is not very well documented in&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;, but it builds on&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/ms675983(v=vs.85).aspx" target="_blank" title="DsGetDcName"&gt;DsGetDcName&lt;/a&gt;&amp;nbsp;which has a lot of documentation available.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;NetworkCredential credential = new NetworkCredential("user@domain.local", "password");
using(LdapConnection connection = new LdapConnection(null, credential))
{
    connection.SessionOptions.LocatorFlag = LocatorFlags.GCRequired | LocatorFlags.WritableRequired;
    // Search request...
}&lt;/pre&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-7791629644946052184?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/29vLl8B09NU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/7791629644946052184/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/12/programmera-ad-med-cnet-del-4.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7791629644946052184?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7791629644946052184?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/29vLl8B09NU/programmera-ad-med-cnet-del-4.html" title="Programming AD with C#.NET – part 4" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/12/programmera-ad-med-cnet-del-4.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcAQ34_eCp7ImA9WhRVEkU.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-6234366961003083085</id><published>2010-12-16T15:19:00.001+01:00</published><updated>2012-01-11T14:20:42.040+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T14:20:42.040+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C# .NET" /><category scheme="http://www.blogger.com/atom/ns#" term="System.DirectoryServices.Protocols" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>Programming AD with C#.NET – part 3</title><content type="html">So far we have managed to exclude&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx" target="_blank" title="System.DirectoryServices"&gt;System.DirectoryServices&lt;/a&gt;&amp;nbsp;because of our original issues, and&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx" target="_blank" title="System.DirectoryServices.AccountManagement"&gt;System.DirectoryServices.AccountManagement&lt;/a&gt;&amp;nbsp;because of performance issues. What is left for us now is&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;, and that is the namespace of our choice.&lt;br /&gt;
&lt;br /&gt;
Generally the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;&amp;nbsp;is pretty similar to &lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx" target="_blank" title="System.DirectoryServices"&gt;System.DirectoryServices&lt;/a&gt;, so it is not a big deal to rebuild our existing classes to a newer version. But there are always some small obsacles that need to be conquered. A very good guide to get started with these classes is written by Ethan Wilansky and published on MSDN, &lt;a href="http://msdn.microsoft.com/en-us/library/bb332056.aspx" target="_blank" title="Introduction to System.DirectoryServices.Protocols"&gt;Introduction to System.DirectoryServices.Protocols&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
An small issue is that you always have to know if an attribute exists before you try to remove it. The same thing applies when an attribute is saved, you must know if it is a new attribute to be created or an existing attribute that should be updated. If an incorrect action is taken a&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.directoryoperationexception.aspx" target="_blank" title="DirectoryOperationException"&gt;DirectoryOperationException&lt;/a&gt; will be thrown. A simple solution for this problem is to add a&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.permissivemodifycontrol.aspx" target="_blank" title="PermissiveModifyControl"&gt;PermissiveModifyControl&lt;/a&gt; to the request. This will make sure that add, edit and remove events is handled nicely without throwing any exceptions.&lt;br /&gt;
&lt;br /&gt;
Paging a search result is another thing that could be a little tricky. With&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx" target="_blank" title="System.DirectoryServices"&gt;System.DirectoryServices&lt;/a&gt;&amp;nbsp;you only had to set the PageSize on a DirectorySearcher and the paging was automatically handled. With &lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;&amp;nbsp;we have got to deal with the paging ourselves. There are a lot more information about this in the article mention above,&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/bb332056.aspx" target="_blank" title="Introduction to System.DirectoryServices.Protocols"&gt;Introduction to System.DirectoryServices.Protocols&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
One third little quirk I had was when creating user accounts.We need to be able to set the password, and with&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;&amp;nbsp;it is possible to modify the value &lt;i&gt;unicodePwd&lt;/i&gt;. However there are a couple of things to keep in mind.:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;A 128 bit encrypted channel must be used.&lt;/li&gt;
&lt;li&gt;The password must be a byte array containing the password surrounded by quotation marks.&lt;/li&gt;
&lt;/ul&gt;
Here is a simple code sample that meets both of these demands:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;LdapDirectoryIdentifier identifier = new LdapDirectoryIdentifier("server");
NetworkCredential credential = new NetworkCredential("user", "password", "domain");
using(LdapConnection connection = new LdapConnection(identifier, credential))
{
    connection.SessionOptions.Signed = true;
    connection.SessionOptions.Sealed = true;
    DirectoryAttribute[] attributes = new DirectoryAttribute[] {
        new DirectoryAttribute("objectClass", "user"),
        new DirectoryAttribute("userPrincipalName", "newAdAccount@domain.com"),
        new DirectoryAttribute("samAccountName", "newAdAccount"),
        new DirectoryAttribute("unicodePwd", Encoding.Unicode.GetBytes("\"passw0rd\""))
    };
    AddRequest request = new AddRequest("CN=newAdAccount,OU=Test,DN=domain,DN=com", attributes);
    connection.SendRequest(request);
}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-6234366961003083085?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/qeB0PemS0Iw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/6234366961003083085/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/12/programmera-ad-med-cnet-del-3.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6234366961003083085?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6234366961003083085?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/qeB0PemS0Iw/programmera-ad-med-cnet-del-3.html" title="Programming AD with C#.NET – part 3" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/12/programmera-ad-med-cnet-del-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkADRH4zfCp7ImA9WhRVEkU.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-8964924557797190130</id><published>2010-12-02T20:44:00.003+01:00</published><updated>2012-01-11T14:32:55.084+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T14:32:55.084+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C# .NET" /><category scheme="http://www.blogger.com/atom/ns#" term="System.DirectoryServices.AccountManagement" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>Programming AD with C#.NET – part 2</title><content type="html">To work around the memory leaking issues in the .NET classes is in theory quite simple, do not use those classes. That is the starting point we had. Instead what we want to do is, by minimizing the affection on all our projects, rebuild our AD classes to use a beter way to communicate with the Active Directory.&lt;br /&gt;
&lt;br /&gt;
In .NET 2.0 the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;&amp;nbsp;was introduced, which is a collection of general classes to communicate with practically any directory over LDAP. Unlike&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx" target="_blank" title="System.DirectoryServices"&gt;System.DirectoryServices&lt;/a&gt;&amp;nbsp;which builds on&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/aa772170(v=vs.85).aspx" target="_blank" title="ADSI"&gt;ADSI&lt;/a&gt;, the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;&amp;nbsp;builds on the newer and better wldap32.dll.&lt;br /&gt;
&lt;br /&gt;
Heres an overview of the different namespaces and what teqniques they rely on, taken from&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/bb332056.aspx" target="_blank" title="Introduction to System.DirectoryServices.Protocols"&gt;Introduction to System.DirectoryServices.Protocols&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-etfjRmYn_gY/TbasAGo-CDI/AAAAAAAAAD4/sgxPwVUtr3A/s1600/IC103903.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-etfjRmYn_gY/TbasAGo-CDI/AAAAAAAAAD4/sgxPwVUtr3A/s1600/IC103903.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In .NET 3.5 yet another namespace arrived, namely&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx" target="_blank" title="System.DirectoryServices.AccountManagement"&gt;System.DirectoryServices.AccountManagement&lt;/a&gt;. This is excactly as it sounds a set of classes for account management. In theory this is exactly what we need. The classes are very easy to use and you do not have to do any LDAP programming at all.&lt;br /&gt;
&lt;br /&gt;
Unfortunately there are some direct disadvantages with&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx" target="_blank" title="System.DirectoryServices.AccountManagement"&gt;System.DirectoryServices.AccountManagement&lt;/a&gt;. The classes build on a mix of&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx" target="_blank" title="System.DirectoryServices"&gt;System.DirectoryServices&lt;/a&gt; and&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.protocols.aspx" target="_blank" title="System.DirectoryServices.Protocols"&gt;System.DirectoryServices.Protocols&lt;/a&gt;, which means that we will still be stuck with the memory leak that we are trying to get away from. Another issue is performance, which is not really a problem when a user is changing the password, but is a big problem when making large searches.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-8964924557797190130?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/aYSlXuAlJLU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/8964924557797190130/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/12/programmera-ad-med-cnet-del-2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/8964924557797190130?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/8964924557797190130?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/aYSlXuAlJLU/programmera-ad-med-cnet-del-2.html" title="Programming AD with C#.NET – part 2" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-etfjRmYn_gY/TbasAGo-CDI/AAAAAAAAAD4/sgxPwVUtr3A/s72-c/IC103903.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/12/programmera-ad-med-cnet-del-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4ER3c_eip7ImA9WhRVEks.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-7967057791876319093</id><published>2010-11-14T13:05:00.002+01:00</published><updated>2012-01-11T08:45:06.942+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T08:45:06.942+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="System.DirectoryServices" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="C# .NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>Programming AD with C#.NET – part 1</title><content type="html">We have a pretty old class library to communicate with Active Directory, shich is built on&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx" target="_blank" title="System.DirectoryServices"&gt;System.DirectoryServices&lt;/a&gt;. It has worked very well during all these years, but since the size of the systems and the number of users have increased we have begun to see some performance related issues.&lt;br /&gt;
&lt;br /&gt;
The environment that is least stable at the moment consists of a root domain and a subdomain. The problem is the following error that sometimes occur on a search in the subdomain:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;System.DirectoryServices.DirectoryServicesCOMException (0x8007202B): A referral was returned from the server.&lt;/i&gt;
&lt;/blockquote&gt;
This is not an unusual issue, but we have taken some steps for these issues not to occur. What is also interesting is that they seem to occur at random. Once the problem occured once the subdomain is unreachable for the current application until the application or application pool is restarted.&lt;br /&gt;
&lt;br /&gt;
Part of the problem is some poor memory management in&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.directoryservices.searchresultcollection.aspx" target="_blank" title="SearchResultCollection"&gt;SearchResultCollection&lt;/a&gt;, which never disposes of the COM-objects that is used. In the following few posts I will show some of the actions we have taken to get rid of our problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-7967057791876319093?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/uO_QR2MQdqs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/7967057791876319093/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/11/programmera-ad-med-cnet-del-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7967057791876319093?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7967057791876319093?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/uO_QR2MQdqs/programmera-ad-med-cnet-del-1.html" title="Programming AD with C#.NET – part 1" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/11/programmera-ad-med-cnet-del-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQFR3k8fSp7ImA9WhRVEEQ.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-6065679966376034337</id><published>2010-10-22T12:19:00.001+02:00</published><updated>2012-01-09T09:21:56.775+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-09T09:21:56.775+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="System Attendant" /><category scheme="http://www.blogger.com/atom/ns#" term="Outlook" /><category scheme="http://www.blogger.com/atom/ns#" term="Exchange" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>Clients cannot connect to Exchange</title><content type="html">I ran into a problem this week that caused a lot of headaches. In an existing Exchange environment everything seems to be working just fine for existing users. The problems occur when you try to configure an account on a new client. This scenario did not apply to all the mailboxes in the organization.&lt;br /&gt;
&lt;br /&gt;
These are some of the messages that were presented during different stages in the configuration:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;Outlook cannot log on. Verify you are connected to the network and are using the proper server and mailbox name. The connection to Microsoft Exchange is unavailable. Outlook must be online or connected to complete this action.&lt;/i&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;The name cannot be resolved. The connection to Microsoft Exchange is unavailable. Outlook must be online or connected to complete this action.&lt;/i&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;The action cannot be completed. The connection to Microsoft Exchange is unavailable. Outlook must be online or connected to complete this action.&lt;/i&gt;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;Your server or mailbox names cannot be resolved.&lt;/i&gt;&lt;/blockquote&gt;
The environment is a pure Exchange 2007 and we removed the last traces of the earlier Exchange 2003 just a couple of months ago. The first theory was that this had something to do with the problems, but it seems like it did not. There has also been a lot of things happening in the Active Directory environment because we are preparing for a 2008 R2 upgrade.&lt;br /&gt;
&lt;br /&gt;
Finally we to found that similar problems might occur if there are any issues with the System Attendant service. The&amp;nbsp;Microsoft Exchange System Attendant is a service that runs on the Exchange server and works like a proxy to the Active Directory for some functions in Exchange.&lt;br /&gt;
&lt;br /&gt;
The service seemed to be working as it should, but after I restarted it everything began to work. I still have not found any logs to identify the cause of the problems, but at least we got everything working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-6065679966376034337?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/vwh6_S0TC0E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/6065679966376034337/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/10/klienter-kan-inte-ansluta-till-exchange.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6065679966376034337?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6065679966376034337?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/vwh6_S0TC0E/klienter-kan-inte-ansluta-till-exchange.html" title="Clients cannot connect to Exchange" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/10/klienter-kan-inte-ansluta-till-exchange.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAGRHw9eip7ImA9WhRVEUU.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-7720784590963808671</id><published>2010-09-15T23:47:00.000+02:00</published><updated>2012-01-10T09:05:25.262+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-10T09:05:25.262+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Internet Explorer" /><title>Internet Explorer 9 beta</title><content type="html">Microsoft have released a beta version of Internet Explorer 9 and you cal tell that this is a true competitor in the browser war. For several reasons I have been running Google Chrome for a while but I always get curious when Microsoft makes a new release.&lt;br /&gt;
&lt;br /&gt;
Among other things, IE 9 comes with HTML 5 support and an well thought through integration with Windows 7. Apart from that the browser is faster, more secure and the user interface is redisigned to give more focus to the web sites. I have not tested it enough to say if they have succeeded, but as always I think highly of Microsoft.&lt;br /&gt;
&lt;br /&gt;
Read mor and download the beta version on&amp;nbsp;&lt;a href="http://www.beautyoftheweb.com/"&gt;http://www.beautyoftheweb.com/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-7720784590963808671?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/PdnZuMoBtJ0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/7720784590963808671/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/09/internet-explorer-9-beta.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7720784590963808671?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/7720784590963808671?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/PdnZuMoBtJ0/internet-explorer-9-beta.html" title="Internet Explorer 9 beta" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/09/internet-explorer-9-beta.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4CQng4fCp7ImA9WhRVEkU.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-5357025103217379608</id><published>2010-08-18T11:36:00.003+02:00</published><updated>2012-01-11T14:36:03.634+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T14:36:03.634+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="DNS" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="WMI" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Get DNS-information using WMI</title><content type="html">With the purpose of automation DNS documentation I needed to get information programatically from the DNS servers. The answer to this, and many other similar tasks is spelled&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/aa394582(VS.85).aspx" target="_blank" title="WMI"&gt;WMI&lt;/a&gt;. That is short for&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/aa394582(VS.85).aspx" target="_blank" title="WMI"&gt;Windows Management Instrumentation&lt;/a&gt;, which is an infrastructure for getting information from Windows using a specific query language.&lt;br /&gt;
&lt;br /&gt;
Here is a method to get the host names and IP addresses for each A-record on the specified domain.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;public string Server = "192.168.0.1";
public string Domain = "domain.local";
public string Username = "DOMAIN\User";
public string Password = "Pa$$w0rd";

public Dictionary&amp;lt;string, string&amp;gt; GetHosts()
{
    Dictionary&amp;lt;string, string&amp;gt; hosts = new Dictionary&amp;lt;string, string&amp;gt;();
    ManagementScope scope = new ManagementScope(String.Format(@"\\{0}\Root\MicrosoftDNS", Server));
    scope.Options.Impersonation = ImpersonationLevel.Impersonate;
    scope.Options.Username = Username;
    scope.Options.Password = Password;
    ObjectQuery query = new ObjectQuery(String.Format("SELECT * FROM MicrosoftDNS_AType WHERE DomainName = '{0}'", Domain));
    using(ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
    {
        foreach(ManagementObject host in searcher.Get())
        {
            if(!hosts.ContainsKey(host["OwnerName"].ToString()))
            {
                hosts.Add(host["OwnerName"].ToString(), host["RecordData"].ToString());
            }
        }
    }
    return hosts;
}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-5357025103217379608?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/NGL3iK-j-t4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/5357025103217379608/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/08/hamta-dns-information-med-wmi.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/5357025103217379608?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/5357025103217379608?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/NGL3iK-j-t4/hamta-dns-information-med-wmi.html" title="Get DNS-information using WMI" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/08/hamta-dns-information-med-wmi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cBRXs_fSp7ImA9WhRVEE8.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-6700467883548894713</id><published>2010-08-11T15:42:00.001+02:00</published><updated>2012-01-08T13:17:34.545+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T13:17:34.545+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="NPS" /><category scheme="http://www.blogger.com/atom/ns#" term="TACACS" /><category scheme="http://www.blogger.com/atom/ns#" term="RADIUS" /><category scheme="http://www.blogger.com/atom/ns#" term="Cisco" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>Windows Server 2008 R2 and AD for RADIUS-authentication for Cisco-routers</title><content type="html">Instead of investing in a TACACS server solution we wanted to build switch and router logon on Active Directory authentication. This is possible by installing a RADIUS server to handle the communication between the Cisco devices and Active Directory.&lt;br /&gt;
&lt;br /&gt;
Windows Server 2008 R2 can be made into a RADIUS server by installing the role&amp;nbsp;&lt;a href="http://technet.microsoft.com/en-us/network/bb629414.aspx" target="_blank" title="Network Policy Server"&gt;Network Policy Server&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://aaronwalrath.wordpress.com/" target="_blank" title="Aaron Walrath"&gt;Aaron Walrath&lt;/a&gt;&amp;nbsp;has put together a guide with everything that needs to be done to get the RADIUS authentication in the Cisco devices and how to connect this to the Active Directory. This guide is divided into two blog posts.&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://aaronwalrath.wordpress.com/2007/10/20/radius-authentication-for-cisco-router-logins/"&gt;RADIUS authentication for Cisco router logins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://aaronwalrath.wordpress.com/2010/06/22/install-windows-2008-r2-nps-for-radius-authentication-for-cisco-router-logins/"&gt;Install Windows 2008 R2 NPS for RADIUS authentication for Cisco router logins&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-6700467883548894713?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/A1eLnz_WKnA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/6700467883548894713/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/08/windows-server-2008-r2-och-ad-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6700467883548894713?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/6700467883548894713?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/A1eLnz_WKnA/windows-server-2008-r2-och-ad-for.html" title="Windows Server 2008 R2 and AD for RADIUS-authentication for Cisco-routers" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/08/windows-server-2008-r2-och-ad-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08FSHczfSp7ImA9WhRVEkU.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-159263162572575333</id><published>2010-06-22T20:38:00.000+02:00</published><updated>2012-01-11T14:50:19.985+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T14:50:19.985+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term=".NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Certification" /><title>MCTS: .NET Framework 3.5, Windows Forms Application Development</title><content type="html">&lt;a href="http://3.bp.blogspot.com/-l8tdpsDb9lM/TwllxPa2ZHI/AAAAAAAAAPY/EspNFgnYlNA/s1600/MCTS.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-l8tdpsDb9lM/TwllxPa2ZHI/AAAAAAAAAPY/EspNFgnYlNA/s1600/MCTS.gif" /&gt;&lt;/a&gt;I finally took the time to go through with a certification that I have been wanting to do for a while, &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-505" target="_blank" title="MCTS: .NET Framework 3.5, Windows Forms Application Development"&gt;MCTS: .NET Framework 3.5, Windows Forms Application Development&lt;/a&gt;. During my years as a .NET developer I have been working a lot with Windows Forms, so this was not a painful experience.&lt;br /&gt;
&lt;br /&gt;
The next step will propably be to aim for MCPD in the same area before it is time to move on to the new Visual Studio 2010 and .NET 4.0 certifications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-159263162572575333?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/Hg1O4ewkoWo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/159263162572575333/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/06/mcts-net-framework-35-windows-forms.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/159263162572575333?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/159263162572575333?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/Hg1O4ewkoWo/mcts-net-framework-35-windows-forms.html" title="MCTS: .NET Framework 3.5, Windows Forms Application Development" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-l8tdpsDb9lM/TwllxPa2ZHI/AAAAAAAAAPY/EspNFgnYlNA/s72-c/MCTS.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://victor.stodell.se/2010/06/mcts-net-framework-35-windows-forms.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YAR3czfyp7ImA9WhRVEE8.&quot;"><id>tag:blogger.com,1999:blog-6499890790280411938.post-4959984024462202774</id><published>2010-06-20T20:21:00.000+02:00</published><updated>2012-01-08T13:19:06.987+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T13:19:06.987+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Chicago" /><category scheme="http://www.blogger.com/atom/ns#" term="BriForum" /><category scheme="http://www.blogger.com/atom/ns#" term="RemoteFX" /><category scheme="http://www.blogger.com/atom/ns#" term="VDI" /><category scheme="http://www.blogger.com/atom/ns#" term="Desktop virtualization" /><title>BriForum 2010</title><content type="html">I just got home from&amp;nbsp;&lt;a href="http://briforum.com/" target="_blank" title="BriForum"&gt;BriForum&lt;/a&gt; 2010 in Chicago. It has been a really fun and exciting week and a very interesting conference. This years main focus was&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Desktop_virtualization" title="desktopvirtualisering"&gt;desktop virtualization&lt;/a&gt;, or VDI.&lt;br /&gt;
&lt;br /&gt;
This is a truly interesting subject and instead of a practically oriented conference there were a lot of discussions about the role of the computers in the near future and how we as IT staff would keep up with the rapid development.&amp;nbsp;IT organizations often tend to be very stiff and having a hard time adapting to the user requests. This is something that hopefully will change, but it will take time and there are a lot of obstacles on the way.&lt;br /&gt;
&lt;br /&gt;
Technically we got to see a preview of&amp;nbsp;&lt;a href="http://www.microsoft.com/windowsserver2008/en/us/rds-remotefx.aspx" target="_blank" title="Microsoft RemoteFX"&gt;Microsofts RemoteFX&lt;/a&gt;, which basically is GPU-support over remote desktop. The next &lt;a href="http://briforum.com/" target="_blank" title="BriForum"&gt;BriForum&lt;/a&gt;&amp;nbsp;will take place in London 2011. Form more information about the conference and what was presented, visit&amp;nbsp;&lt;a href="http://briforum.com/" target="_blank" title="briforum.com"&gt;briforum.com&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="http://brianmadden.com/" target="_blank" title="brianmadden.com"&gt;brianmadden.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6499890790280411938-4959984024462202774?l=victor.stodell.se' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VictorStodell/~4/idifNh5zIJY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://victor.stodell.se/feeds/4959984024462202774/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://victor.stodell.se/2010/06/briforum-2010.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/4959984024462202774?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6499890790280411938/posts/default/4959984024462202774?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VictorStodell/~3/idifNh5zIJY/briforum-2010.html" title="BriForum 2010" /><author><name>Victor Stodell</name><uri>https://profiles.google.com/106630463949414734201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-JK3DcZoCSZA/AAAAAAAAAAI/AAAAAAAAAPQ/BZGrKiCKXD4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>300-310 S Federal St, Chicago, IL 60604, USA</georss:featurename><georss:point>41.8781136 -87.6297982</georss:point><georss:box>41.6889396 -87.94565519999999 42.0672876 -87.3139412</georss:box><feedburner:origLink>http://victor.stodell.se/2010/06/briforum-2010.html</feedburner:origLink></entry></feed>

