<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <atom:link rel="self" type="application/rss+xml" href="https://imar.spaanjaars.com/rss" />
    <title>Imar.Spaanjaars.Com</title>
    <link>https://imar.spaanjaars.com/rss</link>
    <description>RSS feed with recent stuff posted at https://imar.spaanjaars.com/</description>
    <copyright>Imar Spaanjaars (c) 2020</copyright>
    <language>en</language>
    <item>
      <title>Improving your ASP.NET Core site's e-mailing capabilities</title>
      <link>https://imar.spaanjaars.com/607/improving-your-aspnet-core-sites-e-mailing-capabilities</link>
      <description>    &lt;p&gt;Many websites depend heavily on e-mail: they send account confirmation e-mails, password reset e-mails, order
      confirmations, back-in-stock notifications and much more. Despite its importance, I often see that sending e-mail
      is an overlooked area when writing well maintainable and stable code. It's also often overlooked when monitoring
      sites and lots of code I have seen just assumes the mail server is up and running. But problems will occur; mail
      servers will go down, passwords do expire or get changed without updating the web site and more.&lt;/p&gt;
    &lt;p&gt;In a preceding article you saw how to monitor your site's SMTP server using an ASP.NET Core health check. While
      it's great to be notified when your SMTP server is unavailable, it would be even better if your site has an
      alternative way to deliver the messages when the primary SMTP is not available.&lt;/p&gt;
    &lt;p&gt;
      In this article, I'll show you a couple of ways to improve the way you send e-mails from your ASP.NET Core
      applications. In particular, I'll discuss:
    &lt;/p&gt;
    &lt;p&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="#p1" class="text-decoration-none"&gt;Hiding send functionality behind an interface&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#p2" class="text-decoration-none"&gt;Providing multiple concrete implementations to send e-mails in
          different ways and configure the
          best one at runtime&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#p3" class="text-decoration-none"&gt;Implementing a fallback solution for cases where your primary mail
          server is not available&lt;/a&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#p4" class="text-decoration-none"&gt;How to use MailKit to replace the built-in SmtpClient which is now
          considered obsolete by
          Microsoft&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#p5" class="text-decoration-none"&gt;How to use the SendGrid API to send e-mails from your
          application&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;

    &lt;/p&gt;
    &lt;p&gt;
      You'll find the full code for the article as a download &lt;a href="#downloads"&gt;at the end of this article&lt;/a&gt;, as
      well as in &lt;a href="https://github.com/Imar/Articles.SmtpDemo"&gt;the Github repository for this article&lt;/a&gt;.
    &lt;/p&gt;
</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.x</category>
      <guid>https://imar.spaanjaars.com/607/improving-your-aspnet-core-sites-e-mailing-capabilities</guid>
      <pubDate>Fri, 30 Oct 2020 21:09:32 GMT</pubDate>
    </item>
    <item>
      <title>Using standard health checks and building your own checks in ASP.NET Core</title>
      <link>https://imar.spaanjaars.com/605/using-standard-health-checks-and-building-your-own-checks-in-aspnet-core</link>
      <description>    &lt;p&gt;Being able to monitor your ASP.NET Core web applications and APIs and detect any issues early on is crucial in
      ensuring your sites are up and running and in a healthy state. In previous articles I talked about creating a
      custom health check solution for ASP.NET Framework applications and implementing ASP.NET Core health checks with
      standard functionality.
      In this article I'll show you how to add and configure some existing, open-source health checks to monitor an SMTP
      server and the web server's disk space (these are just examples; there are many more health checks available that
      you can plug in to your own web site). If the standard health checks aren't sufficient, you can build your own;
      something you'll see how to do in the second part of this article.
    &lt;/p&gt;
