<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ricardo D. Sanchez</title>
	<atom:link href="http://ricardodsanchez.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ricardodsanchez.com</link>
	<description>Programming, Startups, Life</description>
	<lastBuildDate>Mon, 30 Apr 2012 16:42:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ricardodsanchez.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/ecb828f3e815d78499051e2a8bed2c5c?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Ricardo D. Sanchez</title>
		<link>http://ricardodsanchez.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ricardodsanchez.com/osd.xml" title="Ricardo D. Sanchez" />
	<atom:link rel='hub' href='http://ricardodsanchez.com/?pushpress=hub'/>
		<item>
		<title>How To: Secure your ASP.NET MVC application and use Active Directory as the Membership Provider</title>
		<link>http://ricardodsanchez.com/2012/04/18/how-to-secure-your-asp-net-mvc-application-and-use-active-directory-as-the-membership-provider/</link>
		<comments>http://ricardodsanchez.com/2012/04/18/how-to-secure-your-asp-net-mvc-application-and-use-active-directory-as-the-membership-provider/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 14:57:52 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[CSRF]]></category>
		<category><![CDATA[Membership]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[XSRF]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.com/?p=257</guid>
		<description><![CDATA[Securing your ASP.NET MVC application should be priority number one every time you start a new web application. Using the attributes Authorize and ValidateAntiForgeryToken in every controller and action is the only way to avoid any security holes. In this post I&#8217;ll show you how to secure your ASP.NET application by implementing the AuthorizeAttribute and ValidateAntiForgeryTokenAttribute classes. &#8230; <a href="http://ricardodsanchez.com/2012/04/18/how-to-secure-your-asp-net-mvc-application-and-use-active-directory-as-the-membership-provider/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=257&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Securing your ASP.NET MVC application should be priority number one every time you start a new web application. Using the attributes Authorize and ValidateAntiForgeryToken in every controller and action is the only way to avoid any security holes. In this post I&#8217;ll show you how to secure your ASP.NET application by implementing the AuthorizeAttribute and ValidateAntiForgeryTokenAttribute classes.</p>
<h2>The basics</h2>
<p>At the very least, you should add an [Authorize] attribute to every controller or controller Action in case you want some of the controller actions to be accessible by anonymous users. For example, you probably want ALL users to have access to the login and register actions of your web application.</p>
<p>By decorating the HomeController with the Authorize attribute (notice I did not specify any user role) the application will prevent any unauthenticated user from executing any of the actions in this controller.</p>
<pre>[Authorize]
public class HomeController : Controller
{
  //...
}</pre>
<p>The following is an example of decorating a controller action with the Authorize attribute, you want to do this when you only want to restrict access to some of the actions in a controller instead of all actions.</p>
<pre>[Authorize]
public ActionResult Create()
{
  //...
}</pre>
<h2>Protecting against Cross-site request forgery attack (CSRF or XSRF)</h2>
<p>The Authorize attribute offers protection that is sufficient in most cases. However, there is security hole with this and thus it opens your web application for a cross-site request forgery attack. For example, after a user logs into your site the website will issue your browser an authentication token within a cookie. Each subsequent request, the browser sends the cookie back to the site to let the site know that you are authorized to take whatever action you’re taking, so far everything is good.</p>
<p>Here is the problem with only using the Authorize attribute, let&#8217;s say that a user is logged in to your website and then they go to a spam site by clicking on a link that points to another site which causes a form post back to your site&#8230; this is bad, your browser will send the authentication cookie to your site making it appear as if the request came from your website and initiated by an authenticated user when it really didn&#8217;t.</p>
<p>The above scenario is called <a href="http://en.wikipedia.org/wiki/CSRF" target="_blank">cross-site request forgery</a> and can be avoided by adding the ValidateAntiForgeryToken attribute available in the .NET framework, this attribute is used to detect whether a server request has been tampered with.</p>
<p>The first step is to add the ValidateAntiForgeryToken attribute to every Post Action as follows:</p>
<pre>[HttpPost, Authorize, ValidateAntiForgeryToken]
public ActionResult Create()
{
  //...
}</pre>
<p>The next step is to add the HtmlHelper method <strong>@Html.AntiForgeryToken()</strong> inside the form in your view.</p>
<p>The way the ValidateAntiForgeryToken attribute works is by checking to see that the cookie and hidden form field left by the Html.AntiForgeryToken() HtmlHelper essentially exists and match. If they do not exist or match, it throws an HttpAntiForgeryException shown below:</p>
<p>&#8220;A required anti-forgery token was not supplied or was invalid&#8221;</p>
<p>By adding the ValidateAntiForgeryToken to your controller actions your site will be prepared to prevent CSRF/XSRF attacks.</p>
<h2>Implementing Forms Authentication using Active Directory (AD)</h2>
<p>Often times you might run across a project where you need to authenticate users of your website using Active Directory credentials, the good news is that you can use the existing &#8220;Account&#8221; controller to achieve this, only a few modifications are necessary.</p>
<p>When you create a new MVC Web Application project and choose the Internet Application template, the Account controller is added to the project, you can use this controller with AD to authenticate your users. For the Account controller to work with AD we need to remove all Actions but the following:</p>
<ul>
<li>Logon()</li>
<li>Logon(LogOnModel model, string returnUrl)</li>
<li>LogOff()</li>
</ul>
<p>Your Account controller should look like the following after you remove the unnecessary Actions such as ChangePassword, Register, etc&#8230;</p>
<p><img class="aligncenter size-full wp-image-288" title="Account Controller" src="http://ricardodsanchez.files.wordpress.com/2012/04/accountcontroller.png?w=750&#038;h=901" alt="" width="750" height="901" /></p>
<p>After this, go ahead and clean up the AccountModel as well so the only model class left is the LogOnModel:</p>
<p><img class="aligncenter size-full wp-image-290" title="logonmodel" src="http://ricardodsanchez.files.wordpress.com/2012/04/logonmodel.png?w=750" alt=""   /></p>
<p>Lastly, add the following to the project&#8217;s web.config file:</p>
<p><img class="aligncenter size-full wp-image-295" title="adconnection" src="http://ricardodsanchez.files.wordpress.com/2012/04/adconnection.png?w=750&#038;h=258" alt="" width="750" height="258" /></p>
<p>That is all! the first code snipet is the connectionstring to your Active Directory server and the second one is where we specify Active Directory as the application&#8217;s default membership provider.</p>
<p>Save your changes, hit Ctrl-F5 and logon to your application using your domain/AD account.</p>
<p>Hopefully this will help you get started to secure your ASP.NET web apps and show you a very simple way to use ASP.NET&#8217;s membership services with Active Directory.</p>
<p>In a later post I will show how to use Active Directory groups to restrict access to controller actions and make your application even more secure!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />Filed under: <a href='http://ricardodsanchez.com/category/asp-net/'>ASP.NET</a>, <a href='http://ricardodsanchez.com/category/how-to/'>How-To</a>, <a href='http://ricardodsanchez.com/category/mvc/'>MVC</a>, <a href='http://ricardodsanchez.com/category/tools/'>Tools</a> Tagged: <a href='http://ricardodsanchez.com/tag/active-directory/'>Active Directory</a>, <a href='http://ricardodsanchez.com/tag/csrf/'>CSRF</a>, <a href='http://ricardodsanchez.com/tag/membership/'>Membership</a>, <a href='http://ricardodsanchez.com/tag/security/'>Security</a>, <a href='http://ricardodsanchez.com/tag/xsrf/'>XSRF</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=257&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2012/04/18/how-to-secure-your-asp-net-mvc-application-and-use-active-directory-as-the-membership-provider/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/accountcontroller.png" medium="image">
			<media:title type="html">Account Controller</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/logonmodel.png" medium="image">
			<media:title type="html">logonmodel</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/adconnection.png" medium="image">
			<media:title type="html">adconnection</media:title>
		</media:content>
	</item>
		<item>
		<title>How to: Configure SQL Express to accept remote connections</title>
		<link>http://ricardodsanchez.com/2012/04/05/how-to-configure-sql-express-to-accept-remote-connections/</link>
		<comments>http://ricardodsanchez.com/2012/04/05/how-to-configure-sql-express-to-accept-remote-connections/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 16:15:41 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[dynamic ports]]></category>
		<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[SQL Express]]></category>
		<category><![CDATA[sql services]]></category>
		<category><![CDATA[TCP port]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.com/?p=264</guid>
		<description><![CDATA[This is a copy of the post that used to exist here for which I got some complaints since some people where still trying to read it when looking at an answer I wrote on StackOverflow a few years ago and the page was not there anymore. The above is an exact replica of the original post, &#8230; <a href="http://ricardodsanchez.com/2012/04/05/how-to-configure-sql-express-to-accept-remote-connections/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=264&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a copy of the post that used to exist <a href="http://ricardodsanchez.com/archive/2009/06/19/how-to-configure-sql-express-to-accept-remote-connections.aspx" target="_blank">here</a> for which I got some complaints since some people where still trying to read it when looking at an <a href="http://stackoverflow.com/questions/1507004/the-sql-server-2008-was-not-found-or-was-not-accessible/1507034#1507034" target="_blank">answer</a> I wrote on StackOverflow a few years ago and the page was not there anymore. The above is an exact replica of the original post, hope it helps:</p>
<p>I just installed SQL express 2008 recently and wanted to use it for a test application that I have in a hosted server. I wanted for this application to connect to my local SQL express 2008 database but soon I found out I needed to do some adjustments for this to work. So this is what I did to make my local SQL express 2008 db accept remote connections.</p>
<ol>
<li>Go to Start &#8211; All Programs &#8211; Microsoft SQL Server 2008 &#8211; Configuration Tools &#8211; SQL Server Configuration Manager</li>
<li>Select and expand the SQL Server Network Configuration node and then select your SQL express 2008 database. In the window to the right, right-click on TCP/IP and click on &#8220;Enable&#8221;.</li>
<li>Once you have enabled the TCP/IP protocol, right-click on it and select Properties, go to the tab labeled &#8220;IP Addresses&#8221; and make sure you clear any values under TCP Dynamic Ports <strong>(even if it is 0, remove it)</strong>, and then add a new port number on each one of the <strong>TCP Port</strong>properties. In my case I used port 14330.<img class="size-full wp-image-270 aligncenter" title="tcpports" src="http://ricardodsanchez.files.wordpress.com/2012/04/tcpports.png?w=750" alt=""   /><br />
Click Apply and OK.</li>
<li>You now need to restart SQL express 08, to do this, select the SQL Services node in the same SQL Server Configuration Manager and the right-click on the name of your SQL express 08 instance and select restart. If you receive any errors trying to restart your server, go back to step 3 and make sure you did everything I mentioned, if the error keeps coming up, then use a different port number.</li>
<li>Finally, you need to make sure a remote connection can be made to your SQL server, so we need to open the port you assigned on step 3 (in my case 14330) in your router and make sure Windows firewall and/or any other firewall accept incoming connections to this port.</li>
</ol>
<p>That&#8217;s it! your SQL express 2008 server should be able to accept remote connections now. As always, make sure you take the appropriate steps to make sure your systems are secure.</p>
<p>Good Luck!</p>
<br />Filed under: <a href='http://ricardodsanchez.com/category/how-to/'>How-To</a>, <a href='http://ricardodsanchez.com/category/sql/'>SQL</a> Tagged: <a href='http://ricardodsanchez.com/tag/dynamic-ports/'>dynamic ports</a>, <a href='http://ricardodsanchez.com/tag/ms-sql/'>MS SQL</a>, <a href='http://ricardodsanchez.com/tag/sql-express/'>SQL Express</a>, <a href='http://ricardodsanchez.com/tag/sql-services/'>sql services</a>, <a href='http://ricardodsanchez.com/tag/tcp-port/'>TCP port</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/264/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=264&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2012/04/05/how-to-configure-sql-express-to-accept-remote-connections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/tcpports.png" medium="image">
			<media:title type="html">tcpports</media:title>
		</media:content>
	</item>
		<item>
		<title>Retrieving images from a dabatase in ASP.NET MVC</title>
		<link>http://ricardodsanchez.com/2012/04/03/retrieving-images-from-a-dabatase-in-asp-net-mvc/</link>
		<comments>http://ricardodsanchez.com/2012/04/03/retrieving-images-from-a-dabatase-in-asp-net-mvc/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 17:12:42 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[images stored in db]]></category>
		<category><![CDATA[url action]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.com/?p=245</guid>
		<description><![CDATA[If you run into a ASP.NET MVC site that needs to get images stored as binary data in a SQL database you can do the following to help you read these images and display them in your view. The Controller First, create a controller that will serve these images and add a void method that &#8230; <a href="http://ricardodsanchez.com/2012/04/03/retrieving-images-from-a-dabatase-in-asp-net-mvc/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=245&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you run into a ASP.NET MVC site that needs to get images stored as binary data in a SQL database you can do the following to help you read these images and display them in your view.</p>
<h3>The Controller</h3>
<p>First, create a controller that will serve these images and add a void method that requires the image id as parameter to locate the right image to serve. In the example below I used the Adventure Works database and Linq to query the database and read an image stored in MS SQL. Make sure you set the content type to the right type of image file you&#8217;ll be getting from the database, in the example below I used &#8220;image/gif&#8221; as the content type.</p>
<p><a href="http://ricardodsanchez.files.wordpress.com/2012/04/imagecontroller.png" target="_blank"><img class="alignleft size-full wp-image-248" title="imagecontroller" src="http://ricardodsanchez.files.wordpress.com/2012/04/imagecontroller.png?w=750&#038;h=284" alt="" width="750" height="284" /></a></p>
<h3>The View</h3>
<p>In your view, you only need to use the Url.Action helper to form the url to the image stored in the database by calling the method in the image controller you just created (see above).</p>
<p>&#8220;Show&#8221; is the name of our method and &#8220;Image&#8221; is the name of the controller, what&#8217;s on the right to &#8220;id=&#8221; is just the image id that I want to get.</p>
<p><a href="http://ricardodsanchez.files.wordpress.com/2012/04/imageviewer.png" target="_blank"><img class="alignleft size-full wp-image-249" title="imageviewer" src="http://ricardodsanchez.files.wordpress.com/2012/04/imageviewer.png?w=750&#038;h=82" alt="" width="750" height="82" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />Filed under: <a href='http://ricardodsanchez.com/category/asp-net/'>ASP.NET</a>, <a href='http://ricardodsanchez.com/category/microsoft/'>Microsoft</a>, <a href='http://ricardodsanchez.com/category/mvc/'>MVC</a> Tagged: <a href='http://ricardodsanchez.com/tag/images-stored-in-db/'>images stored in db</a>, <a href='http://ricardodsanchez.com/tag/url-action/'>url action</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/245/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/245/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/245/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=245&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2012/04/03/retrieving-images-from-a-dabatase-in-asp-net-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/imagecontroller.png" medium="image">
			<media:title type="html">imagecontroller</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/imageviewer.png" medium="image">
			<media:title type="html">imageviewer</media:title>
		</media:content>
	</item>
		<item>
		<title>Infinite scroll with ASP.NET MVC</title>
		<link>http://ricardodsanchez.com/2012/04/02/infinite-scroll-with-asp-net-mvc/</link>
		<comments>http://ricardodsanchez.com/2012/04/02/infinite-scroll-with-asp-net-mvc/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 17:35:27 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[auto-populate]]></category>
		<category><![CDATA[infinite scroll]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.com/?p=208</guid>
		<description><![CDATA[An infinite scroll is a nice solution when you need to display large amounts of content in page, it helps by increasing performance in such a page because only a specific number of items is shown when the page first loads. As the user scrolls down, more content is shown. An infinite scroll is a better &#8230; <a href="http://ricardodsanchez.com/2012/04/02/infinite-scroll-with-asp-net-mvc/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=208&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>An infinite scroll is a nice solution when you need to display large amounts of content in page, it helps by increasing performance in such a page because only a specific number of items is shown when the page first loads. As the user scrolls down, more content is shown. An infinite scroll is a better solution than having a paginated view of the page which usually breaks the flow of the page by splitting the content into multiple pages and then users have to click on a button or link to be able to see the next group of items&#8230;</p>
<p>I&#8217;ve used the following infinite scroll solution with ASP.NET MVC sites and it works great and it is simple to implement, all you need is jQuery and a little code in the controller and the view.</p>
<p>First, add a parameter to the controller action that returns the data for your page, this parameter is the one that we&#8217;ll use to specify the page number we need to get data for. The real work happens in the GetPaginatedProducts method, every time the user scrolls down the page this method is called by the controller action, we pass the page number and then use the <a title="Skip" href="http://msdn.microsoft.com/en-us/library/bb358985.aspx" target="_blank">Skip</a> Linq command to get the next set of items.</p>
<h3>The Controller</h3>
<p>Here is the code we need in the controller for the infinite scroll to work:</p>
<p><a href="http://ricardodsanchez.files.wordpress.com/2012/04/controller.png"><img class="alignleft size-full wp-image-241" title="controller" src="http://ricardodsanchez.files.wordpress.com/2012/04/controller.png?w=750" alt=""   /></a></p>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3>The JavaScript</h3>
<p>The following is the javascript needed to display a loading image and to initiate the call to the Product action on the HomeController, see below. Also, you will need to create a loading image to display while the application is getting data from the server, I used <a title="ajaxload.info" href="http://ajaxload.info/" target="_blank">this site</a> to create mine.</p>
<p><a href="http://ricardodsanchez.files.wordpress.com/2012/04/javascript.png"><img class="alignleft size-full wp-image-242" title="javascript" src="http://ricardodsanchez.files.wordpress.com/2012/04/javascript.png?w=750" alt=""   /></a></p>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3>The View</h3>
<p>Finally, in the view we make sure we have at least two divs, one with the id &#8220;productList&#8221; where the data is appended to when scrolling to the bottom of the page and another one with the id &#8220;loading&#8221; to use it to display the loading image:</p>
<p><img class="alignleft size-full wp-image-243" title="view" src="http://ricardodsanchez.files.wordpress.com/2012/04/view.png?w=750" alt=""   /></p>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3>Where is the sample project?</h3>
<p>I&#8217;ve added the sample project to CodePlex, you can download it here: <a href="http://infinitescroll.codeplex.com/" target="_blank">http://infinitescroll.codeplex.com/</a></p>
<br />Filed under: <a href='http://ricardodsanchez.com/category/asp-net/'>ASP.NET</a>, <a href='http://ricardodsanchez.com/category/jquery/'>jQuery</a>, <a href='http://ricardodsanchez.com/category/mvc/'>MVC</a> Tagged: <a href='http://ricardodsanchez.com/tag/asp-net-mvc/'>ASP.NET MVC</a>, <a href='http://ricardodsanchez.com/tag/auto-populate/'>auto-populate</a>, <a href='http://ricardodsanchez.com/tag/infinite-scroll/'>infinite scroll</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/208/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=208&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2012/04/02/infinite-scroll-with-asp-net-mvc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/controller.png" medium="image">
			<media:title type="html">controller</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/javascript.png" medium="image">
			<media:title type="html">javascript</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/04/view.png" medium="image">
			<media:title type="html">view</media:title>
		</media:content>
	</item>
		<item>
		<title>Making progress, slowly but surely</title>
		<link>http://ricardodsanchez.com/2012/02/20/making-progress-slowly-but-surely/</link>
		<comments>http://ricardodsanchez.com/2012/02/20/making-progress-slowly-but-surely/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 09:02:36 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[Startup life]]></category>
		<category><![CDATA[TidyContact]]></category>
		<category><![CDATA[contact manager]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[product development]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.com/?p=179</guid>
		<description><![CDATA[I can&#8217;t believe it&#8217;s been about a year since I started with the idea of TidyContact, time really flies, especially when you have a busy life full of projects, kids, family, etc, and I am blessed for that. So far I have learned lots of things building TidyContact, most of the things I&#8217;ve learned are &#8230; <a href="http://ricardodsanchez.com/2012/02/20/making-progress-slowly-but-surely/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=179&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-184" title="Slowly but surely" src="http://ricardodsanchez.files.wordpress.com/2012/02/slowbutsure.jpg?w=750" alt=""   />I can&#8217;t believe it&#8217;s been about a year since I started with the idea of <a title="TidyContact.com - Simple Contact Manager for Small Businesses" href="http://tidycontact.com" target="_blank">TidyContact</a>, time really flies, especially when you have a busy life full of projects, kids, family, etc, and I am blessed for that. So far I have learned lots of things building TidyContact, most of the things I&#8217;ve learned are related to the web framework I am using (ASP.NET MVC), and the service oriented architecture I am implementing with this project. Yes it is taken longer than I expected and I know this goes against the Lean Startup methodology, but frankly, <a href="http://ontechies.com/2011/11/30/ditch-the-lean-startup-methodology-instead-be-innovative-and-take-risks/" target="_blank">I do not care</a> since what I am doing is fun (to me at least) and it is also a way for me to learn about third-party apis, frameworks, databases, etc&#8230; it is geek fun.</p>
<p>During this time I have been able to collect about 60 names of people who are interested in TidyContact, and about half of them showed enough interest to actually pay a monthly subscription for it, that is good. It is truly difficult to develop a product from scratch without any help from other developers, designers, etc&#8230; at the same time, it is rewarding every time I reach a milestone such as completing a feature, finishing a module, getting the landing page done, etc&#8230; I am looking forward to launching the beta version soon and hope to get valuable feedback to make the application better before the first version launches. I would say I am about 70% done with the version I want to release to beta users, I believe in releasing a minimum viable product and all that stuff, but since this application is something we&#8217;ll be using internally in <a title="TodoTac.com - Tax Preparation" href="TodoTax.com" target="_blank">TodoTax.com</a> it won&#8217;t make sense to release it if it doesn&#8217;t do at least what we want it to do.<span id="more-179"></span></p>
<p>I enjoy being involved with different projects and doing different things, keep focus is not easy. However,  balancing your life between your startup, family and other projects is also not easy and it should be the most important thing, no doubt about that. Being surrounded by family and doing things not related to software development are key to <a title="Live longer, don't burn out!" href="http://ontechies.com/2011/08/31/live-longer-dont-burnout/" target="_blank">avoid burning out</a>, this keeps the motivation high and it helps when feeling down.</p>
<p>Regardless of the time spent so far, which is much more than I originally expected, the journey has been both interesting and fun. Because of this project, I have pushed myself to get out there more often than usual, traveling to attend conferences such as the Business of Software and even <a title="Co-Founders Wanted Austin Meetup" href="http://atxcofounders.com" target="_blank">organizing meetups</a> to get to know bright people and help them any way I can, with this I also help myself.</p>
<p>Working in TidyContact has proven to be very beneficial to me as a developer, it is a different product where I have full control of what it would look like, what features should have, what technologies I use to build it, etc&#8230; it helps me balance the frustration that all developers sometimes experience by not having control of the projects or technologies we can work on. This project has also helped me to get better with things like SEO, conversion rates, A/B testing, and other things that are usually not part of a developer&#8217;s primary responsibility.</p>
<p>The application&#8217;s security, data schema and most of the backend code has been completed, at least the first version of it. The user interface is what is left to do, about 50% is done but this has been a difficult process since creating a good user interface and a great user experience is never an easy task. Loading the application fast, avoiding pages postbacks and building an intuitive application is all part of it and this takes time and skill to do.</p>
<p>In the next few weeks the first version of the UI should be close to completion and so the beta version will be released, after that I&#8217;ll start iterating on it more often to make sure I can go from beta to version one in just a matter of weeks and not months.</p>
<br />Filed under: <a href='http://ricardodsanchez.com/category/startup-life/'>Startup life</a>, <a href='http://ricardodsanchez.com/category/tidycontact/'>TidyContact</a> Tagged: <a href='http://ricardodsanchez.com/tag/contact-manager/'>contact manager</a>, <a href='http://ricardodsanchez.com/tag/focus/'>focus</a>, <a href='http://ricardodsanchez.com/tag/product-development/'>product development</a>, <a href='http://ricardodsanchez.com/tag/software-development/'>software development</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=179&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2012/02/20/making-progress-slowly-but-surely/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:thumbnail url="http://ricardodsanchez.files.wordpress.com/2012/02/slowbutsure.jpg?w=150" />
		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/02/slowbutsure.jpg?w=150" medium="image">
			<media:title type="html">Slowly but surely</media:title>
		</media:content>

		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2012/02/slowbutsure.jpg" medium="image">
			<media:title type="html">Slowly but surely</media:title>
		</media:content>
	</item>
		<item>
		<title>With TidyContact I am scratching my own itch, really.</title>
		<link>http://ricardodsanchez.com/2011/11/10/with-tidycontact-i-am-scratching-my-own-itch-really/</link>
		<comments>http://ricardodsanchez.com/2011/11/10/with-tidycontact-i-am-scratching-my-own-itch-really/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 03:56:23 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[applications]]></category>
		<category><![CDATA[TidyContact]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[simple contact manager]]></category>
		<category><![CDATA[simple contact manager application for small business]]></category>
		<category><![CDATA[small business]]></category>
		<category><![CDATA[tidycontact]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.com/?p=159</guid>
		<description><![CDATA[Let me start by explaining how it all started&#8230; I promise it won&#8217;t be a super long read but it also won&#8217;t be as short as you would like I imagine. Back in 1999 I had a bad experience at one of the national tax preparation firms and decided to learn and do my simple &#8230; <a href="http://ricardodsanchez.com/2011/11/10/with-tidycontact-i-am-scratching-my-own-itch-really/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=159&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://tidycontact.com"><img class="alignleft size-full wp-image-162" title="TidyContact.com" src="http://ricardodsanchez.files.wordpress.com/2011/11/tidycontact.png?w=750" alt=""   /></a>Let me start by explaining how it all started&#8230; I promise it won&#8217;t be a super long read but it also won&#8217;t be as short as you would like I imagine. Back in 1999 I had a bad experience at one of the national tax preparation firms and decided to learn and do my simple tax declaration myself. After a few months of a lot of reading and browsing irs.gov I felt ready and waited patiently until the next year to fill out the tax forms on my own. One year after that I had a group of friends and family members asking me to prepare their taxes as well&#8230; yikes! In 2001 Sanchez Plus Services was born (officially) and at the time I had about 20 people paying me money to prepare their taxes.</p>
<p>Fast forward to 2005, that is when my family and I moved from Minnesota to Austin, Texas and at the time Sanchez Plus Services had about 100 paying clients and the little business was already very profitable! the interesting part is that we never opened an office or even had a website&#8230; in fact, we didn&#8217;t even met with our clients in person, it was all a phone/fax operation and I just worked on it after work during tax season (February &#8211; April). After the 2005 tax season I decided to stop preparing taxes for other people and started doing computer consulting instead since that was my day job anyway, at this point my wife took over Sanchez Plus Services which she had already been helping run for a few years already and knew how to handle it and get things done.<span id="more-159"></span></p>
<p>Today, she has managed to grow this business from about 150 clients in 2006 to around 400 and she is the only running this show. Today Sanchez Plus Services has an outdated <a title="Sanchez Plus Services" href="http://www.sanchezplus.com" target="_blank">basic website</a> and even a <a href="http://www.facebook.com/sanchezplus" target="_blank">Facebook page</a> with contact information and nothing else. All of the customer acquisition has been through word of mouth and since we don&#8217;t have an office where people can go to, Sanchez Plus Services&#8217; clients cover various states such as Minnesota, Texas, Arkansas, California, Oklahoma, etc&#8230; and to this day, all of the communication with these customers is still handled by one person and using a combination of phone, email and fax (I know!). The client&#8217;s contact information resides in a variety of places such as Excel files, a custom application, MS Access, Outlook and a product from Intuit called Customer Manager.</p>
<p>After Sanchez Plus Services grew to more than a few hundred clients, managing the communication, notes and reminders for all those clients became a big problem and a big pain. The tool that promised to help us manage this mess was Intuit&#8217;s Customer Manager application but it has proven to be very slow and buggy, specially when syncing data with other programs. This is where the idea for TidyContact was born.</p>
<p>There are many CRM applications out there, we know. However, most of the applications we have tried focus on sales tasks such as creating and manage leads, proposals and the like. Our tax preparation business don&#8217;t track that, all of our customers come from word of mouth and there is really not a sales process other than just simply prepare their tax return and then charge them for the number of forms filled and for other consulting services in case they need to resolve an issue with the IRS. Our little tax preparation business needs a tool to manage our existing contacts and the communication we have with them, nothing else.</p>
<p>The application that we need should be a tool to consolidate, organize, and manage contacts. It should allow to add notes and reminders about contact&#8217;s calls, emails, etc&#8230; It should let you find a contact&#8217;s detailed information and notes with just a few clicks in just a few seconds and that is what TidyContact is and promise to do for us, yes <a title="Build it and scratch your own itch!" href="http://ontechies.com/2011/10/17/build-it-for-you-and-scratch-your-own-itch-worry-about-customers-later/" target="_blank">we are scratching our own itch</a>.</p>
<p>When I started Sanchez Plus Services over 10 years ago I didn&#8217;t think of it as a business, and yes I know is a micro business but still a business. It generates a nice revenue and it is profitable, a bit more than <a title="Ramen Profitable by Paul Graham" href="http://www.paulgraham.com/ramenprofitable.html" target="_blank">ramen profitable</a> I would say. The tax preparation business was started to offer a better option for people who want to avoid having to go to the national tax preparation firms that employ temporary workers to basically do data entry and that for the most part don&#8217;t have the required knowledge about taxes to actually help you when preparing your personal and/or your small business taxes.</p>
<p>I want to do the same with TidyContact. A simple application that solves one problem for small businesses.</p>
<p>TidyContact is not a CRM, it is not a proposals and deals track tool, and it is not just contact sync tool. TidyContact is a <strong><em>simple contact manager application for small business</em></strong>. It lets your consolidate contacts from various places such as LinkedIn, Google/Gmail, Outlook, etc and it also let you add notes.</p>
<p>I am almost done with the development of this application which I have been bootstrapping from the beginning and working on it at nights and whenever possible. I talked to some small business owners and other people who are self-employed and many of them are interested in trying it and even pay for it! I have about 50 people now signed up to try the beta version of it and I just hope that a few of them end up signing up for it and become customers for many years, like those of Sanchez Plus Services.</p>
<p>If you think TidyContact could be useful for you and your business, please sign up for a demo which is <a title="TidyContact.com" href="http://tidycontact.com" target="_blank">coming very soon</a>, and if you have any questions or feedback about TidyContact please use the comments section below or <a href="mailto:ricardo@ontechies.com" target="_blank">email me</a>. I am always here to help.</p>
<br />Filed under: <a href='http://ricardodsanchez.com/category/applications/'>applications</a>, <a href='http://ricardodsanchez.com/category/tidycontact/'>TidyContact</a> Tagged: <a href='http://ricardodsanchez.com/tag/crm/'>crm</a>, <a href='http://ricardodsanchez.com/tag/simple-contact-manager/'>simple contact manager</a>, <a href='http://ricardodsanchez.com/tag/simple-contact-manager-application-for-small-business/'>simple contact manager application for small business</a>, <a href='http://ricardodsanchez.com/tag/small-business/'>small business</a>, <a href='http://ricardodsanchez.com/tag/tidycontact-2/'>tidycontact</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/159/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=159&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2011/11/10/with-tidycontact-i-am-scratching-my-own-itch-really/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/11/tidycontact.png" medium="image">
			<media:title type="html">TidyContact.com</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing Windows Home Server (WHS) Connector in Windows 7 64-bit</title>
		<link>http://ricardodsanchez.com/2011/08/03/installing-windows-home-server-whs-connector-in-windows-7-64-bit/</link>
		<comments>http://ricardodsanchez.com/2011/08/03/installing-windows-home-server-whs-connector-in-windows-7-64-bit/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 05:56:53 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[HP whs]]></category>
		<category><![CDATA[whs]]></category>
		<category><![CDATA[whs connector]]></category>
		<category><![CDATA[windows home server]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.com/?p=138</guid>
		<description><![CDATA[I bought a Windows Home Server about two years ago, I use it primarily for backups and file sharing in my home network. It is a good solution for a small home network such as mine because it is sufficient, it is not overkill and it is easy to manage. A few months ago, I &#8230; <a href="http://ricardodsanchez.com/2011/08/03/installing-windows-home-server-whs-connector-in-windows-7-64-bit/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=138&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://ricardodsanchez.files.wordpress.com/2011/08/whs.jpeg"><img class="alignleft size-full wp-image-142" title="whs" src="http://ricardodsanchez.files.wordpress.com/2011/08/whs.jpeg?w=750" alt=""   /></a>I bought a Windows Home Server about two years ago, I use it primarily for backups and file sharing in my home network. It is a good solution for a small home network such as mine because it is sufficient, it is not overkill and it is easy to manage.</p>
<p>A few months ago, I put together a new PC which I use for development when I am home and for gaming. I installed Windows Ultimate 64-bit in it and up until today, I didn&#8217;t worry about connecting it to the WHS because I didn&#8217;t have much to backup, now I do.<span id="more-138"></span></p>
<p>The first thing I tried was to install the WHS connector using the original CD, I didn&#8217;t have any luck. Then I searched for a solution online and I found <a href="http://www.homeserverhacks.com/2009/01/running-windows-home-server-connector.html" target="_blank">this article</a>, but it didn&#8217;t work either. In the article, the writer mentions that I can just browse to http://you<em>windowshomeservername</em>.com:55000 and then install it from there. I was able to see a button to install it, but when I clicked on it I got a &#8220;Not Found&#8221; 404 error. As it turns out, the link points to &#8220;/setup/WHSConnectorInstall.exe&#8221; and that path doesn&#8217;t seem to be configured in the web server. I searched for the folder Setup in the WHS and found it. After trying running various executables including &#8220;WHSConnectorInstall.exe&#8221; without success, one of the error messages suggested running Setup.exe (what a surprise!), so I did and I was able to install the Windows Home Server in my Windows 7 64 bit computer without any problems. The connection works perfectly and I also was able to configure this computer to be backed up by WHS every night!</p>
<p>These are the steps I followed:</p>
<ul>
<li>Copy the files shown in the image below from the folder &#8220;C:\WHS&#8221; in your Windows Home Server to a local folder in your Windows 7 computer.</li>
<li> These are the executables I copied from WHS to my WIndows 7 computer, double-click on setup.exe and follow the screen instructions.</li>
</ul>
<p><img class="aligncenter size-full wp-image-139" title="WHS executables" src="http://ricardodsanchez.files.wordpress.com/2011/08/filestocopy.png?w=750" alt=""   /></p>
<p><img class="aligncenter size-medium wp-image-140" title="WHS installation successful" src="http://ricardodsanchez.files.wordpress.com/2011/08/installessuccessfully.png?w=300&#038;h=216" alt="" width="300" height="216" /></p>
<ul>
<li> That is it! After running setup.exe you should see the WHS icon in the system tray.</li>
</ul>
<div><a href="http://ricardodsanchez.files.wordpress.com/2011/08/icon.png"><img class="aligncenter size-full wp-image-141" title="WHS icon" src="http://ricardodsanchez.files.wordpress.com/2011/08/icon.png?w=750" alt=""   /></a></div>
<div>I hope this is useful for any of you out there, cheers!</div>
<br />Filed under: <a href='http://ricardodsanchez.com/category/how-to/'>How-To</a>, <a href='http://ricardodsanchez.com/category/microsoft/'>Microsoft</a>, <a href='http://ricardodsanchez.com/category/networking/'>Networking</a> Tagged: <a href='http://ricardodsanchez.com/tag/hp-whs/'>HP whs</a>, <a href='http://ricardodsanchez.com/tag/whs/'>whs</a>, <a href='http://ricardodsanchez.com/tag/whs-connector/'>whs connector</a>, <a href='http://ricardodsanchez.com/tag/windows-home-server/'>windows home server</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/138/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=138&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2011/08/03/installing-windows-home-server-whs-connector-in-windows-7-64-bit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/08/whs.jpeg" medium="image">
			<media:title type="html">whs</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/08/filestocopy.png" medium="image">
			<media:title type="html">WHS executables</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/08/installessuccessfully.png?w=300" medium="image">
			<media:title type="html">WHS installation successful</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/08/icon.png" medium="image">
			<media:title type="html">WHS icon</media:title>
		</media:content>
	</item>
		<item>
		<title>NuGet, The Package Management System for the .Net Platform</title>
		<link>http://ricardodsanchez.com/2011/05/07/nuget-the-package-management-system-for-the-net-platform/</link>
		<comments>http://ricardodsanchez.com/2011/05/07/nuget-the-package-management-system-for-the-net-platform/#comments</comments>
		<pubDate>Sat, 07 May 2011 14:48:19 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[NuGet]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[package management system]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.com/?p=94</guid>
		<description><![CDATA[NuGet is a package management system for the .NET platform, it is supposed to simplify the process of incorporating third-party libraries into a .NET project during development. Basically, it is a great way to add (and update) open source libraries and the like to your .NET project. The first version of NuGet was released in &#8230; <a href="http://ricardodsanchez.com/2011/05/07/nuget-the-package-management-system-for-the-net-platform/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=94&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://ricardodsanchez.files.wordpress.com/2011/05/nuget.png"><img class="alignleft size-full wp-image-111" title="nuget" src="http://ricardodsanchez.files.wordpress.com/2011/05/nuget.png?w=750" alt=""   /></a>NuGet</strong> is a package management system for the .NET platform, it is supposed to simplify the process of incorporating third-party libraries into a .NET project during development. Basically, it is a great way to add (and update) open source libraries and the like to your .NET project. The first version of NuGet was released in October 2010 and it was originally named NuPack.</p>
<h2>How to get it</h2>
<p>NuGet can be installed from <a href="http://nuget.org/" target="_blank">here</a> or from Visual Studio&#8217;s Extension Manager located under the Tools menu.</p>
<h2>The awesomeness of it</h2>
<p><span style="text-decoration:underline;">Before</span> NuGet, the way we incorporated third-party libraries into our projects was by doing the following:</p>
<ol>
<li>Download third-party library (and any dependencies) from the web.</li>
<li>Unpack them (as many of them come in compressed files) to a folder in our project, I usually create (or created) a folder labeled &#8220;lib&#8221; and placed all the third-party libraries there.</li>
<li>Import to the .NET project.</li>
<li>Make any necessary changes to the config file when needed.</li>
</ol>
<div>Too much work right? With NuGet, you basically open your project in Visual Studio and type a command in the new Package Manager Console. For example, if you wanted to add NUnit to your project, you&#8217;ll type the following command:</div>
<p><img class="aligncenter size-full wp-image-102" title="nuget_install_command" src="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_install_command2.png?w=750" alt=""   /><span id="more-94"></span></p>
<p>If a new version of NUnit became available and you wanted to use it in your project, you&#8217;ll just need to type the following command in the Package Manager Console to update NUnit using NuGet: <strong><em>PM&gt; Update-Package nunit</em></strong></p>
<h2>The NuGet Gallery</h2>
<p>Where does this copy of NUnit comes from you might ask? if you look closely at the image above, you&#8217;ll see a Package source field in the upper left corner of the window, this is the default NuGet package source and it basically points to NuGet&#8217;s service at <strong>http://packages.nuget.org/v1/FeedService.svc/</strong>.</p>
<p>These third-party libraries are hosted by Microsoft and the list of third-party libraries available in NuGet increases every day.</p>
<p>As of today, there are 1,418 packages available in NuGet&#8217;s official package service. You can browse the different packages available in NuGet by visiting the <a href="http://nuget.org/List/Packages" target="_blank">NuGet website</a>, by opening the <strong>Add Library Package Reference</strong> located under the Tools menu (Tools &#8211; Library Package Manager), the Add Library Package Reference is also available in the Add Reference menu, and my favorite, by typing the command <strong><em>PM&gt; Get-Package -ListAvailable</em></strong> in the  Console<em>&#8230; </em>if you do this, just have in mind that it will take a while to list all the libraries available <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>For those that prefer the clicking instead of the typing, the Package Manager Console (UI) is your tool, below is a screen shot of what it looks like:</p>
<p><a href="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_add_library_package_reference.png"><img class="aligncenter size-full wp-image-105" title="nuget_add_library_package_reference" src="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_add_library_package_reference.png?w=750" alt=""   /></a></p>
<p>From this window, you can see a list of the installed packages, a list of all the packages available, you can search and install any package you might need to as well; this is all in a <strong>per-project</strong> basis. What this means is that if you have a solution with multiple projects and you want to have a library such as NUnit available to all projects or at least available in more than one project&#8230; you&#8217;ll have to add it to each individual project &#8211; yes! this isn&#8217;t ideal, I know.</p>
<p>Phil Haack, Senior Program Manager for the ASP.NET team, recently <a href="http://haacked.com/archive/2011/05/02/single-package-version-per-solution.aspx" target="_blank">wrote</a> about the possibility of adding the ability to use a single package version per solution, instead of project. I think this is a great idea and many people probably won&#8217;t start using NuGet in their multi-project solutions until this is available. Phil or <a href="http://twitter.com/haacked" target="_blank">@haacked</a> for those who follow him on Twitter, also took the time to add a survey to his blog post and based in the <a href="http://survey.haacked.com/survey/1/results" target="_blank">results of this survey</a>, it looks like the majority of the people who responded agree that having the option to have a single NuGet package version per solution is not only ideal, it is necessary.</p>
<h2>How to Contribute</h2>
<p>You can develop your own NuGet packages and upload them to NuGet.org so they can be shared with others, all you need to do this is to <a href="http://nuget.org/Contribute/Index" target="_blank">create an account</a> on NuGet.org and then upload your NuGet package. Detailed instructions on how to create a NuGet package can be found <a href="http://nuget.codeplex.com/wikipage?title=Creating%20a%20Package" target="_blank">here</a>.</p>
<h2>What&#8217;s New</h2>
<p>The team working in NuGet seems to be very active and new versions are coming out often, they just released a new version of NuGet about a week ago and these are the steps in order to update to the latest version, NuGet 1.3</p>
<p><strong>To update from the Extension Manager </strong></p>
<p>Go to the Tools menu in Visual Studio, click on Extension Manager and you&#8217;ll see the window below:</p>
<p><a href="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_ext_manager_update.png"><img class="size-full wp-image-122 aligncenter" title="nuget_ext_manager_update" src="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_ext_manager_update.png?w=750" alt=""   /></a></p>
<p><strong>To update NuGet.exe </strong><br />
With this release comes also a new version of NuGet.exe, this is the same tool that package authors have been using to create packages and upload them to <a href="http://nuget.org" target="_blank">NuGet gallery.</a> If you haven&#8217;t downloaded it yet, you can get the latest version from NuGet&#8217;s CI server <a href="http://ci.nuget.org:8080/guestAuth/repository/download/bt4/.lastSuccessful/Console/NuGet.exe" target="_blank">here</a>. After you download it, and once a new version comes out, to update you&#8217;ll only have to type the following <em>nuget.exe u</em> command as shown below:</p>
<p><a href="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_update_exe.png"><img class="size-full wp-image-123 aligncenter" title="nuget_update_exe" src="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_update_exe.png?w=750" alt=""   /></a></p>
<p>You can read all the changes, updates and new features released with NuGet 1.3 <a href="http://nuget.org/announcements/nuget-1.3-released" target="_blank">here</a>.</p>
<p>Well, that is all I have now regarding NuGet, I do like this tool and I think it will be very useful for all .NET developers. I am working in another post that will show the steps to follow to create your own nuget server/gallery (yes, the code for the nuget service is open source and <a href="http://galleryserver.codeplex.com/" target="_blank">available</a> to anyone interested!), upload your own nuget packages and make them available to your team. The idea is that a company developing in the .NET platform can take advantage of having their own nuget service running internally so their developers can share their own class libraries and the like by using nuget and their local nuget service/gallery. This is better than shared network folders, emailing dlls, etc&#8230;</p>
<p><strong><em><span style="color:#333333;">If you liked this post, consider <a href="http://ricardodsanchez.com/feed/" target="_blank">subscribing</a> to my blog, you can also follow me on Twitter <a href="http://twitter.com/ricardodsanchez" target="_blank"><span style="color:#333333;">http://twitter.com/ricardodsanchez</span></a></span></em></strong></p>
<br />Filed under: <a href='http://ricardodsanchez.com/category/microsoft/'>Microsoft</a>, <a href='http://ricardodsanchez.com/category/open-source/'>Open source</a>, <a href='http://ricardodsanchez.com/category/tools/'>Tools</a> Tagged: <a href='http://ricardodsanchez.com/tag/microsoft/'>Microsoft</a>, <a href='http://ricardodsanchez.com/tag/nuget/'>NuGet</a>, <a href='http://ricardodsanchez.com/tag/open-source-2/'>open source</a>, <a href='http://ricardodsanchez.com/tag/package-management-system/'>package management system</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=94&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2011/05/07/nuget-the-package-management-system-for-the-net-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/05/nuget.png" medium="image">
			<media:title type="html">nuget</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_install_command2.png" medium="image">
			<media:title type="html">nuget_install_command</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_add_library_package_reference.png" medium="image">
			<media:title type="html">nuget_add_library_package_reference</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_ext_manager_update.png" medium="image">
			<media:title type="html">nuget_ext_manager_update</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/05/nuget_update_exe.png" medium="image">
			<media:title type="html">nuget_update_exe</media:title>
		</media:content>
	</item>
		<item>
		<title>MIX11 &#8211; A tribute to Microsoft&#8217;s Web Stack of Love!</title>
		<link>http://ricardodsanchez.com/2011/05/02/mix11-a-tribute-to-microsofts-web-stack-of-love/</link>
		<comments>http://ricardodsanchez.com/2011/05/02/mix11-a-tribute-to-microsofts-web-stack-of-love/#comments</comments>
		<pubDate>Mon, 02 May 2011 03:45:08 +0000</pubDate>
		<dc:creator>Ricardo</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[MIX 11]]></category>
		<category><![CDATA[NuGet]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://ricardodsanchez.wordpress.com/?p=28</guid>
		<description><![CDATA[A few weeks ago I attended MIX11 in Las Vegas. MIX is an annual event where Microsoft showcase their new web technologies. This year it was all about new versions of existing products, such as Windows Phone 7, Entity Framework, Silverlight, ASP.NET MVC, IIS, etc&#8230; Below is a summary of what was shared on both &#8230; <a href="http://ricardodsanchez.com/2011/05/02/mix11-a-tribute-to-microsofts-web-stack-of-love/">Continue reading <span class="meta-nav">&#187;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=28&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="MIX11" src="http://ricardodsanchez.files.wordpress.com/2011/04/mix11_bb_seeyouat_1.gif?w=240&#038;h=380" alt="" width="240" height="380" />A few weeks ago I attended MIX11 in Las Vegas. MIX is an annual event where Microsoft showcase their new web technologies. This year it was all about new versions of existing products, such as Windows Phone 7, Entity Framework, Silverlight, ASP.NET MVC, IIS, etc&#8230; Below is a summary of what was shared on both <a href="http://ontechies.com/2011/04/12/mix11-future-of-the-web-day-one-keynote/" target="_blank">keynotes</a>:</p>
<ul>
<li>Mango: code name for coming version of Windows Phone 7 (WP7).</li>
<li>ASP.NET MVC 3 Tools update</li>
<li>Entity Framework 4.1</li>
<li>Silverlight 5 Beta</li>
<li>NuGet</li>
<li>IIS Express</li>
<li>SQL Compact Edition 4</li>
<li>Internet Explorer 10 Preview</li>
</ul>
<div>There were many sessions available, some of them really good and some others were not. One thing that I did appreciate was the endless supply of coffee, water and other drinks. Snacks were available as well between breakfast and lunch which were also provided by Microsoft.</div>
<div>All sessions are now available online as well as both keynotes, <a href="http://channel9.msdn.com/Events/MIX/MIX11" target="_blank">check them out!</a></div>
<div>As a software developer, the most interesting for me was the ASP.NET MVC 3 tools update, EF 4.1.<span id="more-28"></span></div>
<p></p>
<div><span class="Apple-style-span" style="font-size:20px;font-weight:bold;">ASP.NET MVC 3 Tools Update</span></div>
<div>It includes many interesting updates but it doesn&#8217;t change the System.Web.Mvc.dll or any of its other assemblies that ship as part of the ASP.NET MVC 3 Framework. Below is a list of the updates included in this <strong>Tools Update:</strong></div>
<div>
<ul>
<li>New Intranet Project Template, which enables Windows Authentication and it does not include <em>AccountController</em>.</li>
<li>A new checkbox to enable HTML 5 versions of project templates.</li>
</ul>
<p>New Add Controller dialog now supports full automatic scaffolding for Create, Read, Update and Delete (CRUD) controller actions and corresponding views. It scaffolds data access using EF Code First by default.</p>
<ul>
<li>Add Controller dialog also supports extensible scaffolds using NuGet packages&nbsp;such as MvcScaffolding. This allows you to add custom scaffolds into the dialog which will then allow you to create scaffolds for other data access technologies such as NHibernate, etc&#8230;</li>
<li>Ability to update JavaScript libraries within a project template via NuGet. JavaScript libraries are included as pre-installed NuGet packages.</li>
<li>Includes Modernizr 1.7 which provides compatibility support for HTML 5 and CSS 3 in older browsers.</li>
<li>Includes EF Code First 4.1 as a pre-installed NuGet package.</li>
</ul>
<div>Other updates and bug fixes include the following:</div>
</div>
<div>
<ul>
<li>Cleaner AccountController in the Internet project template.</li>
<li>Addition of &#8220;sticky&#8221; options that remember their settings even if Visual Studio is restarted.</li>
<li>Better filtering of model types in the Add View and Add Controller dialogs.</li>
</ul>
<div><a href="http://nuget.codeplex.com/" target="_blank">Click here</a> to learn more about NuGet.</div>
<p></p>
<h3><span class="Apple-style-span" style="font-size:20px;font-weight:bold;">Entity Framework 4.1</span></h3>
<p>Entity Framework 4.1 is now available for download, the release of this &nbsp; It&#8217;s cool that they are able to do out-of-band releases for things like this, so we don&#8217;t have to wait a year or more for new functionality.</p>
<p>Note that while CodeFirst is awesome, EF4.1 is not just about Code First, the DbContext API is equally applicable to Database First and Model First and EF 4.1 includes new code generation item templates for customers working with the EDM designer.</p>
<p>This <strong>Code First</strong> feature works on all ASP.NET projects, including MVC, Webforms, Windows Forms, WPF, etc&#8230; and you can use NuGet to install it!</p>
<p>The&nbsp;<strong>DbContext API</strong>&nbsp;is a simplified abstraction over ObjectContext and a number of other types that were included in previous releases of the ADO.NET Entity Framework. The DbContext API surface is optimized for common tasks and coding patterns. DbContext can be used with Database First, Model First and Code First development.</p>
<p><a href="http://blogs.msdn.com/b/adonet/archive/2011/04/11/ef-4-1-released.aspx" target="_blank">Click here</a> to lean more about Entity Framework 4.1</p>
<p>What do you think? I think Microsoft is taking the right steps with these type of releases, while small, doing often releases such as the above are really useful and even fun! I do like the NuGet idea and the name.</p>
<p>Please share your thoughts in the comments below, cheers.</p>
</div>
<br />Filed under: <a href='http://ricardodsanchez.com/category/microsoft/'>Microsoft</a>, <a href='http://ricardodsanchez.com/category/tools/'>Tools</a> Tagged: <a href='http://ricardodsanchez.com/tag/asp-net-mvc/'>ASP.NET MVC</a>, <a href='http://ricardodsanchez.com/tag/entity-framework/'>Entity Framework</a>, <a href='http://ricardodsanchez.com/tag/iis/'>IIS</a>, <a href='http://ricardodsanchez.com/tag/microsoft/'>Microsoft</a>, <a href='http://ricardodsanchez.com/tag/mix-11/'>MIX 11</a>, <a href='http://ricardodsanchez.com/tag/nuget/'>NuGet</a>, <a href='http://ricardodsanchez.com/tag/wp7/'>WP7</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardodsanchez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardodsanchez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardodsanchez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardodsanchez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardodsanchez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardodsanchez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardodsanchez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardodsanchez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardodsanchez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardodsanchez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardodsanchez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardodsanchez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardodsanchez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardodsanchez.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ricardodsanchez.com&amp;blog=9820888&amp;post=28&amp;subd=ricardodsanchez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ricardodsanchez.com/2011/05/02/mix11-a-tribute-to-microsofts-web-stack-of-love/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9ed8fdfd64e4c75ebca50f092454ad1?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">ricardodsanchez</media:title>
		</media:content>

		<media:content url="http://ricardodsanchez.files.wordpress.com/2011/04/mix11_bb_seeyouat_1.gif" medium="image">
			<media:title type="html">MIX11</media:title>
		</media:content>
	</item>
	</channel>
</rss>
