<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://bhaidar.net/cs/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>Bilal Haidar [MVP, MCT] Official Blog</title><link>http://bhaidar.net/cs/blogs/default.aspx</link><description>Microsoft MVP ASP/ASP.NET, MCP, MCTS, MCPD, MCT</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Resolving an Object with Names Registered Types in Microsoft Unity Block</title><link>http://bhaidar.net/cs/archive/2008/08/17/resolving-an-object-with-names-registered-types-in-microsoft-unity-block.aspx</link><pubDate>Mon, 18 Aug 2008 05:38:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:21776</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>The title of this post might seem a little bit awkward, so I will explain briefly the topic of this&lt;br&gt;post then go directly to some sample codes.&lt;br&gt;&lt;br&gt;When using the Microsoft Unity Block (URL) and register two type mappings for the same Interface each specificed by a name, and then&lt;br&gt;you want to resolve an Object that is dependent on an instance of the above Interface, you need to resolve one of the above two implementations&lt;br&gt;of the Interface, then resolve your Object that is dependent on an instance of the interface (both Constructor and Property Dependency Injection).&lt;br&gt;&lt;br&gt;Here is a sample code to illustrate the above:&lt;br&gt;&lt;br&gt;// Initialize a new Container&lt;br&gt;IUnityContainer container = new UnityContainer();&lt;br&gt;&lt;br&gt;// Register the ITesting interface to map to Testing1 class that &lt;br&gt;// implements the interface and give this mapping a name "Testing1"&lt;br&gt;container.RegisterType&amp;lt;ITesting, Testing1&amp;gt;("Testing1");&lt;br&gt;&lt;br&gt;// Register the ITesting interface to map to Testing1 class that &lt;br&gt;// implements the interface and give this mapping a name "Testing2"&lt;br&gt;container.RegisterType&amp;lt;ITesting, Testing2&amp;gt;("Testing2");&lt;br&gt;&lt;br&gt;// Get an instance of the ITesting mapping object, in this case Testing1 class&lt;br&gt;ITesting iTestingObj = container.Resolve&amp;lt;ITesting&amp;gt;("Testing1");&lt;br&gt;&lt;br&gt;// Resolve Testing class that has a constructor &lt;br&gt;// dependency injection on ITesting interface&lt;br&gt;Testing testingObj = container.Resolve&amp;lt;Testing&amp;gt;(); &lt;br&gt;&lt;br&gt;&lt;br&gt;Without first of all resolving an instance of the ITesting interface based on&lt;br&gt;one of the above registered type mappings, resolving Testing class and its dependent interface&lt;br&gt;would not have worked.&lt;br&gt;&lt;br&gt;Hope this post helps!&lt;br&gt;Regards&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=21776" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/Microsoft+Unity+Block/default.aspx">Microsoft Unity Block</category><category domain="http://bhaidar.net/cs/archive/tags/Unity+Block/default.aspx">Unity Block</category></item><item><title>Community Nights Session - Software Design Patterns</title><link>http://bhaidar.net/cs/archive/2008/08/07/community-nights-session-software-design-patterns.aspx</link><pubDate>Thu, 07 Aug 2008 16:16:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:21226</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>1</slash:comments><description>&lt;span id="dnn_ctr415_ContentPane" align="center"&gt;&lt;span id="dnn_ctr415_HtmlModule_HtmlHolder" class="Normal"&gt;&lt;p align="center"&gt;&lt;font face="Verdana" size="5"&gt;&lt;b&gt;Community Nights Session&lt;br&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoPlainText" align="center"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span class="HeadingText" id="dnn_ctr389_SessionRegistration_lblSessionTitle2"&gt;Software Design Patterns&lt;/span&gt;&lt;font face="Verdana" size="2"&gt;&lt;font face="Tahoma"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span class="HeadingText" id="dnn_ctr389_SessionRegistration_lblSessionSpeaker"&gt;Rabeeh Abla&lt;/span&gt;&lt;font face="Verdana" size="2"&gt;&lt;font face="Tahoma"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt; &lt;font size="1"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;Software Architect - GlobalVision&lt;/font&gt;&lt;font face="Verdana" size="2"&gt;&lt;font face="Tahoma"&gt;&lt;font size="1"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;)&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;Monday, August 11, 2008 &lt;/span&gt;- 6:00 - 8:00&amp;nbsp;PM&lt;br&gt;&lt;font face="Verdana"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;Microsoft office&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;font face="Verdana" size="2"&gt;Please use the &lt;a href="http://www.lebdev.net/EventRegistration/tabid/60/Default.aspx"&gt;REGISTRATION PAGE&lt;/a&gt; to register for the session. &lt;b&gt;Seats are limited, make sure you confirm your attendance once you receive the email upon regisration.&lt;/b&gt; &lt;/font&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;font face="Verdana" size="2"&gt;&lt;b&gt;Note: If you have any problem with registration, please contact Bilal Haidar:&lt;br&gt;&lt;a href="mailto:bhaidar@live.com"&gt;bhaidar@live.com&lt;/a&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=21226" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://bhaidar.net/cs/archive/tags/lebdev.net/default.aspx">lebdev.net</category></item><item><title>Update on My First Book on ASP.NET - Professional ASP.NET 3.5 Security, Membership and Role Management with C# and VB</title><link>http://bhaidar.net/cs/archive/2008/07/24/update-on-my-first-book-on-asp-net-professional-asp-net-3-5-security-membership-and-role-management-with-c-and-vb.aspx</link><pubDate>Thu, 24 Jul 2008 17:58:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:19590</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;Now you can check my book on www.amazon.com by visiting the following link:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com/Professional-ASP-NET-Security-Membership-Management/dp/0470379308" target="_blank"&gt;Professional ASP.NET 3.5 Security, Membership, and Role Management with C# and VB&lt;/a&gt;&lt;/p&gt;&lt;table class="productImageGrid" align="left" cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;&lt;table style="text-align:center;" cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td id="prodImageCell"&gt;&lt;a href="http://www.amazon.com/gp/product/images/0470379308/ref=dp_image_0?ie=UTF8&amp;amp;n=283155&amp;amp;s=books" target="AmazonHelp"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51-vxZIK6hL._SL500_AA240_.jpg" id="prodImage" alt="Professional ASP.NET 3.5 Security, Membership, and Role Management with C# and VB" border="0" height="240" width="240"&gt;&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td class="tiny"&gt;&amp;nbsp;&lt;span id="prodImageCaption"&gt;&lt;br&gt;&lt;a href="http://www.amazon.com/gp/product/images/0470379308/ref=dp_image_text_0?ie=UTF8&amp;amp;n=283155&amp;amp;s=books" target="AmazonHelp"&gt;See larger image&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;







































&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;











    
    
    

    
    
    





 
















