<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>bencoffman.com/blog - ASP.NET</title>
    <link>http://bencoffman.com/blog/</link>
    <description>News about Tech and a few other things.</description>
    <language>en-us</language>
    <copyright>Ben Coffman</copyright>
    <lastBuildDate>Mon, 31 Jan 2011 21:10:50 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8102.813</generator>
    <managingEditor>coffmanben@gmail.com</managingEditor>
    <webMaster>coffmanben@gmail.com</webMaster>
    <item>
      <trackback:ping>http://bencoffman.com/blog/Trackback.aspx?guid=5df22283-729b-4dcd-8214-f7e547397512</trackback:ping>
      <pingback:server>http://bencoffman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://bencoffman.com/blog/PermaLink,guid,5df22283-729b-4dcd-8214-f7e547397512.aspx</pingback:target>
      <dc:creator>Ben Coffman</dc:creator>
      <wfw:comment>http://bencoffman.com/blog/CommentView,guid,5df22283-729b-4dcd-8214-f7e547397512.aspx</wfw:comment>
      <wfw:commentRss>http://bencoffman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5df22283-729b-4dcd-8214-f7e547397512</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://bencoffman.com/blog/content/binary/microsoft_.net_logo.png" width="120px" border="0" height="75px" />
        <br />
        <br />
        <br />
Cache.Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)<br /><br /><a href="http://msdn.microsoft.com/en-us/library/cc491414.aspx">http://msdn.microsoft.com/en-us/library/cc491414.aspx</a><br /><br />
My new favorite method in .Net cache'ing. Before I explain why I love it I'm going
to show you how it works in a very easy way, because that's all you really care about
anyways....I know this because I'm the exact same way annnnnnd Google Analytics tells
me so by your actions visitors.<br /><br />
The place I like to put this method is in my constructor on my data layer, this way
it's called with frequency.<br /><br /><pre><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">static</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">class</span> DataLayer<br />
{<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">static</span> DataLayer()<br />
{<br />
HttpContext.Current.Cache.Insert(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"AnyStringYouLike"</span>, 
<br /><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"AnyStringYouLike"</span>, 
<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">null</span>, 
<br />
DateTime.Now.AddMinutes(5), 
<br />
System.Web.Caching.Cache.NoSlidingExpiration, 
<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">new</span> CacheItemUpdateCallback(FunctionYouWantToCall));<br />
}<br /><br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">static</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">void</span> FunctionYouWantToCall(<span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">string</span> aKey, 
<br />
CacheItemUpdateReason aReason, <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"><br />
out</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">object</span> anObject, 
<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">out</span> CacheDependency
dependency, 
<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">out</span> DateTime
expiration, <span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"><br />
out</span> TimeSpan aTimeSpan)<br />
{<br /><br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">if</span> (DateTime.Now.Day
== 22)<br />
{<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">if</span> (AFeedIMade.GenerateFeed())<br />
{<br />
ErrorHelper.LogError(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"AFeedIMade"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Success"</span>);<br />
}<br /><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">else</span><br />
{<br />
ErrorHelper.LogError(<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"AFeedIMade"</span>, <span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"Failure"</span>);<br />
}<br />
}<br /><br />
dependency <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;">null</span>;<br />
expiration <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> DateTime.Now.AddMinutes(20);<br />
aTimeSpan <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span> Cache.NoSlidingExpiration;<br />
anObject <span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"AnyStringYouLike"</span>;<br />
}<br />
}<br /><br /></span><br /></pre><br />
What's happening here?<br /><ol><li>
I insert into cache a delegate that runs a function I specify I would like to run
at a specific time. I do this by saying check the cache initially every five minutes,
but once it jumps into the function every 20.</li><li>
Once it's in the function if the day is the 22nd of the month then I run the code
to generate my feed, if it's not then I simply set the cache to check it every 20
minutes.</li></ol><br />
The first question you may ask your self is why don't you set the cache to check the
time every 22 days or so. The problem with that is what if you set it back 22 days
on the 21st day. Then you miss the day you want to check, the 22nd for that month,
and your feed (or whatever you are having the method do) gets delayed by at least
one month. Since every month is different in length, it's just not a smart decision.
For good measure I've found that having the cache checked every x minutes under 60
minutes is the best way to go. It's less likely for a specified time frame to be missed
in the function.<br /><br />
Last note, if by chance you are calling the cache outside of the websites context
don't forget you can use:<br /><b>HttpContext.Current</b><br /><br />
Like so:<br />
HttpContext.Current.Cache.Insert(String, Object, CacheDependency, DateTime, TimeSpan,
CacheItemUpdateCallback)<br /><br /><br /><img width="0" height="0" src="http://bencoffman.com/blog/aggbug.ashx?id=5df22283-729b-4dcd-8214-f7e547397512" /></body>
      <title>Cache.Insert, HttpContext.Current.Cache.Insert</title>
      <guid isPermaLink="false">http://bencoffman.com/blog/PermaLink,guid,5df22283-729b-4dcd-8214-f7e547397512.aspx</guid>
      <link>http://bencoffman.com/blog/2011/01/31/CacheInsertHttpContextCurrentCacheInsert.aspx</link>
      <pubDate>Mon, 31 Jan 2011 21:10:50 GMT</pubDate>
      <description>&lt;img src="http://bencoffman.com/blog/content/binary/microsoft_.net_logo.png" width="120px" border="0" height="75px"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Cache.Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)&lt;br&gt;