</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>WebMatrix</category>
      <guid>https://imar.spaanjaars.com/605/using-standard-health-checks-and-building-your-own-checks-in-aspnet-core</guid>
      <pubDate>Wed, 28 Oct 2020 15:38:58 GMT</pubDate>
    </item>
    <item>
      <title>Implementing Health Checks in ASP.NET Core</title>
      <link>https://imar.spaanjaars.com/604/implementing-health-checks-in-aspnet-core</link>
      <description> &lt;p&gt;Being able to monitor your ASP.NET Core web applications and APIs and detect any issues early on is crucial in ensuring your sites are up and running and in a healthy state. In a previous article I talked about creating a custom health check solution for ASP.NET Framework applications. In this article I'll show you how to leverage the built-in Health Check framework available for ASP.NET Core applications. You may want to check out the previous article to better understand health checks and why they are useful. And seeing the custom solution for the .NET Framework may have you appreciate the built-in ASP.NET Core functionality even more. In a future article I'll dive a little deeper into some existing third-party health checks that make monitoring your sites and services super easy and show you how to build your own health checks and plug them into the system. 
    &lt;/p&gt;</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.x</category>
      <guid>https://imar.spaanjaars.com/604/implementing-health-checks-in-aspnet-core</guid>
      <pubDate>Sun, 08 Nov 2020 13:27:02 GMT</pubDate>
    </item>
    <item>
      <title>Implementing Health Checks in ASP.NET Framework</title>
      <link>https://imar.spaanjaars.com/603/implementing-health-checks-in-aspnet-framework</link>
      <description> &lt;p&gt;Being able to monitor your ASP.NET web applications and APIs and detect any issues early on is crucial in
      ensuring your sites are up and running and in a healthy state.
      To implement simple monitoring in ASP.NET apps until ASP.NET 4.x, I usually add some custom code to my projects to provide health information from an endpoint With ASP.NET Core 2.2 and later this now comes in the box. In this article I'll show you how you can implement health checks using custom code targeting the .NET Framework (although it should also work on .NET Core). In future articles I'll then show you how
      you can set up similar checks in an ASP.NET Core app with standard functionality and how to extend the base
      system using existing third-party health checks like an SMTP server monitor, to make your health checks even more powerful.
    &lt;/p&gt;</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.x</category>
      <guid>https://imar.spaanjaars.com/603/implementing-health-checks-in-aspnet-framework</guid>
      <pubDate>Thu, 15 Oct 2020 11:40:38 GMT</pubDate>
    </item>
    <item>
      <title>Prefixing ID columns with the table name in Entity Framework</title>
      <link>https://imar.spaanjaars.com/588/prefixing-id-columns-with-the-table-name-in-entity-framework</link>
      <description>I recently got a question about the database configuration part of my &lt;a href="/573/aspnet-n-layered-applications-introduction-part-1"&gt;article series on N-Layer design&lt;/a&gt; in ASP.NET. In my model, all classes inherit &lt;span class="CodeInText"&gt;DomainEntity&amp;lt;T&amp;gt;&lt;/span&gt; that defines a primary key called &lt;span class="CodeInText"&gt;Id&lt;/span&gt;. This in turn means all primary key columns in the database are called &lt;span class="CodeInText"&gt;Id&lt;/span&gt; as well. The reader wanted to know if it was possible to prefix that column with the entity / table name. So, the &lt;span class="CodeInText"&gt;Id&lt;/span&gt; column in the &lt;span class="CodeInText"&gt;People&lt;/span&gt; table would be called &lt;span class="CodeInText"&gt;PersonId&lt;/span&gt;, the &lt;span class="CodeInText"&gt;Id&lt;/span&gt; in &lt;span class="CodeInText"&gt;EmailAddress&lt;/span&gt; would be called &lt;span class="CodeInText"&gt;EmailAddressId&lt;/span&gt; and so on. This has always been possible (and easy to do) for separate entities, but EF 6's custom conventions makes it a lot easier to do it for the entire model.</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>.NET General</category>
      <guid>https://imar.spaanjaars.com/588/prefixing-id-columns-with-the-table-name-in-entity-framework</guid>
      <pubDate>Wed, 08 Jan 2014 10:22:48 GMT</pubDate>
    </item>
    <item>
      <title>New Article Series on ASP.NET 4.5 N-Layered Design Now Available for Purchase</title>
      <link>https://imar.spaanjaars.com/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase</link>
      <description>
		&lt;p&gt;I am glad to announce the immediate availability of my new article series on N-Layered Design in ASP.NET 4.5! &lt;/p&gt;
		</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Blogs</category>
      <category>Imar's Blogs</category>
      <guid>https://imar.spaanjaars.com/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase</guid>
      <pubDate>Fri, 28 Jun 2013 16:45:40 GMT</pubDate>
    </item>
    <item>
      <title>Book Review: Instant jQuery 2.0 Table Manipulation How-to by Charlie Griefer</title>
      <link>https://imar.spaanjaars.com/584/book-review-instant-jquery-20-table-manipulation-how-to-by-charlie-griefer</link>
      <description>Talks about the book Instant jQuery 2.0 Table Manipulation How-to by Charlie Griefer
