<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>tiagosalgado.com</title>
    <link>https://blog.tiagosalgado.com/</link>
    <description>Recent content on tiagosalgado.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Mon, 22 Aug 2016 22:58:37 +0000</lastBuildDate>
    <atom:link href="https://blog.tiagosalgado.com/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>About</title>
      <link>https://blog.tiagosalgado.com/about/</link>
      <pubDate>Mon, 22 Aug 2016 22:58:37 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/about/</guid>
      <description>&lt;script src=&#34;//platform.linkedin.com/in.js&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;
&lt;script type=&#34;IN/MemberProfile&#34; data-id=&#34;https://www.linkedin.com/in/tiagosalgado&#34; data-format=&#34;inline&#34; data-related=&#34;false&#34;&gt;&lt;/script&gt;
</description>
    </item>
    
    <item>
      <title>Chrome dev tools dark theme</title>
      <link>https://blog.tiagosalgado.com/2014/09/02/chrome-dev-tools-dark-theme/</link>
      <pubDate>Tue, 02 Sep 2014 12:34:25 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2014/09/02/chrome-dev-tools-dark-theme/</guid>
      <description>&lt;p&gt;After seeing Iris Classon post about how to &lt;a href=&#34;http://irisclasson.com/2014/09/01/styling-chrome-dev-tools/&#34; target=&#34;_blank&#34;&gt;style Chrome Dev Tools&lt;/a&gt;, I knew I needed to give it a try.&lt;/p&gt;

&lt;p&gt;I love Visual Studio dark theme, and having the same in Chrome is a joy for my eyes. So I&amp;#8217;ve done it, and I&amp;#8217;m happy.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://res.cloudinary.com/tiagosalgado/image/upload/v1473718824/chrome-dev-tools-dark-theme_gbrkf8.png&#34;&gt;&lt;img class=&#34;aligncenter wp-image-1425 &#34; src=&#34;https://res.cloudinary.com/tiagosalgado/image/upload/v1473718824/chrome-dev-tools-dark-theme_gbrkf8.png&#34; alt=&#34;chrome-dev-tools-dark-theme&#34; width=&#34;399&#34; height=&#34;242&#34; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add the extension &lt;a href=&#34;https://chrome.google.com/webstore/detail/devtools-theme-zero-dark/bomhdjeadceaggdgfoefmpeafkjhegbo&#34; target=&#34;_blank&#34;&gt;Zero Dark Matrix&lt;/a&gt; from Chrome Web store&lt;/li&gt;
&lt;li&gt;Enable the Developer experiments (chrome://flags &amp;gt; Enable Developer Tools experiments) and click &amp;#8220;Relaunch Now&amp;#8221; at the bottom&lt;/li&gt;
&lt;li&gt;Go to developer tools settings &amp;gt; Experiments &amp;gt; and tick Allow custom UI themes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks &lt;a href=&#34;http://irisclasson.com/&#34;&gt;Iris&lt;/a&gt; for the tip.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Add Validation rules with FluentValidation</title>
      <link>https://blog.tiagosalgado.com/2014/08/31/add-validation-rules-with-fluentvalidation/</link>
      <pubDate>Sun, 31 Aug 2014 00:19:19 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2014/08/31/add-validation-rules-with-fluentvalidation/</guid>
      <description>&lt;p&gt;One scenario we have in almost all applications where requires user inputs, are validation rules. We have lot of different ways to implement validation (both server and client sides), and one of these ways is using a library called &lt;a href=&#34;https://fluentvalidation.codeplex.com&#34; target=&#34;_blank&#34;&gt;FluentValidation&lt;/a&gt;, where it uses lambda expressions to build all validation rules.&lt;/p&gt;

&lt;p&gt;To integrate it, we can get the package from Nuget and add it to our project:&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://res.cloudinary.com/tiagosalgado/image/upload/v1473719146/nuget_ssrrj8.png&#34;&gt;&lt;img class=&#34;alignnone wp-image-1422 size-full&#34; src=&#34;https://res.cloudinary.com/tiagosalgado/image/upload/v1473719146/nuget_ssrrj8.png&#34; alt=&#34;nuget&#34; width=&#34;900&#34; height=&#34;600&#34; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will add FluentValidation references.&lt;/p&gt;

&lt;p&gt;For this example, we&amp;#8217;ll use a simple model such as:&lt;/p&gt;

&lt;pre class=&#34;brush: csharp; title: ; notranslate&#34; title=&#34;&#34;&gt;public class Person
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address { get; set; }
    public int Age { get; set; }
}
&lt;/pre&gt;

