<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Nawaf's Blog</title><link>http://weblogs.asp.net/nawaf/default.aspx</link><description>When you do something, you should burn yourself completely, like a good bonfire, leaving no trace of yourself -Shunryu Suzuki</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Does Web Services Message Provide Reliability?</title><link>http://weblogs.asp.net/nawaf/archive/2009/04/14/does-web-services-message-provide-reliability.aspx</link><pubDate>Tue, 14 Apr 2009 16:40:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7046192</guid><dc:creator>nawaf.albadia</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=7046192</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2009/04/14/does-web-services-message-provide-reliability.aspx#comments</comments><description>&lt;p&gt;Web Service uses HTTP protocol as a communication channel, HTTP also uses TCP/IP protocol. The whole purpose of TCP is to be able to transfer data reliably and so it employs acknowledgements and sliding window mechanisms to guarantee the delivery of the data. That’s said; does Web Service Message provide reliability? &lt;a href="http://weblogs.sketch.com.sa/?p=72" target="_blank" mce_href="http://weblogs.sketch.com.sa/?p=72"&gt;You will find my answer to this question in this article&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://weblogs.sketch.com.sa/wp-content/uploads/2009/04/fig1.jpg" mce_src="http://weblogs.sketch.com.sa/wp-content/uploads/2009/04/fig1.jpg" width="650" height="446"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To read the complete article&lt;/p&gt;&lt;p&gt;&lt;a href="http://weblogs.sketch.com.sa/?p=72" target="_blank" mce_href="http://weblogs.sketch.com.sa/?p=72"&gt;&amp;nbsp;Does Web Services Message Provide Reliability?&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Hope this helps :) &lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7046192" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nawaf/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Simple JavaScript Debugger using jQuery</title><link>http://weblogs.asp.net/nawaf/archive/2009/04/14/simple-javascript-debugger-using-jquery.aspx</link><pubDate>Tue, 14 Apr 2009 16:27:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7046179</guid><dc:creator>nawaf.albadia</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=7046179</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2009/04/14/simple-javascript-debugger-using-jquery.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Hi,&lt;/p&gt;&lt;p&gt;Debugging has been one of the main tools developers use to detect and find application bugs. These tools vary from simple print statement to sophisticated tools such as IDE debuggers and profiling tools. &lt;br&gt;&lt;/p&gt;&lt;p&gt;I posted an entry about writing quite simple Javascript debugger. It's basically a small jQuery method that submit the debug statement to the server through AJAX call.&amp;nbsp; You may want to have look at it&lt;/p&gt;&lt;p&gt;&lt;a href="http://weblogs.sketch.com.sa/?p=45" target="_blank" mce_href="http://weblogs.sketch.com.sa/?p=45"&gt;Simple JavaScript Debugger using jQuery&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7046179" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nawaf/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/JavaScript/default.aspx">JavaScript</category></item><item><title>Sketch</title><link>http://weblogs.asp.net/nawaf/archive/2009/03/10/sketch.aspx</link><pubDate>Tue, 10 Mar 2009 16:53:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6952508</guid><dc:creator>nawaf.albadia</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=6952508</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2009/03/10/sketch.aspx#comments</comments><description>&lt;p&gt;For the last four months I have been working with two great guys to establish our own IT company.&amp;nbsp; Since I was in college I was dreaming to establish my own company.&amp;nbsp; Having an IT company and talk about technologies always fascinate me. I made several attempts and worked in several companies. Now I have Sketch :)&lt;br&gt;&lt;br&gt;&lt;img src="http://weblogs.sketch.com.sa/wp-content/uploads/images/sketch-rgb.gif" title="Sketch.com.sa" alt="Sketch.com.sa" mce_src="http://weblogs.sketch.com.sa/wp-content/uploads/images/sketch-rgb.gif" height="152" width="279"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.sketch.com.sa/" mce_href="http://www.sketch.com.sa/"&gt;http://www.sketch.com.sa&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cnawaf%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 
  
  
 
&lt;/xml&gt;&lt;![endif]--&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cnawaf%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cnawaf%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 
  Normal
  0
  
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  AR-SA
  
   
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;

&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;/p&gt;&lt;h2&gt;Who Are We?&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.sketch.com.sa/"&gt;Sketch&lt;/a&gt; is a company that was formed
by experts in the area of Information Technology (IT) to meet the increase need
of IT solutions in Saudi Arabia. With a deep experience in the area of
application development and customization , we are able to deliver topnotch
solutions within time and within the scope of the client budget. Our area of
experience range from standalone application development to web based
enterprise solutions and open source customization.&lt;/p&gt;

&lt;h2&gt;How can we help you?&lt;/h2&gt;

&lt;p&gt;Enterprises are facing pressure to deliver their services as quick as
possible while maintaining cost effective solutions. Using IT, it is possible
to adopt solutions that can help you to achieve your business goals. But in
order to fully utilize IT solutions, it is important to map your business needs
into the solution while taking care of risks associated with implementing
project which includes IT, i.e. lack of knowledge of the technology, and
general risks, i.e. project exceeded the budget.&lt;/p&gt;

&lt;p&gt;Sketch can help you to reach to your goals without worrying about those
specific issues. We can provide you with many services whether your business needs
forces you to build a complete solution or to customize existing solutions,
open source or property. Check the following services to get a better
understanding of how we can help:&lt;/p&gt;