&lt;p&gt;I recently got the opportunity to review the book Instant jQuery 2.0 Table Manipulation How-to by Charlie Griefer. Being a fan and heavy user of jQuery, I happily accepted the offer.&lt;/p&gt;</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Blogs</category>
      <category>Book Reviews</category>
      <guid>https://imar.spaanjaars.com/584/book-review-instant-jquery-20-table-manipulation-how-to-by-charlie-griefer</guid>
      <pubDate>Sun, 26 May 2013 22:34:11 GMT</pubDate>
    </item>
    <item>
      <title>Looking for Reviewers for my new Series on N-Layer Design with ASP.NET 4.5 and Entity Framework 5 Code First</title>
      <link>https://imar.spaanjaars.com/583/looking-for-reviewers-for-my-new-series-on-n-layer-design-with-aspnet-45-and-entity-framework-5-code-first</link>
      <description>&lt;p&gt;During the past couple of months, I've been hard at work writing a follow up of my article series on N-Layer design for ASP.NET. This was long overdue, as I completed the previous series in early 2009, more than four years ago!&lt;/p&gt;
</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Blogs</category>
      <category>Imar's Blogs</category>
      <guid>https://imar.spaanjaars.com/583/looking-for-reviewers-for-my-new-series-on-n-layer-design-with-aspnet-45-and-entity-framework-5-code-first</guid>
      <pubDate>Tue, 23 Apr 2013 22:03:57 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Extensions, Tools and Wrapping Up (Part 10) </title>
      <link>https://imar.spaanjaars.com/582/aspnet-n-layered-applications-extensions-tools-and-wrapping-up-part-10</link>
      <description>&lt;p&gt;&lt;strong&gt;Note: this is part ten in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

			&lt;p&gt;This is Part 10 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. In this part I&amp;rsquo;ll discuss a few miscellaneous topics that I haven&amp;rsquo;t touched in previous articles in the series.&lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/582/aspnet-n-layered-applications-extensions-tools-and-wrapping-up-part-10</guid>
      <pubDate>Wed, 18 Dec 2013 17:02:31 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Importing Data Using the API (Part 9) </title>
      <link>https://imar.spaanjaars.com/581/aspnet-n-layered-applications-importing-data-using-the-api-part-9</link>
      <description>&lt;p&gt;&lt;strong&gt;Note: this is part nine in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
			&lt;p&gt;This is Part 9 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. In this part you&amp;rsquo;ll see how to build a command line application to import data from an external source (a CSV file in this case), using the application&amp;rsquo;s repository and model classes. Although this article is not related to ASP.NET directly, many ASP.NET developers may still benefit from it as importing data from an external resource is a common activity for ASP.NET developers.&lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/581/aspnet-n-layered-applications-importing-data-using-the-api-part-9</guid>
      <pubDate>Wed, 04 Dec 2013 22:02:14 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Implementing a WCF 4.5 Frontend (Part 8) </title>
      <link>https://imar.spaanjaars.com/580/aspnet-n-layered-applications-implementing-a-wcf-45-frontend-part-8</link>
      <description>&lt;p&gt;&lt;strong&gt;Note: this is part eight in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

			&lt;p&gt;This is Part 8 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. In this part you&amp;rsquo;ll see how to build a WCF service that makes use of the model and repository projects I have shown in the first five articles in this series. The WCF service can be used by different types of applications to access contact people and their related data.&lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/580/aspnet-n-layered-applications-implementing-a-wcf-45-frontend-part-8</guid>
      <pubDate>Wed, 13 Nov 2013 22:01:55 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Implementing a Web Forms 4.5 Frontend (Part 7)</title>
      <link>https://imar.spaanjaars.com/579/aspnet-n-layered-applications-implementing-a-web-forms-45-frontend-part-7</link>
      <description>&lt;p&gt;&lt;strong&gt;Note: this is part seven in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is Part 7 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. In this part you&amp;rsquo;ll see how to build a Web UI using ASP.NET Web Forms and make use of the model and repository projects I have shown in the first five articles in this series. &lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/579/aspnet-n-layered-applications-implementing-a-web-forms-45-frontend-part-7</guid>
      <pubDate>Tue, 22 Oct 2013 20:01:36 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Implementing an ASP.NET MVC 4 Frontend (Part 6)</title>
      <link>https://imar.spaanjaars.com/578/aspnet-n-layered-applications-implementing-an-aspnet-mvc-4-frontend-part-6</link>
      <description>&lt;p&gt;&lt;strong&gt;Note: this is part six in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;


			&lt;p&gt;This is Part 6 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. In this part you&amp;rsquo;ll see how to build a Web UI using ASP.NET MVC 4 and make use of the model and repository projects I have shown in the past five articles. &lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/578/aspnet-n-layered-applications-implementing-an-aspnet-mvc-4-frontend-part-6</guid>
      <pubDate>Sat, 28 Sep 2013 16:52:15 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Implementing a Repository using EF Code First (Part 5)</title>
      <link>https://imar.spaanjaars.com/577/aspnet-n-layered-applications-implementing-a-repository-using-ef-code-first-part-5</link>
      <description>&lt;p&gt;&lt;strong&gt;Note: this is part five in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

			&lt;p&gt;This is Part 5 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. In this part you&amp;rsquo;ll see how to build a concrete implementation of the repository that was introduced in the preceding article. I&amp;rsquo;ll show you how to create a data access layer that targets the Entity Framework (EF) and implements the repository interface in a clean and maintainable way.&lt;/p&gt;
		  </description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/577/aspnet-n-layered-applications-implementing-a-repository-using-ef-code-first-part-5</guid>
      <pubDate>Thu, 05 Sep 2013 16:00:52 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Implementing a Model (Part 4)</title>
      <link>https://imar.spaanjaars.com/576/aspnet-n-layered-applications-implementing-a-model-part-4</link>
      <description>	&lt;p&gt;&lt;strong&gt;Note: this is part four in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

			&lt;p&gt;This is Part 4 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. In this part you&amp;rsquo;ll see how to build a model using POCO classes &amp;ndash; Plain Old CLR Objects &amp;ndash; that have no dependencies to external frameworks (such as a requirement to inherit from an Entity Framework base class). In addition, you will see how to create unit tests for your POCO classes as well as lay a foundation for validation of these classes.&lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/576/aspnet-n-layered-applications-implementing-a-model-part-4</guid>
      <pubDate>Wed, 14 Aug 2013 11:52:34 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Making your Projects Unit Testable (Part 3)</title>
      <link>https://imar.spaanjaars.com/575/aspnet-n-layered-applications-making-your-projects-unit-testable-part-3</link>
      <description>			&lt;p&gt;&lt;strong&gt;Note: this is part three in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

			&lt;p&gt;This is Part 3 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. In this part you&amp;rsquo;ll see how to make your solution unit testable. In addition, you&amp;rsquo;ll see how to setup a project for Integration tests which work similar to unit tests but that target the database directly. &lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/575/aspnet-n-layered-applications-making-your-projects-unit-testable-part-3</guid>
      <pubDate>Tue, 30 Jul 2013 20:44:14 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Setting up the Solution in Visual Studio (Part 2)</title>
      <link>https://imar.spaanjaars.com/574/aspnet-n-layered-applications-setting-up-the-solution-in-visual-studio-part-2</link>
      <description>			&lt;p&gt;&lt;strong&gt;Note: this is part two in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

			&lt;p&gt;This is Part 2 in a series of 10 that show you how to build N-Layered applications using ASP.NET 4.5 and Entity Framework 5 Code First. The previous article provided some history of the architecture of the Contact Manager application and gave a broad overview of the new architecture. In this installment, things get a bit more concrete when you see how to setup a solution in Visual Studio 2012. The VS solution is going to contain three class libraries: one for the Infrastructure, one for the application&amp;rsquo;s Model and one to hold the Entity Framework (EF) Repository implementation. I&amp;rsquo;ll also add four frontend projects (an ASP.NET MVC 4, a Web Forms project, a WCF service project, and a windows command line application) which are discussed in detail in Part 6, 7, 8 and 9 of this series respectively. In the next article in this series I&amp;rsquo;ll extend the solution with four more projects for unit, integration, UI and service tests.&lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/574/aspnet-n-layered-applications-setting-up-the-solution-in-visual-studio-part-2</guid>
      <pubDate>Fri, 12 Jul 2013 21:59:33 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET N-Layered Applications - Introduction (Part 1)</title>
      <link>https://imar.spaanjaars.com/573/aspnet-n-layered-applications-introduction-part-1</link>
      <description>
			&lt;p&gt;&lt;strong&gt;Note: this is part one in a series of ten. If you rather read   this entire series off-line, you can buy the full series as a convenient PDF   document that comes with the full source. Besides the convenience,   buying the PDF will also make you feel good as it shows your   appreciation for the articles and helps me pay the bills for my server   and hosting so I can keep running imar.spaanjaars.com and continue to   provide you with great content. For more details, check out &lt;a href="/587/new-article-series-on-aspnet-45-n-layered-design-now-available-for-purchase"&gt;this post that shows you how you can buy the entire series right now&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
			&lt;p&gt;Now that the RTM versions of Visual Studio 2012 and .NET 4.5 have been out for a while, it seems like a good time to finally write the follow up to &lt;a href="https://imar.spaanjaars.com/476/n-layered-web-applications-with-aspnet-35-part-1-general-introduction"&gt;my popular series on N-Layered design using ASP.NET 3.5&lt;/a&gt; that I wrote in 2008 and early 2009. I have been wanting to do this for a long time, but there were always other things on my Todo list with a higher priority. The wait has been worth it though; since the last series targeting .NET 3.5 that I published in late 2008 and early 2009, new and compelling technologies have been released that make writing an N-Layered application such as the Contact Manager a lot easier to write.&lt;/p&gt;
			</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/573/aspnet-n-layered-applications-introduction-part-1</guid>
      <pubDate>Fri, 28 Jun 2013 16:42:40 GMT</pubDate>
    </item>
    <item>
      <title>Approving Users and Assigning them to Roles After They Sign Up for an Account</title>
      <link>https://imar.spaanjaars.com/572/approving-users-and-assigning-them-to-roles-after-they-sign-up-for-an-account</link>
      <description>Back in July I wrote &lt;a href="/569/requiring-users-to-confirm-their-e-mail-address-after-they-create-an-account"&gt;an article that showed how you 
		can require your users to confirm their e-mail addresses&lt;/a&gt; before they can access your site after signing up for a new account. In this article I describe a similar but slightly different technique where an administrator of the site can approve the account before the user gains access to the site.</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/572/approving-users-and-assigning-them-to-roles-after-they-sign-up-for-an-account</guid>
      <pubDate>Sun, 11 Nov 2012 15:38:47 GMT</pubDate>
    </item>
    <item>
      <title>Letting Users Manage Their Own Data using ASP.NET 4.5 Web Forms</title>
      <link>https://imar.spaanjaars.com/571/letting-users-manage-their-own-data-using-aspnet-45-web-forms</link>
      <description>
		&lt;p&gt;A question that comes up often on forums such as 
	    &lt;a href="https://p2p.wrox.com" target="_blank"&gt;p2p.wrox.com&lt;/a&gt; is how to let users manage their own data stored in a database. Probably the easiest way to accomplish this is to keep the user name in a separate column. Then when you query the data, you add a WHERE clause that retrieves only those rows that matches the user's name. Likewise, when inserting data, you store the user name along with that data.&lt;/p&gt;
		&lt;p&gt;But how do you capture the user's name? In the remainder of this article you see a two different ways to retrieve the user name of the currently logged in user.&lt;/p&gt;
		</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/571/letting-users-manage-their-own-data-using-aspnet-45-web-forms</guid>
      <pubDate>Sat, 10 Nov 2012 16:30:38 GMT</pubDate>
    </item>
    <item>
      <title>Implementing View State properties</title>
      <link>https://imar.spaanjaars.com/570/implementing-view-state-properties</link>
      <description>&lt;p&gt;By design HTTP, the protocol used to request and deliver web pages, is stateless. What that means is that the server does not keep track of requests you made to the browser. As far as the server is concerned, each request for a  page is an entirely new one and is not related to any previous request you may have made.&lt;/p&gt;