&lt;p&gt;Now, to create our validator, we need to have a class who inherits from AbstractValidator&lt;T&gt;, where T in this case will the Person.&lt;/p&gt;

&lt;pre class=&#34;brush: csharp; title: ; notranslate&#34; title=&#34;&#34;&gt;using FluentValidation;
using FluentValidationExample.Models;
namespace FluentValidationExample.Validators
{
    public class PersonValidator : AbstractValidator&amp;lt;Person&amp;gt;
    {
    }
}
&lt;/pre&gt;

&lt;p&gt;Having our class created, we can now define the rules to validate a Person entity in the validator class constructor. For this example, I&amp;#8217;ll add two rules, one to validate if the first name is not empty and other to make sure we have a age greater than 18.&lt;/p&gt;

&lt;pre class=&#34;brush: csharp; title: ; notranslate&#34; title=&#34;&#34;&gt;public PersonValidator()
{
    RuleFor(d =&amp;gt; d.FirstName)
        .NotEmpty()
        .WithMessage(&#34;First name cannot be empty&#34;);

    RuleFor(d =&amp;gt; d.Age)
        .Must(AgeMustBeGreaterThan18)
        .WithMessage(&#34;Age must be greater than 18&#34;);
}

private bool AgeMustBeGreaterThan18(int age)
{
    return age &amp;gt; 18;
}
&lt;/pre&gt;

&lt;p&gt;FluentValidation already includes some built-in validations, so for our first validation we can use the NotEmpty() method. For the second validation, we&amp;#8217;ve created a new method who verifies the Age property value and makes sure is greater than 18. If not, it will throw an error.&lt;/p&gt;

&lt;p&gt;In this case, the validator will go through all rules and will send the result back with any errors, but we can decide to stop on the first failure.&lt;/p&gt;

&lt;pre class=&#34;brush: csharp; title: ; notranslate&#34; title=&#34;&#34;&gt;public PersonValidator()
{
    RuleFor(d =&amp;gt; d.FirstName)
        .Cascade(CascadeMode.StopOnFirstFailure)
        .NotEmpty()
        .WithMessage(&#34;First name cannot be empty&#34;);

    RuleFor(d =&amp;gt; d.Age)
        .Must(AgeMustBeGreaterThan18)
        .WithMessage(&#34;Age must be greater than 18&#34;);
}

private bool AgeMustBeGreaterThan18(int age)
{
    return age &amp;gt; 18;
}
&lt;/pre&gt;

&lt;p&gt;Having the validator created, we now need to call it when we want to validate all rules for the Person model, check if there are any errors, and display (and log) those to the user.&lt;/p&gt;

&lt;pre class=&#34;brush: csharp; title: ; notranslate&#34; title=&#34;&#34;&gt;static void Main(string[] args)
{
    var person = new Person
    {
        FirstName = &#34;&#34;,
        LastName = &#34;Salgado&#34;,
        Age = 17, // I wish
        Address = &#34;London, UK&#34;
    };

    var validator = new PersonValidator();

    var validationResult = validator.Validate(person);

    if (!validationResult.IsValid)
    {
        validationResult.Errors.ToList().ForEach(p =&amp;gt; Console.WriteLine(p.ErrorMessage));
    }

    Console.Read();
}
&lt;/pre&gt;

&lt;p&gt;I&amp;#8217;m not defining the FirstName and i&amp;#8217;ve set the age as 17 to force both rules to fail, so the output will be both error messages:&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://res.cloudinary.com/tiagosalgado/image/upload/v1473719247/console_output_swuen8.png&#34;&gt;&lt;img class=&#34;alignnone wp-image-1421 size-full&#34; src=&#34;https://res.cloudinary.com/tiagosalgado/image/upload/v1473719247/console_output_swuen8.png&#34; alt=&#34;console_output&#34; width=&#34;677&#34; height=&#34;343&#34; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is just a example of how we can add FluentValidation to a project, but much more advanced validations can be done, so I recommend you to read the &lt;a href=&#34;https://fluentvalidation.codeplex.com/documentation&#34; target=&#34;_blank&#34;&gt;documentation &lt;/a&gt;and follow the examples available in the project page.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Using Visual Studio 2013 with TFS and Git repositories on same project</title>
      <link>https://blog.tiagosalgado.com/2014/08/12/using-visual-studio-2013-with-tfs-and-git-repositories-on-same-project/</link>
      <pubDate>Tue, 12 Aug 2014 15:17:31 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2014/08/12/using-visual-studio-2013-with-tfs-and-git-repositories-on-same-project/</guid>
      <description>&lt;p&gt;With Visual Studio 2013 is a nightmare to keep a git repository but having TFS as a source control plugin activated when we load the solution. Every time we open the solution, by default Visual Studio will select the Git provider and ignore completely TFS (oh, irony…)&lt;/p&gt;

&lt;p&gt;To solve that, I had to move out the .git folder to an external folder and point the git dir to the actual source code folder.&lt;/p&gt;

&lt;p&gt;So an example is:&lt;/p&gt;

&lt;pre class=&#34;brush: plain; gutter: false; title: ; notranslate&#34; title=&#34;&#34;&gt;C:\Git\ (where I have my different .git repositories per project stored)
-- C:\Git\ProjectOne\.git
-- C:\Git\ProjectTwo\.git
&lt;/pre&gt;

&lt;pre class=&#34;brush: plain; gutter: false; title: ; notranslate&#34; title=&#34;&#34;&gt;C:\Code (where I have all projects source code)
-- C:\Code\ProjectOne\.git (this is a file, not a folder anymore)
-- C:\Code\ProjectTwo\.git (this is a file, not a folder anymore)
&lt;/pre&gt;

&lt;p&gt;So, this .git file has to be generated as:&lt;/p&gt;

&lt;pre class=&#34;brush: bash; title: ; notranslate&#34; title=&#34;&#34;&gt;$ echo &#34;gitdir: /git/ProjectOne/.git&#34; &amp;gt; .git
&lt;/pre&gt;

&lt;p&gt;After doing this, you can open Visual Studio and TFS will be selected by default. You still be able to run a “git status” or any git command as you always did before.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>dotnetConf &amp;#8211; 25th and 26th of June 2014</title>
      <link>https://blog.tiagosalgado.com/2014/06/21/dotnetconf-25th-and-26th-of-june-2014/</link>
      <pubDate>Sat, 21 Jun 2014 01:54:16 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2014/06/21/dotnetconf-25th-and-26th-of-june-2014/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com&#34;&gt;Channel9&lt;/a&gt; is hosting on the 25th and 26th of June the &lt;a href=&#34;http://www.dotnetconf.net&#34;&gt;dotnetConf&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;http://www.dotnetconf.net&#34;&gt;dotnetConf&lt;/a&gt; is a free, online conference for helping developers create desktop, mobile, web, and cloud-based applications using the .NET Framework.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are great sessions planned so is totally worth it to watch. Go to &lt;a href=&#34;http://www.dotnetconf.net&#34;&gt;dotnetConf&lt;/a&gt; and register, it takes just a few seconds.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Visual Studio 2012 Update 4</title>
      <link>https://blog.tiagosalgado.com/2013/11/14/visual-studio-2012-update-4/</link>
      <pubDate>Thu, 14 Nov 2013 09:32:14 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/11/14/visual-studio-2012-update-4/</guid>
      <description>&lt;p&gt;It&amp;#8217;s now available the update 4 for &lt;a href=&#34;http://www.visualstudio.com&#34; target=&#34;_blank&#34;&gt;Visual Studio 2012&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href=&#34;http://www.microsoft.com/en-us/download/details.aspx?id=39305&#34;&gt;http://www.microsoft.com/en-us/download/details.aspx?id=39305&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ISO image: &lt;a href=&#34;http://go.microsoft.com/fwlink/?LinkId=327544&#34;&gt;http://go.microsoft.com/fwlink/?LinkId=327544&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Visual Studio 2013 Launch</title>
      <link>https://blog.tiagosalgado.com/2013/11/14/visual-studio-2013-launch/</link>
      <pubDate>Thu, 14 Nov 2013 09:29:18 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/11/14/visual-studio-2013-launch/</guid>
      <description>&lt;p&gt;Yesterday was another great day for .NET Developers and really nice news from the best IDE (feel free to disagree), Visual Studio 2013.&lt;/p&gt;

&lt;p&gt;Please find some useful links below:&lt;/p&gt;

&lt;p&gt;VS Online “Monaco”&lt;/p&gt;

&lt;p&gt;&amp;#8211; &lt;a href=&#34;http://weblogs.asp.net/jgalloway/archive/2013/11/13/a-quick-look-at-the-new-visual-studio-online-quot-monaco-quot-code-editor.aspx&#34;&gt;http://weblogs.asp.net/jgalloway/archive/2013/11/13/a-quick-look-at-the-new-visual-studio-online-quot-monaco-quot-code-editor.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#8211; &lt;a href=&#34;http://gunnarpeipman.com/2013/11/first-look-at-visual-studio-online-monaco/&#34;&gt;http://gunnarpeipman.com/2013/11/first-look-at-visual-studio-online-monaco/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#8211; &lt;a href=&#34;http://blogs.msdn.com/b/somasegar/archive/2013/11/13/visual-studio-2013-launch-announcing-visual-studio-online.aspx&#34;&gt;http://blogs.msdn.com/b/somasegar/archive/2013/11/13/visual-studio-2013-launch-announcing-visual-studio-online.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#8211; &lt;a href=&#34;http://www.visualstudio.com/en-us/news/2013-nov-13-vso&#34;&gt;http://www.visualstudio.com/en-us/news/2013-nov-13-vso&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PCL and .NET NuGet Libraries are now enabled for Xamarin &amp;#8211; &lt;a href=&#34;http://blogs.msdn.com/b/dotnet/archive/2013/11/13/pcl-and-net-nuget-libraries-are-now-enabled-for-xamarin.aspx&#34;&gt;http://blogs.msdn.com/b/dotnet/archive/2013/11/13/pcl-and-net-nuget-libraries-are-now-enabled-for-xamarin.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Launch videos &amp;#8211; &lt;a href=&#34;http://channel9.msdn.com/Events/Visual-Studio/Launch-2013&#34;&gt;http://channel9.msdn.com/Events/Visual-Studio/Launch-2013&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Alert users when they have lost internet connectivity with Offline.js</title>
      <link>https://blog.tiagosalgado.com/2013/11/01/alert-users-when-they-have-lost-internet-connectivity/</link>
      <pubDate>Fri, 01 Nov 2013 18:00:31 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/11/01/alert-users-when-they-have-lost-internet-connectivity/</guid>
      <description>

&lt;p&gt;To alert users when they&amp;#8217;ve lost internet connectivity, we can use a really tiny library (only 3kb) called &lt;a href=&#34;http://github.hubspot.com/offline/&#34; target=&#34;_blank&#34;&gt;Offline.js&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So, what is Offline.js?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Offline.js is a library to automatically alert your users when they&amp;#8217;ve lost internet connectivity, like Gmail.&lt;/p&gt;

&lt;p&gt;It captures AJAX requests which were made while the connection was down, and remakes them when it&amp;#8217;s back up, so your app reacts perfectly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is really straightforward to add implement this on our web applications.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Download &lt;a href=&#34;https://raw.github.com/HubSpot/offline/master/js/offline.js&#34; target=&#34;_blank&#34;&gt;Offline.js&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Download a theme. For that, choose yours &lt;a href=&#34;http://github.hubspot.com/offline/docs/welcome/&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Add the JS and CSS files to your pages.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Add a div to be used to display the notification (see full code for an example)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&#34;a-href-http-jsfiddle-net-tiagosalgado-qysaj-embedded-result-target-blank-live-demo-a&#34;&gt;&lt;a href=&#34;http://jsfiddle.net/TiagoSalgado/qYsAj/embedded/result/&#34; target=&#34;_blank&#34;&gt;Live Demo&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Ahh, and if you want to allow users to play Snake while they don&amp;#8217;t have connection, just change the option &amp;#8220;game&amp;#8221; to true 🙂&lt;/p&gt;

&lt;p&gt;Full code:&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Navigate between modules on DotNetNuke</title>
      <link>https://blog.tiagosalgado.com/2013/10/17/navigate-between-modules-on-dotnetnuke/</link>
      <pubDate>Thu, 17 Oct 2013 12:21:32 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/10/17/navigate-between-modules-on-dotnetnuke/</guid>
      <description>&lt;p&gt;On DotNetNuke, each folder inside DesktopModules are considered Modules (and they can’t communicate directly between each others).&lt;/p&gt;

&lt;p&gt;Imagine you have:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Module1&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View.ascx&lt;/li&gt;
&lt;li&gt;Stuff.ascx (this is a module definition only accessible by ControlKey)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you need to open Stuff.ascx from View.ascx, you can achieve this easily using Globals.Navigate() and specifying the ControlKey, because you have the TabID and ModuleID of the current Module.&lt;/p&gt;

&lt;p&gt;But, when we want to do the same but in different Modules (folders) is more complicate.&lt;/p&gt;

&lt;p&gt;So if you have something like:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Module1&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View.ascx (assume this has a aspx page associated)&lt;/li&gt;
&lt;li&gt;Stuff.ascx (this is a module definition only accessible by ControlKey)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Module2&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OtherStuff.ascx (assume this has a aspx page associated)&lt;/li&gt;
&lt;li&gt;MoreStuff.ascx (this is a module definition only accessible by ControlKey)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And you want on View.ascx or Stuff.ascx (Module1) to go to MoreStuff.ascx (Module2), we need to get the TabID, ModuleID (of Module2), and the controlKey.&lt;/p&gt;

&lt;p&gt;We have the ControlKey, because we can specify that in DNN (Extensions Manager or DNN manifest file for compiled modules), but the TabID and ModuleID are dynamic, so is different per DNN website.&lt;/p&gt;

&lt;p&gt;So, to be able to navigate across different modules, we need to find the TabID and ModuleID related to the module we want to access.&lt;/p&gt;

&lt;p&gt;This code would help to do that:&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>ASP.NET and Web Tools for Visual Studio 2013 Release Notes</title>
      <link>https://blog.tiagosalgado.com/2013/10/17/asp-net-and-web-tools-for-visual-studio-2013-release-notes/</link>
      <pubDate>Thu, 17 Oct 2013 12:11:26 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/10/17/asp-net-and-web-tools-for-visual-studio-2013-release-notes/</guid>
      <description>&lt;p&gt;Microsoft ASP.NET Team has made available the release notes of ASP.NET and Web Tools for Visual Studio 2013.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contents&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC1&#34; target=&#34;_blank&#34;&gt;Installation Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC2&#34; target=&#34;_blank&#34;&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC4&#34; target=&#34;_blank&#34;&gt;Software Requirements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;New Features in ASP.NET and Web Tools for Visual Studio 2013&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC6&#34; target=&#34;_blank&#34;&gt;One ASP.NET&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#newproj&#34; target=&#34;_blank&#34;&gt;New Web Project Experience&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#scaffold&#34; target=&#34;_blank&#34;&gt;ASP.NET Scaffolding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#browser-link&#34; target=&#34;_blank&#34;&gt;Browser Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#web-editor&#34; target=&#34;_blank&#34;&gt;Visual Studio Web Editor Enhancements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#waws&#34; target=&#34;_blank&#34;&gt;Windows Azure Web Sites Support in Visual Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#publish&#34; target=&#34;_blank&#34;&gt;Web Publish Enhancements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#nuget&#34; target=&#34;_blank&#34;&gt;NuGet 2.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC9&#34; target=&#34;_blank&#34;&gt;ASP.NET Web Forms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC10&#34; target=&#34;_blank&#34;&gt;ASP.NET MVC 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC11&#34; target=&#34;_blank&#34;&gt;ASP.NET Web API 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC13&#34; target=&#34;_blank&#34;&gt;ASP.NET SignalR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC8&#34; target=&#34;_blank&#34;&gt;ASP.NET Identity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#TOC7&#34; target=&#34;_blank&#34;&gt;Microsoft OWIN Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#ef6&#34; target=&#34;_blank&#34;&gt;Entity Framework 6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes#knownissues&#34; target=&#34;_blank&#34;&gt;Known Issues and Breaking Changes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can click in each link or check the full page &lt;a href=&#34;http://www.asp.net/visual-studio/overview/2013/release-notes&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Visual Studio 2013 available</title>
      <link>https://blog.tiagosalgado.com/2013/10/17/visual-studio-2013-available/</link>
      <pubDate>Thu, 17 Oct 2013 12:06:19 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/10/17/visual-studio-2013-available/</guid>
      <description>&lt;p&gt;If you are a MSDN subscriber, today is your lucky day 😀&lt;/p&gt;

&lt;p&gt;The final version of &lt;a href=&#34;http://go.microsoft.com/fwlink/p/?LinkId=306566&#34; target=&#34;_blank&#34;&gt;Visual Studio 2013, TFS 2013 and .NET 4.5.1&lt;/a&gt; are now available to download.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://7eip1a.dm2302.livefilestore.com/y2plAB9mV0D4VRrelrrEqhdzAAqqtBY5cphDIGi87nm-UR5wHeUTIH-Gf7qLP94XwVqGdD2Mf64BIWHsNOJj1G9Sg-BVkXvGZWdcg9GV8hZAiQ/vs2013.png?psid=1&#34;&gt;&lt;img class=&#34;alignnone&#34; alt=&#34;vs2013&#34; src=&#34;https://7eip1a.dm2302.livefilestore.com/y2plAB9mV0D4VRrelrrEqhdzAAqqtBY5cphDIGi87nm-UR5wHeUTIH-Gf7qLP94XwVqGdD2Mf64BIWHsNOJj1G9Sg-BVkXvGZWdcg9GV8hZAiQ/vs2013.png?psid=1&#34; width=&#34;869&#34; height=&#34;443&#34; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can get it on &lt;a href=&#34;http://msdn.microsoft.com/en-us/subscriptions/downloads/&#34; target=&#34;_blank&#34;&gt;MSDN&lt;/a&gt; and make sure you check &lt;a href=&#34;http://www.microsoft.com/visualstudio/eng/visual-studio-2013&#34; target=&#34;_blank&#34;&gt;what&amp;#8217;s new&lt;/a&gt; on this new version.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Developing ASP.NET MVC 4 Web Applications Jump Start</title>
      <link>https://blog.tiagosalgado.com/2013/10/01/developing-asp-net-mvc-4-web-applications-jump-start/</link>
      <pubDate>Tue, 01 Oct 2013 21:16:03 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/10/01/developing-asp-net-mvc-4-web-applications-jump-start/</guid>
      <description>&lt;p&gt;For those who wish to review the sessions or couldn’t attend to the &amp;#8220;Developing ASP.NET MVC Web Applications Jump Start&amp;#8221;, provided by Jon Galloway (&lt;a href=&#34;http://twitter.com/jongalloway&#34; target=&#34;_blank&#34;&gt;@jongalloway&lt;/a&gt;) and Christopher Harrison (&lt;a href=&#34;http://twitter.com/geektrainer&#34; target=&#34;_blank&#34;&gt;@geektrainer&lt;/a&gt;) the video recordings are now available on &lt;a href=&#34;http://www.microsoftvirtualacademy.com/&#34; target=&#34;_blank&#34;&gt;MVA&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can find it the whole course here: &lt;a href=&#34;http://www.microsoftvirtualacademy.com/training-courses/developing-asp-net-mvc-4-web-applications-jump-start&#34;&gt;http://www.microsoftvirtualacademy.com/training-courses/developing-asp-net-mvc-4-web-applications-jump-start&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Videos available on Channel9 (&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps&#34;&gt;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps/01&#34;&gt;Developing ASP.NET MVC 4 Web Applications: (01) Introduction to MVC 4&lt;/a&gt;{.title}&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps/02&#34;&gt;Developing ASP.NET MVC 4 Web Applications: (02) Developing ASP.NET MVC 4 Models&lt;/a&gt;{.title}&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps/03&#34;&gt;Developing ASP.NET MVC 4 Web Applications: (03) Developing MVC 4 Controllers&lt;/a&gt;{.title}&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps/04&#34;&gt;Developing ASP.NET MVC 4 Web Applications: (04) Developing ASP.NET MVC 4 Views&lt;/a&gt;{.title}&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps/05&#34;&gt;Developing ASP.NET MVC 4 Web Applications: (05) Integrating JavaScript and MVC 4&lt;/a&gt;{.title}&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps/06&#34;&gt;Developing ASP.NET MVC 4 Web Applications: (06) Implementing Web APIs&lt;/a&gt;{.title}&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps/07&#34;&gt;Developing ASP.NET MVC 4 Web Applications: (07) Deploying to Windows Azure&lt;/a&gt;{.title}&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Series/Dev-ASP-MVC4-WebApps/08&#34;&gt;Developing ASP.NET MVC 4 Web Applications: (08) Visual Studio 2013/MVC 5 Sneak Peek&lt;/a&gt;{.title}&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Error on GetSkin() loading a DotNetNuke website</title>
      <link>https://blog.tiagosalgado.com/2013/08/02/error-on-getskin-loading-a-dotnetnuke-website/</link>
      <pubDate>Fri, 02 Aug 2013 23:36:56 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/08/02/error-on-getskin-loading-a-dotnetnuke-website/</guid>
      <description>&lt;p&gt;Trying to load a DotNetNuke website, I was getting an error on Default.aspx page in this specific line:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Server Error in &amp;#8216;/&amp;#8217; Application.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object reference not set to an instance of an object&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Description: An unhandled exception occurred during the execution of the current web request. Please review the  stack trace for more information about the error and where it originated in the code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span&gt;Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre class=&#34;brush: csharp; title: ; notranslate&#34; title=&#34;&#34;&gt;ctlSkin = IsPopUp ? UI.Skins.Skin.GetPopUpSkin(this) : UI.Skins.Skin.GetSkin(this); &lt;/pre&gt;

&lt;p&gt;(Line 666, coincidence? Eheh)&lt;/p&gt;

&lt;p&gt;The error was related to DNNMenu web user control, saying that couldn&amp;#8217;t found the .ascx file.&lt;/p&gt;

&lt;p&gt;After struggling a bit, I&amp;#8217;ve found my DesktopModules folder was being considered as a Virtual Directory on IIS and pointing to a wrong path. So after fixing, pointing out to the right path, everything was working again 🙂&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Build 2013 &amp;#8211; Sessions available</title>
      <link>https://blog.tiagosalgado.com/2013/07/01/build-2013-sessions-available/</link>
      <pubDate>Mon, 01 Jul 2013 08:36:44 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/07/01/build-2013-sessions-available/</guid>
      <description>&lt;p&gt;Build 2013 is over, and now is time to see some sessions we couldn&amp;#8217;t watch live.&lt;/p&gt;

&lt;p&gt;All sessions are now available on Channel9 to download and watch when you want.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;http://channel9.msdn.com/Events/Build/2013?direction=asc#tab_sortBy_day&#34; target=&#34;_blank&#34;&gt;Channel9 &amp;#8211; Build 2013 Sessions List&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Frontend Development bookmarks</title>
      <link>https://blog.tiagosalgado.com/2013/06/30/frontend-development-bookmarks/</link>
      <pubDate>Sun, 30 Jun 2013 23:47:24 +0000</pubDate>
      
      <guid>https://blog.tiagosalgado.com/2013/06/30/frontend-development-bookmarks/</guid>
      <description>&lt;p&gt;A great and huge list of frontend development bookmarks list can be found &lt;a href=&#34;https://github.com/dypsilon/frontend-dev-bookmarks&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>