&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/cc491414.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc491414.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
My new favorite method in .Net cache'ing. Before I explain why I love it I'm going
to show you how it works in a very easy way, because that's all you really care about
anyways....I know this because I'm the exact same way annnnnnd Google Analytics tells
me so by your actions visitors.&lt;br&gt;
&lt;br&gt;
The place I like to put this method is in my constructor on my data layer, this way
it's called with frequency.&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;static&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; DataLayer&lt;br&gt;
{&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;static&lt;/span&gt; DataLayer()&lt;br&gt;
{&lt;br&gt;
HttpContext.Current.Cache.Insert(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"AnyStringYouLike"&lt;/span&gt;, 
&lt;br&gt;
&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"AnyStringYouLike"&lt;/span&gt;, 
&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;, 
&lt;br&gt;
DateTime.Now.AddMinutes(5), 
&lt;br&gt;
System.Web.Caching.Cache.NoSlidingExpiration, 
&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; CacheItemUpdateCallback(FunctionYouWantToCall));&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;static&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; FunctionYouWantToCall(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;string&lt;/span&gt; aKey, 
&lt;br&gt;
CacheItemUpdateReason aReason, &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;
&lt;br&gt;
out&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;object&lt;/span&gt; anObject, 
&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;out&lt;/span&gt; CacheDependency
dependency, 
&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;out&lt;/span&gt; DateTime
expiration, &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;
&lt;br&gt;
out&lt;/span&gt; TimeSpan aTimeSpan)&lt;br&gt;
{&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (DateTime.Now.Day
== 22)&lt;br&gt;
{&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (AFeedIMade.GenerateFeed())&lt;br&gt;
{&lt;br&gt;
ErrorHelper.LogError(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"AFeedIMade"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Success"&lt;/span&gt;);&lt;br&gt;
}&lt;br&gt;
&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;else&lt;/span&gt;
&lt;br&gt;
{&lt;br&gt;
ErrorHelper.LogError(&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"AFeedIMade"&lt;/span&gt;, &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"Failure"&lt;/span&gt;);&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
dependency &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;;&lt;br&gt;
expiration &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; DateTime.Now.AddMinutes(20);&lt;br&gt;
aTimeSpan &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Cache.NoSlidingExpiration;&lt;br&gt;
anObject &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"AnyStringYouLike"&lt;/span&gt;;&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;
&lt;br&gt;
&lt;/pre&gt;
&lt;br&gt;
What's happening here?&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
I insert into cache a delegate that runs a function I specify I would like to run
at a specific time. I do this by saying check the cache initially every five minutes,
but once it jumps into the function every 20.&lt;/li&gt;
&lt;li&gt;
Once it's in the function if the day is the 22nd of the month then I run the code
to generate my feed, if it's not then I simply set the cache to check it every 20
minutes.&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;
The first question you may ask your self is why don't you set the cache to check the
time every 22 days or so. The problem with that is what if you set it back 22 days
on the 21st day. Then you miss the day you want to check, the 22nd for that month,
and your feed (or whatever you are having the method do) gets delayed by at least
one month. Since every month is different in length, it's just not a smart decision.
For good measure I've found that having the cache checked every x minutes under 60
minutes is the best way to go. It's less likely for a specified time frame to be missed
in the function.&lt;br&gt;
&lt;br&gt;
Last note, if by chance you are calling the cache outside of the websites context
don't forget you can use:&lt;br&gt;
&lt;b&gt;HttpContext.Current&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Like so:&lt;br&gt;
HttpContext.Current.Cache.Insert(String, Object, CacheDependency, DateTime, TimeSpan,
CacheItemUpdateCallback)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://bencoffman.com/blog/aggbug.ashx?id=5df22283-729b-4dcd-8214-f7e547397512" /&gt;</description>
      <comments>http://bencoffman.com/blog/CommentView,guid,5df22283-729b-4dcd-8214-f7e547397512.aspx</comments>
      <category>.Net</category>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://bencoffman.com/blog/Trackback.aspx?guid=2e5d9ff5-7985-4f8b-9360-6d1ca69c89b2</trackback:ping>
      <pingback:server>http://bencoffman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://bencoffman.com/blog/PermaLink,guid,2e5d9ff5-7985-4f8b-9360-6d1ca69c89b2.aspx</pingback:target>
      <dc:creator>Ben Coffman</dc:creator>
      <wfw:comment>http://bencoffman.com/blog/CommentView,guid,2e5d9ff5-7985-4f8b-9360-6d1ca69c89b2.aspx</wfw:comment>
      <wfw:commentRss>http://bencoffman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2e5d9ff5-7985-4f8b-9360-6d1ca69c89b2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://bencoffman.com/blog/content/binary/asp_dotnet_mvc_logo.png" border="0" />
        <br />
        <br />
        <b>Problem:</b>
        <br />
The project file 'path ' cannot be opened.  The project type is not supported
by this installation.<br /><br /><b>Solution:</b><br />
The way I corrected this issue of not being able to open a ASP.NET MVC 1.0 project
goes like this. 
<br />
I was using VS 2008<p></p><ul><li>
Install SP1 for VS 2008</li><li>
Install MVC 2.0 framework</li><li>
I realized I had an MVC 1.0 project and I used this <a href="http://weblogs.asp.net/leftslipper/archive/2009/10/19/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2.aspx">tool</a> to
change the project to MVC 2.0.</li></ul><p>
The tool works great, props to Eilon Lipton never met the guy but I'm down with anyone
that will make my life easier.
</p><p><a href="http://weblogs.asp.net/leftslipper/archive/2009/10/19/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2.aspx" rel="nofollow">http://weblogs.asp.net/leftslipper/archive/2009/10/19/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2.aspx</a></p><p><b><br /></b></p><p><b>Other Possible Solutions</b>:<br />
Run this command from the command promp:<font size="3"><span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"><br /><br />
devenv /ResetSkipPkgs</span></font></p><p>
This will try to load any Visual Studio packages that failed previously at some point,
such as the WPF project flavor package, which would cause the error message you're
seeing. (<a href="http://stackoverflow.com/questions/738999/asp-net-mvc-rtm-project-type-is-not-supported/4412666#4412666">1</a>)<br /></p><br /><b>Explanation:<br /></b>Listen folks MVC is a fun style of programming, but unless you are using unit
tests, the most compelling reason to use MVC, MVC becomes more of a hindrance than
helpful. Now any biased advocate of ASP.NET MVC will most likely tell you different,
but I feel I am very unbiased. Don't wanna believe me, Kevin Pang gives a <a href="http://www.kevinwilliampang.com/2009/04/21/should-you-use-asp-net-mvc/">great
list</a> (<a href="http://www.kevinwilliampang.com/2009/04/21/should-you-use-asp-net-mvc/">http://www.kevinwilliampang.com/2009/04/21/should-you-use-asp-net-mvc/</a>)
of reasons on why or why not to use ASP.NET MVC.<br /><br />
The biggest lesson here, don't just use a technology because you think it's cool,
use it because you know it's the right fit for the problem. In this case if you are
creating an ASP.NET MVC application, make sure you create unit tests (the first thing
asp.net MVC asks you when you create a new project) otherwise you are just using a
technology because you wanna and nobody likes those people, especially after they
leave the project.<br /><br /><br /><p></p><img width="0" height="0" src="http://bencoffman.com/blog/aggbug.ashx?id=2e5d9ff5-7985-4f8b-9360-6d1ca69c89b2" /></body>
      <title>The project file 'path ' cannot be opened.  The project type is not supported by this installation.</title>
      <guid isPermaLink="false">http://bencoffman.com/blog/PermaLink,guid,2e5d9ff5-7985-4f8b-9360-6d1ca69c89b2.aspx</guid>
      <link>http://bencoffman.com/blog/2010/12/10/TheProjectFilePathCannotBeOpenedTheProjectTypeIsNotSupportedByThisInstallation.aspx</link>
      <pubDate>Fri, 10 Dec 2010 20:03:22 GMT</pubDate>
      <description>&lt;img src="http://bencoffman.com/blog/content/binary/asp_dotnet_mvc_logo.png" border="0"&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Problem:&lt;/b&gt;
&lt;br&gt;
The project file 'path ' cannot be opened.&amp;nbsp; The project type is not supported
by this installation.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Solution:&lt;/b&gt;
&lt;br&gt;
The way I corrected this issue of not being able to open a ASP.NET MVC 1.0 project
goes like this. 
&lt;br&gt;
I was using VS 2008&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Install SP1 for VS 2008&lt;/li&gt;
&lt;li&gt;
Install MVC 2.0 framework&lt;/li&gt;
&lt;li&gt;
I realized I had an MVC 1.0 project and I used this &lt;a href="http://weblogs.asp.net/leftslipper/archive/2009/10/19/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2.aspx"&gt;tool&lt;/a&gt; to
change the project to MVC 2.0.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The tool works great, props to Eilon Lipton never met the guy but I'm down with anyone
that will make my life easier.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://weblogs.asp.net/leftslipper/archive/2009/10/19/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2.aspx" rel="nofollow"&gt;http://weblogs.asp.net/leftslipper/archive/2009/10/19/migrating-asp-net-mvc-1-0-applications-to-asp-net-mvc-2.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;
&lt;br&gt;
&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Other Possible Solutions&lt;/b&gt;:&lt;br&gt;
Run this command from the command promp:&lt;font size="3"&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;
&lt;br&gt;
&lt;br&gt;
devenv /ResetSkipPkgs&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
This will try to load any Visual Studio packages that failed previously at some point,
such as the WPF project flavor package, which would cause the error message you're
seeing. (&lt;a href="http://stackoverflow.com/questions/738999/asp-net-mvc-rtm-project-type-is-not-supported/4412666#4412666"&gt;1&lt;/a&gt;)&lt;br&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;b&gt;Explanation:&lt;br&gt;
&lt;/b&gt;Listen folks MVC is a fun style of programming, but unless you are using unit
tests, the most compelling reason to use MVC, MVC becomes more of a hindrance than
helpful. Now any biased advocate of ASP.NET MVC will most likely tell you different,
but I feel I am very unbiased. Don't wanna believe me, Kevin Pang gives a &lt;a href="http://www.kevinwilliampang.com/2009/04/21/should-you-use-asp-net-mvc/"&gt;great
list&lt;/a&gt; (&lt;a href="http://www.kevinwilliampang.com/2009/04/21/should-you-use-asp-net-mvc/"&gt;http://www.kevinwilliampang.com/2009/04/21/should-you-use-asp-net-mvc/&lt;/a&gt;)
of reasons on why or why not to use ASP.NET MVC.&lt;br&gt;
&lt;br&gt;
The biggest lesson here, don't just use a technology because you think it's cool,
use it because you know it's the right fit for the problem. In this case if you are
creating an ASP.NET MVC application, make sure you create unit tests (the first thing
asp.net MVC asks you when you create a new project) otherwise you are just using a
technology because you wanna and nobody likes those people, especially after they
leave the project.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bencoffman.com/blog/aggbug.ashx?id=2e5d9ff5-7985-4f8b-9360-6d1ca69c89b2" /&gt;</description>
      <comments>http://bencoffman.com/blog/CommentView,guid,2e5d9ff5-7985-4f8b-9360-6d1ca69c89b2.aspx</comments>
      <category>.Net</category>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
    </item>
  </channel>
</rss>