&lt;p&gt;This of course causes issues if you need to maintain data for a specific user. To overcome these problems, web developers have a number of solutions available, including session state, cookies and hidden form fields. ASP.NET Web Forms has been hiding much of this complexity by implementing a concept called View State. Controls (including the &lt;span class="CodeInText"&gt;Page&lt;/span&gt; class itself) can read from and write to the View State collection to maintain data across postbacks. Controls such as &lt;span class="CodeInText"&gt;Label&lt;/span&gt; use this mechanism to send their values to and from the browser, maintaining them across postbacks.&lt;/p&gt;

&lt;p&gt;In this article you'll see how to leverage View State to store your own values as well.&lt;/p&gt;
</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4</category>
      <guid>https://imar.spaanjaars.com/570/implementing-view-state-properties</guid>
      <pubDate>Sun, 29 Jul 2012 16:04:03 GMT</pubDate>
    </item>
    <item>
      <title>Requiring Users to Confirm their E-mail Address after they Create an Account</title>
      <link>https://imar.spaanjaars.com/569/requiring-users-to-confirm-their-e-mail-address-after-they-create-an-account</link>
      <description>&lt;p&gt;Over the past couple of weeks I received a number of e-mails from readers with more or less the same question: how do you require users to confirm their e-mail addresses before they are allowed to log in with an account they just created. Rather than answer them individually by e-mail, I decided to write this article to explain the principles.&lt;/p&gt;
		</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/569/requiring-users-to-confirm-their-e-mail-address-after-they-create-an-account</guid>
      <pubDate>Wed, 18 Jul 2012 14:04:02 GMT</pubDate>
    </item>
    <item>
      <title>Uploading Multiple Files at Once using ASP.NET 4.5</title>
      <link>https://imar.spaanjaars.com/567/uploading-multiple-files-at-once-using-aspnet-45</link>
      <description>In versions of ASP.NET before 4.5 there was no direct way to enable a user to upload multiple files at once. The &lt;span class="CodeInText"&gt;FileUpload&lt;/span&gt; control only supported a single file at the time. Common solutions to uploading multiple files were to use a server-side control such as those from &lt;a href="http://demos.telerik.com/aspnet-ajax/upload/examples/overview/defaultcs.aspx" target="_blank"&gt;Telerik&lt;/a&gt; or &lt;a href="http://www.devexpress.com/Products/NET/Controls/ASP/#main|controls" target="_blank"&gt;DevExpress&lt;/a&gt; or to use a client-side solution using a jQuery plugin for example. In the latter case, you would access &lt;span class="CodeInText"&gt;Request.Files&lt;/span&gt; to get at the uploaded files, rather than retrieving them form a &lt;span class="CodeInText"&gt;FileUpload&lt;/span&gt; control directly. Fortunately, in ASP.NET 4.5 uploading multiple files is now really easy.</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4.5</category>
      <guid>https://imar.spaanjaars.com/567/uploading-multiple-files-at-once-using-aspnet-45</guid>
      <pubDate>Sun, 08 Apr 2012 11:14:56 GMT</pubDate>
    </item>
    <item>
      <title>Modifying the CreateUserWizard Control</title>
      <link>https://imar.spaanjaars.com/566/modifying-the-createuserwizard-control</link>
      <description>&lt;p&gt;The &lt;span class="CodeInText"&gt;CreateUserWizard&lt;/span&gt; control in ASP.NET makes it super easy for your users to sign up for an account. Simply add it to a page, configure it, and you're good to go. In addition, you can control the way it behaves using settings in the &lt;span class="CodeInText"&gt;web.config&lt;/span&gt; file (such as whether or not duplicate e-mails are OK, password lengths and strength, whether or not you want to implement a &amp;quot;security question and answer&amp;quot; and so on). 
	 Also, when you don't like its appearance, you can customize the wizard's steps which expands its underlying HTML into your page, so you get full control over the rendering.&lt;/p&gt;
		&lt;p&gt;However, when you customize the steps, you'll find that the config setting that controls the display of the &amp;quot;security question and answer&amp;quot; no longer works as expected. In this article you see how to set up your control so it still takes the config settings into account.&lt;/p&gt;</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4</category>
      <guid>https://imar.spaanjaars.com/566/modifying-the-createuserwizard-control</guid>
      <pubDate>Sat, 14 Jan 2012 15:57:54 GMT</pubDate>
    </item>
    <item>
      <title>Recommendations for setting up a Visual Studio Solution for TFS</title>
      <link>https://imar.spaanjaars.com/565/recommendations-for-setting-up-a-visual-studio-solution-for-tfs</link>
      <description>
		&lt;p&gt;Over 
		  the past weeks I received a number of requests to explain how I typically set up my Visual Studio projects so they are easy to manage across a team that uses Team Foundation Server (TFS). I received another request from a client just this week and instead of helping him over the phone or paying him a visit and do it for him, I decided to write a quick document with instructions which eventually resulted in this article.&lt;/p&gt;
		&lt;p&gt;In this article you'll see how to create a multi-project solution in Visual Studio. I'll show you how you can use this structure to set up an ASP.NET MVC 3 application with a separate class library project for business logic and one or more unit test projects. However, you can use the exact same principles for other types of Visual Studio projects such as Web Forms, Win Forms, WCF and more. Over the past years, I found that this set up brings me the following benefits:&lt;/p&gt;
		&lt;ul&gt;
		  &lt;li&gt;It has a clear structure, making it easy to figure out where to find or store something&lt;/li&gt;
		  &lt;li&gt;It can be retrieved from TFS without any hassle&lt;/li&gt;
		  &lt;li&gt;It allows for easy branching&lt;/li&gt;
		  &lt;li&gt;It resolves most reference issues to third party assemblies&lt;/li&gt;
	    &lt;/ul&gt;
		&lt;p&gt;This is just my take at setting it up. If you find anything wrong, or have better alternatives to accomplish the same thing: feel free to speak up using the Comments section at the end of this article. &lt;/p&gt;
		&lt;p&gt;Without further ado, let's get started.&lt;/p&gt;</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>TFS</category>
      <guid>https://imar.spaanjaars.com/565/recommendations-for-setting-up-a-visual-studio-solution-for-tfs</guid>
      <pubDate>Sun, 20 Nov 2011 16:54:42 GMT</pubDate>
    </item>
    <item>
      <title>Renewed as a Microsoft MVP Again!</title>
      <link>https://imar.spaanjaars.com/564/renewed-as-a-microsoft-mvp-again</link>
      <description>&lt;p&gt;Today I received the following e-mail from Toby Richards, General Manager of Community &amp;amp; Online Support at Microsoft:&lt;/p&gt;