&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;










&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;table class="fionaPublishTable" cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td class="tl"&gt;&lt;br&gt;&lt;/td&gt;&lt;td class="tr"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class="bl"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="br"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;             
&lt;/table&gt;





&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

    








    
    
  
  
  
  
  
  


    
  
  

  
  
    


    











&lt;div class="buying"&gt;&lt;h1 class="parseasinTitle"&gt;&lt;span id="btAsinTitle"&gt;Professional ASP.NET 3.5 Security, Membership, and Role Management with C# and VB (Paperback)&lt;/span&gt;&lt;/h1&gt;






&lt;span&gt;

by &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url?%5Fencoding=UTF8&amp;amp;search-type=ss&amp;amp;index=books&amp;amp;field-author=Bilal%20Haidar"&gt;Bilal Haidar&lt;/a&gt; (Author)












&lt;/span&gt;

&lt;/div&gt;






&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;
  
    

  
    







    
    








    

    

      
    















    
    







    
    








    

    

      
    














  
  
    
    
    
  
  
    





















&lt;div class="buying" id="priceBlock"&gt;

&lt;table class="product"&gt;















  &lt;tr&gt;
    &lt;td class="priceBlockLabel"&gt;List Price:&lt;/td&gt;
    &lt;td class="listprice"&gt;$59.99 &lt;/td&gt;
  &lt;/tr&gt;
















  &lt;tr&gt;
    &lt;td class="priceBlockLabelPrice"&gt;Price:&lt;/td&gt;
    &lt;td&gt;&lt;b class="priceLarge"&gt;$37.79&lt;/b&gt; 

      

      




    
    






&amp;amp; this item ships for &lt;b&gt;FREE with Super Saver Shipping&lt;/b&gt;. 


&lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=mk_gship_dp?ie=UTF8&amp;amp;nodeId=527692&amp;amp;pop-up=1" target="SuperSaverShipping"&gt;Details&lt;/a&gt;







&lt;/td&gt;
&lt;/tr&gt;







  &lt;tr&gt;
    &lt;td class="priceBlockLabel"&gt;You Save:&lt;/td&gt;
    &lt;td class="price"&gt;$22.20
      (37%)
    &lt;/td&gt;
  &lt;/tr&gt;









&lt;tr style="visibility:visible;" id="specialOffersDiv" class="spTR"&gt;
  &lt;td class="productLabel"&gt;&lt;img src="http://g-ecx.images-amazon.com/images/G/01/promotions/sticker/twister_promo_sticker._V46685142_.gif" border="0" height="19" width="19"&gt;&lt;/td&gt;
  &lt;td class="tiny"&gt;&lt;a href="http://www.amazon.com/Professional-ASP-NET-Security-Membership-Management/dp/0470379308#productPromotions"&gt;Special Offers Available&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;









&lt;tr&gt;
  &lt;td&gt;&lt;br&gt;&lt;/td&gt;
  &lt;td class="buying"&gt;
    Pre-order Price Guarantee. &lt;a href="http://www.amazon.com/gp/promotions/details/popup/AWT354OR7BM1U" target="AmazonHelp"&gt;Details&lt;/a&gt;&lt;br&gt;
  &lt;/td&gt;
&lt;/tr&gt;



















&lt;/table&gt;






&lt;/div&gt;







&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
























&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;

&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
  
    
    









 










