<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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>SharpLife.NET</title>
    <link>http://sharplife.net/</link>
    <description>A sharp way to know more // Mahdi Taghizadeh's Daily Web Keystrokes.</description>
    <language>en-us</language>
    <copyright>Mahdi Taghizadeh</copyright>
    <lastBuildDate>Wed, 14 Oct 2009 20:35:06 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>mahdi@sharplife.net</managingEditor>
    <webMaster>mahdi@sharplife.net</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/SharpLife" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=0859b75d-ffdc-4330-a3ce-63cbbd4c2a98</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,0859b75d-ffdc-4330-a3ce-63cbbd4c2a98.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,0859b75d-ffdc-4330-a3ce-63cbbd4c2a98.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0859b75d-ffdc-4330-a3ce-63cbbd4c2a98</wfw:commentRss>
      
      <title>Build pretty clean URL for your dynamic pages using JavaScript</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,0859b75d-ffdc-4330-a3ce-63cbbd4c2a98.aspx</guid>
      <link>http://sharplife.net/2009/10/14/BuildPrettyCleanURLForYourDynamicPagesUsingJavaScript.aspx</link>
      <pubDate>Wed, 14 Oct 2009 20:35:06 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Once again I want to talk about URLs and who doesn’t know that I’m a big fan of friendly,&#xD;
