<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>SharpLife.NET</title>
  <link rel="alternate" type="text/html" href="http://sharplife.net/" />
  <link rel="self" href="http://sharplife.net/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2009-11-18T17:18:17.8039653-07:00</updated>
  <author>
    <name>Mahdi Taghizadeh</name>
  </author>
  <subtitle>A sharp way to know more // Mahdi Taghizadeh's Daily Web Keystrokes.</subtitle>
  <id>http://sharplife.net/</id>
  <generator uri="http://www.dasblog.net" version="2.0.7180.0">DasBlog</generator>
  <entry>
    <title>Translating your content title using Google Translate API to use in a URL</title>
    <link rel="alternate" type="text/html" href="http://sharplife.net/2009/11/19/TranslatingYourContentTitleUsingGoogleTranslateAPIToUseInAURL.aspx" />
    <id>http://sharplife.net/PermaLink,guid,d15e1433-3a33-4392-a7cb-3306b297ba95.aspx</id>
    <published>2009-11-18T17:11:02.5440658-07:00</published>
    <updated>2009-11-18T17:18:17.8039653-07:00</updated>
    <category term="AJAX" label="AJAX" scheme="http://sharplife.net/CategoryView,category,AJAX.aspx" />
    <category term="i18n" label="i18n" scheme="http://sharplife.net/CategoryView,category,i18n.aspx" />
    <category term="JavaScript" label="JavaScript" scheme="http://sharplife.net/CategoryView,category,JavaScript.aspx" />
    <category term="SEO" label="SEO" scheme="http://sharplife.net/CategoryView,category,SEO.aspx" />
    <category term="Tips and Tricks" label="Tips and Tricks" scheme="http://sharplife.net/CategoryView,category,Tips%2Band%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Following my previous posts on <a href="http://sharplife.net/2009/04/29/HowToHandleNonEnglishCharactersInASPNETMVCRoutes.aspx">How
to handle non-English characters in ASP.NET MVC routes</a>, <a href="http://sharplife.net/2009/10/14/BuildPrettyCleanURLForYourDynamicPagesUsingJavaScript.aspx">Build
pretty clean URL for your dynamic pages using JavaScript</a> and <a href="http://sharplife.net/2008/10/30/NonEnglishWordsInURL.aspx">Non
English Words in URL</a> I decided to share another simple tip that let you translate
what your user inserts as content’s title (that can be a blog post title, a page name
or a news headline) automatically using <a href="http://code.google.com/apis/ajaxlanguage/">Google
Translate API</a>.
</p>
        <p>
Let me explain it with an example. Suppose that you have a news system in Persian
language and your end user enters a Persian phrase like “این یک عنوان خبر است” as
the headline of a news story. From SEO point of view it’s better we include original
headline words in URL (like something that I explained in this <a href="http://sharplife.net/2008/10/30/NonEnglishWordsInURL.aspx">post</a>)
instead of using an integer ID or GUID (e.g. /news/?id=1 or /news/1.aspx, etc.) but
as we discussed on in that post, including non-English characters in URLs is not the
best way! I just wanted to have something like <em>/news/story/this-is-a-title </em>and
didn’t want to force user translate his words into English in order to use in URL
field.
</p>
        <p>
A few days ago I was thinking on this topic and decided to try a trick to utilize
Google Translate API (which has recently started supporting Persian language as well)
to translate such titles into meaningful English phrases and then clean them using
the way I described in this <a href="http://sharplife.net/2009/10/14/BuildPrettyCleanURLForYourDynamicPagesUsingJavaScript.aspx">post</a>.
</p>
        <p>
Fortunately, thanks to Google API simplicity it was so easy and straightforward. Here’s
what I wrote:
</p>
        <ol>
          <li>
First you should include Google API JavaScript source in your page: 
<br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:367203c3-e5bb-4cb1-8286-e6bff8bf0f70" class="wlWriterEditableSmartContent"><pre class="brush: html">&lt;script type="text/javascript" src="http://www.google.com/jsapi"&gt;&lt;/script&gt;</pre></div></li>
          <li>
