<?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/"
	>

<channel>
	<title>ASP.NET Hosting News (SuperBlogAds Network)</title>
	<atom:link href="http://www.aspnethostingnews.com/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.aspnethostingnews.com</link>
	<description>News about ASP.NET 4.0 Hosting, ASP.NET 3.5 Hosting, ASP.NET 2 Hosting and ASP.NET Hosting</description>
	<lastBuildDate>Mon, 20 Feb 2012 07:05:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ASP.NET MVC 4 Hosting :: Display Mode in ASP.NET MVC 4</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1141</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1141#comments</comments>
		<pubDate>Mon, 20 Feb 2012 07:04:44 +0000</pubDate>
		<dc:creator>Stephen Jackson</dc:creator>
				<category><![CDATA[ASP.NET MVC 4 Hosting]]></category>
		<category><![CDATA[ASP.NET MVC Hosting]]></category>
		<category><![CDATA[cheap asp.net mvc 4 hosting]]></category>
		<category><![CDATA[cheap asp.net mvc hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>
		<category><![CDATA[mvc 4 hosting]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1141</guid>
		<description><![CDATA[<p>MVC 4 introduces a new Display Mode feature which enables us to create different version of view and it will select appropriate view version based on requesting browser. For e.g. if desktop browser is requesting home page then it can render Views\Home\Homepage.cshtml and if the mobile or tablet browser request home page then it can render <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1141">ASP.NET MVC 4 Hosting :: Display Mode in ASP.NET MVC 4</a></span>]]></description>
			<content:encoded><![CDATA[<p>MVC 4 introduces a new Display Mode feature which enables us to create different version of view and it will select appropriate view version based on requesting browser. For e.g. if desktop browser is requesting home page then it can render <strong>Views\Home\Homepage.cshtml</strong> and if the mobile or tablet browser request home page then it can render <strong>Views\Home\Homepage.Mobile.cshtml</strong> without changing URL of the application.</p>
<p>We can also have different version for layout and partial view. So whenever desktop browser will make request at that time it will use <strong>Views\Shared\_Layout.cshtml</strong> and if mobile or tablet browser is making request at that time it will use <strong>Views\Shared\_Layout.Mobile.cshtml</strong></p>
<div><a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1065" title="European Windows Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2011/12/ads_300x180.jpg" alt="" width="400" height="230" /></a></div>
<p>In addition to layout view, same strategy also applies for partial vie. For e.g. @Html.Partial(“Login”) will render login.cshtml if requesting browser is desktop otherwise it will render login.Mobile.cshtml if request is made by mobile browser.</p>
<p><strong>How Display Mode works</strong></p>
<p>To get started with different view version, you need to register each view version name in <strong>Application_Start</strong> event of the <strong>global.asax.cs</strong>. So later on application can select appropriate view version when browser request satisfies certain conditions.</p>
<p>We can register a new display mode or view version with the <strong>DefaultDisplayMode</strong> class and we need to assign Display Mode name and condition when to apply this Display Mode. For e.g. following code snippet register a display mode “<strong>Mobile</strong>” which will used whenever any mobile browser make a request.</p>
<pre>01 protected void Application_Start()
02 {
03         System.Func&lt;HttpContextBase, bool&gt; contextCheckDelegate = contextCheck;
04         DefaultDisplayMode mobileMode = new DefaultDisplayMode("Mobile");
05         mobileMode.ContextCondition = contextCheckDelegate;
06         DisplayModes.Modes.Add(mobileMode); 
07 }
08  
09 public bool contextCheck(HttpContextBase objHttpContextBase)
10 {
11     If(IsMobileBrowser)
12         Return true;
13     Else
14         Return false;
15 }</pre>
<p>In above code, we have seen that <strong>ContextCondition</strong> properties of <strong>DefaultDisplayMode</strong> accept a delegate so we can register a more than one Display Mode with the application.</p>
<p>Now have a quick look at sample application for Display Mode.</p>
<p><strong>Sample application with MVC 4 which target desktop as well mobile device</p>
<p></strong>1. Create a new MVC 4 application.<br />
2. Now in the Views\Home folder and Views\Shared add new views (You can even add existing views which we created with Mobile Project Template and then rename it as shown in the following picture. So you do not need bother about layout and designing for Mobile views) as displayed in following picture.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_11.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_11.png" alt="" title="image_1" width="269" height="312" class="aligncenter size-full wp-image-1143" /></a> </p>
<p>3. Now add following code in the <strong>Application_Start</strong> event of the <strong>global.asax.cs</strong> (You can download full Regular expression to detect mobile browser from the <a href="http://detectmobilebrowsers.com/" target="_blank">http://detectmobilebrowsers.com/</a>).<br />
 </p>
<pre>01 protected void Application_Start()
02 {
03         System.Func&lt;HttpContextBase, bool&gt; contextCheckDelegate = contextCheck;
04         DefaultDisplayMode mobileMode = new DefaultDisplayMode("Mobile");
05         mobileMode.ContextCondition = contextCheckDelegate;
06         DisplayModes.Modes.Add(mobileMode);
07 }
08  
09 public bool contextCheck(HttpContextBase objHttpContextBase)
10 {
11         string strUserAgent = objHttpContextBase.Request.UserAgent;
12         Regex strBrowser = new Regex(@"android.+mobile|blackberry|ip(hone|od)", RegexOptions.IgnoreCase | RegexOptions.Multiline);
13         if ((strBrowser.IsMatch(strUserAgent)))
14         {
15             return true;
16         }
17         return false;
18 }</pre>
<p>4. Build the project and views it in browser by pressing <strong>Ctrl + F5</strong></p>
<p>5. Now open same URL with any mobile emulator or you can even use Mozilla with <a href="https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/" target="_blank">Mozilla User Agent Switcher Add-ons</a>. I am using User Agent Switcher. Switch user agent to iPhone and now press F5. You will see the mobile index.mobile.cshtml view rendered.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_21.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_21.png" alt="" title="image_2" width="320" height="310" class="aligncenter size-full wp-image-1144" /></a></p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_31.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_31.png" alt="" title="image_3" width="286" height="320" class="aligncenter size-full wp-image-1145" /></a></p>
<p>In above scenario, note the address bar of the browser in both case, you will notice that address bar remains same even if it render different view based on requesting browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1141/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC 3 Hosting :: Extensionless URLs do not find .cshtml/.vbhtml files on IIS 7 or IIS 7.5</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1138</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1138#comments</comments>
		<pubDate>Thu, 16 Feb 2012 05:17:14 +0000</pubDate>
		<dc:creator>Wayne Plotche</dc:creator>
				<category><![CDATA[ASP.NET MVC 3 Hosting]]></category>
		<category><![CDATA[asp.net mvc 3 hosting]]></category>
		<category><![CDATA[ASP.NET MVC Hosting]]></category>
		<category><![CDATA[cheap asp.net mvc 3 hosting]]></category>
		<category><![CDATA[cheap asp.net mvc hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>
		<category><![CDATA[mvc 3.0 hosting]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1138</guid>
		<description><![CDATA[<p>On IIS 7 or IIS 7.5, requests with a URL like the following are not able to find pages that have the .cshtml or .vbhtml extension:</p>

<p>http://www.example.com/ExampleSite/ExampleFile</p>
<p>The issue arises because URL rewriting is not enabled by default for IIS 7 or IIS 7.5. The likeliest scenario is that you do not see the problem when testing locally <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1138">ASP.NET MVC 3 Hosting :: Extensionless URLs do not find .cshtml/.vbhtml files on IIS 7 or IIS 7.5</a></span>]]></description>
			<content:encoded><![CDATA[<p>On IIS 7 or IIS 7.5, requests with a URL like the following are not able to find pages that have the .cshtml or .vbhtml extension:</p>
<div><a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1065" title="European Windows Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2011/12/ads_300x180.jpg" alt="" width="400" height="230" /></a></div>
<p>http://www.example.com/ExampleSite/ExampleFile</p>
<p>The issue arises because URL rewriting is not enabled by default for IIS 7 or IIS 7.5. The likeliest scenario is that you do not see the problem when testing locally using IIS Express, but you experience it when you deploy your website to a hosting website.</p>
<p><strong>Workaround</strong></p>
<ul>
<li>If you have control over the server computer, on the server computer install the update that is described in <a href="http://support.microsoft.com/kb/980368">A update is available that enables certain IIS 7.0 or IIS 7.5 handlers to handle requests whose URLs do not end with a period</a>.</li>
<li>If you do not have control over the server computer (for example, you are deploying to a hosting website), add the following to the website&#8217;s Web.config file:</li>
</ul>
<p><code>&lt;system.webServer&gt;<br />
 &lt;modules runAllManagedModulesForAllRequests="true"/&gt;<br />
&lt;/system.webServer&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1138/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET Hosting :: How to Send Email in ASP.NET with GMail SMTP Server</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1136</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1136#comments</comments>
		<pubDate>Fri, 10 Feb 2012 03:30:12 +0000</pubDate>
		<dc:creator>Wayne Plotche</dc:creator>
				<category><![CDATA[ASP.NET 2 Hosting]]></category>
		<category><![CDATA[ASP.NET 3.5 Hosting]]></category>
		<category><![CDATA[ASP.NET 4.0 Hosting]]></category>
		<category><![CDATA[.net 4 hosting]]></category>
		<category><![CDATA[.net hosting]]></category>
		<category><![CDATA[asp.net 3.5 hosting]]></category>
		<category><![CDATA[asp.net 4]]></category>
		<category><![CDATA[asp.net 4 hosting]]></category>
		<category><![CDATA[cheap .net 4 hosting]]></category>
		<category><![CDATA[cheap asp.net 4 hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1136</guid>
		<description><![CDATA[<p>Sending email via SMTP in ASP.NET is a really painless experience.  However, there are a couple of hoops to jump through if you want to use Google’s GMail SMTP servers.  The following example shows a really simple function to get the job done.</p>

<p>The Google support page for configuring a mail client gives us a good starting <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1136">ASP.NET Hosting :: How to Send Email in ASP.NET with GMail SMTP Server</a></span>]]></description>
			<content:encoded><![CDATA[<p>Sending email via SMTP in ASP.NET is a really painless experience.  However, there are a couple of hoops to jump through if you want to use Google’s GMail SMTP servers.  The following example shows a really simple function to get the job done.</p>
<div><a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1065" title="European Windows Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2011/12/ads_300x180.jpg" alt="" width="400" height="230" /></a></div>
<p>The <a href="http://mail.google.com/support/bin/answer.py?hl=en&amp;answer=13287" target="_blank">Google support page</a> for configuring a mail client gives us a good starting point.  We can see that we need to use the host smtp.gmail.com on port 587.  We can also see that we must transmit over a secure connection and that we need to use our GMail username and password to authenticate with the server.</p>
<p><code>using</code> <code>System.Net.Mail;</p>
<p>public</code> <code>class</code> <code>GMailSMTP<br />
{<br />
    public</code> <code>void</code> <code>Send(string</code> <code>to, string</code> <code>subject, string</code> <code>message, bool</code> <code>isHtml)<br />
    {<br />
            // Create a new message<br />
            var mail = new</code> <code>MailMessage();</p>
<p>            // Set the to and from addresses.<br />
            // The from address must be your GMail account<br />
            mail.From = new</code> <code>MailAddress("example@gmail.com");<br />
            mail.To.Add(new</code> <code>MailAddress(to));</p>
<p>            // Define the message<br />
            mail.Subject = subject;<br />
            mail.IsBodyHtml = isHtml;<br />
            mail.Body = message;</p>
<p>            // Create a new Smpt Client using Google's servers<br />
            var mailclient = new</code> <code>SmtpClient();<br />
            mailclient.Host = "smtp.gmail.com";<br />
            mailclient.Port = 587;</p>
<p>            // This is the critical part, you must enable SSL<br />
            mailclient.EnableSsl = true;</p>
<p>            // Specify your authentication details<br />
            mailclient.Credentials = new</code> <code>System.Net.NetworkCredential(<br />
                                             "YOUR GMAIL USERNAME",<br />
                                             "YOUR GMAIL PASSWORD");<br />
            mailclient.Send(mail);<br />
    }<br />
}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1136/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET 4 Hosting :: Monitor ASP.NET Performance Using Perfmon Tool</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1129</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1129#comments</comments>
		<pubDate>Wed, 08 Feb 2012 03:29:01 +0000</pubDate>
		<dc:creator>Wayne Plotche</dc:creator>
				<category><![CDATA[ASP.NET 4.0 Hosting]]></category>
		<category><![CDATA[.net 4 hosting]]></category>
		<category><![CDATA[.net 4.0 hosting]]></category>
		<category><![CDATA[.net hosting]]></category>
		<category><![CDATA[asp.net 4 hosting]]></category>
		<category><![CDATA[asp.net 4.0 hosting]]></category>
		<category><![CDATA[cheap asp.net 4 hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1129</guid>
		<description><![CDATA[<p>For Any ASP.NET application, monitoring performance is an important job. Performance Monitor tool having some nice features that helps us to monitor ASP.NET Application performance in a better way.In this Tips I  discuss four important counter sets that are very useful in monitoring ASP.NET performance.</p>

<p>These are highlighted below</p>
<p>
Steps:</p>
<p>1. Open the Perfmon [ Start &#62; Run &#62; <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1129">ASP.NET 4 Hosting :: Monitor ASP.NET Performance Using Perfmon Tool</a></span>]]></description>
			<content:encoded><![CDATA[<p>For Any ASP.NET application, monitoring performance is an important job. Performance Monitor tool having some nice features that helps us to monitor ASP.NET Application performance in a better way.In this Tips I  discuss four important counter sets that are very useful in monitoring ASP.NET performance.</p>
<div><a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1065" title="European Windows Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2011/12/ads_300x180.jpg" alt="" width="400" height="230" /></a></div>
<p>These are highlighted below</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_1.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_1.png" alt="" title="image_1" width="462" height="354" class="aligncenter size-full wp-image-1130" /></a><br />
<strong>Steps:</strong></p>
<p>1. Open the <code>Perfmon</code> [ Start &gt; Run &gt; Perfmon ].</p>
<p>2. Add the Counters. Specify local or remote computer.</p>
<p>3. The four types of sets are</p>
<ul>
<li><code>W3SVC_W3WP:</code> Exposes HTTP request processing related counters for the worker process as displayed below</li>
</ul>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_2.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_2.png" alt="" title="image_2" width="308" height="240" class="aligncenter size-full wp-image-1131" /></a>
<ul>
<li><code>WAS_W3WP:</code>  Exposes Windows Process Activation Service (WAS) related counters for the worker process as displayed below</li>
</ul>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_3.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_3.png" alt="" title="image_3" width="316" height="241" class="aligncenter size-full wp-image-1132" /></a>
<ul>
<li><code>Web Service:</code> Includes counters specific to the World Wide Web Publishing Service as displayed below</li>
</ul>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_4.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_4.png" alt="" title="image_4" width="322" height="227" class="aligncenter size-full wp-image-1133" /></a>
<ul>
<li><code>Web Service Cache:</code> Includes cache counters specific to the World Wide Web Publishing Service as displayed below</li>
</ul>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_5.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_5.png" alt="" title="image_5" width="322" height="236" class="aligncenter size-full wp-image-1134" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1129/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cheap Europe Web Hosting Provider</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1123</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1123#comments</comments>
		<pubDate>Fri, 03 Feb 2012 04:07:12 +0000</pubDate>
		<dc:creator>C Miller</dc:creator>
				<category><![CDATA[.NET 4.5 Hosting]]></category>
		<category><![CDATA[ASP.NET 2 Hosting]]></category>
		<category><![CDATA[ASP.NET 3.5 Hosting]]></category>
		<category><![CDATA[ASP.NET 4.0 Hosting]]></category>
		<category><![CDATA[ASP.NET 4.5 Hosting]]></category>
		<category><![CDATA[ASP.NET Hosting]]></category>
		<category><![CDATA[ASP.NET MVC 3 Hosting]]></category>
		<category><![CDATA[ASP.NET MVC 4 Hosting]]></category>
		<category><![CDATA[ASP.NET MVC Hosting]]></category>
		<category><![CDATA[LightSwitch Hosting]]></category>
		<category><![CDATA[Other Related Posts]]></category>
		<category><![CDATA[VS 2010 LightSwitch Hosting]]></category>
		<category><![CDATA[Visual Studio 2010 Hosting]]></category>
		<category><![CDATA[Webmatrix Hosting]]></category>
		<category><![CDATA[asp.net european hosting]]></category>
		<category><![CDATA[cheap europe hosting]]></category>
		<category><![CDATA[european hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>
		<category><![CDATA[windows european hosting]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1123</guid>
		<description><![CDATA[<p>What is it?</p>
<p>Web host providers in Europe can offer all the amenities that any host in an industrialized country can offer. Web site customers can find budget, dedicated, shared, reseller, and shared hosting. Applications include all the latest languages, frameworks, and capabilities that a consumer could find at a Web host in the U.S. Domain name <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1123">Cheap Europe Web Hosting Provider</a></span>]]></description>
			<content:encoded><![CDATA[<p><strong>What is it?</strong></p>
<p><a href="http://www.hostforlife.eu/">Web host providers</a> in Europe can offer all the amenities that any host in an industrialized country can offer. Web site customers can find budget, dedicated, shared, reseller, and shared hosting. Applications include all the latest languages, frameworks, and capabilities that a consumer could find at a Web host in the U.S. Domain name registration also is conducted throughout Europe. Top level domains are used for different countries (such as ‘.de’ for Germany), but consumers can find an purchase a registration for any top level domain through domain registrars or hosting companies throughout Europe.</p>
<p><strong>What Are the Issues?</strong></p>
<p>European Web hosts vary from country to country for services and for pricing. Depending upon the country and whether they take the country currency or Euros, the prices can vary widely. Currently, there seems little point in comparing Web hosting in Euros to the price of Web hosting in American dollars, due to the dollar value. However, a test of prices on Web hosting from various countries to American sites shows that the cost of hosting in the U.S. remains less expensive for the services offered.</p>
<p>Domain name registration can vary from country to country as well. Many registrars will offer all domain names, and others offer European top level domains only. Annual registration for domain names remains more expensive in Europe than it does in the U.S., and some domain names require a special set up fee depending upon the hosting service.</p>
<p><strong>Where to go for European Web Hosting?</strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="433" valign="top"><a href="http://www.hostforlife.eu/">HostForLife.eu</a> is awarded a <strong>SPOTLIGHT</strong> status on Microsoft ASP.NET website (<a href="http://www.microsoft.com/web/hosting/home">http://www.microsoft.com/web/hosting/home</a>) for offering the best, most affordable and features-rich ASP.NET Hosting in European Continent. Our service is ranked the highest top #1 spot in several European countries, such as: Germany, Italy, Netherlands, France, Belgium, United Kingdom, Sweden, Finland, Switzerland and many top European countries.</td>
<td width="205" valign="top"> <a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1125" title="awards_spotlight" src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/awards_spotlight.gif" alt="" width="180" height="197" /></a></td>
</tr>
</tbody>
</table>
<p>We are selected by Microsoft website due to the fact that we have passed several verification and validation process. A &#8220;Spotlight&#8221; status indicates offers that utilize the latest Microsoft technology, deliver 99.9% uptime, and provide 24/7 support. All offers must pre-install and pre-configure SQL Server 2008, ASP.NET 4.0, MVC 2.0, URL Rewrite, IIS Remote Management, and Web Deploy. We have also successfully completed a Web Matrix publishing test.</p>
<p>The following are the features of our STARTER PLAN with SPOTLIGHT status:</p>
<p>- Unlimited Disk Space<br />
- Unlimited Domains<br />
- Unlimited Bandwidth<br />
- Support ASP.NET 4.0, ASP.NET MVC 3.0, URL Rewrite, Silverlight 4<br />
- Support SQL Server 2008 R2 and mySQL database<br />
- Support WebDeploy and Remote IIS Manager Access<br />
- Price: from €3.00/month<br />
- To register, please proceed directly to <a href="https://secure.hostforlife.eu/">https://secure.hostforlife.eu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1123/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Press Release &#8211; Premier European HostForLIFE.eu Launches Silverlight 5 Hosting</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1122</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1122#comments</comments>
		<pubDate>Fri, 03 Feb 2012 04:01:19 +0000</pubDate>
		<dc:creator>Stephen Jackson</dc:creator>
				<category><![CDATA[Other Related Posts]]></category>
		<category><![CDATA[amsterdam silverlight 5 hosting]]></category>
		<category><![CDATA[cheap silverlight 5 europe hosting]]></category>
		<category><![CDATA[cheap silverlight 5 hosting]]></category>
		<category><![CDATA[europe silverlight 5 hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>
		<category><![CDATA[Silverlight 5 Hosting]]></category>
		<category><![CDATA[Silverlight Hosting]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1122</guid>
		<description><![CDATA[<p>HostForLIFE.eu was established to cater to an under served market in the hosting industry; web hosting for customers who want excellent service. HostForLIFE.eu – a cheap, constant uptime, excellent customer service, quality, and also reliable hosting provider in advanced Windows and ASP.NET technology. We proudly announces the availability of the Silverlight 5 hosting in our entire <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1122">Press Release &#8211; Premier European HostForLIFE.eu Launches Silverlight 5 Hosting</a></span>]]></description>
			<content:encoded><![CDATA[<p>HostForLIFE.eu was established to cater to an under served market in the hosting industry; web hosting for customers who want excellent service. HostForLIFE.eu – a cheap, constant uptime, excellent customer service, quality, and also reliable hosting provider in advanced Windows and ASP.NET technology. We proudly announces the availability of the Silverlight 5 hosting in our entire servers environment.</p>
<div><a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1065" title="European Windows Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2011/12/ads_300x180.jpg" alt="" width="400" height="230" /></a></div>
<p>You can start hosting your ASP.NET MVC 3 site on our environment from as just low €3.00/month only. For more information about our new product, please visit our site at <a href="http://www.hostforlife.eu/Silverlight-5-European-Hosting.aspx">http://www.hostforlife.eu/Silverlight-5-European-Hosting.aspx</a>.</p>
<p>“Today, we are really happy to announce the release of Silverlight 5 on our hosting environment. Silverlight 5 is part of a rich offering of technologies from Microsoft helping developers deliver applications for the web, desktop, and mobile devices. I personally would like to thank the people who have assisted in completing this project.” Said CEO of HostForLIFE.eu, Anthony Johnson.</p>
<p>“Silverlight 5 delivers great features that allow hardware H.264 decoding, adapting it better for video content. It also sports an improved graphics stack with 3D support, using the  XNA API.  This makes Silverlight 5 a more mature and capable platform for developing rich internet application.” Said John Curtis, VP Marketing and Business Development at HostForLIFE.eu. “We believe that our Silverlight 5 provide great opportunity to web developers.”</p>
<p>Silverlight 5 also includes the following developer related enhancements:</p>
<p>- XAML Debugging with breakpoints for binding debugging<br />
- Implicit data templates for easy UI reuse<br />
- Double (and multi) click support<br />
- GPU-accelerated XNA-compatible 3D and immediate-mode 2D API<br />
- Low-latency sound effects and WAV support<br />
- Real operating system windows and multi-display support<br />
- Significant performance improvements, fixes and much more</p>
<p>For complete information about this new product, please visit our official site at <a href="http://www.hostforlife.eu/">http://www.hostforlife.eu</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1122/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio LightSwitch Hosting :: Format Data on a Screen in a LightSwitch Application</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1106</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1106#comments</comments>
		<pubDate>Thu, 02 Feb 2012 02:28:04 +0000</pubDate>
		<dc:creator>Stephen Jackson</dc:creator>
				<category><![CDATA[VS 2010 LightSwitch Hosting]]></category>
		<category><![CDATA[Visual Studio 2010 Hosting]]></category>
		<category><![CDATA[cheap visual studio lightswitch hosting]]></category>
		<category><![CDATA[cheap vs lightswitch hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>
		<category><![CDATA[lightswitch hosting]]></category>
		<category><![CDATA[visual studio lightswitch hosting]]></category>
		<category><![CDATA[vs 2010 lightswitch hosting]]></category>
		<category><![CDATA[vs lightswitch hosting]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1106</guid>
		<description><![CDATA[
<p>This is the steps you need to follow:</p>
<p>1. First of all we created a table in LightSwitch application.</p>
<p>
2. Run the application.</p>
<p>
3. Double click one customer and write an email without domain (which shows an error.) likes below image.</p>
<p>
4. Change the  length of state (no error)-&#62;cut-&#62;ok.</p>
<p>
5. Come back to the customer page like below image.</p>
<p>
6. Now go <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1106">Visual Studio LightSwitch Hosting :: Format Data on a Screen in a LightSwitch Application</a></span>]]></description>
			<content:encoded><![CDATA[<div><a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1065" title="European Windows Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2011/12/ads_300x180.jpg" alt="" width="400" height="230" /></a></div>
<p>This is the steps you need to follow:</p>
<p>1. First of all we created a table in LightSwitch application.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_1.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_1.gif" alt="" title="image_1" width="450" height="281" class="aligncenter size-full wp-image-1107" /></a><br />
2. Run the application.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_2.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_2.gif" alt="" title="image_2" width="450" height="281" class="aligncenter size-full wp-image-1108" /></a><br />
3. Double click one customer and write an email without domain (which shows an error.) likes below image.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_3.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_3.gif" alt="" title="image_3" width="450" height="281" class="aligncenter size-full wp-image-1109" /></a><br />
4. Change the  length of state (no error)-&gt;cut-&gt;ok.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_4.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_4.gif" alt="" title="image_4" width="450" height="281" class="aligncenter size-full wp-image-1110" /></a><br />
5. Come back to the customer page like below image.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_5.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_5.gif" alt="" title="image_5" width="450" height="281" class="aligncenter size-full wp-image-1111" /></a><br />
6. Now go to phone properties-&gt;change maximum length(255 replace by 25)-&gt; then go to email properties set default domain (gmail.com) -&gt;then go to postal code properties change maximum length(255 replace by 10)-&gt; then go to state properties change maximum length(255 replace by 2) and click custom validation (.cs page will be open) then write coding.</p>
<p><code>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using Microsoft.LightSwitch;<br />
namespace LightSwitchApplication<br />
{<br />
    public partial class Customer<br />
    {<br />
        partial void State_Validate(EntityValidationResultsBuilder results)<br />
        {<br />
            // results.AddPropertyError("&lt;Error-Message&gt;");<br />
            if (!string.IsNullOrEmpty(this.State))<br />
            {<br />
                this.State = this.State.ToUpper();<br />
            }<br />
        }<br />
    }<br />
}</code></p>
<p><strong>Code Description:</strong> This code converts the lowercase letter in to uppercase letter of state name.</p>
<p>7. Add a new property gender-&gt;then go to properties of gender -&gt;then click choice list and add value and display name -&gt;ok  likes below image.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_6.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_6.gif" alt="" title="image_6" width="450" height="281" class="aligncenter size-full wp-image-1112" /></a><br />
8. Go to computed property-&gt;add name (Full Name)-&gt;properties-&gt;click edit method then write code.</p>
<p><code>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using Microsoft.LightSwitch;<br />
namespace LightSwitchApplication<br />
{<br />
    public partial class Customer<br />
    {<br />
            partial void FullName_Compute(ref string result)<br />
        {<br />
            // Set result to the desired field value<br />
            result = this.LastName + " " + this.FirstName;<br />
        }<br />
    }<br />
}</code></p>
<p><strong>Code Description: </strong>This code print the full name of customer. </p>
<p>9. Save-&gt;go to customer property-&gt;choose summary property-&gt;full name looks likes below image.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_7.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_7.gif" alt="" title="image_7" width="450" height="281" class="aligncenter size-full wp-image-1113" /></a></p>
<p>10. Run the  application-&gt;open the first customer -&gt;shows full name likes blow image</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_8.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_8.gif" alt="" title="image_8" width="450" height="281" class="aligncenter size-full wp-image-1114" /></a><br />
11. Click design screen and add Full Name like the below image.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_9.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_9.gif" alt="" title="image_9" width="450" height="281" class="aligncenter size-full wp-image-1115" /></a><br />
12. Go to Last Name properties-&gt;uncheck show as a link-&gt;Go to Full Name properties-&gt;check show as a link-&gt;save-&gt;open any customer-&gt;change status (maximum length will be 2) and postal code (maximum length will be 10)-&gt;design screen-&gt;yes (likes below image).</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_10.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_10.gif" alt="" title="image_10" width="450" height="281" class="aligncenter size-full wp-image-1116" /></a><br />
13. Add gender in the customer-&gt;save likes below image.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_11.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_11.gif" alt="" title="image_11" width="450" height="281" class="aligncenter size-full wp-image-1117" /></a><br />
14. Now we can choose Male or Female from gender likes below image.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_12.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_12.gif" alt="" title="image_12" width="450" height="281" class="aligncenter size-full wp-image-1118" /></a><br />
15. Save. Now we can write an email without domain name then there will be no error.</p>
<p>If we write state name which length is more than 2, then there will be an error like in the below image.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_13.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_13.gif" alt="" title="image_13" width="450" height="281" class="aligncenter size-full wp-image-1119" /></a><br />
If we write postal code which length is more  than 10, then there will be an error like below</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_14.gif"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/02/image_14.gif" alt="" title="image_14" width="450" height="281" class="aligncenter size-full wp-image-1120" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1106/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET Hosting :: Working with ASP.NET Cookies</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1101</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1101#comments</comments>
		<pubDate>Tue, 31 Jan 2012 06:57:24 +0000</pubDate>
		<dc:creator>C Miller</dc:creator>
				<category><![CDATA[ASP.NET 2 Hosting]]></category>
		<category><![CDATA[ASP.NET 3.5 Hosting]]></category>
		<category><![CDATA[ASP.NET 4.0 Hosting]]></category>
		<category><![CDATA[ASP.NET 4.5 Hosting]]></category>
		<category><![CDATA[ASP.NET Hosting]]></category>
		<category><![CDATA[ASP.NET MVC 3 Hosting]]></category>
		<category><![CDATA[ASP.NET MVC 4 Hosting]]></category>
		<category><![CDATA[ASP.NET MVC Hosting]]></category>
		<category><![CDATA[.net 4.0 hosting]]></category>
		<category><![CDATA[asp.net 4 hosting]]></category>
		<category><![CDATA[asp.net cookie]]></category>
		<category><![CDATA[asp.net hosting]]></category>
		<category><![CDATA[ASPHostCentral]]></category>
		<category><![CDATA[ASPHostCentral.com]]></category>
		<category><![CDATA[cookie]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1101</guid>
		<description><![CDATA[<p>Introduction</p>
<p>Cookies are also known by many names, HTTP Cookie, Web Cookie, Browser Cookie, Session Cookie, etc. Cookies are one of several ways to store data about web site visitors during the time when web server and browser are not connected. Common use of cookies is to remember users between visits. Practically, cookie is a small text <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1101">ASP.NET Hosting :: Working with ASP.NET Cookies</a></span>]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>Cookies are also known by many names, HTTP Cookie, Web Cookie, Browser Cookie, Session Cookie, etc. Cookies are one of several ways to store data about web site visitors during the time when web server and browser are not connected. Common use of cookies is to remember users between visits. Practically, cookie is a small text file sent by web server and saved by web browser on client machine.</p>
<p><a href="http://www.asphostcentral.com/ASPNET-MVC-4-Hosting.aspx"><img class="aligncenter size-full wp-image-1102" title="ASP.NET MVC 4 Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/adsone_mvc_4.gif" alt="" width="450" height="270" /></a><br />
<strong>Use of Cookies?</strong></p>
<p>Cookies may be used for authentication, identification of a user session, user&#8217;s preferences, shopping cart contents, or anything else that can be accomplished through storing text data. Cookies can also be used for travelling of data from one page to another.</p>
<p><strong>Is Cookies Secured?</strong></p>
<p>Well, this question has no specific answers in YES or NO. Cookies could be stolen by hackers to gain access to a victim&#8217;s web account. Even cookies are not software and they cannot be programmed like normal executable applications. Cookies cannot carry viruses and cannot install malware on the host computer. However, they can be used by spyware to track user&#8217;s browsing activities.</p>
<p><strong>Using Cookies</strong></p>
<p><strong><em>Creating/Writing Cookies</em></strong></p>
<p>There are many ways to create cookies, I am going to outline some of them below:</p>
<p><em>Way 1 (by using HttpCookies class)</em><br />
//First Way<br />
HttpCookie StudentCookies = new HttpCookie(&#8220;StudentCookies&#8221;);<br />
StudentCookies.Value = TextBox1.Text;<br />
StudentCookies.Expires = DateTime.Now.AddHours(1);<br />
Response.Cookies.Add(StudentCookies);</p>
<p><em>Way 2 (by using Response directly)</em><br />
//Second Way<br />
Response.Cookies["StudentCookies"].Value = TextBox1.Text;<br />
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);</p>
<p><em>Way 3 (multiple values in same cookie)<br />
</em>//Writing Multiple values in single cookie<br />
Response.Cookies["StudentCookies"]["RollNumber"] = TextBox1.Text;<br />
Response.Cookies["StudentCookies"]["FirstName"] = &#8220;Abhimanyu&#8221;;<br />
Response.Cookies["StudentCookies"]["MiddleName"] = &#8220;Kumar&#8221;;<br />
Response.Cookies["StudentCookies"]["LastName"] = &#8220;Vatsa&#8221;;<br />
Response.Cookies["StudentCookies"]["TotalMarks"] = &#8220;499&#8243;;<br />
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);</p>
<p><strong><em>Reading/Getting Cookies</em></strong></p>
<p>In the above code, I have used many ways to write or create cookies so I need to write here using all the above ways separately.</p>
<p><em>For Way 1</em><br />
string roll = Request.Cookies["StudentCookies"].Value; //For First Way</p>
<p><em>For Way 2</em><br />
string roll = Request.Cookies["StudentCookies"].Value;  //For Second Way</p>
<p><em>For Way 3</em><br />
//For Multiple values in single cookie<br />
string roll;<br />
roll = Request.Cookies["StudentCookies"]["RollNumber"];<br />
roll = roll + &#8221; &#8221; + Request.Cookies["StudentCookies"]["FirstName"];<br />
roll = roll + &#8221; &#8221; + Request.Cookies["StudentCookies"]["MiddleName"];<br />
roll = roll + &#8221; &#8221; + Request.Cookies["StudentCookies"]["LastName"];<br />
roll = roll + &#8221; &#8221; + Request.Cookies["StudentCookies"]["TotalMarks"];<br />
Label1.Text = roll;</p>
<p><strong><em>Deleting Cookies</em></strong></p>
<p>In the above code, I have used many ways to create or read cookies. Now look at the code given below which will delete cookies.</p>
<p>if (Request.Cookies["StudentCookies"] != null)<br />
{<br />
    Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(-1);    Response.Redirect(&#8220;Result.aspx&#8221;);  //to refresh the page<br />
}</p>
<p><strong>Understanding HttpCookie Class It contains a collection of all cookie values.</strong></p>
<p>We do not need to use any extra namespaces for HttpCookies class (we already have used this in Way 1 above), because this class is derived from System.Web namespaces. HttpCookies class lets us work with cookies without using Response and Request objects (we have already used this in Way 2 and Way 3 above).</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/cookie.gif"><img class="aligncenter size-full wp-image-1103" title="cookie" src="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/cookie.gif" alt="" width="474" height="294" /></a></p>
<p>HttpCookie class has a list of some properties, let us outline them.</p>
<p>    * Domain: It contains the domain of the cookie.<br />
    * Expires: It contains the expiration time of the cookie.<br />
    * HasKeys: It contains True if the cookie has subkeys.<br />
    * Name: It contains the name of the cookie.<br />
    * Path: It contains the virtual path to submit with the cookie.<br />
    * Secure: It contains True if the cookie is to be passed in a secure connection only.<br />
    * Value: It contains the value of the cookie.<br />
    * Values:</p>
<p><strong>Limitations of Cookies</strong></p>
<p>There are following limitations for cookies:<br />
   1. Size of cookies is limited to 4096 bytes.<br />
   2. Total 20 cookies can be used on a single website; if you exceed this browser will delete older cookies.<br />
   3. End user can stop accepting cookies by browsers, so it is recommended to check the users’ state and prompt the user to enable cookies.</p>
<p>Sometimes, the end user disables the cookies on browser and sometimes browser has no such feature to accept cookies. In such cases, you need to check the users’ browser at the home page of website and display the appropriate message or redirect on appropriate page having such message to enable it first. The following code will check whether the users’ browser supports cookies or not. It will also detect if it is disabled too.</p>
<p>protected void Page_Load(object sender, EventArgs e)<br />
{<br />
    if (Request.Browser.Cookies)<br />
    {<br />
        //supports the cookies<br />
    }<br />
    else<br />
    {<br />
        //not supports the cookies<br />
        //redirect user on specific page<br />
        //for this or show messages<br />
    }<br />
}</p>
<p>It is always recommended not to store sensitive information in cookies</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1101/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC 3 Hosting :: Creating a Custom HTML Helper to Render List of Models as a Table</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1098</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1098#comments</comments>
		<pubDate>Tue, 31 Jan 2012 03:23:17 +0000</pubDate>
		<dc:creator>Wayne Plotche</dc:creator>
				<category><![CDATA[ASP.NET MVC 3 Hosting]]></category>
		<category><![CDATA[asp.net mvc 3 hosting]]></category>
		<category><![CDATA[asp.net mvc 3.0 hosting]]></category>
		<category><![CDATA[cheap asp.net mvc 3 hosting]]></category>
		<category><![CDATA[cheap asp.net mvc hosting]]></category>
		<category><![CDATA[europe asp.net mvc 3 hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>
		<category><![CDATA[mvc 3 europe hosting]]></category>
		<category><![CDATA[mvc 3.0 hosting]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1098</guid>
		<description><![CDATA[<p>I write this article based on the question on stackoverflow, MVC3 HtmlHelpers using Generics and LINQ.</p>
<p>I decided to see if I could create an HTML Helper that takes a collection of model objects and renders a table. I spent some time looking at how Telerik implements their GridBuilder using Telerik JustDecompile (Telerik&#8217;s FREE decompiler) and got <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1098">ASP.NET MVC 3 Hosting :: Creating a Custom HTML Helper to Render List of Models as a Table</a></span>]]></description>
			<content:encoded><![CDATA[<p>I write this article based on the question on stackoverflow, <a href="http://stackoverflow.com/questions/6524180/mvc3-htmlhelpers-using-generics-and-linq" target="_blank">MVC3 HtmlHelpers using Generics and LINQ</a>.</p>
<p>I decided to see if I could create an HTML Helper that takes a collection of model objects and renders a table. I spent some time looking at how Telerik implements their GridBuilder using <a href="http://www.telerik.com/products/decompiling.aspx/" target="_blank">Telerik JustDecompile (Telerik&#8217;s FREE decompiler)</a> and got some ideas of how I could do this. I created an HtmlHelper extension method called TableFor that creates an instance of a TableBuilder class. The TableBuilder class contains an enumerable list of model objects to be rendered as a table and a list of lambda expressions, managed in the TableBuilder class as TableColumn objects, that identify which model properties are rendered in the table. The TableColumn objects get created from the ColumnBuilder class which creates the TableColumn objects and adds them to the TableBuilder class. The TableBuilder.ToHtml method renders the enumerable list of model objects as a table.</p>
<div><a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1065" title="European Windows Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2011/12/ads_300x180.jpg" alt="" width="400" height="230" /></a></div>
<p>In the end, I was able to render a table from an enumerable list of model objects with the following code:</p>
<p><code>Html.TableFor&lt;MvcRazorApp.Models.Person&gt;()<br />
    .Columns(column =&gt;<br />
    {<br />
        column.Expression(p =&gt; p.FirstName).Title("Given Name");<br />
        column.Expression(p =&gt; p.LastName);<br />
        column.Expression(p =&gt; p.Title);<br />
        column.Expression(p =&gt; p.Episodes);<br />
    })<br />
    .DataSource(this.Model)<br />
    .ToHtml()</code></p>
<h1>Creating the TableColumn Class</h1>
<p>The table column class contains the information about a column in the table. Each lambda expression that is passed in gets compiled and stored in an instance of a TableColumn class. The constructor also creates the default title for the column using a regular expression to add a space in between lowercase and uppercase letters. So, for example, <em>FirstName</em> becomes <em>First Name</em>. TableColumn has a Title method that allows the title to be set to something other than the default title defined in the constructor. The TableColumn class has an Evaluate method. This method evaluates the compiled lambda expression against an instance of a model and returns the property value. If the property value has not been set, an empty string is returned.</p>
<p>Here is the code:</p>
<p><code>/// &lt;summary&gt;<br />
/// Represents a column in a table.<br />
/// &lt;/summary&gt;<br />
/// &lt;typeparam&gt;Class that is rendered in a table.&lt;/typeparam&gt;<br />
/// &lt;typeparam&gt;Class property that is rendered in the column.&lt;/typeparam&gt;<br />
public class TableColumn&lt;TModel, TProperty&gt; : ITableColumn,<br />
ITableColumnInternal&lt;TModel&gt; where TModel : class<br />
{<br />
    /// &lt;summary&gt;<br />
    /// Column title to display in the table.<br />
    /// &lt;/summary&gt;<br />
    public string ColumnTitle { get; set; }</p>
<p>    /// &lt;summary&gt;<br />
    /// Compiled lambda expression to get the property value from a model object.<br />
    /// &lt;/summary&gt;<br />
    public Func&lt;TModel, TProperty&gt; CompiledExpression { get; set; }</p>
<p>    /// &lt;summary&gt;<br />
    /// Constructor.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;param&gt;Lambda expression identifying a property to be rendered.&lt;/param&gt;<br />
    public TableColumn(Expression&lt;Func&lt;TModel, TProperty&gt;&gt; expression)<br />
    {<br />
        string propertyName = (expression.Body as MemberExpression).Member.Name;<br />
        this.ColumnTitle = Regex.Replace(propertyName, "([a-z])([A-Z])", "$1 $2");<br />
        this.CompiledExpression = expression.Compile();<br />
    }</p>
<p>    /// &lt;summary&gt;<br />
    /// Set the title for the column.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;param&gt;Title for the column.&lt;/param&gt;<br />
    /// &lt;returns&gt;Instance of a TableColumn.&lt;/returns&gt;<br />
    public ITableColumn Title(string title)<br />
    {<br />
        this.ColumnTitle = title;<br />
        return this;<br />
    }</p>
<p>    /// &lt;summary&gt;<br />
    /// Get the property value from a model object.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;param&gt;Model to get the property value from.&lt;/param&gt;<br />
    /// &lt;returns&gt;Property value from the model.&lt;/returns&gt;<br />
    public string Evaluate(TModel model)<br />
    {<br />
        var result = this.CompiledExpression(model);<br />
        return result == null ? string.Empty : result.ToString();<br />
    }<br />
}</code></p>
<h1>Creating the ITableColumn Interface</h1>
<p>The TableColumn class implements the ITableColumn interface. This interface defines the properties and methods used by the developer to configure the TableColumn.</p>
<p>Here is the code:</p>
<p><code>/// &lt;summary&gt;<br />
/// Properties and methods used by the consumer to configure the TableColumn.<br />
/// &lt;/summary&gt;<br />
public interface ItableColumn<br />
{<br />
    ITableColumn Title(string title);<br />
}</code></p>
<h1>Creating the ITableColumnInternal Interface</h1>
<p>The TableColumn class also implements the ITableColumnInternal interface. The reason for this is to allow the TableBuilder class to maintain an IList of TableColumn objects. Since the TableBuilder doesn&#8217;t know anything about the TProperty type, an error occurs. I therefore created an interface called ITableColumnInternal that only defines the TModel type (since it is used by the Evaluate method).</p>
<p>Here is the code:</p>
<p><code>/// &lt;summary&gt;<br />
/// Properties and methods used within the TableBuilder class.<br />
/// &lt;/summary&gt;<br />
public interface ITableColumnInternal&lt;TModel&gt; where TModel : class<br />
{<br />
    string ColumnTitle { get; set; }<br />
    string Evaluate(TModel model);<br />
}</code></p>
<h1>Creating the TableBuilder Class</h1>
<p>The TableBuilder class contains a Columns method that creates an instance of the ColumnBuilder class. The ColumnBuilder class creates instances of the TableColumn class and adds them to the TableBuilder class by calling the TableBuilder.AddColumn method. The DataSource property is the enumerable list of models to be rendered as a table. The TableBuilder.ToHtml method renders the TableBuilder as HTML. I found it easy to simply build the table HTML code using an XmlDocument. I loop through the TableBuilder.TableColumns and render the column headings in the table header. I then loop though the enumerable list of model objects in TableBuilder.Data and for each model, I loop though the TableBuilder.TableColumns and call TableColumn.Evaluate for the model object to get the property value. When I am all done, I return a new instance of MvcHtmlString that contains the XmlDocument.OuterXml.</p>
<p>Here is the code:</p>
<p><code>/// &lt;summary&gt;<br />
/// Build a table based on an enumerable list of model objects.<br />
/// &lt;/summary&gt;<br />
/// &lt;typeparam&gt;Type of model to render in the table.&lt;/typeparam&gt;<br />
public class TableBuilder&lt;TModel&gt; : ITableBuilder&lt;TModel&gt; where TModel : class<br />
{<br />
    private HtmlHelper HtmlHelper { get; set; }<br />
    private IEnumerable&lt;TModel&gt; Data { get; set; }</p>
<p>    /// &lt;summary&gt;<br />
    /// Default constructor.<br />
    /// &lt;/summary&gt;<br />
    private TableBuilder()<br />
    {<br />
    }</p>
<p>    /// &lt;summary&gt;<br />
    /// Constructor.<br />
    /// &lt;/summary&gt;<br />
    internal TableBuilder(HtmlHelper helper)<br />
    {<br />
        this.HtmlHelper = helper;</p>
<p>        this.TableColumns = new List&lt;ITableColumnInternal&lt;TModel&gt;&gt;();<br />
    }</p>
<p>    /// &lt;summary&gt;<br />
    /// Set the enumerable list of model objects.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;param&gt;Enumerable list of model objects.&lt;/param&gt;<br />
    /// &lt;returns&gt;Reference to the TableBuilder object.&lt;/returns&gt;<br />
    public TableBuilder&lt;TModel&gt; DataSource(IEnumerable&lt;TModel&gt; dataSource)<br />
    {<br />
        this.Data = dataSource;<br />
        return this;<br />
    }</p>
<p>    /// &lt;summary&gt;<br />
    /// List of table columns to be rendered in the table.<br />
    /// &lt;/summary&gt;<br />
    internal IList&lt;ITableColumnInternal&lt;TModel&gt;&gt; TableColumns { get; set; }</p>
<p>    /// &lt;summary&gt;<br />
    /// Add an lambda expression as a TableColumn.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;typeparam&gt;Model class property to be added as a column.&lt;/typeparam&gt;<br />
    /// &lt;param&gt;Lambda expression identifying a property to be rendered.&lt;/param&gt;<br />
    /// &lt;returns&gt;An instance of TableColumn.&lt;/returns&gt;<br />
    internal ITableColumn AddColumn&lt;TProperty&gt;(Expression&lt;Func&lt;TModel,<br />
TProperty&gt;&gt; expression)<br />
    {<br />
        TableColumn&lt;TModel, TProperty&gt; column = new TableColumn&lt;TModel, TProperty&gt;(expression);<br />
        this.TableColumns.Add(column);<br />
        return column;<br />
    }</p>
<p>    /// &lt;summary&gt;<br />
    /// Create an instance of the ColumnBuilder to add columns to the table.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;param&gt;Delegate to create an instance of ColumnBuilder.&lt;/param&gt;<br />
    /// &lt;returns&gt;An instance of TableBuilder.&lt;/returns&gt;<br />
    public TableBuilder&lt;TModel&gt; Columns(Action&lt;ColumnBuilder&lt;TModel&gt;&gt; columnBuilder)<br />
    {<br />
        ColumnBuilder&lt;TModel&gt; builder = new ColumnBuilder&lt;TModel&gt;(this);<br />
        columnBuilder(builder);<br />
        return this;<br />
    }</p>
<p>    /// &lt;summary&gt;<br />
    /// Convert the TableBuilder to HTML.<br />
    /// &lt;/summary&gt;<br />
    public MvcHtmlString ToHtml()<br />
    {<br />
        XmlDocument html = new XmlDocument();<br />
        XmlElement table = html.CreateElement("table");<br />
        html.AppendChild(table);<br />
        table.SetAttribute("border", "1px");<br />
        table.SetAttribute("cellpadding", "5px");<br />
        table.SetAttribute("cellspacing", "0px");<br />
        XmlElement thead = html.CreateElement("thead");<br />
        table.AppendChild(thead);<br />
        XmlElement tr = html.CreateElement("tr");<br />
        thead.AppendChild(tr);</p>
<p>        foreach (ITableColumnInternal&lt;TModel&gt; tc in this.TableColumns)<br />
        {<br />
            XmlElement td = html.CreateElement("td");<br />
            td.SetAttribute("style", "background-color:Black; color:White;font-weight:bold;");<br />
            td.InnerText = tc.ColumnTitle;<br />
            tr.AppendChild(td);<br />
        }</p>
<p>        XmlElement tbody = html.CreateElement("tbody");<br />
        table.AppendChild(tbody);</p>
<p>        int row = 0;<br />
        foreach (TModel model in this.Data)<br />
        {<br />
            tr = html.CreateElement("tr");<br />
            tbody.AppendChild(tr);</p>
<p>            foreach (ITableColumnInternal&lt;TModel&gt; tc in this.TableColumns)<br />
            {<br />
                XmlElement td = html.CreateElement("td");<br />
                td.InnerText = tc.Evaluate(model);<br />
                tr.AppendChild(td);<br />
            }<br />
            row++;<br />
        }</p>
<p>        return new MvcHtmlString(html.OuterXml);<br />
    }<br />
}</code></p>
<h1>Creating the ColumnBuilder Class</h1>
<p>The ColumnBuilder class contains a single method called Expression that creates instances of the TableColumn class for the lambda expression passed in and returns an instance of the TableColumn class so that additional properties in the TableColumn class can be set.</p>
<p>Here is the code:</p>
<p><code>/// &lt;summary&gt;<br />
/// Create instances of TableColumns.<br />
/// &lt;/summary&gt;<br />
/// &lt;typeparam&gt;Type of model to render in the table.&lt;/typeparam&gt;<br />
public class ColumnBuilder&lt;TModel&gt; where TModel : class<br />
{<br />
    public TableBuilder&lt;TModel&gt; TableBuilder { get; set; }</p>
<p>    /// &lt;summary&gt;<br />
    /// Constructor.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;param&gt;Instance of a TableBuilder.&lt;/param&gt;<br />
    public ColumnBuilder(TableBuilder&lt;TModel&gt; tableBuilder)<br />
    {<br />
        TableBuilder = tableBuilder;<br />
    }</p>
<p>    /// &lt;summary&gt;<br />
    /// Add lambda expressions to the TableBuilder.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;typeparam&gt;Class property that is rendered in the column.&lt;/typeparam&gt;<br />
    /// &lt;param&gt;Lambda expression identifying a property to be rendered.&lt;/param&gt;<br />
    /// &lt;returns&gt;An instance of TableColumn.&lt;/returns&gt;<br />
    public ITableColumn Expression&lt;TProperty&gt;(Expression&lt;Func&lt;TModel, TProperty&gt;&gt; expression)<br />
    {<br />
        return TableBuilder.AddColumn(expression);<br />
    }<br />
}</code></p>
<h1>Creating the ITableBuilder Interface</h1>
<p>The TableBuilder class implements the ITableBuilder interface. This interface defines the properties and methods used by the developer to configure the TableBuilder. The TableFor HTML extension method returns an instance of the TableBuilder class as an ITableBuilder interface.</p>
<p>Here is the code:</p>
<p><code>/// &lt;summary&gt;<br />
/// Properties and methods used by the consumer to configure the TableBuilder.<br />
/// &lt;/summary&gt;<br />
public interface ITableBuilder&lt;TModel&gt; where TModel : class<br />
{<br />
    TableBuilder&lt;TModel&gt; DataSource(IEnumerable&lt;TModel&gt; dataSource);<br />
    TableBuilder&lt;TModel&gt; Columns(Action&lt;ColumnBuilder&lt;TModel&gt;&gt; columnBuilder);<br />
}</code></p>
<h1>Creating the TableFor HtmlHelper Extension Method</h1>
<p>The TableFor HtmlHelper extension returns an instance of a TableBuilder class an ITableBuilder interface.</p>
<p>Here is the code:</p>
<p><code>public static class MvcHtmlTableExtensions<br />
{<br />
    /// &lt;summary&gt;<br />
    /// Return an instance of a TableBuilder.<br />
    /// &lt;/summary&gt;<br />
    /// &lt;typeparam&gt;Type of model to render in the table.&lt;/typeparam&gt;<br />
    /// &lt;returns&gt;Instance of a TableBuilder.&lt;/returns&gt;<br />
    public static ITableBuilder&lt;TModel&gt; TableFor&lt;TModel&gt;(this HtmlHelper helper) where TModel : class<br />
    {<br />
        return new TableBuilder&lt;TModel&gt;(helper);<br />
    }<br />
}</code></p>
<h1>Implementing HTML Helper in a View</h1>
<h2>The Person Model</h2>
<p>I created a model class called Person and gave it four properties, FirstName, LastName, Title and Episodes. Here is the code:</p>
<p><code>public class Person<br />
{<br />
    public string FirstName { get; set; }<br />
    public string LastName { get; set; }<br />
    public string Title { get; set; }<br />
    public int Episodes { get; set; }<br />
}</code></p>
<h2>The Controller</h2>
<p>I created a controller and defined a method called TableBuilderSample that creates a list of Person objects and return a ViewResult with the Person list. Here is the code:</p>
<p><code>public ActionResult TableBuilderSample()<br />
{<br />
    IList&lt;Person&gt; list = new List&lt;Person&gt;();<br />
    list.Add(new Person { FirstName = "William", LastName = "Adama", Title<br />
="Commander", Episodes = 73 });<br />
    list.Add(new Person { FirstName = "Laura", LastName = "Roslin", Title = "President", Episodes = 73 });<br />
    list.Add(new Person { FirstName = "Gaius", LastName = "Baltar", Episodes = 73 });<br />
    list.Add(new Person { FirstName = "Lee", LastName = "Adama", Episodes = 73 });<br />
    list.Add(new Person { FirstName = "Kara", LastName = "Thrace", Episodes = 71 });</p>
<p>    return View(list);<br />
}</code></p>
<h2>The View</h2>
<p>I then created a strongly typed view that took an IEnumerable list of Person objects. I implemented my Html.TableFor extension method where I defined the table using the TableBuilder class. Here is the code:</p>
<p><code><strong><span style="text-decoration: underline;">Razor:</span></strong></p>
<p>@model IList&lt;MvcRazorApp.Models.Person&gt;</p>
<p>@{<br />
    ViewBag.Title = "TableBuilderSample";<br />
}</p>
<p>&lt;h2&gt;TableBuilderSample&lt;/h2&gt;</p>
<p>@(Html.TableFor&lt;MvcRazorApp.Models.Person&gt;()<br />
    .Columns(column =&gt;<br />
    {<br />
        column.Expression(p =&gt; p.FirstName).Title("Given Name");<br />
        column.Expression(p =&gt; p.LastName);<br />
        column.Expression(p =&gt; p.Title);<br />
        column.Expression(p =&gt; p.Episodes);<br />
    })<br />
    .DataSource(this.Model)<br />
    .ToHtml()<br />
)</code></p>
<p><strong><span style="text-decoration: underline;">ASPX:</span></strong></p>
<pre>&lt;%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage&lt;IEnumerable&lt;MvcAspxApp.Models.Person&gt;&gt;" %&gt;

&lt;asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"&gt;
    TableBuilderSample
&lt;/asp:Content&gt;

&lt;asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"&gt;

&lt;h2&gt;TableBuilderSample&lt;/h2&gt;

&lt;%=Html.TableFor&lt;MvcAspxApp.Models.Person&gt;()
    .Columns(column =&gt;
    {
        column.Expression(p =&gt; p.FirstName).Title("Given Name");
        column.Expression(p =&gt; p.LastName);
        column.Expression(p =&gt; p.Title);
        column.Expression(p =&gt; p.Episodes);
    })
    .DataSource(this.Model)
    .ToHtml()
%&gt;

&lt;/asp:Content&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1098/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebMatrix Hosting :: Explore Experience wih WebMatrix</title>
		<link>http://www.aspnethostingnews.com/index.php/archives/1092</link>
		<comments>http://www.aspnethostingnews.com/index.php/archives/1092#comments</comments>
		<pubDate>Tue, 17 Jan 2012 05:03:46 +0000</pubDate>
		<dc:creator>Wayne Plotche</dc:creator>
				<category><![CDATA[Webmatrix Hosting]]></category>
		<category><![CDATA[cheap web deploy hosting]]></category>
		<category><![CDATA[hostforlife]]></category>
		<category><![CDATA[hostforlife.eu]]></category>
		<category><![CDATA[web deploy hosting]]></category>
		<category><![CDATA[webmatrix]]></category>
		<category><![CDATA[webmatrix hosting]]></category>

		<guid isPermaLink="false">http://www.aspnethostingnews.com/?p=1092</guid>
		<description><![CDATA[
<p>Vertical and Scenario-Focused Tooling</p>
<p>I personally think having a variety of tools is good, especially if they can focus on different verticals, and are optimized for different scenarios/tasks. There is a saying &#8211; use the right tool for the job. And the reality is there is a wide spectrum of developers and correspondingly a breadth of requirements <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.aspnethostingnews.com/index.php/archives/1092">WebMatrix Hosting :: Explore Experience wih WebMatrix</a></span>]]></description>
			<content:encoded><![CDATA[<div><a href="http://www.hostforlife.eu"><img class="aligncenter size-full wp-image-1065" title="European Windows Hosting" src="http://www.aspnethostingnews.com/wp-content/uploads/2011/12/ads_300x180.jpg" alt="" width="400" height="230" /></a></div>
<p><strong>Vertical and Scenario-Focused Tooling</p>
<p></strong>I personally think having a variety of tools is good, especially if they can focus on different verticals, and are optimized for different scenarios/tasks. There is a saying &#8211; use the right tool for the job. And the reality is there is a wide spectrum of developers and correspondingly a breadth of requirements and expectations. Lots of professional/enterprise developers will find Visual Studio and its rich set of features + ecosystem a must-have for their work. At the same time, there is a huge number of Web developers, designers and scripters that primarily use Notepad, Textmate or a simple text editor to quickly build and manage their web sites and applications. For those folks, the simplicity that comes from the minimal set of options is a feature in itself. WebMatrix caters to that huge audience. This is true today, and was true back then.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/image_11.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/image_11.png" alt="" title="image_1" width="450" height="289" class="aligncenter size-full wp-image-1093" /></a><br />
<strong>Experimentation and New Ideas</strong></p>
<p>The other aspect of &#8220;WebMatrix&#8221; that really resonates with me is that it provides an avenue for experimentation of new ideas/approaches, and learning, as well as innovation. You need speed boats and the agility they offer to explore the new, and then figure out where you want to go. We tried a number of things in the original WebMatrix &#8211; light-weight, free and web-focused tooling (I worked on Visual InterDev and missed the concept of a Web-focused SKU when the features got merged into Visual Studio). These characteristics also resonated well with the community, and I like to think the spirit of WebMatrix lived on in the form of the Express SKUs. The current generation of WebMatrix brings together a nice combination of simplified development model along with an embedded database solution (SQLCE), and a renewed focus on addressing server-side rendering (Razor). Personally, I think even more important than these building block technologies, is the notion of starting from applications and focusing on customizing them rather than building new applications from scratch. The concept of a rich ecosystem of working applications as a starting point is critical in fueling further growth of the platform as the underlying frameworks mature, and for competing.</p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/image_21.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/image_21.png" alt="" title="image_2" width="500" height="398" class="aligncenter size-full wp-image-1094" /></a><br />
<strong>A Social IDE &#8211; More Ideas to Explore</strong></p>
<p>There were many ideas left unfinished in the original WebMatrix. For example, the online component gallery, and messenger/chat integration. Perhaps they were a little early back then. However, in this day and age of twitter, and social development (stack overflow, github etc.), it would be interesting to further that vision, and explore what an IDE can do to incorporate identity and facilitate collaborative development.</p>
<p><strong>Fresh User Interface</strong></p>
<p><a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/image_3.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/image_3.png" alt="" title="image_3" width="450" height="357" class="aligncenter size-full wp-image-1095" /></a><br />
<a href="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/image_4.png"><img src="http://www.aspnethostingnews.com/wp-content/uploads/2012/01/image_4.png" alt="" title="image_4" width="450" height="319" class="aligncenter size-full wp-image-1096" /></a><br />
The original WebMatrix was one of the big early fully managed applications, and was written using Windows Forms. It is nice to see the prettier user interface behind the simplified and streamlined development experience. Of course, this version is built on WPF.</p>
<p>I do wonder &#8211; what about a Silverlight-based implementation?</p>
<p>What I&#8217;d really also like to see is a richer set of IDE building blocks that can be composed together more readily to build specific vertical tools and experiences, without starting from scratch each time. This is what I realized even back then &#8211; code editor, intellisense, project system, debugger, source control, are some of the obvious components, that would be interesting to share across the different tools, Visual Studio, Expression, WebMatrix and other future efforts.</p>
<p>It will be interesting to see how WebMatrix matures, to say the least.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aspnethostingnews.com/index.php/archives/1092/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