clean and pretty URLs in my applications! When you write an application (for example&#xD;
a blog engine) you have multiple choices to create unique URL for a single post; you&#xD;
can include an integer ID (myblog.com/458) or a GUID instead of integer or the best&#xD;
way, a friendly URL like myblog.com/hey-i-am-a-clean-url. This value should be unique&#xD;
and should not be changed if your blog post title is changed; so we should have a&#xD;
separate column in our database table to store this friendly URL. I wrote a simple&#xD;
JavaScript code that receives your blog post title, clean it from non alphanumeric&#xD;
characters and replaces them with a dash, change all characters to lower case and&#xD;
make it ready to be sent to your business logic handler:&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="csharpcode"&gt;&#xD;
          &lt;span class="kwrd"&gt;&#xD;
          &lt;/span&gt;&#xD;
        &lt;/pre&gt;&#xD;
        &lt;div class="csharpcode"&gt;&#xD;
          &lt;pre class="alt"&gt;&amp;lt;script type=&lt;span class="str"&gt;"text/javascript"&lt;/span&gt; language=&lt;span class="str"&gt;"javascript"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&#xD;
          &lt;pre&gt;&#xD;
            &lt;span class="kwrd"&gt;function&lt;/span&gt; parseUrl(url) {&lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;&#xD;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; cleanUrl = (url + &lt;span class="str"&gt;"&#xD;
"&lt;/span&gt;).replace(/[^a-zA-Z0-9]+/g, &lt;span class="str"&gt;"-"&lt;/span&gt;);&lt;/pre&gt;&#xD;
          &lt;pre&gt;&#xD;
            &lt;span class="kwrd"&gt;return&lt;/span&gt; cleanUrl.slice(0, cleanUrl.length -1).toLowerCase();&lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;style type="text/css"&gt;&#xD;
&#xD;
&#xD;
.csharpcode, .csharpcode pre&#xD;
{&#xD;
	font-size: small;&#xD;
	color: black;&#xD;
	font-family: consolas, "Courier New", courier, monospace;&#xD;
	background-color: #ffffff;&#xD;
	/*white-space: pre;*/&#xD;
}&#xD;
.csharpcode pre { margin: 0em; }&#xD;
.csharpcode .rem { color: #008000; }&#xD;
.csharpcode .kwrd { color: #0000ff; }&#xD;
.csharpcode .str { color: #006080; }&#xD;
.csharpcode .op { color: #0000c0; }&#xD;
.csharpcode .preproc { color: #cc6633; }&#xD;
.csharpcode .asp { background-color: #ffff00; }&#xD;
.csharpcode .html { color: #800000; }&#xD;
.csharpcode .attr { color: #ff0000; }&#xD;
.csharpcode .alt &#xD;
{&#xD;
	background-color: #f4f4f4;&#xD;
	width: 100%;&#xD;
	margin: 0em;&#xD;
}&#xD;
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&#xD;
        &lt;style type="text/css"&gt;&#xD;
&#xD;
&#xD;
.csharpcode, .csharpcode pre&#xD;
{&#xD;
	font-size: small;&#xD;
	color: black;&#xD;
	font-family: consolas, "Courier New", courier, monospace;&#xD;
	background-color: #ffffff;&#xD;
	/*white-space: pre;*/&#xD;
}&#xD;
.csharpcode pre { margin: 0em; }&#xD;
.csharpcode .rem { color: #008000; }&#xD;
.csharpcode .kwrd { color: #0000ff; }&#xD;
.csharpcode .str { color: #006080; }&#xD;
.csharpcode .op { color: #0000c0; }&#xD;
.csharpcode .preproc { color: #cc6633; }&#xD;
.csharpcode .asp { background-color: #ffff00; }&#xD;
.csharpcode .html { color: #800000; }&#xD;
.csharpcode .attr { color: #ff0000; }&#xD;
.csharpcode .alt &#xD;
{&#xD;
	background-color: #f4f4f4;&#xD;
	width: 100%;&#xD;
	margin: 0em;&#xD;
}&#xD;
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&#xD;
        &lt;p&gt;&#xD;
and this two lines of code to fill URL field automatically as user types the post&#xD;
title (using jQuery:&#xD;
&lt;/p&gt;&#xD;
        &lt;div class="csharpcode"&gt;&#xD;
          &lt;pre class="alt"&gt;&amp;lt;script type=&lt;span class="str"&gt;"text/javascript"&lt;/span&gt; language=&lt;span class="str"&gt;"javascript"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&#xD;
          &lt;pre&gt;    $(document).ready(&lt;span class="kwrd"&gt;function&lt;/span&gt;() {&lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;        $(&lt;span class="str"&gt;"#postTitle"&lt;/span&gt;).keyup(&lt;span class="kwrd"&gt;function&lt;/span&gt;()&#xD;
{ $(&lt;span class="str"&gt;"#postUrl"&lt;/span&gt;).val(parseUrl($(&lt;span class="str"&gt;"#postTitle"&lt;/span&gt;).val()))&#xD;
}&lt;/pre&gt;&#xD;
          &lt;pre&gt;        );&lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;    });&lt;/pre&gt;&#xD;
          &lt;pre&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This is very useful if you’re building applications using ASP.NET MVC and have control&#xD;
over URLs using routing engine. This is also helpful for WebForms developers who use&#xD;
routing in WebForms or rewrite extension less URLs using IIS7, ISAPI_REWRITE and etc.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Let your URLs be more friendly against search engines ;)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fsharplife.net%2f2009%2f10%2f14%2fBuildPrettyCleanURLForYourDynamicPagesUsingJavaScript.aspx"&gt;&#xD;
            &lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fsharplife.net%2f2009%2f10%2f14%2fBuildPrettyCleanURLForYourDynamicPagesUsingJavaScript.aspx"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=0859b75d-ffdc-4330-a3ce-63cbbd4c2a98"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sMRBkDr5JymeH6XDQjuQCiNv_UQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sMRBkDr5JymeH6XDQjuQCiNv_UQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sMRBkDr5JymeH6XDQjuQCiNv_UQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sMRBkDr5JymeH6XDQjuQCiNv_UQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,0859b75d-ffdc-4330-a3ce-63cbbd4c2a98.aspx</comments>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
      <category>JavaScript</category>
      <category>SEO</category>
      <category>Tutorial</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=438bb1d9-f233-4c19-bcfc-01301c7bacd7</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,438bb1d9-f233-4c19-bcfc-01301c7bacd7.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,438bb1d9-f233-4c19-bcfc-01301c7bacd7.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=438bb1d9-f233-4c19-bcfc-01301c7bacd7</wfw:commentRss>
      <slash:comments>3</slash:comments>
      
      <title>How to enable your iPhone voicemail for Iran MCI subscribers</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,438bb1d9-f233-4c19-bcfc-01301c7bacd7.aspx</guid>
      <link>http://sharplife.net/2009/09/30/HowToEnableYourIPhoneVoicemailForIranMCISubscribers.aspx</link>
      <pubDate>Wed, 30 Sep 2009 20:34:37 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
If you live in Iran and are &lt;a href="http://www.mci.ir"&gt;MCI&lt;/a&gt; carrier subscriber&#xD;
and also you have an iPhone, you might ask yourself how to enable voicemail on your&#xD;
iPhone. I give you some quick steps to enable voicemail on your iPhone:&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Click on &lt;strong&gt;Phone&lt;/strong&gt; icon and then &lt;strong&gt;Keypad&lt;/strong&gt; and dial &lt;strong&gt;*5005*86*09912#&lt;/strong&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Press call and wait.&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Now you can access your voicemail box by tapping &lt;strong&gt;Voicemail&lt;/strong&gt; in &lt;strong&gt;Phone&lt;/strong&gt;.&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
To enable forwarding calls in various situations go to step 1 and dial these commands&#xD;
instead:&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Forwarding all calls to voicemail: &lt;strong&gt;*21*09912#&lt;/strong&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Forwarding calls when your phone is busy: &lt;strong&gt;*67*09912#&lt;/strong&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Forwarding calls when no reply from you: &lt;strong&gt;*61*09912#&lt;/strong&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Forwarding calls when your phone is unreachable: &lt;strong&gt;*62*09912#&lt;/strong&gt;&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Please note that voicemail service should have been already activated on your account.&#xD;
It’s not activated by default when you purchase your SIM Card.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=438bb1d9-f233-4c19-bcfc-01301c7bacd7"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uZxdDJJWKnLoXmWtBZ0h-wS3mNw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uZxdDJJWKnLoXmWtBZ0h-wS3mNw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uZxdDJJWKnLoXmWtBZ0h-wS3mNw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uZxdDJJWKnLoXmWtBZ0h-wS3mNw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,438bb1d9-f233-4c19-bcfc-01301c7bacd7.aspx</comments>
      <category>iPhone</category>
      <category>Tips and Tricks</category>
      <category>Tutorial</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=a7304a80-681a-4c74-a8d8-4dc2f0c0cde1</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,a7304a80-681a-4c74-a8d8-4dc2f0c0cde1.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,a7304a80-681a-4c74-a8d8-4dc2f0c0cde1.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a7304a80-681a-4c74-a8d8-4dc2f0c0cde1</wfw:commentRss>
      
      <title>How to receive BNO breaking news alerts for free on your iPhone via Push Notification</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,a7304a80-681a-4c74-a8d8-4dc2f0c0cde1.aspx</guid>
      <link>http://sharplife.net/2009/08/28/HowToReceiveBNOBreakingNewsAlertsForFreeOnYourIPhoneViaPushNotification.aspx</link>
      <pubDate>Fri, 28 Aug 2009 07:54:06 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Right after Apple upgraded its iPhone OS to v.3.0 and introduced new Push Notification&#xD;
feature many companies and developers started to write new applications or update&#xD;
their existing apps to use this new cool feature. One of them was &lt;a href="http://www.bnonews.com/"&gt;BNO&#xD;
News&lt;/a&gt; which sends out breaking news alerts in four different ways: 1- &lt;a href="http://twitter.com/BreakingNews"&gt;Twitter&lt;/a&gt;,&#xD;
2- &lt;a href="http://bnonews.com/mailman/listinfo/alerts_bnonews.com"&gt;Email&lt;/a&gt;, 3- &lt;a href="http://www.friendfeed.com/BreakingNewsOn"&gt;Friendfeed&lt;/a&gt;,&#xD;
4- &lt;a href="http://www.bnonews.com/archives/59"&gt;iPhone&lt;/a&gt;. First three services are&#xD;
free but the last one is not free. You have to pay for their application as well as&#xD;
a monthly subscription fee to receive alerts on your iPhone. I was thinking to find&#xD;
a way to receive these alerts for free and I find a tricky way that I want to share&#xD;
with you here. You have to follow these steps to enable BNO alerts on your iPhone&#xD;
without paying them a penny!&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://click.linksynergy.com/fs-bin/stat?id=CMWzV4SDlTs&amp;amp;offerid=146261&amp;amp;type=3&amp;amp;subid=0&amp;amp;tmpid=1826&amp;amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252FWebObjects%252FMZStore.woa%252Fwa%252FviewSoftware%253Fid%253D305928665%2526amp%253Bmt%253D8%2526amp%253Bign-impt%253DclickRef%25253Dcom.apple.jingle.app.store.xml.MXAutoSourcedGenrePage-US-Lockup_r5c2"&gt;Download&lt;/a&gt; and&#xD;
install TextFree Lite on your iPhone. It’s free. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Create a TextFree account which gives you a unique @textfree.us email address to receive&#xD;
messages. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Create a new GMail account at &lt;a title="http://mail.google.com/mail/signup" href="http://mail.google.com/mail/signup"&gt;http://mail.google.com/mail/signup&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Go to BNO mail subscription &lt;a href="http://bnonews.com/mailman/listinfo/alerts_bnonews.com"&gt;page&lt;/a&gt; and&#xD;
subscribe using your new GMail address. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Login to your new GMail account and wait until BNO confirms your subscription then&#xD;
go to GMail &lt;strong&gt;Settings &amp;gt; Forwarding and POP/IMAP &#xD;
&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;a href="http://sharplife.net/content/binary/WindowsLiveWriter/HowtoreceiveBNOBreakingNewsAlertsforfree_A2E5/GmailSettings.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="GmailSettings" border="0" alt="GmailSettings" src="http://sharplife.net/content/binary/WindowsLiveWriter/HowtoreceiveBNOBreakingNewsAlertsforfree_A2E5/GmailSettings_thumb.jpg" width="331" height="50"&gt;&lt;/img&gt;&lt;/a&gt;&lt;strong&gt;&lt;br&gt;&lt;/strong&gt;&lt;a href="http://sharplife.net/content/binary/WindowsLiveWriter/HowtoreceiveBNOBreakingNewsAlertsforfree_A2E5/GmailForwarding.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="GmailForwarding" border="0" alt="GmailForwarding" src="http://sharplife.net/content/binary/WindowsLiveWriter/HowtoreceiveBNOBreakingNewsAlertsforfree_A2E5/GmailForwarding_thumb.jpg" width="644" height="106"&gt;&lt;/img&gt;&lt;/a&gt;&lt;strong&gt;  &#xD;
&lt;br&gt;&lt;br&gt;&lt;/strong&gt;Now put your textfree.us email address in the text box labeled with “email&#xD;
address” (see above) and save your settings. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
You’re done! Each time BNO sends an alert to your GMail address it is automatically&#xD;
forwarded to your textfree.us and therefore you receive a Push Notification alert&#xD;
on your iPhone! &#xD;
&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Do you know why we used GMail account in the middle of our trick and didn’t use textfree.us&#xD;
address directly? BNO rejects subscription requests from all @textfree.us or similar&#xD;
services email addresses!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Hope you enjoy this trick ;) &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=a7304a80-681a-4c74-a8d8-4dc2f0c0cde1"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hRpu8FBDyirwRYyJj_FnLRJrdT4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hRpu8FBDyirwRYyJj_FnLRJrdT4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hRpu8FBDyirwRYyJj_FnLRJrdT4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hRpu8FBDyirwRYyJj_FnLRJrdT4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,a7304a80-681a-4c74-a8d8-4dc2f0c0cde1.aspx</comments>
      <category>Download</category>
      <category>iPhone</category>
      <category>News</category>
      <category>Tips and Tricks</category>
      <category>Tutorial</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=a332fa1c-6e05-4f93-ba52-431b5014ac17</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,a332fa1c-6e05-4f93-ba52-431b5014ac17.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,a332fa1c-6e05-4f93-ba52-431b5014ac17.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a332fa1c-6e05-4f93-ba52-431b5014ac17</wfw:commentRss>
      
      <title>How to handle non-English characters in ASP.NET MVC routes</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,a332fa1c-6e05-4f93-ba52-431b5014ac17.aspx</guid>
      <link>http://sharplife.net/2009/04/29/HowToHandleNonEnglishCharactersInASPNETMVCRoutes.aspx</link>
      <pubDate>Wed, 29 Apr 2009 10:01:15 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
One of the most amazing features of ASP.NET MVC is its powerful routing engine that&#xD;
let you define clear URLs for your web application. Today I want to share a very simple&#xD;
and short tip with you to handle non-English URLs in your ActionLink methods.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Let’s start with an example; in a blog engine we have two routes as follows:&#xD;
&lt;/p&gt;&#xD;
        &lt;div class="csharpcode"&gt;&#xD;
          &lt;pre class="alt"&gt;routes.MapRoute(&lt;/pre&gt;&#xD;
          &lt;pre&gt;&#xD;
            &lt;span class="str"&gt;"ShowPost"&lt;/span&gt;,&lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;&#xD;
            &lt;span class="str"&gt;"read/{url}"&lt;/span&gt;,&lt;/pre&gt;&#xD;
          &lt;pre&gt;&#xD;
            &lt;span class="kwrd"&gt;new&lt;/span&gt; { controller = &lt;span class="str"&gt;"Post"&lt;/span&gt;,&#xD;
action = &lt;span class="str"&gt;"Show"&lt;/span&gt; }&lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;            );&lt;/pre&gt;&#xD;
          &lt;pre&gt; &lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;routes.MapRoute(&lt;/pre&gt;&#xD;
          &lt;pre&gt;&#xD;
            &lt;span class="str"&gt;"EditPost"&lt;/span&gt;,&lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;&#xD;
            &lt;span class="str"&gt;"edit/{url}"&lt;/span&gt;,&lt;/pre&gt;&#xD;
          &lt;pre&gt;&#xD;
            &lt;span class="kwrd"&gt;new&lt;/span&gt; { controller = &lt;span class="str"&gt;"Post"&lt;/span&gt;,&#xD;
action = &lt;span class="str"&gt;"Edit"&lt;/span&gt; }&lt;/pre&gt;&#xD;
          &lt;pre class="alt"&gt;            );&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;style type="text/css"&gt;&#xD;
.csharpcode, .csharpcode pre&#xD;
{&#xD;
	font-size: small;&#xD;
	color: black;&#xD;
	font-family: consolas, "Courier New", courier, monospace;&#xD;
	background-color: #ffffff;&#xD;
	/*white-space: pre;*/&#xD;
}&#xD;
.csharpcode pre { margin: 0em; }&#xD;
.csharpcode .rem { color: #008000; }&#xD;
.csharpcode .kwrd { color: #0000ff; }&#xD;
.csharpcode .str { color: #006080; }&#xD;
.csharpcode .op { color: #0000c0; }&#xD;
.csharpcode .preproc { color: #cc6633; }&#xD;
.csharpcode .asp { background-color: #ffff00; }&#xD;
.csharpcode .html { color: #800000; }&#xD;
.csharpcode .attr { color: #ff0000; }&#xD;
.csharpcode .alt &#xD;
{&#xD;
	background-color: #f4f4f4;&#xD;
	width: 100%;&#xD;
	margin: 0em;&#xD;
}&#xD;
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&#xD;
        &lt;style type="text/css"&gt;&#xD;
.csharpcode, .csharpcode pre&#xD;
{&#xD;
	font-size: small;&#xD;
	color: black;&#xD;
	font-family: consolas, "Courier New", courier, monospace;&#xD;
	background-color: #ffffff;&#xD;
	/*white-space: pre;*/&#xD;
}&#xD;
.csharpcode pre { margin: 0em; }&#xD;
.csharpcode .rem { color: #008000; }&#xD;
.csharpcode .kwrd { color: #0000ff; }&#xD;
.csharpcode .str { color: #006080; }&#xD;
.csharpcode .op { color: #0000c0; }&#xD;
.csharpcode .preproc { color: #cc6633; }&#xD;
.csharpcode .asp { background-color: #ffff00; }&#xD;
.csharpcode .html { color: #800000; }&#xD;
.csharpcode .attr { color: #ff0000; }&#xD;
.csharpcode .alt &#xD;
{&#xD;
	background-color: #f4f4f4;&#xD;
	width: 100%;&#xD;
	margin: 0em;&#xD;
}&#xD;
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&#xD;
        &lt;style type="text/css"&gt;&#xD;
.csharpcode, .csharpcode pre&#xD;
{&#xD;
	font-size: small;&#xD;
	color: black;&#xD;
	font-family: consolas, "Courier New", courier, monospace;&#xD;
	background-color: #ffffff;&#xD;
	/*white-space: pre;*/&#xD;
}&#xD;
.csharpcode pre { margin: 0em; }&#xD;
.csharpcode .rem { color: #008000; }&#xD;
.csharpcode .kwrd { color: #0000ff; }&#xD;
.csharpcode .str { color: #006080; }&#xD;
.csharpcode .op { color: #0000c0; }&#xD;
.csharpcode .preproc { color: #cc6633; }&#xD;
.csharpcode .asp { background-color: #ffff00; }&#xD;
.csharpcode .html { color: #800000; }&#xD;
.csharpcode .attr { color: #ff0000; }&#xD;
.csharpcode .alt &#xD;
{&#xD;
	background-color: #f4f4f4;&#xD;
	width: 100%;&#xD;
	margin: 0em;&#xD;
}&#xD;
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
and you decide to show a Persian title in a URL as follows: &lt;strong&gt;/blog/read/این-یک-عنوان-است&lt;/strong&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Everything is fine till now but if you want to put an ActionLink in your view to redirect&#xD;
user to edit page in this way:&#xD;
&lt;/p&gt;&#xD;
        &lt;div class="csharpcode"&gt;&#xD;
          &lt;pre class="alt"&gt;&#xD;
            &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;= Html.ActionLink(&lt;span class="str"&gt;"Edit"&lt;/span&gt;, &lt;span class="str"&gt;"Edit"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; {&#xD;
url = Model.Url }) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;p&gt;&#xD;
You will be redirected to an ugly encoded URL like this &lt;strong&gt;/edit/%D8%AA%D8%B3%D8%AA&lt;/strong&gt; instead&#xD;
of &lt;strong&gt;/blog/edit/این-یک-عنوان-است&lt;/strong&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Here’s the simple trick to overcome this:&#xD;
&lt;/p&gt;&#xD;
        &lt;div class="csharpcode"&gt;&#xD;
          &lt;pre class="alt"&gt;&#xD;
            &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;= HttpUtility.UrlDecode(Html.ActionLink(&lt;span class="str"&gt;"Edit"&lt;/span&gt;, &lt;span class="str"&gt;"Edit"&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; {&#xD;
url = Model.Url })) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;&#xD;
        &lt;/div&gt;&#xD;
        &lt;style type="text/css"&gt;&#xD;
.csharpcode, .csharpcode pre&#xD;
{&#xD;
	font-size: small;&#xD;
	color: black;&#xD;
	font-family: consolas, "Courier New", courier, monospace;&#xD;
	background-color: #ffffff;&#xD;
	/*white-space: pre;*/&#xD;
}&#xD;
.csharpcode pre { margin: 0em; }&#xD;
.csharpcode .rem { color: #008000; }&#xD;
.csharpcode .kwrd { color: #0000ff; }&#xD;
.csharpcode .str { color: #006080; }&#xD;
.csharpcode .op { color: #0000c0; }&#xD;
.csharpcode .preproc { color: #cc6633; }&#xD;
.csharpcode .asp { background-color: #ffff00; }&#xD;
.csharpcode .html { color: #800000; }&#xD;
.csharpcode .attr { color: #ff0000; }&#xD;
.csharpcode .alt &#xD;
{&#xD;
	background-color: #f4f4f4;&#xD;
	width: 100%;&#xD;
	margin: 0em;&#xD;
}&#xD;
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
That’s it!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fsharplife.net%2f2009%2f04%2f29%2fHowToHandleNonEnglishCharactersInASPNETMVCRoutes.aspx"&gt;&#xD;
            &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fsharplife.net%2f2009%2f04%2f29%2fHowToHandleNonEnglishCharactersInASPNETMVCRoutes.aspx" border="0" alt="kick it on DotNetKicks.com"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
          &lt;a rev="vote-for" href="http://dotnetshoutout.com/How-to-handle-non-English-characters-in-ASPNET-MVC-routes"&gt;&#xD;
            &lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fsharplife.net%2F2009%2F04%2F29%2FHowToHandleNonEnglishCharactersInASPNETMVCRoutes.aspx" style="border:0px"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=a332fa1c-6e05-4f93-ba52-431b5014ac17"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Hkfo01LJJ2rC3PwrvmiRNfKoNaM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Hkfo01LJJ2rC3PwrvmiRNfKoNaM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Hkfo01LJJ2rC3PwrvmiRNfKoNaM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Hkfo01LJJ2rC3PwrvmiRNfKoNaM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,a332fa1c-6e05-4f93-ba52-431b5014ac17.aspx</comments>
      <category>ASP.NET MVC</category>
      <category>i18n</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=74436846-c81b-4201-80b9-b2fee7795575</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,74436846-c81b-4201-80b9-b2fee7795575.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,74436846-c81b-4201-80b9-b2fee7795575.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=74436846-c81b-4201-80b9-b2fee7795575</wfw:commentRss>
      <slash:comments>6</slash:comments>
      
      <title>ASP.NET MVC Free eBooks</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,74436846-c81b-4201-80b9-b2fee7795575.aspx</guid>
      <link>http://sharplife.net/2009/04/20/ASPNETMVCFreeEBooks.aspx</link>
      <pubDate>Mon, 20 Apr 2009 06:43:45 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
It's about one month that &lt;a href="http://weblogs.asp.net/scottgu" target="_blank"&gt;ScottGu&lt;/a&gt; and&#xD;
his team have released &lt;a href="http://www.aspnet/mvc" target="_blank"&gt;ASP.NET MVC&lt;/a&gt; 1.0&#xD;
but still there aren’t numerous books on this topic available in the market. As I&#xD;
know by far, these titles are available to purchase: &lt;a href="http://www.amazon.com/ASP-NET-MVC-Framework-Preview-Firstpress/dp/1430216468/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1240205892&amp;amp;sr=8-2" target="_blank"&gt;ASP.NET&#xD;
MVC Framework Preview&lt;/a&gt; and &lt;a href="http://www.amazon.com/ASP-NET-MVC-Quickly-Maarten-Balliauw/dp/184719754X/ref=pd_bbs_sr_4?ie=UTF8&amp;amp;s=books&amp;amp;qid=1240205892&amp;amp;sr=8-4" target="_blank"&gt;ASP.NET&#xD;
MVC 1.0 Quickly&lt;/a&gt;. I know there are many articles and blog posts containing valuable&#xD;
information and tutorials to start learning ASP.NET MVC but many developers prefer&#xD;
to read books because they are better structured to learn something. From the earlier&#xD;
previews, authors that had been starting to write books on this topic offered some&#xD;
sample chapters to introduce them to the community (and they are still doing) so I&#xD;
decided to list all (or at least most) of them here for a quick access. My list contains&#xD;
both PDF sample chapters as well as link to some authors’ blog posts which contain&#xD;
draft unedited versions of their books:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Maybe the best and most famous one is Chapter 1 of &lt;a href="http://www.amazon.com/Professional-ASP-NET-MVC-1-0-Conery/dp/0470384611/ref=pd_sim_b_6" target="_blank"&gt;Professional&#xD;
ASP.NET MVC 1.0&lt;/a&gt; that is written by Scott Guthrie and can be downloaded &lt;a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf" target="_blank"&gt;here&lt;/a&gt;.&#xD;
Scott has wrote a &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx" target="_blank"&gt;blog&#xD;
post&lt;/a&gt; on this too. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Chapter 13 of Professional ASP.NET MVC 1.0: “&lt;em&gt;Best of Both Worlds: Web Forms and&#xD;
MVC Together&lt;/em&gt;” can be downloaded from &lt;a href="http://media.wiley.com/assets/1539/15/professionalaspnet35mvc_chapter13.pdf" target="_blank"&gt;here&lt;/a&gt;. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Chapter 2 of &lt;a href="http://www.amazon.com/ASP-NET-MVC-Quickly-Maarten-Balliauw/dp/184719754X/ref=pd_bbs_sr_4?ie=UTF8&amp;amp;s=books&amp;amp;qid=1240205892&amp;amp;sr=8-4" target="_blank"&gt;ASP.NET&#xD;
MVC 1.0 Quickly&lt;/a&gt;: “&lt;em&gt;Your First ASP.NET MVC Application&lt;/em&gt;” can be downloaded&#xD;
from &lt;a href="http://www.packtpub.com/files/asp-net-mvc-1-0-quickly-sample-chapter-2-your-first-asp-net-mvc-application.pdf" target="_blank"&gt;here&lt;/a&gt;. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Chapter 9 of &lt;a href="http://www.amazon.com/ASP-NET-MVC-Action-Jeffrey-Palermo/dp/1933988622/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1240207993&amp;amp;sr=1-1" target="_blank"&gt;ASP.NET&#xD;
MVC in Action&lt;/a&gt;: “&lt;em&gt;AJAX in ASP.NET MVC&lt;/em&gt;” can be downloaded from &lt;a href="http://www.manning.com/palermo/palermo_meapch9_sample.pdf" target="_blank"&gt;here&lt;/a&gt;. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Chapter 2 of &lt;a href="http://www.amazon.com/gp/product/1430210079/ref=s9_subs_gw_s3_p14_i3?pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_s=center-4&amp;amp;pf_rd_r=0KGKRHH2JJEFS69GG6GZ&amp;amp;pf_rd_t=101&amp;amp;pf_rd_p=470939031&amp;amp;pf_rd_i=507846" target="_blank"&gt;Pro&#xD;
ASP.NET MVC Framework&lt;/a&gt;: “Your First ASP.NET MVC Application” can be downloaded&#xD;
from &lt;a href="http://www.apress.com/book/downloadfile/4358" target="_blank"&gt;here&lt;/a&gt;. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Chapter 9 of &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FBeginning-ASP-NET-MVC-Simone-Chiaretta%2Fdp%2F047043399X%2F&amp;amp;tag=codec04-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Beginning&#xD;
ASP.NET MVC 1.0&lt;/a&gt;: “Testing ASP.NET MVC Applications” can be downloaded found &lt;a href="http://codeclimber.net.nz/archive/2009/04/29/free-chapter-of-beginning-asp.net-mvc-1.0-ndash-testing-asp.net.aspx"&gt;here&lt;/a&gt;.&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Chapter 1, 2, 3, 4, 5, 6, 9 from &lt;a href="http://www.amazon.com/ASP-NET-Framework-Unleashed-Stephen-Walther/dp/0672329980/ref=pd_sim_b_2" target="_blank"&gt;ASP.NET&#xD;
MVC Framework Unleashed&lt;/a&gt; as a series of blog posts by Stephen Walther: &#xD;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/02/05/chapter-1-an-introduction-to-asp.net-mvc.aspx"&gt;&lt;em&gt;Chapter&#xD;
1 - An Introduction to ASP.NET MVC&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/02/07/chapter-2-building-a-simple-asp.net-mvc-application.aspx"&gt;&lt;em&gt;Chapter&#xD;
2 - Building a Simple ASP.NET MVC Application&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/02/13/chapter-3-understanding-controllers.aspx"&gt;&lt;em&gt;Chapter&#xD;
3 - Understanding Controllers&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/02/21/chapter-4-understanding-views.aspx"&gt;&lt;em&gt;Chapter&#xD;
4 - Understanding Views&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/02/27/chapter-5-understanding-models.aspx"&gt;&lt;em&gt;Chapter&#xD;
5 - Understanding Models&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/03/03/chapter-6-understanding-html-helpers.aspx"&gt;&lt;em&gt;Chapter&#xD;
6 - Understanding HTML Helpers&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stephenwalther.com/blog/archive/2009/02/06/chapter-2-understanding-routing.aspx"&gt;&lt;em&gt;Chapter&#xD;
9 - Understanding Routing&lt;/em&gt;&lt;/a&gt; (also a PDF version &lt;a href="http://www.informit.com/content/images/9780672329982/samplepages/0672329980_CH02.pdf" target="_blank"&gt;here&lt;/a&gt;,&#xD;
it is a little bit older so it is marked as Chapter 2) &#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
As &lt;a href="http://www.wrox.com" target="_blank"&gt;Wrox&lt;/a&gt; has announced, Professional&#xD;
ASP.NET MVC 1.0 is to be published in April and we’re close to see what ASP.NET team&#xD;
have done as a book for ASP.NET MVC developers!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fsharplife.net%2f2009%2f04%2f20%2fASPNETMVCFreeEBooks.aspx"&gt;&#xD;
            &lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fsharplife.net%2f2009%2f04%2f20%2fASPNETMVCFreeEBooks.aspx"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt; &lt;a href="http://dotnetshoutout.com/ASPNET-MVC-Free-eBooks" rev="vote-for"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fsharplife.net%2F2009%2F04%2F20%2FASPNETMVCFreeEBooks.aspx"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=74436846-c81b-4201-80b9-b2fee7795575"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xYWiuREE6bk2d-qTYMoiA7_sqRY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xYWiuREE6bk2d-qTYMoiA7_sqRY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xYWiuREE6bk2d-qTYMoiA7_sqRY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xYWiuREE6bk2d-qTYMoiA7_sqRY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,74436846-c81b-4201-80b9-b2fee7795575.aspx</comments>
      <category>ASP.NET MVC</category>
      <category>Book Review</category>
      <category>Download</category>
      <category>eBooks</category>
      <category>Freebies</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=762f087a-3f80-4385-b3b2-418c6d884d60</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,762f087a-3f80-4385-b3b2-418c6d884d60.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,762f087a-3f80-4385-b3b2-418c6d884d60.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=762f087a-3f80-4385-b3b2-418c6d884d60</wfw:commentRss>
      <slash:comments>6</slash:comments>
      
      <title>How to choose between ASP.NET MVC and Web Forms</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,762f087a-3f80-4385-b3b2-418c6d884d60.aspx</guid>
      <link>http://sharplife.net/2009/04/13/HowToChooseBetweenASPNETMVCAndWebForms.aspx</link>
      <pubDate>Mon, 13 Apr 2009 18:51:55 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;div&gt;&#xD;
          &lt;a title="ASP.NET MVC 1.0 Website Programming: Problem - Design - Solution" href="http://www.amazon.com/ASP-NET-MVC-1-0-Website-Programming/dp/0470410957/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1239644987&amp;amp;sr=1-1" target="_blank"&gt;&#xD;
            &lt;img style="border-width: 0px; display: inline; margin-left: 0px; margin-right: 0px;" src="http://ecx.images-amazon.com/images/I/512C70Eg8EL._SL500_AA240_.jpg" align="left" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/div&gt;&#xD;
A few days ago I had a chance to see a &lt;a href="http://twitter.com/wrox/statuses/1447182448" target="_blank"&gt;tweet&lt;/a&gt; from &lt;a href="http://www.wrox.com" target="_blank"&gt;Wrox&lt;/a&gt; inviting&#xD;
users to participate in a private review access to &lt;a href="http://www.amazon.com/ASP-NET-MVC-1-0-Website-Programming/dp/0470410957/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1239644026&amp;amp;sr=8-2" target="_blank"&gt;ASP.NET&#xD;
MVC 1.0 Website Programming: Problem - Design – Solution&lt;/a&gt; and fortunately I was&#xD;
among those 10 lucky guys who  gained access to the first eight chapters of the&#xD;
book (it sounds good that authors are starting to offer sample chapters in private&#xD;
or public preview forms like what ScottGu has done by &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx" target="_blank"&gt;publishing&lt;/a&gt; the&#xD;
first chapter of &lt;a href="http://www.amazon.com/Professional-ASP-NET-MVC-1-0-Conery/dp/0470384611/ref=pd_bxgy_b_img_b" target="_blank"&gt;Professional&#xD;
ASP.NET MVC 1.0&lt;/a&gt;). Meanwhile I don’t want to write a classic review post about&#xD;
this book because the book is not yet officially published and also I don’t have access&#xD;
to other chapters. I just want to thank Wrox guys and book authors to do this and&#xD;
I’m sure such movements will increase Wrox books quality. &#xD;
&lt;p&gt;&lt;/p&gt;&lt;div&gt;What I want to talk about in this blog post is a very good ‘How to’ section in&#xD;
chapter 2 of this book: ‘How do I choose between MVC and Web Forms’. It has been a&#xD;
common question among all ASP.NET developers since the first preview releases of &lt;a href="http://www.asp.net/mvc" target="_blank"&gt;ASP.NET&#xD;
MVC&lt;/a&gt; and many guys in the community have wrote posts and articles about it. The&#xD;
last discussion I remember on this topic was &lt;a href="http://rachelappel.com/" target="_blank"&gt;Rachel&#xD;
Appel&lt;/a&gt;’s session at MIX ‘09 titled ‘&lt;a href="http://videos.visitmix.com/MIX09/T23F" target="_blank"&gt;Choosing&#xD;
between ASP.NET Web Forms and MVC&lt;/a&gt;’ (you can also download a high-res video &lt;a href="http://mschannel9.vo.msecnd.net/o9/mix/09/wmv-hq/t23f.wmv" target="_blank"&gt;here&lt;/a&gt;)&#xD;
that was very useful. After reading the book preview chapters I found a very good&#xD;
and practical way to rank your real need in the book and it was a worksheet to help&#xD;
you make the right decision for a project; as we read in the book:&#xD;
&lt;/div&gt;&lt;hr&gt;&lt;/hr&gt;&lt;div&gt;&lt;strong&gt;After publishing this post I found out that author has already posted&#xD;
about this on his own website. So to respect his and Wrox Press rights I removed the&#xD;
mentioned section from chapter 2 of the book and you can read about it at &lt;/strong&gt;&lt;a title="http://www.coderjournal.com/2008/12/introducing-aspnet-mvc-part-2-aspnet-mvc-vs-webforms/" href="http://www.coderjournal.com/2008/12/introducing-aspnet-mvc-part-2-aspnet-mvc-vs-webforms/"&gt;http://www.coderjournal.com/2008/12/introducing-aspnet-mvc-part-2-aspnet-mvc-vs-webforms/&lt;/a&gt;  &#xD;
&lt;div&gt;&lt;hr&gt;&lt;/hr&gt;&lt;br&gt;&lt;div&gt;P.S.: I want to thank Nick Berardi, Al Katawazi and Marco Bellinaso, that are&#xD;
the book authors, for their cool book :-)&#xD;
&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;P.S. (2): As I found out (after publishing this post, and I swear I haven’t ever&#xD;
seen that) there is an &lt;a href="http://www.coderjournal.com/2008/12/introducing-aspnet-mvc-part-2-aspnet-mvc-vs-webforms/" target="_blank"&gt;original&#xD;
post&lt;/a&gt; about this by Nick Berardi and so &lt;strike&gt;I reference it here and I may remove&#xD;
the whole post content except this link if Nick or Wrox request&lt;/strike&gt; (I did it)&#xD;
that but it seems that &lt;a href="http://leedumond.com/" target="_blank"&gt;someone&lt;/a&gt; likes&#xD;
to argue about this more than what the owners of the book should do. Dear Lee! I don’t&#xD;
need to get impression as you said; I just wanted to spread a good word and thank&#xD;
them but you introduced me as a community killer and I’m so sorry for you!&#xD;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fsharplife.net%2f2009%2f04%2f13%2fHowToChooseBetweenASPNETMVCAndWebForms.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fsharplife.net%2f2009%2f04%2f13%2fHowToChooseBetweenASPNETMVCAndWebForms.aspx" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=762f087a-3f80-4385-b3b2-418c6d884d60"&gt;&lt;/img&gt;&lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/h_5_LG_DkodqOijqsupvE2ogAwo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h_5_LG_DkodqOijqsupvE2ogAwo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/h_5_LG_DkodqOijqsupvE2ogAwo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h_5_LG_DkodqOijqsupvE2ogAwo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,762f087a-3f80-4385-b3b2-418c6d884d60.aspx</comments>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
      <category>Book Review</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=0d2e4c3b-8de7-4533-b885-dfb687dcadc1</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,0d2e4c3b-8de7-4533-b885-dfb687dcadc1.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,0d2e4c3b-8de7-4533-b885-dfb687dcadc1.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0d2e4c3b-8de7-4533-b885-dfb687dcadc1</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Centralize your identity with Chi.mp</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,0d2e4c3b-8de7-4533-b885-dfb687dcadc1.aspx</guid>
      <link>http://sharplife.net/2009/01/03/CentralizeYourIdentityWithChimp.aspx</link>
      <pubDate>Sat, 03 Jan 2009 13:34:38 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
A few months ago I found an amazing Web 2.0 free service called &lt;a target="_blank" href="http://chi.mp"&gt;Chi.mp&lt;/a&gt;.&#xD;
As Chi.mp guys have stated in their about section, main goal of this service is centralizing&#xD;
online identity consists of content (blog entries, photos, videos, tweets, etc.) and&#xD;
your contacts and friends in one place. Once you sign up with them you receive a dedicated&#xD;
domain name with .mp extension (.mp is the ccTLD for the U.S. Commonwealth of the&#xD;
Northern Marianas Islands (CNMI); for more information take a look at &lt;a target="_blank" href="https://get.mp/"&gt;get.mp&lt;/a&gt; website)&#xD;
and then you can setup and configure your current social activities into your domain.mp.&#xD;
Many services like Twitter, Flickr, YouTube, Facebook, RSS Feeds, etc. are supported&#xD;
now. Your visitors then can see your latest updates on social sites in one place and&#xD;
also can see your contact information based on your public/private settings.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Another amazing feature that Chi.mp offers to its users is &lt;a target="_blank" href="http://en.wikipedia.org/wiki/OpenID"&gt;OpenID&lt;/a&gt;!&#xD;
Yes! Chi.mp is an OpenID provider and once you sign up with them, your own domain&#xD;
name is an OpenID address as well. This is great because you can use a very pretty,&#xD;
short and easy to remember address as your OpenID instead of those ugly URLs provided&#xD;
by Google, Yahoo and other OpenID service providers!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
You can also define an email address on your own .mp domain name and forward it to&#xD;
your favorite email address. Mine is &lt;a href="mailto:i@mahdi.mp"&gt;i@mahdi.mp&lt;/a&gt; now!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Chi.mp is a ‘by invites only’ service at present and you should request current .mp&#xD;
owners to send you an invite (if any left!) or being in a waiting list by adding your&#xD;
information &lt;a target="_blank" href="http://chi.mp/interested"&gt;here&lt;/a&gt;. [Sorry! I&#xD;
don’t have any invites at present!]&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Since Chi.mp is still in beta stage there are many many features that can be added&#xD;
and more enhancements that can be applied to this service and I’m sure it can be one&#xD;
of the most favorite services of 2009 among Web 2.0 geeks.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
By the way, my Chi.mp account can be found at &lt;a href="http://mahdi.mp"&gt;http://mahdi.mp&lt;/a&gt; ;-)&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=0d2e4c3b-8de7-4533-b885-dfb687dcadc1"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gfrY52Wit1tuqgcYR2IWbuEOD5c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gfrY52Wit1tuqgcYR2IWbuEOD5c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gfrY52Wit1tuqgcYR2IWbuEOD5c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gfrY52Wit1tuqgcYR2IWbuEOD5c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,0d2e4c3b-8de7-4533-b885-dfb687dcadc1.aspx</comments>
      <category>Freebies</category>
      <category>Personal</category>
      <category>Web 2.0</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=56cc9b4f-42b6-4583-a410-7c51dedc6af0</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,56cc9b4f-42b6-4583-a410-7c51dedc6af0.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,56cc9b4f-42b6-4583-a410-7c51dedc6af0.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=56cc9b4f-42b6-4583-a410-7c51dedc6af0</wfw:commentRss>
      
      <title>Happy New Year 2009</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,56cc9b4f-42b6-4583-a410-7c51dedc6af0.aspx</guid>
      <link>http://sharplife.net/2009/01/01/HappyNewYear2009.aspx</link>
      <pubDate>Thu, 01 Jan 2009 16:22:47 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Happy New Year 2009!" border="0" alt="Happy New Year 2009!" align="right" src="http://sharplife.net/content/binary/WindowsLiveWriter/HappyNewYear2009_10AE3/new-year-2009-greeting-card_12.png" width="200" height="150"&gt;&lt;/img&gt;I&#xD;
would like to congratulate the new year of 2009 to my readers all around the world&#xD;
who celebrate these days as new year holidays. I wish a coming year full of happiness&#xD;
and prosperity for you both in your personal life and also your job and technical&#xD;
stuff. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Unfortunately 2008 was not a very good and productive year for me despite I didn’t&#xD;
had any major problem and I was happy with my wife, my little &lt;a target="_blank" href="http://tabassom.com"&gt;daughter&lt;/a&gt; and&#xD;
my good friends but I expected better life and work opportunities. Anyway we passed&#xD;
2008 and it’s time to take a fresh breath!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In my opinion it’s not late yet while we are alive! We’ve started a new year and I&#xD;
hope I would gain my goals in this new year.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I’m going to learn something new in 2009 that one of most important of them is &lt;a target="_blank" href="http://www.asp.net/mvc/"&gt;ASP.NET&#xD;
MVC&lt;/a&gt;. Microsoft new web programming framework will rock MSFT web dev community&#xD;
in the coming months and I should learn more and more. So I’ve already pre-ordered&#xD;
a copy of &lt;a target="_blank" href="http://www.amazon.com/Professional-ASP-NET-MVC-1-0-Conery/dp/0470384611/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1230824801&amp;amp;sr=8-2"&gt;Professional&#xD;
ASP.NET MVC 1.0&lt;/a&gt; and I expect it within the March 2009. &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx"&gt;WCF&lt;/a&gt; may&#xD;
be the next candidate. We may also think of relocating our office but we (me and my&#xD;
friends at &lt;a target="_blank" href="http://www.digitalpersia.com"&gt;Digital Persia&lt;/a&gt; Corp.)&#xD;
have not yet decided.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I hope I would expand my activities in the .NET community as well. A site dedicated&#xD;
to ASP.NET MVC is one of my main projects (We are at early stage and I will write&#xD;
a post about it in near future; hopingly after RC release). This site will be founded&#xD;
by me and one of my dear friends but I don’t mention his name now because I guess&#xD;
he doesn’t yet like to announce his participation.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
As I write more I remember more overdue stuff to put on schedule in 2009; one of them&#xD;
is migrating my blog from dasBlog to something else (BlogEngine.NET or Graffiti).&#xD;
What do you suggest?!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Anyway, I try to make a better 2009 because nobody else can! Let’s remember God and&#xD;
try to help each other more.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=56cc9b4f-42b6-4583-a410-7c51dedc6af0"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pWq7GUl49HSky-dkkRxHpqliBq4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pWq7GUl49HSky-dkkRxHpqliBq4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pWq7GUl49HSky-dkkRxHpqliBq4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pWq7GUl49HSky-dkkRxHpqliBq4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,56cc9b4f-42b6-4583-a410-7c51dedc6af0.aspx</comments>
      <category>Life</category>
      <category>Personal</category>
      <category>SharpLife.NET</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=9c2d031a-1de8-4a7d-a937-30daaed3036e</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,9c2d031a-1de8-4a7d-a937-30daaed3036e.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,9c2d031a-1de8-4a7d-a937-30daaed3036e.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9c2d031a-1de8-4a7d-a937-30daaed3036e</wfw:commentRss>
      
      <title>Microsoft Released Anti-XSS 3.0 Beta and CAT.NET CTP</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,9c2d031a-1de8-4a7d-a937-30daaed3036e.aspx</guid>
      <link>http://sharplife.net/2008/12/15/MicrosoftReleasedAntiXSS30BetaAndCATNETCTP.aspx</link>
      <pubDate>Mon, 15 Dec 2008 10:53:21 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Recently Microsoft released a beta edition of Anti-XSS library V3.0. Here’s a list&#xD;
of some new features which were added in this release:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
An expanded white list that supports more languages&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Performance improvements&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Performance data sheets (in the online help)&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Support for Shift_JIS encoding for mobile browsers&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
A sample application&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Security Runtime Engine (SRE) HTTP module&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Also as you can read on Microsoft Connected Information Security Group &lt;a target="_blank" href="http://blogs.msdn.com/cisg/"&gt;blog&lt;/a&gt; they&#xD;
have also released a CTP version of CAT.NET (Microsoft Code Analysis Tool .NET) which&#xD;
is a managed code static analysis tool for finding security vulnerabilities such as&#xD;
Cross Site Scripting - SQL Injection - Process Command Injection - File Canonicalization&#xD;
- Exception Information, etc.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;Downloads:&lt;/strong&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?familyid=051ee83c-5ccf-48ed-8463-02f56a6bfc09&amp;amp;displaylang=en&amp;amp;tm"&gt;Microsoft&#xD;
Anti-Cross Site Scripting Library V3.0 Beta&lt;/a&gt; (&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3ffamilyid%3d051ee83c-5ccf-48ed-8463-02f56a6bfc09%26displaylang%3den%26tm"&gt;Kick&#xD;
It!&lt;/a&gt;)&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a target="_blank" href="http://www.codeplex.com/AntiXSS/SourceControl/ListDownloadableCommits.aspx"&gt;Anti-XSS&#xD;
V3.0 Beta Source Code&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0178e2ef-9da8-445e-9348-c93f24cc9f9d&amp;amp;displaylang=en"&gt;Microsoft&#xD;
Code Analysis Tool .NET (CAT.NET) v1 CTP - 32 bit&lt;/a&gt; (&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3fFamilyId%3d0178e2ef-9da8-445e-9348-c93f24cc9f9d%26displaylang%3den"&gt;Kick&#xD;
It!&lt;/a&gt;)&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=e0052bba-2d50-4214-b65b-37e5ef44f146&amp;amp;displaylang=en"&gt;Microsoft&#xD;
Code Analysis Tool .NET (CAT.NET) v1 CTP - 64 bit&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fsharplife.net%2f2008%2f12%2f15%2fMicrosoftReleasedAntiXSS30BetaAndCATNETCTP.aspx"&gt;&#xD;
            &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fsharplife.net%2f2008%2f12%2f15%2fMicrosoftReleasedAntiXSS30BetaAndCATNETCTP.aspx" border="0" alt="kick it on DotNetKicks.com"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=9c2d031a-1de8-4a7d-a937-30daaed3036e"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2b4A4iOwAQhYwJYryuCXX20SsuQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2b4A4iOwAQhYwJYryuCXX20SsuQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2b4A4iOwAQhYwJYryuCXX20SsuQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2b4A4iOwAQhYwJYryuCXX20SsuQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,9c2d031a-1de8-4a7d-a937-30daaed3036e.aspx</comments>
      <category>.NET General</category>
      <category>ASP.NET</category>
      <category>Download</category>
      <category>Microsoft</category>
      <category>Security</category>
    </item>
    <item>
      <trackback:ping>http://sharplife.net/Trackback.aspx?guid=19f8e64a-6298-4dc7-8f0a-5233dadf73bd</trackback:ping>
      <pingback:server>http://sharplife.net/pingback.aspx</pingback:server>
      <pingback:target>http://sharplife.net/PermaLink,guid,19f8e64a-6298-4dc7-8f0a-5233dadf73bd.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://sharplife.net/CommentView,guid,19f8e64a-6298-4dc7-8f0a-5233dadf73bd.aspx</wfw:comment>
      <wfw:commentRss>http://sharplife.net/SyndicationService.asmx/GetEntryCommentsRss?guid=19f8e64a-6298-4dc7-8f0a-5233dadf73bd</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Receive your free 1-year license for McAfee Virus Scan Plus 2009</title>
      <guid isPermaLink="false">http://sharplife.net/PermaLink,guid,19f8e64a-6298-4dc7-8f0a-5233dadf73bd.aspx</guid>
      <link>http://sharplife.net/2008/12/11/ReceiveYourFree1yearLicenseForMcAfeeVirusScanPlus2009.aspx</link>
      <pubDate>Thu, 11 Dec 2008 07:29:27 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
McAfee, the famous security products vendor, offers a %100 discount on McAfee Virus&#xD;
Scan Plus 2009 + 1 year free subscription (a $40 value). To receive your own free&#xD;
license just go &lt;a target="_blank" href="http://us.mcafee.com/root/campaign.asp?cid=53347"&gt;here&lt;/a&gt; and&#xD;
enter &lt;strong&gt;VSPPROMOCF&lt;/strong&gt; as coupon code and click on checkout; now you have&#xD;
a $0 shopping card!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Offer is valid through &lt;strong&gt;December 31, 2008&lt;/strong&gt;. You can download your copy&#xD;
for Windows 2000, Windows XP and Windows Vista.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
+ [via &lt;a target="_blank" href="http://www.labnol.org/software/download-mcafee-antivirus-software-free/5972/"&gt;Labnol&lt;/a&gt;]&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
+ It seems that free Anti Virus offers is going to be expanded after Microsoft announced&#xD;
free Anti Virus offer in near future!&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=19f8e64a-6298-4dc7-8f0a-5233dadf73bd"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/D1QRwmhN4HrtBRggwtMDDycfE9E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D1QRwmhN4HrtBRggwtMDDycfE9E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/D1QRwmhN4HrtBRggwtMDDycfE9E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/D1QRwmhN4HrtBRggwtMDDycfE9E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <comments>http://sharplife.net/CommentView,guid,19f8e64a-6298-4dc7-8f0a-5233dadf73bd.aspx</comments>
      <category>Download</category>
      <category>Freebies</category>
      <category>Security</category>
      <category>Software</category>
    </item>
  </channel>
</rss>