&lt;div class="CodeBorder"&gt;&lt;div class="CodeForeground"&gt;
&lt;p&gt;Congratulations! We are pleased to present you with the 2011 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in ASP.NET/IIS technical communities during the past year.
&lt;/p&gt;&lt;p&gt;
The Microsoft MVP Award provides us the unique opportunity to celebrate and honor your significant contributions and say "Thank you for your technical leadership."&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Blogs</category>
      <category>Imar's Blogs</category>
      <guid>https://imar.spaanjaars.com/564/renewed-as-a-microsoft-mvp-again</guid>
      <pubDate>Sat, 01 Oct 2011 13:49:38 GMT</pubDate>
    </item>
    <item>
      <title>Using Entity Framework Code First and ASP.NET Membership Together</title>
      <link>https://imar.spaanjaars.com/563/using-entity-framework-code-first-and-aspnet-membership-together</link>
      <description>&lt;p&gt;Some time ago I was involved as a software designer and developer in an MVC 3 project that used Entity Framework Code First 4.1 in a repository layer. During development we postponed dealing with security as requirements were pretty simple (simple logons with a single Administrators role plus the requirement that users should only be able to see their own data). When we were close to deployment, we ran the &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/08/25/423703.aspx" target="_blank"&gt;aspnet_regsql&lt;/a&gt; tool against the database that EF had created for us to create the SQL schema and data that the Application Services such as Membership and Roles require. We also added an additional &lt;span class="CodeInText"&gt;userName&lt;/span&gt; parameter to a &lt;span class="CodeInText"&gt;Get&lt;/span&gt; method in the repository to filter records for the currently logged in user. Finally, we added &lt;span class="CodeInText"&gt;Authorize&lt;/span&gt; attributes to a number of controllers to make sure they are only accessible for users that are logged in. We then deployed the application and database, created a number of users using the &lt;a href="http://mvcmembership.codeplex.com/" target="_blank"&gt;MvcMembership&lt;/a&gt; section we had added to the site, and announced the presence of the site. All of this worked great, but we ran into issues when started work on the next version of the application.&lt;/p&gt;
		</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4</category>
      <guid>https://imar.spaanjaars.com/563/using-entity-framework-code-first-and-aspnet-membership-together</guid>
      <pubDate>Sat, 20 Aug 2011 10:52:16 GMT</pubDate>
    </item>
    <item>
      <title>Creating Checkboxes that Behave Like Radio Buttons with jQuery</title>
      <link>https://imar.spaanjaars.com/562/creating-checkboxes-that-behave-like-radio-buttons-with-jquery</link>
      <description>
		&lt;p&gt;Some time ago I received &lt;a href="https://p2p.wrox.com/book-beginning-asp-net-3-5-c-vb-book-isbn-978-0-470-18759-3/84366-how-make-gridview-checkbox-act-like-radiobutton.html" target="_blank"&gt;a question&lt;/a&gt; on the &lt;a href="https://p2p.wrox.com/" target="_blank"&gt;Wrox P2P forum&lt;/a&gt; about checkboxes that should behave like radio buttons. The poster of the question was looking for a (client side) solution to have multiple checkboxes per row in a &lt;span class="CodeInText"&gt;GridView&lt;/span&gt; with multiple rows. A user should only be able to check off at most one of the checkboxes in each row. My first thought was to use radio buttons instead, but then I realized that with radio buttons you lose the ability to uncheck all options. Once you've selected a radio button in a group of radio buttons, there's no way for an end user to uncheck it again.&lt;/p&gt;
		&lt;p&gt;Fortunately, with a bit of jQuery, this is really simple to accomplish with checkboxes as I'll show you in this short article.&lt;/p&gt;
		</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>Web General</category>
      <guid>https://imar.spaanjaars.com/562/creating-checkboxes-that-behave-like-radio-buttons-with-jquery</guid>
      <pubDate>Thu, 21 Jul 2011 13:16:02 GMT</pubDate>
    </item>
    <item>
      <title>How to Get a Free License of Red Gate's Reflector Version 7</title>
      <link>https://imar.spaanjaars.com/561/how-to-get-a-free-license-of-red-gates-reflector-version-7</link>
      <description>&lt;p&gt;About three weeks ago, &lt;a href="http://www.red-gate.com/" target="_blank"&gt;Red Gate&lt;/a&gt; announced that it will start charging $35 for &lt;a href="http://www.red-gate.com/products/dotnet-development/reflector/" target="_blank"&gt;Reflector&lt;/a&gt; version 7, when it comes out in early March. At the same time, they announced that the current free version  will stop functioning shortly after that. Reflector has a &amp;quot;time bomb&amp;quot; built-in that requires you to periodically update your copy of Reflector to the latest version. They'll now use this time-bomb to kill the existing version, forcing you to upgrade to the latest - and paid for - version after May 30, 2011.		&lt;/p&gt;
		</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Blogs</category>
      <category>Imar's Blogs</category>
      <guid>https://imar.spaanjaars.com/561/how-to-get-a-free-license-of-red-gates-reflector-version-7</guid>
      <pubDate>Sun, 13 Feb 2011 13:01:40 GMT</pubDate>
    </item>
    <item>
      <title>Using the Microsoft Access Providers for Membership, Roles and Profile under ASP.NET 4</title>
      <link>https://imar.spaanjaars.com/560/using-the-microsoft-access-providers-for-membership-roles-and-profile-under-aspnet-4</link>
      <description>&lt;p&gt;Back in August 2006 I wrote an article about &lt;a href="/404/using-the-microsoft-access-providers-to-replace-the-built-in-sql-server-providers"&gt;replacing the built-in Application Services providers (such as the Membership and Roles providers)&lt;/a&gt; with a new provider targeting a Microsoft Access database, instead of a SQL Server database. This solution has worked well for many people who didn't have access to SQL Server on their production machine, or couldn't (or didn't want to) spend a lot of money for an extended hosting package that includes SQL Server.&lt;/p&gt;
        &lt;p&gt;I wrote the article using Visual Studio 2005 and the Microsoft .NET Framework 2.0 which was the bomb at that time. And while you can continue to use the concepts explained in the article in web sites that target ASP.NET 4 today without any modifications (you can easily consume .NET 2.0 DLLs in an ASP.NET 4 web site), you may run into some issues when you also want to compile the Access Providers assembly against .NET 4. &lt;/p&gt;
        &lt;p&gt;In this article I'll show you how to make the Access Providers work under an ASP.NET 4.0 web site.&lt;/p&gt;</description>
      <author> (Imar Spaanjaaars)</author>
      <category>Articles</category>
      <category>ASP.NET 4</category>
      <guid>https://imar.spaanjaars.com/560/using-the-microsoft-access-providers-for-membership-roles-and-profile-under-aspnet-4</guid>
      <pubDate>Sun, 09 Jan 2011 11:09:56 GMT</pubDate>
    </item>
  </channel>
</rss>