&lt;div class="buying"&gt;
&lt;span class="availOrange"&gt;This title has not yet been released.&lt;/span&gt;&lt;br&gt; You may pre-order it now and we will deliver it to you when it arrives.&lt;br&gt; Ships from and sold by &lt;b&gt;Amazon.com&lt;/b&gt;. Gift-wrap available.
 
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Isn't this cool? I am extremely happy!!&lt;br&gt;&lt;/p&gt;&lt;p&gt;Regards&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=19590" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+3.5/default.aspx">ASP.NET 3.5</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+Security/default.aspx">ASP.NET Security</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category></item><item><title>C# Tutorial Online</title><link>http://bhaidar.net/cs/archive/2008/07/22/c-tutorial-online.aspx</link><pubDate>Tue, 22 Jul 2008 19:59:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:19426</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I passed by the following website that contains a tutorial of &lt;b&gt;22 Lessons&lt;/b&gt; on C#.&lt;/p&gt;&lt;p&gt;If you are newly learning C#, make sure to check it here (&lt;a href="http://www.csharp-station.com/Tutorial.aspx" target="_blank"&gt;http://www.csharp-station.com/Tutorial.aspx&lt;/a&gt;)&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope this helps,&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=19426" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Binding a DropDownList in ASP.NET to an Enumeration</title><link>http://bhaidar.net/cs/archive/2008/07/22/binding-a-dropdownlist-in-asp-net-to-an-enumeration.aspx</link><pubDate>Tue, 22 Jul 2008 19:19:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:19425</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Here is a snippet code that helps you bind the items contained in an enumeration into a DropDownList in ASP.NET.&lt;/p&gt;&lt;p&gt;To start with, let us define an enumeration as follows:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public enum Directions&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; North = 1,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; East,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; South,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; West&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br&gt;&lt;/p&gt;&lt;p&gt;The above is a C# definition for an enumeration called &lt;b&gt;Directions&lt;/b&gt; that has 4 main values.&lt;/p&gt;&lt;p&gt;Now, to bind the above enumeration values to a DropDownList we need the following:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!Page.IsPostBack)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; // Loop through the Directions' items&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; // and add them item by item into the DropDownList&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; ListItem item = null;&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; string[] directionNames = Enum.GetNames(typeof(Directions));&lt;br&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; for (int x = 0; x &amp;lt; directionNames.Length - 1; x++)&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; {&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; // Create the item&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; item = new ListItem(&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directionNames[x],&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((Int32)Enum.Parse(typeof(Directions), directionNames[x])).ToString());&lt;br&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; // Add the item to the list of items&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; // inside the DropDownList&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; this.ddlDirections.Items.Add(item);&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; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;/p&gt;&lt;p&gt;You notice in the code above, to retrieve the names of all the items in the enumeration, you make use of the Enum.GetNames() method. Once you have all the items in the enumeration as String values, you loop through the list of values of the enumeration.&lt;/p&gt;&lt;p&gt;For each value, you create a new ListItem class passing to it the:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Text to be displayed which is in this case the name of an item inside the enumeration&lt;/li&gt;&lt;li&gt;Value to be stored in the value of the ListItem in this case the Integer value of an item in the enumeration which is retrieved by parsing the item name into a valid Directions enumeration, then casting to the type of the Enumeration, which is by default &lt;b&gt;int.&lt;/b&gt;&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;Once the ListItem is created, simply add it to the collection of Items of the DropDownList placed in the HTML markup.&lt;/p&gt;&lt;p&gt;The DropDownList is defined as follows:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:DropDownList ID="ddlDirections" runat="server" AppendDataBoundItems="true" &amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem Text=" .. Choose a Direction .." Value="-1" Selected="True"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/asp:DropDownList&amp;gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;This is all what you need to do to bind a DropDownList to an enumeration!&lt;/p&gt;&lt;p&gt;Hope it helps,&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=19425" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+3.5/default.aspx">ASP.NET 3.5</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category></item><item><title>ASP.NET AJAX Roadmap</title><link>http://bhaidar.net/cs/archive/2008/07/20/asp-net-ajax-roadmap.aspx</link><pubDate>Mon, 21 Jul 2008 05:32:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:19394</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The ASP.NET AJAX Roadmap is published and can be reached here (&lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14924" target="_blank"&gt;http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14924&lt;/a&gt;) &lt;br&gt;&lt;/p&gt;&lt;p&gt;Enjoy it!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Regards&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=19394" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+2.0+-+Master+Pages/default.aspx">ASP.NET 2.0 - Master Pages</category><category domain="http://bhaidar.net/cs/archive/tags/AJAX-ATLAS/default.aspx">AJAX-ATLAS</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+Extensions+3.5/default.aspx">ASP.NET Extensions 3.5</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+3.5/default.aspx">ASP.NET 3.5</category></item><item><title>ASP.NET Session State for Native HTTP Requests in IIS 7.0</title><link>http://bhaidar.net/cs/archive/2008/07/17/asp-net-session-state-for-native-http-requests-in-iis-7-0.aspx</link><pubDate>Thu, 17 Jul 2008 19:26:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:19166</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;In ASP.NET 2.0 and ASP.NET 3.5 applications hosted under IIS 7.0 and are running with the Integrated Mode, ASP.NET Session State does not get initialized when a native or non-managed request enters the Integrated HTTP Request pipeline.&lt;/p&gt;&lt;p&gt;If you look at the IIS 7.0's applicationHost.config configuration file located at: &lt;b&gt;&lt;i&gt;%windir%/System32/inetsrv/config&lt;/i&gt;&lt;/b&gt; you will notice that the SessionStateModule is defined to handle only managed requests as follows:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;lt;add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" /&amp;gt;&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;You notice that the &lt;b&gt;preCondition&lt;/b&gt; attribute has the value of &lt;b&gt;managedHandler&lt;/b&gt; which means that this module would be initialized only for managed requests, i.e. .aspx, .asmx, etc ...&lt;br&gt;&lt;/p&gt;&lt;p&gt;First of all to be able to make this module get initialized for non-managed resources, you need to remove this entry and then add the same entry but this time having the &lt;b&gt;preCondition&lt;/b&gt; attribute set to empty string.&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;&amp;lt;remove name="Session" /&amp;gt;&lt;/b&gt;&lt;/i&gt; &lt;br&gt;&lt;b&gt;&lt;i&gt;&amp;lt;add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="" /&amp;gt; &lt;/i&gt;&lt;/b&gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;With the above configuration added to the application's web.config configuration file under the &amp;lt;modules /&amp;gt; configuration section located in &amp;lt;system.webServer /&amp;gt; configuration section group.&lt;/p&gt;&lt;p&gt;Now, the Session State is still not initialized for non-managed resources, why?&lt;/p&gt;&lt;p&gt;The SessionStateModule is usually initialized in the AcquireRequestState HttpApplication's event. This event usually gets called after the MapRequestHandler and PostMapRequestHandler events. This means, the AcquireRequestState event fires after the ASP.NET Runtime has decided on the HttpHandler for the current HTTP Request.&lt;/p&gt;&lt;p&gt;The SessionStateModule does a check if the current HTTP Request's Handler implements the IRequiresSessionState marker interface. If not, the SessionStateModule stops execution and no ASP.NET Session State gets initialized. Why? There is no native or non-managed Handler that can implement the managed IRequiresSessionState marker interface and hence if the SessionStateModule finds out that the Handler created for the current request does not implement the IRequiresSessionState, no Session State gets initialized.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Now, when a non-managed or native request enters the Integrated or Unified HTTP Request Pipeline, ASP.NET Runtime &lt;b&gt;does not&lt;/b&gt; create an instance of a managed Handler, the HttpHandler for the current HttpContext is null and not initialized. This means that the SessionStateModule, that has already been mapped for native and managed requests, checks that the current HttpContext's Handler is null and hence there is already no Handler instance created to check if it implements the IRequiresSessionState marker interface.&lt;/p&gt;&lt;p&gt;The trick to solve this problem is provided by Mike Volodarsky (Program Manager in the IIS team) that can be read in this www.iis.net forum post (&lt;a href="https://forums.iis.net/p/1094546/1648944.aspx#1648944" target="_blank"&gt;https://forums.iis.net/p/1094546/1648944.aspx#1648944&lt;/a&gt;) &lt;br&gt;&lt;/p&gt;&lt;p&gt;What should be done is &lt;b&gt;fake&lt;/b&gt; the SessionStateModule with an instance of a managed HttpHandler that implements IRequiresSessionState marker interface that gets created for &lt;b&gt;native requests&lt;/b&gt;. &lt;/p&gt;&lt;p&gt;What are you talking about Bilal?&lt;/p&gt;&lt;p&gt;Well yes. The idea is to develop a custom HttpHandler that implements the IRequiresSessionState marker interface with empty implementation, this handler will be used as a temporary handler only as you will see later in the code.&lt;/p&gt;&lt;p&gt;Next, what we need to do is the following:&lt;/p&gt;&lt;p&gt;In the MapRequestHandler event, a managed handler is created when the HTTP request is for a managed resource. This means, in the PostMapRequestHandler event you can check to see if ASP.NET runtime has created an HttpHandler for the current request, if not, then this means the HTTP request is for a native resource and not a managed one. At this moment, you can initialize a new instance of the custom dummy handler that was introduced above, set it to the Handler of the current HTTP request.&lt;/p&gt;&lt;p&gt;After the PostMapRequestHandler executes, the AcquireRequestState event fires. At this moment, the SessionStateModule starts executing. Now, the SessionStateModule will find out that the current HTTP request has a valid HttpHandler that implements the IRequiresSessionState marker interface, this means now the ASP.NET Session State will get initialized successfully!!&lt;/p&gt;&lt;p&gt;In the PostAcquireRequestState event the current HTTP request's Handler should be reverted back to its original Handler (i.e. Handler created by ASP.NET runtime which is in this case NULL because the request originally is for a native and non-managed request). This is very important because if the custom dummy&amp;nbsp; HttpHandler was kept as the Handler for the current request, the ASP.NET Runtime would execute that Handler when it is time during the Integrated HTTP Request Pipeline to execute the Handler for the current request.&lt;/p&gt;&lt;p&gt;Therefore, you should check if the current request's Handler is of type the custom dummy HttpHandler then you should set it back to NULL, where NULL represents the Handler's instance that was originally created by the ASP.NET runtime.&lt;/p&gt;&lt;p&gt;The code below shows both the custom dummy HttpHandler and the custom module used to configure the PostAcquireRequestState and PostMapRequestHandler events.&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;b&gt;CustomNativeHandler&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;p&gt;using System;&lt;br&gt;using System.Data;&lt;br&gt;using System.Configuration;&lt;br&gt;using System.Web;&lt;br&gt;using System.Web.SessionState;&lt;br&gt;using System.Web.Security;&lt;br&gt;&lt;br&gt;public class CustomNativeHandler : IHttpHandler, IRequiresSessionState&lt;br&gt;{&lt;br&gt;&amp;nbsp; &amp;nbsp; public bool IsReusable&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return false; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void ProcessRequest(HttpContext context)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new NotImplementedException();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; public CustomNativeHandler()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { }&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;b&gt;SessionStateForNativeRequestsModule&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;p&gt;using System;&lt;br&gt;using System.Data;&lt;br&gt;using System.Configuration;&lt;br&gt;using System.Web;&lt;br&gt;using System.Web.Security;&lt;br&gt;&lt;br&gt;public class SessionStateForNativeRequestsModule : IHttpModule&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Dispose()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new NotImplementedException();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Init(HttpApplication context)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Subscribe to the PostMapRequestHandler&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.PostMapRequestHandler += new EventHandler(context_PostMapRequestHandler);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Subscribe to the PostAcquireRequestState&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.PostAcquireRequestState += new EventHandler(context_PostAcquireRequestState);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void context_PostAcquireRequestState(object sender, EventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get an instance of the current Context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext context = ((HttpApplication)sender).Context;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Use "as" so that if the current handler&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // is not a CustomNativeHandler, then no exception&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // will be thrown, like in the case of casting.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CustomNativeHandler customHandler = &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; context.Handler as CustomNativeHandler;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If the current handler is our custom dummy handler&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // then revert back to the managed handler that was&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // originally created by the .NET Framework for the&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // current request, which is null in this case&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // since .NET Framework does not create a managed Handler&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // for a native request&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (customHandler != null)&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; context.Handler = null;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void context_PostMapRequestHandler(object sender, EventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get an instance of the current Context&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext context = ((HttpApplication)sender).Context;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If the current HttpHandler is null, then this must be&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // a native request being processed.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a new instance of the CustomNativeHandler&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // and set it to the current request Handler.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (context.Handler == null)&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; context.Handler = new CustomNativeHandler();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;} &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To configure the above custom module in an application's web.config configuration file, you add the following section:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.webServer&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;validation validateIntegratedModeConfiguration="false"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;modules&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="SessionStateForNativeRequestsModule" type="SessionStateForNativeRequestsModule"/&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name="Session" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add &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; name="Session" &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; type="System.Web.SessionState.SessionStateModule" &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; preCondition="" /&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/modules&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.webServer&amp;gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope this helps,&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=19166" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/IIS+7.0/default.aspx">IIS 7.0</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+3.5/default.aspx">ASP.NET 3.5</category><category domain="http://bhaidar.net/cs/archive/tags/SessionStateModule/default.aspx">SessionStateModule</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+Session+State/default.aspx">ASP.NET Session State</category></item><item><title>Advertising on www.bhaidar.net</title><link>http://bhaidar.net/cs/archive/2008/07/13/advertising-on-www-bhaidar-net.aspx</link><pubDate>Sun, 13 Jul 2008 21:24:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:18868</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Hello,&lt;/p&gt;&lt;p&gt;If you are interested to advertise on my website, I have started by today adding some advertisements on my website.&lt;/p&gt;&lt;p&gt;Mainly the Ads will be inline text paragraphs or images that can be embedded either inline with the post or either on the bottom or top of the post itself.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I might be also providing Ads on the main page too.&lt;/p&gt;&lt;p&gt;If you are interested, please contact me at: bhaidar @ gmail&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=18868" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/Ads/default.aspx">Ads</category><category domain="http://bhaidar.net/cs/archive/tags/Advertisements/default.aspx">Advertisements</category></item><item><title>Windows SDK for Windows Server 2008 and .NET Framework 3.5</title><link>http://bhaidar.net/cs/archive/2008/07/09/windows-sdk-for-windows-server-2008-and-net-framework-3-5.aspx</link><pubDate>Thu, 10 Jul 2008 07:36:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:18801</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I was searching for the WinSDK for .NET 3.5 and found it on the MSDN website. This is very essential especially when you are about to learn a new technology, it is worth hundreds of books out there!!&lt;/p&gt;&lt;p&gt;Check it out here:&amp;nbsp; Windows SDK for Windows Server 2008 and .NET Framework 3.5 (&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&amp;amp;displaylang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&amp;amp;displaylang=en&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope it helps,&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=18801" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/Windows+SDK/default.aspx">Windows SDK</category><category domain="http://bhaidar.net/cs/archive/tags/Windows+SDK+Server+2008/default.aspx">Windows SDK Server 2008</category><category domain="http://bhaidar.net/cs/archive/tags/Windows+SDK+.NET+3.5/default.aspx">Windows SDK .NET 3.5</category></item><item><title>Interfaces and Abstraction - New Community Nights Session @ www.LebDev.net</title><link>http://bhaidar.net/cs/archive/2008/07/07/interfaces-and-abstraction-new-community-nights-session-www-lebdev-net.aspx</link><pubDate>Tue, 08 Jul 2008 06:30:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:18766</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>2</slash:comments><description>&lt;span id="dnn_ctr403_ContentPane" align="left"&gt;&lt;span id="dnn_ctr403_HtmlModule_HtmlHolder" class="Normal"&gt;&lt;p align="center"&gt;&lt;font face="Verdana" size="5"&gt;&lt;b&gt;Community Nights Session&lt;br&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoPlainText" align="center"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;font face="Verdana" size="2"&gt;&lt;font face="Tahoma"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;Interfaces and Abstraction&lt;/font&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;Ralph Varjabedian &lt;font size="1"&gt;(Telephone.com Team Leader)&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;Monday,&amp;nbsp;July 14, 2008 &lt;/span&gt;- 6:00 - 8:00&amp;nbsp;PM&lt;br&gt;&lt;font face="Verdana"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Arial','sans-serif';"&gt;Microsoft office&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;font face="Verdana" size="2"&gt;Please use the &lt;a href="http://www.lebdev.net/EventRegistration/tabid/60/Default.aspx"&gt;REGISTRATION PAGE&lt;/a&gt; to register for the session. &lt;b&gt;Seats are limited, make sure you confirm your attendance once you receive the email upon regisration.&lt;/b&gt; &lt;/font&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;font face="Verdana" size="2"&gt;&lt;b&gt;Note: If you have any problem with registration, please contact Bilal Haidar:&lt;br&gt;&lt;a href="mailto:bhaidar@live.com"&gt;bhaidar@live.com&lt;/a&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=18766" width="1" height="1"&gt;</description></item><item><title>Haissam Abdul Malak Blog</title><link>http://bhaidar.net/cs/archive/2008/07/06/haissam-abdul-malak-blog.aspx</link><pubDate>Sun, 06 Jul 2008 21:27:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:18746</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;This post should have been written long time ago in fact!!&lt;/p&gt;&lt;p&gt;Haissam is running a very interesting blog at:&amp;nbsp;&lt;a href="http://dotnetslackers.com/Community/blogs/haissam/" rel="nofollow" target="_new"&gt;http://dotnetslackers.com/Community/blogs/haissam/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;What is worth mentioning about Haissam's blog is that he is posting nowadays on integrating ASP.NET and .NET with other technologies and this is really cool. He is working on Adobe Flex this period as a UI layer for Web applications and having .NET as the back-end and hence the beauty of this integration.&lt;/p&gt;&lt;p&gt;Check out his blog!&lt;br&gt;&lt;/p&gt;&lt;p&gt;Keep up the great job Haissam! All of luck.&lt;/p&gt;&lt;p&gt;Regards&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=18746" width="1" height="1"&gt;</description></item><item><title>FYI : Telerik Trainer</title><link>http://bhaidar.net/cs/archive/2008/07/02/fyi-telerik-trainer.aspx</link><pubDate>Wed, 02 Jul 2008 09:21:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:18445</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>1</slash:comments><description>