&lt;ul type="disc"&gt;&lt;li&gt;&lt;a href="http://www.sketch.com.sa/Solutions/Default.aspx" id="ctl00_BodyContentPlaceHolder_HyperLink_Solutions"&gt;Solutions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sketch.com.sa/WebDev/Default.aspx" id="ctl00_BodyContentPlaceHolder_HyperLink_Services"&gt;Web Development&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sketch.com.sa/Consultancy/Default.aspx" id="ctl00_BodyContentPlaceHolder_HyperLink_Consultancy"&gt;Consultancy&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Why Sketch?&lt;/h2&gt;

&lt;p&gt;We are not a regular IT company which works from the sideline; rather we are
a company that works with you to achieve your goals and satisfaction. Moreover,
There are other reasons that make Sketch your primary IT solution and
consultancy including:&lt;/p&gt;

&lt;ul type="disc"&gt;&lt;li&gt;Experts in the IT area
     especially on application development.&lt;/li&gt;&lt;li&gt;Work for very competitive
     prices while delivering high quality solutions.&lt;/li&gt;&lt;li&gt;Operate with credibility,
     aiming at long-term run with the customer.&lt;/li&gt;&lt;li&gt;Ensure that all the client's
     requirements are met.&lt;/li&gt;&lt;li&gt;Breakdown of service with
     flexible charge types.&lt;/li&gt;&lt;li&gt;Development in Sketch is
     based on the agile development process. This ensure the delivery of the
     solution as pieces of functions which limits the risks of failure and
     maximize project visibility, predictability, and adaptability&lt;/li&gt;&lt;/ul&gt;



&amp;nbsp;&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cnawaf%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 
  
  
 
&lt;/xml&gt;&lt;![endif]--&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cnawaf%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cnawaf%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 
  Normal
  0
  
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  AR-SA
  
   
   
   
   
   
   
   
   
   
   
   
  
  
   
   
   
   
   
   
   
   
   
   
   
  
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;

&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;h2&gt;Sketch Blog&lt;/h2&gt;&lt;p&gt;&lt;a href="http://weblogs.sketch.com.sa/" mce_href="http://weblogs.sketch.com.sa/"&gt;http://weblogs.sketch.com.sa/&lt;/a&gt; &lt;br&gt;&lt;/p&gt;



&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6952508" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nawaf/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/Sketch/default.aspx">Sketch</category></item><item><title>Display a Nice Error Popup Window - Extended</title><link>http://weblogs.asp.net/nawaf/archive/2008/11/28/display-a-nice-error-popup-window-extended.aspx</link><pubDate>Fri, 28 Nov 2008 11:05:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6758208</guid><dc:creator>nawaf.albadia</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=6758208</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2008/11/28/display-a-nice-error-popup-window-extended.aspx#comments</comments><description>&lt;p&gt;Last time I blogged about how to &lt;a href="http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx" target="_blank" mce_href="http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx"&gt;display a nice error message&lt;/a&gt; to the user using only one line of declarative code. Today I want to show you how to extend that. Usually when you develop a Website you need to deal with exception either system or application specific exceptions. Pattern &amp;amp; Practices team have already provided us with a great &lt;a href="http://msdn.microsoft.com/en-us/library/dd203116.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/dd203116.aspx"&gt;exception handling application block&lt;/a&gt; which is part of &lt;a href="http://msdn.microsoft.com/en-us/library/dd203099.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/dd203099.aspx"&gt;Enterprise Library&lt;/a&gt;. I’m not going to write my own here, but rather integrate the &lt;a href="http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx" target="_blank" mce_href="http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx"&gt;Error Pop window&lt;/a&gt; with theirs.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Prerequisite readings:&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd139985.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/dd139985.aspx"&gt;The Exception Handling Application Block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx" target="_blank" mce_href="http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx"&gt;Display a Nice Error Popup Window&lt;/a&gt; &lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In general when you get an error while processing HTTP request you either do&lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Display error message to the user &lt;i&gt;e.g. credit card number is invalid.&lt;/i&gt;&lt;/li&gt;

&lt;li&gt;Display error message to the user &amp;amp; log the exception &lt;i&gt;e.g.&amp;nbsp; failed to update item due to concurrency problem.&lt;/i&gt;&lt;/li&gt;

&lt;li&gt;Don’t display error message to the user but log the exception.&amp;nbsp; &lt;i&gt;e.g.&amp;nbsp; internal errors such as failed to send a welcome email.&lt;/i&gt;&lt;/li&gt;

&lt;li&gt;Transfer the user to error page, and log the exception.&amp;nbsp; &lt;i&gt;e.g. fatal errors such as failed to complete user transaction.&lt;/i&gt;&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course there are other scenarios, but these are very common.&amp;nbsp; Now lets write the procedure that will take care of the above scenarios. At the end we need only to invoke a single routine with a specific error severity level.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Now lets define the exception severity level based on the definition we did earlier.&lt;br&gt;&lt;a href="http://weblogs.asp.net/blogs/nawaf/images/ExceptionSeverity.jpg" mce_href="http://weblogs.asp.net/blogs/nawaf/images/ExceptionSeverity.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/images/ExceptionSeverity.jpg" mce_src="http://weblogs.asp.net/blogs/nawaf/images/ExceptionSeverity.jpg" border="0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now each severity defines a &lt;span style="font-weight: bold;"&gt;Policy&lt;/span&gt;. These policies implement the contract for each severity type. Obviously, we need to define an interface that will define that contract that must be implemented by each policy. such as &lt;/p&gt;