Add this JavaScript code to your page: 
<br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:4e2a79ea-62ec-42f1-a4ab-d5a3ef47a1f0" class="wlWriterEditableSmartContent"><pre class="brush: javascript">$(document).ready(function() {
        $("#contentPage_Title").blur(function() { parseUrl($("#contentPage_Title").val()) });
    });


        google.load("language", "1");
        function parseUrl(url) {
            $("#loadingImage").attr("style", function() { return "display: inline;" });
            google.language.translate(url, "fa", "en", function(result) {
                if (!result.error) {
                    var url = (result.translation + " ").replace(/[^a-zA-Z0-9]+/g, "-");
                    $("#contentPage_Url").val(url.slice(0, url.length - 1).toLowerCase());
                    $("#loadingImage").attr("style", function() { return "display: none;" });
                }
            });
        } 

</pre></div></li>
        </ol>
        <p>
You’re done! Now, let me explain the code a little. First using jQuery, you tell the
DOM to fire parseUrl() event as soon as you enter the title and go to the next field,
then, we load Google Translate service into our script, call translate function to
translate from “fa” (Persian) to “en” (English) and finally clean the result using
our old trick. That’s all and no magic here!
</p>
        <p>
Please note that we show and hide a “Loading” element (e.g.: a loading image) before
and after we call AJAX translate function. So user can see something is happening
behind the scene. 
<br /></p>
        <pre class="html" name="code"> </pre>
        <pre class="html" name="code"> </pre>
        <p>
          <a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fsharplife.net%2f2009%2f11%2f19%2fTranslatingYourContentTitleUsingGoogleTranslateAPIToUseInAURL.aspx">
            <img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fsharplife.net%2f2009%2f11%2f19%2fTranslatingYourContentTitleUsingGoogleTranslateAPIToUseInAURL.aspx" border="0" alt="kick it on DotNetKicks.com" />
          </a>
        </p>
        <img width="0" height="0" src="http://sharplife.net/aggbug.ashx?id=d15e1433-3a33-4392-a7cb-3306b297ba95" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Build pretty clean URL for your dynamic pages using JavaScript</title>
    <link rel="alternate" type="text/html" href="http://sharplife.net/2009/10/14/BuildPrettyCleanURLForYourDynamicPagesUsingJavaScript.aspx" />
    <id>http://sharplife.net/PermaLink,guid,0859b75d-ffdc-4330-a3ce-63cbbd4c2a98.aspx</id>
    <published>2009-10-14T14:35:06.5259651-06:00</published>
    <updated>2009-10-14T15:21:51.756061-06:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://sharplife.net/CategoryView,category,ASP.NET.aspx" />
    <category term="ASP.NET MVC" label="ASP.NET MVC" scheme="http://sharplife.net/CategoryView,category,ASP.NET%2BMVC.aspx" />
    <category term="JavaScript" label="JavaScript" scheme="http://sharplife.net/CategoryView,category,JavaScript.aspx" />
    <category term="SEO" label="SEO" scheme="http://sharplife.net/CategoryView,category,SEO.aspx" />
    <category term="Tutorial" label="Tutorial" scheme="http://sharplife.net/CategoryView,category,Tutorial.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Once again I want to talk about URLs and who doesn’t know that I’m a big fan of friendly,
clean and pretty URLs in my applications! When you write an application (for example
a blog engine) you have multiple choices to create unique URL for a single post; you
can include an integer ID (myblog.com/458) or a GUID instead of integer or the best
way, a friendly URL like myblog.com/hey-i-am-a-clean-url. This value should be unique
and should not be changed if your blog post title is changed; so we should have a
separate column in our database table to store this friendly URL. I wrote a simple
JavaScript code that receives your blog post title, clean it from non alphanumeric
characters and replaces them with a dash, change all characters to lower case and
make it ready to be sent to your business logic handler:
</p>
        <pre class="csharpcode">
          <span class="kwrd">
          </span>
        </pre>
        <div class="csharpcode">
          <pre class="alt">&lt;script type=<span class="str">"text/javascript"</span> language=<span class="str">"javascript"</span>&gt;</pre>
          <pre>
            <span class="kwrd">function</span> parseUrl(url) {</pre>
          <pre class="alt">
            <span class="kwrd">var</span> cleanUrl = (url + <span class="str">"
"</span>).replace(/[^a-zA-Z0-9]+/g, <span class="str">"-"</span>);</pre>
          <pre>
            <span class="kwrd">return</span> cleanUrl.slice(0, cleanUrl.length -1).toLowerCase();</pre>
          <pre class="alt">&lt;/script&gt;</pre>
        </div>
        <style type="text/css">


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <style type="text/css">


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