&lt;p class="MsoNormal"&gt;Few months ago Telerik started a new strategy of delivering
guides and tutorials to its products by adding the Telerik Trainer. The Telerik
Trainer is a special Media-Player software that you can download for free from
the Telerik website (&lt;a href="http://www.telerik.com/training.videos/TelerikTrainer.zip"&gt;http://www.telerik.com/training.videos/TelerikTrainer.zip&lt;/a&gt;).
This Media Player has all the features required to watch the T.T. videos with
special and customized effects and hence no need for any other media player to
watch the T.T. videos. Once you download the T.T. you can download several T.T.
videos that are evolving day after day with lots of videos being added. You can
reach the download page here (&lt;a href="http://www.telerik.com/support/teleriktrainer.aspx"&gt;http://www.telerik.com/support/teleriktrainer.aspx&lt;/a&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;In addition, Telerik already has a Videos page that you can
download and watch to get to know more about their controls and how to use them
and do special tasks with them. You can reach the Videos page here (&lt;a href="http://www.telerik.com/support/videos/default/b220i-a.aspx"&gt;http://www.telerik.com/support/videos/default/b220i-a.aspx&lt;/a&gt;).&lt;/p&gt;



&lt;p class="MsoNormal"&gt;Moreover, Telerik provides a self-paced tutorial that is
around 600 pages compiled in a PDF document that covers all of their controls.
It is a Step-By-Step tutorial that you can go through to learn how to use and
configure the controls properly. You can reach this long-tutorial here (&lt;a href="http://www.telerik.com/support/self-paced-tutorial.aspx"&gt;http://www.telerik.com/support/self-paced-tutorial.aspx&lt;/a&gt;).&lt;/p&gt;



&lt;p class="MsoNormal"&gt;Also, when you download and install the Telerik controls there
is the main CHM documentation file that contains heavy tutorials, online links on
how to build some features and a complete documentation for all the classes
that build up the Telerik controls.&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Finally, Telerik provides an online Forums that you can make
use of to ask questions where other developers using the Telerik controls help
you there and reply to your questions including Telerik MVPs and Telerik core
developers.&amp;nbsp; &lt;/p&gt;



&lt;p class="MsoNormal"&gt;Last but not least, Telerik provides an online support
tickets where you can send a request to the support team to help you with your
problems, issues and bugs (if any).&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Hope all this helps!&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=18445" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/Telerik+Controls/default.aspx">Telerik Controls</category></item><item><title>ModalPopup Dialog in WPF Browser Applications (XBAP)</title><link>http://bhaidar.net/cs/archive/2008/06/29/modalpopup-dialog-in-wpf-browser-applications-xbap.aspx</link><pubDate>Sun, 29 Jun 2008 14:12:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:18269</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>4</slash:comments><description>&lt;p&gt;&lt;span style="font-weight:bold;"&gt;You can download the code for the post &lt;/span&gt;&lt;a href="http://bhaidar.net/cs_private/ModalPopupDialog.zip" style="font-weight:bold;" target="_blank"&gt;here&lt;/a&gt;&lt;span style="font-weight:bold;"&gt;.&lt;/span&gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;I have always enjoyed the ModalPopup dialogs provided by ASP.NET AJAX Extensions 1.0. In one way or another they add a very special touch to the Web application in a user-friendly way. You can read more on ModalPopups in AJAX here (&lt;a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/ModalPopup/ModalPopup.aspx" target="_blank"&gt;http://www.asp.net/AJAX/AjaxControlToolkit/Samples/ModalPopup/ModalPopup.aspx&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Now that I am working on WPF, I thought of having the same feature in WPF Browser Application (XBAP). The WPF Browser Application as you know runs in the Browser (Firefox and IE) with several Security limitations on WPF. WPF provides the Popup class that allowed me to provide such a Modal Popup Dialog Box. Read more on Popup class here (&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx&lt;/a&gt;).&lt;br&gt;&lt;/p&gt;&lt;p&gt;To start with, let us create a new XBAP application by opening up VS 2008, File --&amp;gt; New Project --&amp;gt; WPF Browser Application.&lt;/p&gt;&lt;p&gt;Let us prepare Page1.xaml of this new project piece by piece:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;lt;Page x:Class="ModalPopupDialog.Page1"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title="Modal Popup Dialog"&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;First of all set the Title of main page.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel Name="mainPage" &amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel Margin="10"&amp;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;lt;TextBlock Margin="5" TextWrapping="Wrap"&amp;gt;Click the button to show a Modal Popup Dialog Box&amp;lt;/TextBlock&amp;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;lt;Button Click="cmdShowModal_Click" HorizontalAlignment="Left" Padding="3" Margin="5"&amp;gt;Show Modal&amp;lt;/Button&amp;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;lt;Label Name="lblName" Margin="0, 10, 10, 10" FontSize="18" FontFamily="Arial"&amp;gt;&amp;lt;/Label&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;br&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Add a new StackPanel that shall be the main container of the entire Page. Then add another StackPanel to hold a TextBlock and a Button. The TextBlock asks the user to press the Button to show the Modal Popup Dialog Box.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&amp;lt;Popup&lt;/b&gt; Name="dialogPopUp" StaysOpen="True" Placement="Center" Width="250" Height="200"&amp;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; &lt;b&gt;&amp;lt;ScrollViewer&lt;/b&gt; VerticalScrollBarVisibility="Auto"&amp;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; &amp;lt;Border BorderThickness="1" Background="#D4D0C8"&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&amp;lt;TabControl&lt;/b&gt;&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&amp;lt;TabItem&lt;/b&gt; Header="Page 1"&amp;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;&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;lt;StackPanel Margin="5" Background="White"&amp;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;&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;&amp;nbsp; &amp;lt;TextBlock Margin="10" TextWrapping="Wrap"&amp;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; Enter your Full Name:&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;lt;/TextBlock&amp;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;&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;&amp;nbsp; &amp;lt;TextBox Focusable="True" Name="txtName" Margin="10"&amp;gt;&amp;lt;/TextBox&amp;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;&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;&amp;nbsp; &amp;lt;StackPanel Orientation="Horizontal" Margin="10"&amp;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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Click="cmdOK_Click"&amp;nbsp; Padding="3" Margin="0,0,5,0"&amp;gt;OK&amp;lt;/Button&amp;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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Click="cmdCancel_Click"&amp;nbsp; Padding="3"&amp;gt;Cancel&amp;lt;/Button&amp;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;&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;&amp;nbsp; &amp;lt;/StackPanel&amp;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;&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;lt;/StackPanel&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TabItem&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&amp;lt;TabItem&lt;/b&gt; Header="Page 2"&amp;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;&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;lt;StackPanel Margin="5" Background="White"&amp;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;&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;&amp;nbsp; &amp;lt;TextBlock Margin="10" TextWrapping="Wrap"&amp;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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Another TabItem&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;&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;&amp;nbsp; &amp;lt;/TextBlock&amp;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;&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;lt;/StackPanel&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TabItem&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TabControl&amp;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; &amp;lt;/Border&amp;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;lt;/ScrollViewer&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Popup&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;br&gt;&amp;lt;/Page&amp;gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;The Popup Window contains a ScrollViewer that makes sure the Popup Window will scroll when its content Width or Height goes beyond the preset Width and Height on the Popup Window. &lt;/p&gt;&lt;p&gt;The ScrollViewer contains a TabControl with two defined TabItems. The first contains a TextBlock and TextBox to allow the user to enter her/his Full Name and then either hit the OK or Cancel button. The other TabItem is empty just a way to show you how flexible the Popup Window is.&lt;/p&gt;&lt;p&gt;Before running this application we need to add some code in the code-behind of the Page1.zaml. Mainly, when the&amp;nbsp; *Show Modal* button is clicked we want to disable the main StackPanel so that the user cannot interact with the page, set a light gray color for the background of the page and finally open the Popup control using the *IsOpen* boolean Dependency Property.&lt;/p&gt;&lt;p&gt;When the OK button on the Popup control is clicked, we need to reverse what has been done above, i.e. enable the main StackPanel, remove the light gray color background of the main page and finally close the Popup control. In addition, we will grab the text the user has entered and show it on a label on the main page.&lt;br&gt;&lt;/p&gt;&lt;p&gt;When the Cancel button on the Popup control is clicked the same thing should happen as in the case of the OK button with the exception that there is no need to update the Label in the main page with any entered text.&lt;/p&gt;&lt;p&gt;The code below shows how the above is implemented:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-weight:bold;"&gt;private void cmdShowModal_Click&lt;/span&gt;(object sender, RoutedEventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; // Configure the main page to disable the main StackPanel,&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; // Set the background color to LightGray as if it is dimed&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; // and finally open the Dialogbox.&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; this.ConfigureMainPage(&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; false,&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; new BrushConverter().ConvertFromString("#8F8F8F") as SolidColorBrush, &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; true);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-weight:bold;"&gt;private void cmdOK_Click&lt;/span&gt;(object sender, RoutedEventArgs e)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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; // Configure the main page to enable it, remove the LightGray&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; // color as the background and finally close the dialogbox.&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; this.ConfigureMainPage(true, null, false);&lt;br&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; // Grab the Full Name entered in the dialogbox.&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; this.lblName.Content = string.Format("Welcome {0} to my first XBAP application!", this.txtName.Text);&lt;br&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; // Clear the Textbox&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; this.txtName.Text = "";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-weight:bold;"&gt;private void cmdCancel_Click&lt;/span&gt;(object sender, RoutedEventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; // Configure the main page to enable it, remove the LightGray&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; // color as the background and finally close the dialogbox.&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; this.ConfigureMainPage(true, null, false);&lt;br&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; // Clear the Textbox&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; this.txtName.Text = "";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Configures the main page by setting the &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// IsEnabled property of the main StackPanel, setting&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// the background of the main StackPanel and finally open/close&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// the dialog box&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-weight:bold;"&gt;private void ConfigureMainPage&lt;/span&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; bool mainPageEnabled,&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; Brush mainPageBackground,&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; bool IsDialogOpened)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; this.mainPage.IsEnabled = mainPageEnabled;&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; this.Background = mainPageBackground;&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; dialogPopUp.IsOpen = IsDialogOpened;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;The code is self-explanatory and simply does what I have just explained above.&lt;/p&gt;&lt;p&gt;When we run the application, the main page looks as in Figure 1 below:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img src="http://bhaidar.net/cs_private/WPF-ModalDialog-State1.tif"&gt;&lt;img src="http://bhaidar.net/cs_private/WPF-ModalDialog-State1.jpg"&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Once you click the *Show Modal* button the Popup window shows up as shown in Figure 2 below:&lt;/p&gt;&lt;p&gt;&lt;img src="http://bhaidar.net/cs_private/WPF-ModalDialog-State2.jpg"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;The user can type her/his name then either press OK or Cancel button. Notice how the Popup is popped Window-Centered and you can see the TabControl clearly containing two main tabs. Assume I typed my name and pressed OK, the page looks as in Figure 3 below:&lt;/p&gt;&lt;p&gt;&lt;img src="http://bhaidar.net/cs_private/WPF-ModalDialog-State3.jpg"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can see how the page is updated with the text the user has typed in the Textbox that was shown inside the Popup control.&lt;/p&gt;&lt;p style="font-weight:bold;"&gt;You can download the code for the post &lt;a href="http://bhaidar.net/cs_private/ModalPopupDialog.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Hope you enjoyed reading this post!&lt;br&gt;&lt;/p&gt;&lt;p&gt;Thanks&lt;img src="http://bhaidar.net/cs_private/WPF-ModalDialog-State1.tif"&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=18269" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/WPF+Browser+Applications/default.aspx">WPF Browser Applications</category></item><item><title>My First Book on ASP.NET - Professional ASP.NET 3.5 Security, Membership and Role Management with C# and VB</title><link>http://bhaidar.net/cs/archive/2008/06/24/my-first-book-on-asp-net.aspx</link><pubDate>Tue, 24 Jun 2008 20:24:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:18160</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>9</slash:comments><description>&lt;p&gt;Few months ago I was contacted by Wiley Publishing to write an ASP.NET book. The book that I was asked to work on was the &lt;b&gt;Professional ASP.NET 2.0 Security, Membership and Role Management&lt;/b&gt; written by Stefan Schackow.&lt;/p&gt;&lt;p&gt;The idea was to upgrade the book into ASP.NET 3.5, IIS 7.0 and provide both C# and VB.NET code for all the chapters.&lt;/p&gt;&lt;p&gt;To make the story short, I started working on this book that now has the following title:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Professional ASP.NET 3.5 Security, Membership and Role Management with C# and VB&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This week I finally finished the first draft of all the chapters. Expect the book to be in the market sometime end of this summer!&lt;/p&gt;&lt;p&gt;It was a great experience working on authoring a book after I have worked for several years on writing articles online or for printed magazines.&lt;/p&gt;&lt;p&gt;More to come on the book&amp;nbsp; :)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=18160" width="1" height="1"&gt;</description></item><item><title>Microsoft Blend and Visual Source Safe, When?</title><link>http://bhaidar.net/cs/archive/2008/06/11/microsoft-blend-and-visual-source-safe-when.aspx</link><pubDate>Wed, 11 Jun 2008 19:08:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17888</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I have started lately working on WPF and developing an application by going through the complete life-cycle. Starting with the UI design in Microsoft Blend going to VS 2008 to implement the functionality of the application.&lt;/p&gt;&lt;p&gt;I noticed that Microsoft Blend misses the integration with Visual Source Safe. Does any one know if VSS will be integrated into Microsoft Blend? &lt;/p&gt;&lt;p&gt;Microsoft always talks about integration, I believe&amp;nbsp; integrating VSS into Microsoft Blend is something required very much!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Regards&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17888" width="1" height="1"&gt;</description></item><item><title>Bartek Marnane is blogging!!</title><link>http://bhaidar.net/cs/archive/2008/06/07/bartek-marnane-is-blogging.aspx</link><pubDate>Sat, 07 Jun 2008 11:52:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17815</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I would like to invite you to check my friend Bartek Marnane's new blog at: &lt;a href="http://blog.evonet.com.au/default.aspx" target="_blank"&gt;http://blog.evonet.com.au/default.aspx.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Bartek has so many nice and helpful posts that I am sure you will like them and benefit from!&lt;/p&gt;&lt;p&gt;Good luck Bartek!!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Regards&lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17815" width="1" height="1"&gt;</description></item><item><title>LINQed &amp; LAYERED</title><link>http://bhaidar.net/cs/archive/2008/06/06/linqed-layered.aspx</link><pubDate>Fri, 06 Jun 2008 17:37:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17801</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;My article, &lt;b&gt;LINQed &amp;amp; LAYERED: Implement CRUD Operations with LINQ in Three-tier ASP.NET Applications&lt;/b&gt;, is now published on &lt;a href="http://bhaidar.net/cs/controlpanel/blogs/www.aspnetpro.com" target="_blank"&gt;www.aspnetpro.com&lt;/a&gt; June 2008 issue as the &lt;b&gt;COVER STORY &lt;/b&gt;of the issue!&lt;/p&gt;&lt;p&gt;It was a great honor for me to have my first article to www.aspnetpro.com published as a cover story.&lt;/p&gt;&lt;p&gt;I hope you enjoy reading it and if you have any comments please do contact me! You can download the June 2008 issue as PDF following this link: &lt;a href="http://www.aspnetpro.com/PDF/Issues/aspJUNE2008.pdf" target="_blank"&gt;http://www.aspnetpro.com/PDF/Issues/aspJUNE2008.pdf&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Regards&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17801" width="1" height="1"&gt;</description></item><item><title>Photos from the lovely Lebanon</title><link>http://bhaidar.net/cs/archive/2008/06/05/photos-from-the-lovely-lebanon.aspx</link><pubDate>Fri, 06 Jun 2008 05:05:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17786</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A friend of mine passed this link for lovely photos of Lebanon. Thought of sharing it with you!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.lovelylebanon.com/" target="_blank"&gt;http://www.lovelylebanon.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope you will like my country!&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17786" width="1" height="1"&gt;</description></item><item><title>AJAX Control Toolkit Tutorials</title><link>http://bhaidar.net/cs/archive/2008/06/04/ajax-control-toolkit-tutorials.aspx</link><pubDate>Wed, 04 Jun 2008 12:23:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17760</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I found a new page on www.asp.net website that contains a set of tutorials on AJAX Control Toolkit. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can reach the C# version at: &lt;a href="http://www.asp.net/learn/ajax-control-toolkit/?lang=cs" target="_blank"&gt;AJAX Control Toolkit Tutorials in C#&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;You can reach the VB.NET version at: &lt;a href="http://www.asp.net/learn/ajax-control-toolkit/" target="_blank"&gt;AJAX Control Toolkit Tutorials in VB.NET&lt;/a&gt; &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Hope you enjoy reading them!&lt;br&gt;Regards&lt;br&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17760" width="1" height="1"&gt;</description></item><item><title>IIS 7.0 Resource Kit Book is published</title><link>http://bhaidar.net/cs/archive/2008/05/25/iis-7-0-resource-kit-book-is-published.aspx</link><pubDate>Sun, 25 May 2008 19:05:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17586</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The Internet Information Services (IIS) 7.0 Resource Kit is now published and you can get it from the following link:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com/Internet-Information-Services-IIS-Resource/dp/0735624410" target="_blank"&gt;Internet Information Services (IIS) 7.0 Resource Kit&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I strongly recommend this book to read to get to know everything you want about IIS 7.0.&lt;/p&gt;&lt;p&gt;Regards&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17586" width="1" height="1"&gt;</description></item><item><title>Visual Studio 2008 Hotfixes and SP1 Beta</title><link>http://bhaidar.net/cs/archive/2008/05/22/visual-studio-2008-hotfixes-and-sp1-beta.aspx</link><pubDate>Fri, 23 May 2008 05:21:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17523</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Before installing VS 2008 SP1 Beta, check if you had installed any previous hot fixes. If yes, then you need to install the Hotfixes Cleanup utility before installing the SP1 beta.&lt;/p&gt;&lt;p&gt;Where to get the cleanup utility? &lt;a href="http://code.msdn.microsoft.com/RemoveKB944899" target="_blank"&gt;Visual Studio 2008 Hotfix Cleanup Utility for Installing Visual Studio 2008 SP1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope this helps,&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17523" width="1" height="1"&gt;</description></item><item><title>Running Classic ASP pages inside Classic Mode in IIS 7.0</title><link>http://bhaidar.net/cs/archive/2008/05/22/running-classic-asp-pages-inside-classic-mode-in-iis-7-0.aspx</link><pubDate>Thu, 22 May 2008 18:45:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17512</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I have been trying for a while to run classic ASP pages inside an application hosted on IIS 7.0 and running under the Classic Mode Application Pool.&lt;/p&gt;&lt;p&gt;In IIS 6.0, there was the concept of Wild-Card Mapping where you map all requests to the ASP.NET ISAPI extension to be processed by the ASP.NET engine. As you know, when running an application hosted inside IIS 7.0 and running under the Classic Mode application pool, it behaves similarly as if it was hosted inside IIS 6.0.&lt;/p&gt;&lt;p&gt;To define a wild-card in II 7.0 for applications running under Classic Mode application pool follow the steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Click on the application you want to configure the wild-card for it inside IIS 7.0.&lt;/li&gt;&lt;li&gt;Make sure the application is running under the classic mode application pool&lt;/li&gt;&lt;li&gt;On the home page of the application, double click on the Handler Mappings applet. This applet shows all the extension mappings defined for the current application that are already inherited from the Default Web site.&lt;/li&gt;&lt;li&gt;Click on the &lt;b&gt;Add Script Map&lt;/b&gt;&amp;nbsp; on the Actions pane on the right. A dialog box pops up allowing you to enter the details of the mapping you want. The diagram is shown in the figure below.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;img src="http://bhaidar.net/cs_private/wildcardiis_1.gif" border="1" height="325" width="396"&gt;&lt;/p&gt;&lt;p&gt;In the &lt;span style="font-weight:bold;"&gt;Request Path&lt;/span&gt; field you enter "*". In the &lt;span style="font-weight:bold;"&gt;Executable&lt;/span&gt; field you enter the ASP.NET ISAPI extension so that all requests will be redirected to ASP.NET engine. In the &lt;span style="font-weight:bold;"&gt;Name&lt;/span&gt; field you enter the name of the new mapping you are defining.&lt;/p&gt;&lt;p&gt;Once you have defined the above, click on the &lt;span style="font-weight:bold;"&gt;Request Restrictions&lt;/span&gt; button to show the dialog box in the figure below.&lt;/p&gt;&lt;p&gt;&lt;img src="http://bhaidar.net/cs_private/wildcardiis_2.gif" border="1" height="325" width="396"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Clear the Checkbox above so that you don't put any restrictions on the requests to be mapped to the ISAPI extension defined.&lt;/p&gt;&lt;p&gt;Now when you run the ASP page inside your application, it will work fine! What happens is that the .asp page will first be handled by the defined handlers inside IIS 7.0, once the specified handlers are executed, IIS 7.0 sends the request to ASP.NET ISAPI extension to be executed!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope this post helps you!&lt;br&gt;Regards&lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17512" width="1" height="1"&gt;</description></item><item><title>Accessing the ASP.NET Authentication, Profile and Role Service in Silverlight</title><link>http://bhaidar.net/cs/archive/2008/05/18/accessing-the-asp-net-authentication-profile-and-role-service-in-silverlight.aspx</link><pubDate>Sun, 18 May 2008 18:38:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17454</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A great article by Brad Adams on accessing the ASP.NET Authentication, Profile and Role Services in Silerlight!&lt;/p&gt;&lt;p&gt;Check it out here: &lt;a href="http://blogs.msdn.com/brada/archive/2008/05/03/accessing-the-asp-net-authentication-profile-and-role-service-in-silverlight.aspx" target="_blank"&gt;http://blogs.msdn.com/brada/archive/2008/05/03/accessing-the-asp-net-authentication-profile-and-role-service-in-silverlight.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope you enjoy it!&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17454" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+2.0+-+General/default.aspx">ASP.NET 2.0 - General</category><category domain="http://bhaidar.net/cs/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Input Validation Helper Methods</title><link>http://bhaidar.net/cs/archive/2008/05/17/input-validation-helper-methods.aspx</link><pubDate>Sat, 17 May 2008 20:00:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17450</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I found a&amp;nbsp; good resource on validating user input on Channel9. You can reach that resource by following this link: &lt;a href="http://channel9.msdn.com/wiki/default.aspx/SecurityWiki.RegExInputValCode2" target="_blank"&gt;http://channel9.msdn.com/wiki/default.aspx/SecurityWiki.RegExInputValCode2&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The page contains a set of utility methods to help you in validating the inputs for your web application. The technique used is "whitelisting" technique in a sense that the user input is validated against a pattern that is known to be good using Regular Expressions.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope you will benefit from this page!&lt;/p&gt;&lt;p&gt;Regards&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17450" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+2.0+-+General/default.aspx">ASP.NET 2.0 - General</category><category domain="http://bhaidar.net/cs/archive/tags/ASP.NET+Security/default.aspx">ASP.NET Security</category></item><item><title>Install Windows Search Service on Windows Server 2008</title><link>http://bhaidar.net/cs/archive/2008/05/08/install-windows-search-service-on-windows-server-2008.aspx</link><pubDate>Fri, 09 May 2008 08:04:00 GMT</pubDate><guid isPermaLink="false">f4db8b24-6ab8-4761-abb7-ba7a1cd3b490:17284</guid><dc:creator>BilalHaidar [MVP]</dc:creator><slash:comments>4</slash:comments><description>&lt;p&gt;Enabling advanced search inside Microsoft Office Outlook 2007 requires that you install Windows Search Service on the machine! However, installing this service is not that direct and easy to reach.&lt;/p&gt;&lt;p&gt;To install Windows Search Service on a Windows Service 2008 follow the steps below:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Go to the Server Manager&lt;/li&gt;&lt;li&gt;Click on Add Roles&lt;/li&gt;&lt;li&gt;Select File Services&lt;/li&gt;&lt;li&gt;Select Window Search Service&lt;/li&gt;&lt;li&gt;Select the drives you want WSS to have control on&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hope this helps,&lt;br&gt;Regards &lt;br&gt;&lt;/p&gt;&lt;img src="http://bhaidar.net/cs/aggbug.aspx?PostID=17284" width="1" height="1"&gt;</description><category domain="http://bhaidar.net/cs/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category></item></channel></rss>