&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nawaf/images/IExceptionPolicy.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/images/IExceptionPolicy.jpg" border="0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above interface has one method on it. Which defines the policy execution of which all policies must implement. In the attachment you will find all four (Exception Severity) policies implemented. I will only show MediumPolicyException as example.&amp;nbsp; As we stated above,&amp;nbsp; the medium exception policy is:&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp; ** Display error message to the user &amp;amp; log the exception e.g.&amp;nbsp; failed to update item due to concurrency problem.&lt;/p&gt;

&lt;p&gt;So we will display a nice error message to the user as pop error message (For more details on this one check &lt;a href="http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx" target="_blank" mce_href="http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx"&gt;Display a Nice Error Popup Message&lt;/a&gt;). In Addition to, publish the exception using Microsoft Pattern &amp;amp; Practices Exception Application Block (For more information on how to use The &lt;a href="http://msdn.microsoft.com/en-us/library/dd203116.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/dd203116.aspx"&gt;Exception Application Block&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The following is the MediumPolicyException implementation for the IExceptionPolicy interface. &lt;/p&gt;



&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nawaf/images/MediumExceptionPolicy.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/images/MediumExceptionPolicy.jpg" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;How to use it?&lt;/h2&gt;You will find in the attachment a complete Demo + Source Code that show you how use all the scenarios. But here I will show only how to possibly invoke the MediumPolicyException implementation using the Medium Exception severity. 
&lt;p&gt;&amp;nbsp;&lt;a href="http://weblogs.asp.net/blogs/nawaf/images/MediumExceptionInvocation.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/images/MediumExceptionInvocation.jpg" border="0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ExceptionManager class is responsible for resolving the Policy implementation (&lt;b&gt;Enhancement&lt;/b&gt;: Use IOC:&lt;a href="http://msdn.microsoft.com/en-us/library/dd140117.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/dd140117.aspx"&gt; Unity framework&lt;/a&gt;).&amp;nbsp; The Handle method takes two parameters ExceptionDetail which contains all details needed to display and publish the error. Second parameter, is the severity level.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;Demo:&lt;/h2&gt;
&lt;p&gt;You will find in the attachment a demo application that show how to use the code in this post:&lt;br&gt;&lt;br&gt;This is the main screen, and as you can see all the four levels are shown.&lt;/p&gt;&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nawaf/images/DemoMainPage.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/images/DemoMainPage.jpg" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now if you click on LowException button, according to our definition&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp;&amp;nbsp; Display error message to the user e.g. credit card number is invalid.&lt;/p&gt;&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nawaf/images/LowExceptionDemo.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/images/LowExceptionDemo.jpg" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now what happen when we click on “HighException” Button. Again based on our definition &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Transfer the user to error page, and log the exception.&amp;nbsp; e.g. fatal errors such as failed to complete user transaction&lt;br&gt;&lt;br&gt;When we click on the highException. The library will automatically will direct the user to the defined Error page, and publish the exception. Publishing the exception through the exception handling application block. In the demo I have created to listeners FileExceptionPublisher and XMLExceptionPublisher. &lt;/p&gt;&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nawaf/images/HighExceptionDemo.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/images/HighExceptionDemo.jpg" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;After you click the “HighException” button you will see error log in APP_Data/Logs/ ErrorLog.txt&amp;nbsp; with output similar to &lt;br&gt;&lt;br&gt;General Information&lt;br&gt;&lt;br&gt;Additonal Info:&lt;br&gt;ExceptionManager.MachineName: **************&lt;br&gt;ExceptionManager.TimeStamp: 29/11/2008 17:43:39&lt;br&gt;ExceptionManager.FullName: Microsoft.ApplicationBlocks.ExceptionManagement, Version=1.0.2928.16878, Culture=neutral, PublicKeyToken=d8e970896b1fa9ac&lt;br&gt;ExceptionManager.AppDomainName: d70380a-1-128724430245207500&lt;br&gt;ExceptionManager.ThreadIdentity: *************\nawaf&lt;br&gt;ExceptionManager.WindowsIdentity: *************\nawaf&lt;br&gt;&lt;br&gt;Exception Information:&lt;br&gt;ExceptionManagement.AppException: This is a high Exception&lt;br&gt;&amp;nbsp;&amp;nbsp; at ErrorPopup.Web._Default.Button_HighException_Click(Object sender, EventArgs e) in C:\Documents and Settings\nawaf\My Documents\Visual Studio 2008\Projects\ErrorModalPopUp2\ErrorPopup.Web\Default.aspx.cs:line 74 &lt;br&gt;&lt;br&gt;&lt;br&gt;Also an email will be sent to the Site admin if it’s enabled. You can check the demo for more details.&lt;br&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Download the source code and the app demo and give it a try.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;Hope this helps guys :)&lt;br&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6758208" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/nawaf/attachment/6758208.ashx" length="1067754" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/nawaf/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Display a Nice Error Popup Window</title><link>http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx</link><pubDate>Thu, 02 Oct 2008 18:59:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6654080</guid><dc:creator>nawaf.albadia</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=6654080</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2008/10/02/display-a-nice-error-popup-window.aspx#comments</comments><description>&lt;p&gt;I always hated web sites that show Javascript alert message to tell the user about an error. Doing so make me feel that I'm in front of desktop application and not a web app. May be the alternative is to have an error page where you redirect the user in case of any error. This definitely works fine, but sometimes it bugs me when I get redirected to that error page just because my credit card number is wrong. Of course we can use the validation controls as a standard or with AJAX support to handle that.&lt;/p&gt;&lt;p&gt;Anyhow, I needed to display an error message to the user as popup window, or at least this is the requirement of the project that I'm working on. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/images/ErrorWindow.jpg" title="Error Popup window" alt="Error Popup window" mce_src="http://weblogs.asp.net/blogs/nawaf/images/ErrorWindow.jpg" width="590" height="325"&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;To display the above error message you just need to add &lt;/p&gt;&lt;p&gt;&amp;lt;nw:ErrorPopUp ID="ErrorWindow" runat="server" Title="Error Message" Message="Put Error Message here" Show="true"&amp;nbsp; &amp;gt;&amp;lt;/nw:ErrorPopUp&amp;gt;&lt;/p&gt;&lt;p&gt;This control leverages the Modal Popup control which is part of the &lt;a href="http://www.asp.net/ajax/ajaxcontroltoolkit/" target="_blank" mce_href="http://www.asp.net/ajax/ajaxcontroltoolkit/"&gt;AJAX Controls Toolkit&lt;/a&gt;.&amp;nbsp; The &lt;span style="font-weight: bold;"&gt;ErrorPopup &lt;/span&gt;control is highly configurable in which you can change the look and feel, behavior &lt;span style="font-weight: bold;"&gt;&lt;/span&gt; and a lot's of things.&amp;nbsp; For example when you want to show the error message all you need to do is to set the property &lt;span style="font-weight: bold;"&gt;Show &lt;/span&gt;to &lt;span style="font-weight: bold;"&gt;'true' &lt;/span&gt;or invoke the &lt;span style="font-weight: bold;"&gt;ShowControl()&lt;/span&gt; method to display the error window.&lt;br&gt;&lt;/p&gt;&lt;p&gt;In the attachment you will find the control source-code, and demo web app. The control is written in separate DLL, all related JS, CSS styles and images are embedded in that dll so you can easily add it to your web project. &lt;/p&gt;&lt;p&gt;Hope this helps&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6654080" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/nawaf/attachment/6654080.ashx" length="664211" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/nawaf/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>SyntaxHighlighter Plug-in for Tinymce 3.X WYSIWYG Editor</title><link>http://weblogs.asp.net/nawaf/archive/2008/04/10/syntaxhighlighter-plug-in-for-tinymce-3-x-wysiwyg-editor.aspx</link><pubDate>Thu, 10 Apr 2008 15:55:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6083024</guid><dc:creator>nawaf227</dc:creator><slash:comments>27</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=6083024</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2008/04/10/syntaxhighlighter-plug-in-for-tinymce-3-x-wysiwyg-editor.aspx#comments</comments><description>&lt;p&gt;SyntaxHighlighter Plug-in for Tinymce 3.X is ready now. I don’t know why tinymce development team had to change the way of writing plug-in for the tinymce, they say it’s more modular.&amp;nbsp; What bothered me really is that there is no backward compatibility. That’s you must upgrade (Actually it’s rather migrate) your plug-in to the new way.&lt;br&gt;&lt;br&gt;Anyway, I have upgraded the plug-in I talked about &lt;a href="http://weblogs.asp.net/nawaf/archive/2008/04/06/syntaxhighlighter-plugin-for-tinymce-wysiwyg-editor.aspx" mce_href="http://weblogs.asp.net/nawaf/archive/2008/04/06/syntaxhighlighter-plugin-for-tinymce-wysiwyg-editor.aspx"&gt;here&lt;/a&gt;, to work on tinymce 3.x. To get it running on your site please use the &lt;b&gt;attached file in this post&lt;/b&gt; and follow the same instructions on this &lt;a href="http://weblogs.asp.net/nawaf/archive/2008/04/06/syntaxhighlighter-plugin-for-tinymce-wysiwyg-editor.aspx" mce_href="http://weblogs.asp.net/nawaf/archive/2008/04/06/syntaxhighlighter-plugin-for-tinymce-wysiwyg-editor.aspx"&gt;blog entry&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/CodeHighlighting2.jpg" mce_src="http://weblogs.asp.net/blogs/nawaf/CodeHighlighting2.jpg" height="553" width="536"&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Hope this helps &lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6083024" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/nawaf/attachment/6083024.ashx" length="7476" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/nawaf/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/Tinymce+plugin/default.aspx">Tinymce plugin</category></item><item><title>SyntaxHighlighter Plugin for Tinymce WYSIWYG Editor</title><link>http://weblogs.asp.net/nawaf/archive/2008/04/06/syntaxhighlighter-plugin-for-tinymce-wysiwyg-editor.aspx</link><pubDate>Sun, 06 Apr 2008 11:14:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6071786</guid><dc:creator>nawaf227</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=6071786</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2008/04/06/syntaxhighlighter-plugin-for-tinymce-wysiwyg-editor.aspx#comments</comments><description>&lt;p mce_keep="true"&gt;&lt;span style="font-size: 10pt; font-family: 'Arial','sans-serif';"&gt;&lt;a href="http://code.google.com/p/syntaxhighlighter/" class="" mce_href="http://code.google.com/p/syntaxhighlighter/"&gt;SyntaxHighlighter&lt;/a&gt;&amp;nbsp;&lt;/span&gt;is an incredible code syntax highlighting tool. It's 100% Java Script based and it doesn't care what you have on your server.&amp;nbsp; I believe any IT blog should have it. I needed to use this tool in my site, I use tinymce WYSIWYG, so I said this tool must work on tinymce.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.daemon.com.au/go/blog-post/getting-tinymce-to-play-nice-with-dp-syntaxhighlighter" class="" target="_blank" mce_href="http://blog.daemon.com.au/go/blog-post/getting-tinymce-to-play-nice-with-dp-syntaxhighlighter"&gt;Geoff Bowers&lt;/a&gt; pointed out that you need to wrap the code inside textarea . I quote this from his blog &lt;/p&gt;
&lt;p mce_keep="true"&gt;“One of the great features of tinyMCE is the way it tries to clean up mangled HTML. It's not perfect but it does a bang up job. One of its approaches to this problem is to strip out all HTML elements it doesn't consider to be valid. This typically includes textarea by default.&lt;br&gt;You can add to the valid elements in tinyMCE by adjusting the config slightly. Make sure you include all the relevant attributes you might need"&lt;/p&gt;
&lt;p mce_keep="true"&gt;Since I can’t ask my site visitors to add the code every time they post a snippet of a code, so I wrote a plug-in for tinymce. This plug-in works only on tinymce 2.X. I will work to provide support for tinymce 3.X very soon.&amp;nbsp; To get it working you need first to download&amp;nbsp; SyntaxHighlighter&amp;nbsp;and then follow the installation steps. Then follow extract the attached file into the tinymce&amp;nbsp;plugins folder. Then in the tinymce init function make sure you include the Bold lines.&lt;/p&gt;
&lt;p mce_keep="true"&gt;&amp;lt;script language="javascript" type="text/javascript"&amp;gt;&lt;br&gt;&amp;nbsp;tinyMCE.init({&lt;br&gt;&amp;nbsp;mode : "textareas",&lt;br&gt;&amp;nbsp;theme : "advanced",&lt;br&gt;&amp;nbsp;theme_advanced_toolbar_location : "top",&lt;br&gt;&amp;nbsp;auto_resize:false,&lt;br&gt;&lt;b&gt;&amp;nbsp;extended_valid_elements: "textarea[name|class|cols|rows]",&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; remove_linebreaks : false,&lt;/b&gt; &lt;br&gt;&amp;nbsp;width:720,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; plugins : 'preview,&lt;b&gt;codehighlighting'&lt;/b&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; theme_advanced_toolbar_align : "right",&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; theme_advanced_buttons1_add : " fontselect,fontsizeselect,zoom",&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; theme_advanced_buttons2_add : "preview,separator,forecolor,backcolor",&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; theme_advanced_buttons3_add_before : "tablecontrols, &lt;b&gt;codehighlighting&lt;/b&gt;"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;});&lt;br&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p mce_keep="true"&gt;This is the popup screen for the &lt;b&gt;CodeHighlighting&lt;/b&gt;&amp;nbsp; plugin.&lt;/p&gt;
&lt;p mce_keep="true"&gt;&lt;img src="http://weblogs.asp.net/blogs/nawaf/CodeHighlighting.jpg" style="width: 527px; height: 536px;" mce_src="http://weblogs.asp.net/blogs/nawaf/CodeHighlighting.jpg" height="536" width="527"&gt;&lt;/p&gt;
&lt;p mce_keep="true"&gt;Hope this helps&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6071786" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/nawaf/attachment/6071786.ashx" length="9680" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/nawaf/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/Tinymce+plugin/default.aspx">Tinymce plugin</category></item><item><title>Run CMD / Java application using C#</title><link>http://weblogs.asp.net/nawaf/archive/2008/02/08/run-cmd-java-application-using-c.aspx</link><pubDate>Fri, 08 Feb 2008 17:40:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5737627</guid><dc:creator>nawaf227</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=5737627</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2008/02/08/run-cmd-java-application-using-c.aspx#comments</comments><description>&lt;P&gt;Few days ago I needed to write a piece of code to call ANT file that builds some java files using the following CMD command ant –f build.xml. The process is rather straight forward task.&amp;nbsp; Use System.Diagnostics.Process that’s all, Easy.&lt;/P&gt;
&lt;P&gt;To get the output result from the child process I redirect the standard output and the standard error and then read from the stream. &lt;/P&gt;
&lt;P&gt;String output = process.StandardOutput.ReadToEnd(); &lt;BR&gt;String error = process.StandardError.ReadToEnd();&lt;/P&gt;
&lt;P&gt;I developed my application under vista and after testing everything seems OK, until I moved it to the server (windows 2003). Whenever I run the process it hangs and never exist???&lt;/P&gt;
&lt;P&gt;After struggling, the problem wasn’t OS related it was rather normal behavior if you try to read both stdoutput and stderr at the same time!! There problem is clearly explained at &lt;A href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput(VS.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput(VS.80).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The document suggests to create threads to handle this issue or alternatively use OutputDataReceived event, and so I did:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 663px; HEIGHT: 437px" height=437 src="http://tech-podcasts.net/wp-content/uploads/podcasts/images/outputDataReceived.jpg" width=663 mce_src="http://tech-podcasts.net/wp-content/uploads/podcasts/images/outputDataReceived.jpg"&gt;&lt;/P&gt;
&lt;P&gt;For complete source code listing please refer to the attachment&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Hope this helps &lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5737627" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/nawaf/attachment/5737627.ashx" length="1872" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/nawaf/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Oracle to buy BEA for $8.5 billion – How .NET community perceives that - Updated</title><link>http://weblogs.asp.net/nawaf/archive/2008/01/16/oracle-to-buy-bea-for-8-5-billion-how-net-community-perceives-that.aspx</link><pubDate>Wed, 16 Jan 2008 18:28:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5609857</guid><dc:creator>nawaf227</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=5609857</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2008/01/16/oracle-to-buy-bea-for-8-5-billion-how-net-community-perceives-that.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Today &lt;A class="" href="http://www.bea.com/" target=_blank mce_href="http://www.bea.com"&gt;BEA Corporation&lt;/A&gt; announced that &lt;A class="" href="http://www.oracle.com/" target=_blank mce_href="http://www.oracle.com"&gt;Oracle&lt;/A&gt; acquired the company's shares for $8.5 billion. That's a big money.&amp;nbsp; BEA makes middleware applications. Weblogic Server is its strongest mainstream product. Aqualogic BPM (ESB) comes second which supports .NET technology for interoperability and service bus aware applications.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;BR&gt;There is no doubt that this news will be perceived by many as good and bad news as will. I work on Weblogic for quite some time now, and can surely say it is a great product.&lt;BR&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;There is no doubt that .NET technology is great too. I think .NET is now mature enough to enter the enterprise arena. But I wonder why we don't see companies build enterprise products such BEA's (in size).&amp;nbsp; Is it because we don't have such J2EE specification, or is it because .NET is only stream from Microsoft. Or perhaps we can't run .NET on cross platforms. May be there is no need to hit enterprise market now. Too many questions!!!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;BR&gt;If we hypothetically assumed Microsoft is targeting medium to small business as most of people say, aren't there any others who are willing to implement enterprise systems (perhaps Middleware) using .NET.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;BR&gt;I know there are few out there, but I mean why we always hear Java first in enterprise business then .NET second.&lt;BR&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;I hope you share your thoughts about this, so we might find out the answer&amp;nbsp;:) &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;[Update]&lt;/P&gt;
&lt;P mce_keep="true"&gt;The following is a graph represents a comparison between .NET and J2EE by Gartner the world's leading information technology research and advisory. 5-9 November Cannes-France Symposium ITXPO 2006&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 442px; HEIGHT: 331px" height=331 src="http://weblogs.asp.net/blogs/nawaf/Gartner1.jpg" width=442 mce_src="http://weblogs.asp.net/blogs/nawaf/Gartner1.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 733px; HEIGHT: 564px" height=564 src="http://weblogs.asp.net/blogs/nawaf/Gartner2.jpg" width=551 mce_src="http://weblogs.asp.net/blogs/nawaf/Gartner2.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5609857" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/nawaf/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/Community+News/default.aspx">Community News</category></item><item><title>NFA with Lambda Transition</title><link>http://weblogs.asp.net/nawaf/archive/2007/12/17/nfa-with-lambda-transition.aspx</link><pubDate>Mon, 17 Dec 2007 23:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5466426</guid><dc:creator>nawaf227</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=5466426</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2007/12/17/nfa-with-lambda-transition.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;This semester I have a course about Automata, Formal Languages and Computability. It didn’t sound a good course for me at the beginning, but I after a while, I wished if I had this course before I did Compiler course back when I was doing my BCs. It was so hard for me to build a scanner for the compiler, we have had knowledge before though about FSA, but I think I didn’t grasp the whole picture back then.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Since the born of computer technology and the scientist haven’t and won’t stop searching for ways to simulate human minds. Recognition is one of these attempts, this field received so much attention for the last several&amp;nbsp; years, and have various fields such as string recognition, image recognition etc.&amp;nbsp;FSA (Finite State Automata) was one of these attempts!!!&lt;/P&gt;
&lt;P mce_keep="true"&gt;For this course, I have got to implement Nondeterministic Finite State Automation &lt;STRONG&gt;NFA-with Lambda transition&lt;/STRONG&gt;, or sometimes called &lt;STRONG&gt;NFA-epsilon&lt;/STRONG&gt;, for more information about &lt;A class="" href="http://en.wikipedia.org/wiki/Nondeterministic_finite_state_machine" target=_blank mce_href="http://en.wikipedia.org/wiki/Nondeterministic_finite_state_machine"&gt;NFA checkout Wikipedia&lt;/A&gt;.&amp;nbsp; Since there is a Lambda word in it I thought to use the new cool features in .NET 3.5, such LINQ, Extension Methods and especially Lambda Expression off course :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;My Implementation is fairly simple, if you are looking for more sophisticated and geeky code that uses C5 library then probably you might want to &lt;A class="" href="http://aabs.wordpress.com/2007/01/16/342/" target=_blank mce_href="http://aabs.wordpress.com/2007/01/16/342/"&gt;checkout Andrew Matthews Blog&lt;/A&gt; (NFA only, No lambda transition). The idea is quite simple; you have the following to consider:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Set of Alphabets. &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Set of States (e.g. q1, q2 etc)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Start States.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Final States (Accepted States).&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Transition Function&amp;nbsp; (From_State, Symbol, To_State).&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Since&amp;nbsp; I’m about to&amp;nbsp; implement NFA with Lambda transition, I need first to build NFA then add lambda feature to it later.&amp;nbsp; So let’s get started and build NFA,&lt;/P&gt;
&lt;P mce_keep="true"&gt;I tried to build NFA to be&lt;STRONG&gt; Generic class&lt;/STRONG&gt; so you can use any the data structure you like. I extensively make use of the Generic class &lt;EM&gt;System.Collections.Generic.List;&lt;/EM&gt; you might want to use some generic dictionaries that are&amp;nbsp;implemented&amp;nbsp;in &lt;EM&gt;C5 library&lt;/EM&gt; to enhance the performance. For this demo I will stick to&amp;nbsp;the &amp;nbsp;.NET framework and keep it simple.&lt;/P&gt;
&lt;P mce_keep="true"&gt;For NFA we define the following, note here the generic type Q denote the state type and S denote symbol type. In NFA class we define&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;List to store the current states.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;A Transition table that accepted the form.&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN dir=ltr&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Georgia','serif'; mso-bidi-font-family: Arial"&gt;[ &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;State&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;lt;Q&amp;gt;, S, &lt;SPAN style="COLOR: #2b91af"&gt;State&lt;/SPAN&gt;&amp;lt;Q&amp;gt;] == &amp;gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Georgia','serif'; mso-bidi-font-family: Arial"&gt;(From_State, Symbol, To_State)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;List of all states each states has a type.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 217px; HEIGHT: 114px" height=114 src="http://www.mostasharok.net/files/images/aspblog/nfa/StateTypes.jpg" width=217 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/StateTypes.jpg"&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;List of all alphabets.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 645px; HEIGHT: 256px" height=256 src="http://www.mostasharok.net/files/images/aspblog/nfa/NFAClass.jpg" width=645 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/NFAClass.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;You might notice that start states and final states are missing here !!!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;We create them as properties, by saying hay give me all the states where the type is equals to start state using lambda Expression for instance &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 595px; HEIGHT: 185px" height=185 src="http://www.mostasharok.net/files/images/aspblog/nfa/StartState.jpg" width=595 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/StartState.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Generally, the most important methods in the NFA class are&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN dir=ltr&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;GetNextStates&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN dir=ltr&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;ConsumeInputSymbol&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN dir=ltr&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;ComsumeAllInputSymbols&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Georgia','serif'; mso-bidi-font-family: Arial"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Georgia','serif'; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Method: GetNextStates:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Here we use &lt;STRONG&gt;LINQ&lt;/STRONG&gt; to to filter out the transition table and find the next states. Also note we marked the method as &lt;STRONG&gt;virtual&lt;/STRONG&gt; because we will be overriding it when we implement the NFA-with Lambda class.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 698px; HEIGHT: 317px" height=317 src="http://www.mostasharok.net/files/images/aspblog/nfa/GetNextStates.jpg" width=698 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/GetNextStates.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Method: ConsumeInputSymbol&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 602px; HEIGHT: 406px" height=406 src="http://www.mostasharok.net/files/images/aspblog/nfa/ConsumeInputSymbol.jpg" width=602 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/ConsumeInputSymbol.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Method: ComsumeAllInputSymbols&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 563px; HEIGHT: 236px" height=236 src="http://www.mostasharok.net/files/images/aspblog/nfa/ConsumeAllInputSymbol.jpg" width=563 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/ConsumeAllInputSymbol.jpg"&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;NFA with Lambda Transition:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As probably you can guess, the only thing need to be changed in the class NFA to accomidate lambda tranision is the method GetNextStates, so we first build the new class &lt;STRONG&gt;NFAWithLambda&lt;/STRONG&gt; and have it extend (inherit from the class NFA)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 522px; HEIGHT: 49px" height=49 src="http://www.mostasharok.net/files/images/aspblog/nfa/NFAWithLambda.jpg" width=522 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/NFAWithLambda.jpg"&gt;&lt;/P&gt;
&lt;P&gt;For this library I assumed that Lambda is represented by &lt;STRONG&gt;NULL&lt;/STRONG&gt; and that’s why I have added the restriction &lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: Calibri; mso-no-proof: yes; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;where&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: Calibri; mso-no-proof: yes; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt; S: &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt;&lt;/SPAN&gt; to enfore anyone who use this library to supply a reference type for the symbol e.g string &lt;/P&gt;
&lt;P&gt;Please refer to the code attached for reference to the implementation of the&amp;nbsp;method &lt;STRONG&gt;GetNextStates&lt;/STRONG&gt; in the &lt;STRONG&gt;NFAWithLambda&lt;/STRONG&gt;.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Testing the code:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In the attachment you will find two applictions; one is a console and the other is UI based.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 630px; HEIGHT: 500px" height=500 src="http://www.mostasharok.net/files/images/aspblog/nfa/NFAUI.jpg" width=630 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/NFAUI.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I will post here some code that shows how to test the library &lt;BR&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 684px; HEIGHT: 389px" height=389 src="http://www.mostasharok.net/files/images/aspblog/nfa/CodeDemoPart1.jpg" width=684 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/CodeDemoPart1.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG style="WIDTH: 682px; HEIGHT: 451px" height=451 src="http://www.mostasharok.net/files/images/aspblog/nfa/CodeDemoPart2.jpg" width=682 mce_src="http://www.mostasharok.net/files/images/aspblog/nfa/CodeDemoPart2.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Hope this Help,&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5466426" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/nawaf/attachment/5466426.ashx" length="303347" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/nawaf/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/NFA/default.aspx">NFA</category></item><item><title>Sending Email in C# (Sync/Async, Multiple recipients, Attachments, etc).</title><link>http://weblogs.asp.net/nawaf/archive/2007/12/07/sending-email-in-c-sync-async-multiple-recipients-attachments-etc.aspx</link><pubDate>Fri, 07 Dec 2007 18:08:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5418787</guid><dc:creator>nawaf227</dc:creator><slash:comments>26</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/nawaf/rsscomments.aspx?PostID=5418787</wfw:commentRss><comments>http://weblogs.asp.net/nawaf/archive/2007/12/07/sending-email-in-c-sync-async-multiple-recipients-attachments-etc.aspx#comments</comments><description>&lt;P&gt;This might seems a naive post about sending email, especially when there are hundreds of posts out there. However, most of these posts don't show a complete or comprehensive example for the beginners on how to send email with more options. I'm sure when you search for the phrase "Sending email using C#" you will find a plenty of results, but if you look closely you will see every post focuses on one thing perhaps attachment, multiple recipients, etc.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;: This post is intended for beginners and folks who want to copy the class and use it directly in their application :)&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;I remember that I wrote a class for sending email, which I still use till today, and I&amp;nbsp;thought to share it with you.&amp;nbsp; This class provides most of the basic functionalities that I need and it covers: &lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;Send Sync and Async emails.&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;Attachments.&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;Send email to multiple recipients.&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;Send text and HTML email.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The class provide many overloading methods for the send email, we will just focus here on two basic methods one for Sync and the other for Async. To switch between Sync and Async I created a delegate method as follow &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;IMG title="Send delegate method" style="WIDTH: 908px; HEIGHT: 151px" height=151 alt="Send delegate method" src="http://www.mostasharok.net/files/images/aspblog/delegate.jpg" width=908 mce_src="http://www.mostasharok.net/files/images/aspblog/delegate.jpg"&gt;&lt;/P&gt;
&lt;P&gt;The synchronous send email method would look like this &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;IMG title="Synchronuos send email method" style="WIDTH: 1054px; HEIGHT: 312px" height=312 alt="Synchronuos send email method" src="http://www.mostasharok.net/files/images/aspblog/sync.jpg" width=1054 mce_src="http://www.mostasharok.net/files/images/aspblog/sync.jpg"&gt;&lt;/P&gt;
&lt;P&gt;The Asynchronous send email method would look like this &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;IMG title="Asynchronuos send mail method" style="WIDTH: 1083px; HEIGHT: 375px" height=375 alt="Asynchronuos send mail method" src="http://www.mostasharok.net/files/images/aspblog/Async.jpg" width=1179 mce_src="http://www.mostasharok.net/files/images/aspblog/Async.jpg"&gt;&lt;/P&gt;
&lt;P&gt;The main method that will do the sending is the following &lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;IMG title="The main send email method" style="WIDTH: 1079px; HEIGHT: 802px" height=802 alt="The main send email method" src="http://www.mostasharok.net/files/images/aspblog/SendMail.jpg" width=1130 mce_src="http://www.mostasharok.net/files/images/aspblog/SendMail.jpg"&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;In the config file configure the SMTP server host &lt;/P&gt;
&lt;P&gt;&lt;IMG title="SMTP Cofig Section" style="WIDTH: 909px; HEIGHT: 132px" height=132 alt="SMTP Cofig Section" src="http://www.mostasharok.net/files/images/aspblog/Config.jpg" width=909 mce_src="http://www.mostasharok.net/files/images/aspblog/Config.jpg"&gt;&lt;/P&gt;
&lt;P&gt;if you want you can add the follwing code to the main method above to explicitly set the SMTP host as follow &lt;/P&gt;
&lt;P&gt;&lt;IMG title="set the SMTP server host" style="WIDTH: 1086px; HEIGHT: 226px" height=226 alt="set the SMTP server host" src="http://www.mostasharok.net/files/images/aspblog/SMTPHost.jpg" width=1194 mce_src="http://www.mostasharok.net/files/images/aspblog/SMTPHost.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this help :)&lt;BR&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5418787" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/nawaf/attachment/5418787.ashx" length="47603" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/nawaf/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nawaf/archive/tags/C_2300_/default.aspx">C#</category></item></channel></rss>