<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8519994871712148194</id><updated>2012-01-13T09:11:28.816+05:30</updated><category term='Bing Translate'/><category term='Windows 2003'/><category term='ADO.net 2.0'/><category term='Javascript'/><category term='FSharp'/><category term='Window Service'/><category term='WinXP'/><category term='SharePoint'/><category term='ASP.net MVC'/><category term='VB.NET'/><category term='.NET Framework'/><category term='SharePoint 2010'/><category term='ASP.net 4.0'/><category term='C# 3.0'/><category term='Visual Studio 2008'/><category term='ASP.net 2.0'/><category term='WSE 3.0'/><category term='MCTS Exam'/><category term='IIS 6.0'/><category term='Linq'/><category term='Widows SDK V6.0A'/><category term='.NEt Framework 3.5'/><category term='C# 2.0'/><category term='Window Application'/><category term='Office 2007'/><category term='ASP.net 3.5'/><category term='Silverlight'/><title type='text'>dotnetstep</title><subtitle type='html'>Think Better To Build Best.&lt;br&gt;
Blog by Jinal Patel.
Microsoft .NET Technology,SharePoint 2007,SharePoint 2010,ASP.net MVC</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3385459506887579537</id><published>2010-08-14T21:23:00.000+05:30</published><updated>2010-08-21T21:24:40.511+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>Set Account As SharePoint System Account</title><content type='html'>&lt;p&gt;&lt;br&gt;In my previous two post related to SharePoint System Account i explain how to display you custom “DOMAIN/&amp;lt;&amp;lt;UserName&amp;gt;&amp;gt;” instead of “System Account”. But in this post i am going to explain different thing opposite to previous post.&lt;br&gt;&lt;br&gt;Previous Posts : &lt;a href="http://dotnetstep.blogspot.com/2010/08/sharepoint-system-account-issue.html" target="_blank"&gt;Post1&lt;/a&gt;&amp;nbsp;&lt;a href="http://dotnetstep.blogspot.com/2010/08/sharepointsystem-account-settings.html" target="_blank"&gt;Post2&lt;/a&gt;&lt;br&gt;&lt;br&gt;There are two way to achieve this thing.&lt;br&gt;&lt;br&gt;1. Go To Central Admin Site&lt;br&gt;2. Security –&amp;gt; Configure Service Accounts&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/TG_2h_6K2CI/AAAAAAAAAJk/416VRCHD1SQ/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/TG_2jYYosVI/AAAAAAAAAJo/Z4c4AmLYbVk/image_thumb%5B2%5D.png?imgmax=800" width="542" height="201"&gt;&lt;/a&gt; &lt;br&gt;3. Select your application pool&lt;br&gt;4. then Select an account for this component (Select your account)&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/TG_2kH1BMFI/AAAAAAAAAJs/cs3QuIyW96Y/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_8Ini78jtxBk/TG_2lh0wiVI/AAAAAAAAAJw/JNs1ujnVZ7c/image_thumb%5B5%5D.png?imgmax=800" width="545" height="211"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;If your account is not already register as manage account then click on “Register new managed account”.&lt;br&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/TG_2mZzjxaI/AAAAAAAAAJ0/KUS660978zs/s1600-h/image%5B14%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/TG_2nlrZX2I/AAAAAAAAAJ4/fOBN7_GqMU0/image_thumb%5B8%5D.png?imgmax=800" width="550" height="287"&gt;&lt;/a&gt; &lt;br&gt;Another way to do same thing is &lt;br&gt;&lt;br&gt;1. Go To Central Administration.&lt;br&gt;2. Click Application Management&lt;br&gt;3. Click Manage Web Application&lt;br&gt;4. Choose your web application&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/TG_2oe4eEHI/AAAAAAAAAJ8/ZRkQytG6a-g/s1600-h/image%5B20%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_8Ini78jtxBk/TG_2pxJjJ-I/AAAAAAAAAKA/6Bo8eDWyhsQ/image_thumb%5B12%5D.png?imgmax=800" width="550" height="194"&gt;&lt;/a&gt; &lt;br&gt;5. Click on “User Policy”&lt;br&gt;6. When “Policy for Web Application” popup open click on “Add User”&lt;br&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/TG_2qsma3jI/AAAAAAAAAKE/CXEd8VG4aRI/s1600-h/image%5B28%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/TG_2rpuJAfI/AAAAAAAAAKI/cR_hjicl-BE/image_thumb%5B16%5D.png?imgmax=800" width="556" height="162"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;7. Click next&lt;br&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/TG_2sfEHiJI/AAAAAAAAAKM/XILivmK-7nk/s1600-h/image%5B34%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/TG_2tD3HeyI/AAAAAAAAAKQ/avLhRtMwHpo/image_thumb%5B18%5D.png?imgmax=800" width="244" height="123"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;8. In this add users for which you want to display that account as “System Account”. Make sure you have “Account operates as system” checkbox selected.&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/TG_2uQqEDwI/AAAAAAAAAKU/-v5-AahkMak/s1600-h/image%5B41%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/TG_2vmYffDI/AAAAAAAAAKY/ZEahTUqNr1E/image_thumb%5B23%5D.png?imgmax=800" width="534" height="326"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;Let me know your comment and view on this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3385459506887579537?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3385459506887579537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3385459506887579537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3385459506887579537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3385459506887579537'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/08/set-account-as-sharepoint-system.html' title='Set Account As SharePoint System Account'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/TG_2jYYosVI/AAAAAAAAAJo/Z4c4AmLYbVk/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7849817230857440051</id><published>2010-08-14T20:54:00.000+05:30</published><updated>2010-08-21T20:55:17.175+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>SharePoint/System Account Settings</title><content type='html'>&lt;p&gt;&lt;br&gt;In my previous post about &lt;a href="http://dotnetstep.blogspot.com/2010/08/sharepoint-system-account-issue.html" target="_blank"&gt;SharePoint system account&lt;/a&gt;, i explain that how to configure account so that you can see your DOMAIN/&amp;lt;&amp;lt;UserName&amp;gt;&amp;gt; account as System Account.&lt;br&gt;&lt;br&gt;But to do so you need SharePoint Central Administrator site permission. There is another way to do same thing using coding. ( Little bit trick :))&lt;br&gt;&lt;br&gt;There is hidden List called “User Information List” in SharePoint site.You can find system account and update that listitem for “System Account”.&lt;br&gt;&lt;br&gt;1. (Before Update Item)&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/TG_vypQxbYI/AAAAAAAAAJM/uHu0V8MUQAU/s1600-h/image4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/TG_vzpvfHvI/AAAAAAAAAJQ/Ym9R6BgsGzU/image_thumb2.png?imgmax=800" width="427" height="241"&gt;&lt;/a&gt; &lt;br&gt;2. Custom code to update item.&lt;br&gt;&lt;br&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/TG_v0B7F3bI/AAAAAAAAAJU/F2YseysylIg/s1600-h/image17.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_8Ini78jtxBk/TG_v1h7MaXI/AAAAAAAAAJY/MRAtJ0QPTz0/image_thumb11.png?imgmax=800" width="451" height="213"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;3.&amp;nbsp; In above code you can replace “your name” with your desired name.&lt;br&gt;4. After you can see in profile and Upper Right corner of your site.&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/TG_v2ZCSKCI/AAAAAAAAAJc/jSvOKrclfh0/s1600-h/image21.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/TG_v2zgmXGI/AAAAAAAAAJg/0P3qNHEeduw/image_thumb13.png?imgmax=800" width="310" height="162"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;You can customize any account using above code. Sometime you want friendly name instead DOMAIN\&amp;lt;&amp;lt;UserName&amp;gt;&amp;gt;&lt;br&gt;&lt;br&gt;Let me know your comment on this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7849817230857440051?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7849817230857440051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7849817230857440051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7849817230857440051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7849817230857440051'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/08/sharepointsystem-account-settings.html' title='SharePoint/System Account Settings'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/TG_vzpvfHvI/AAAAAAAAAJQ/Ym9R6BgsGzU/s72-c/image_thumb2.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-2103640318609780529</id><published>2010-08-14T09:57:00.000+05:30</published><updated>2010-08-21T10:59:46.010+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>SharePoint System Account Issue</title><content type='html'>&lt;p&gt;&lt;br&gt;SharePoint\System account is special account. Sometime it happens that when you login using DOMAIN/&amp;lt;&amp;lt;UserName&amp;gt;&amp;gt; is display as “System Account”. (Following image)&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/TG9kN3UaNvI/AAAAAAAAAI0/CWdgBMaVBJQ/s1600-h/image%5B12%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/TG9kOWOMJTI/AAAAAAAAAI4/mT12bX1WKtM/image_thumb%5B8%5D.png?imgmax=800" width="415" height="50"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;This is because of when application created or extended, during that time which account specify for application pool identity that consider as “SharePoint/System” account. &lt;br&gt;&lt;br&gt;But if you want to display your username instead of “System Account” following are the solutions for that.&lt;br&gt;&lt;br&gt;1. Go to Central Administration Site&lt;br&gt;2. Go to Security –&amp;gt; Configure Service Account&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/TG9kPJYbO_I/AAAAAAAAAI8/aazOS_105mo/s1600-h/image%5B17%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/TG9kQHg1RII/AAAAAAAAAJA/5oPmUHULgaQ/image_thumb%5B11%5D.png?imgmax=800" width="537" height="201"&gt;&lt;/a&gt; &lt;br&gt;3. Next page you can see that “Credential Management”.&lt;br&gt;&lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/TG9kRHcyoJI/AAAAAAAAAJE/BldZjcLV7VM/s1600-h/image%5B23%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/TG9kRwoS55I/AAAAAAAAAJI/WWC8W3U0Jas/image_thumb%5B15%5D.png?imgmax=800" width="527" height="229"&gt;&lt;/a&gt; &lt;br&gt;4. Select your application pool.&lt;br&gt;5. Select different account. (Other than your account). Which ever account you specify over here for that you can see “SharePoint/System” account.&lt;br&gt;6. If you still want that your application pool identity should be your name then manually set using IIS Manager.&lt;br&gt;&lt;br&gt;Let me know if you still have any question about it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-2103640318609780529?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/2103640318609780529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=2103640318609780529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2103640318609780529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2103640318609780529'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/08/sharepoint-system-account-issue.html' title='SharePoint System Account Issue'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/TG9kOWOMJTI/AAAAAAAAAI4/mT12bX1WKtM/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3277836877847134712</id><published>2010-07-18T14:59:00.001+05:30</published><updated>2010-07-18T15:00:14.668+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net MVC'/><title type='text'>ASP.net MVC Routing - Part1</title><content type='html'>&lt;p&gt;&lt;br&gt;In ASP.net MVC Routing works following way and need to register in Application_Start of Global.asax&lt;br&gt;&lt;br&gt;&lt;strong&gt;Default Route when ASP.net MVC Application created&lt;/strong&gt;&lt;br&gt;&lt;br&gt;routes.MapRoute(&lt;br&gt;&amp;nbsp;&amp;nbsp; "Default", // Route name&lt;br&gt;&amp;nbsp;&amp;nbsp; "{controller}/{action}/{id}", // URL with parameters&lt;br&gt;&amp;nbsp;&amp;nbsp; new { controller = "Default", action = "Index", id = UrlParameter.Optional });&lt;br&gt;&lt;br&gt;Default route has placeholder that done most of work.&lt;br&gt;&lt;br&gt;For example : &lt;br&gt;&lt;br&gt;if request is made for &lt;a href="http://&amp;lt;&amp;lt;yoursite&amp;gt;//Home/Index"&gt;http://&amp;lt;&amp;lt;yoursite&amp;gt;//Home/Index&lt;/a&gt;.&lt;br&gt;This will call HomeController’s Index method. &lt;br&gt;&lt;br&gt;if request is made for &lt;a href="http://&amp;lt;&amp;lt;yousite&amp;gt;//Home/Index/1"&gt;http://&amp;lt;&amp;lt;yousite&amp;gt;//Home/Index/1&lt;/a&gt;&lt;br&gt;This will call HomeController’s Index method with argument value “1”.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Sample Controller:&lt;br&gt;&lt;/strong&gt;public class HomeController : Controller&lt;br&gt;&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; public ActionResult Index(string id)&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; return new ContentResult() { Content = "This is Index" };&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; }&lt;br&gt;&lt;br&gt;Next Part will going to give you detail about “Slugish Url”.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3277836877847134712?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3277836877847134712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3277836877847134712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3277836877847134712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3277836877847134712'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/07/aspnet-mvc-routing-part1.html' title='ASP.net MVC Routing - Part1'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-5633707301326718912</id><published>2010-07-18T13:14:00.001+05:30</published><updated>2010-07-18T13:14:49.720+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 4.0'/><title type='text'>ASP.net 4.0 Url Routing</title><content type='html'>&lt;p&gt;&lt;br&gt;In ASP.net 4.0 , New functionality included for URL Routing.&lt;br&gt;&lt;br&gt;For Example : ( Application_Start)&lt;br&gt;&lt;strong&gt;RouteTable.Routes.MapPageRoute("Default","Home","~/Default.aspx");&lt;br&gt;&lt;/strong&gt;&lt;br&gt;When Browser request for &lt;a href="http://&amp;lt;&amp;lt;your"&gt;http://&amp;lt;&amp;lt;your&lt;/a&gt; site&amp;gt;&amp;gt;/Home, It will route to page Default.aspx&lt;br&gt;&lt;br&gt;And Page has some property that allow you to get route data, &lt;strong&gt;Page.RouteData&lt;br&gt;&lt;/strong&gt;&lt;br&gt;Even generic route is also possible.&lt;/p&gt;&lt;strong&gt;RouteTable.Routes.MapPageRoute("Default","{Home}","~/{Home}.aspx");&lt;br&gt;&lt;br&gt;&lt;/strong&gt;Now When request made for Url : &lt;a href="http://&amp;lt;&amp;lt;yoursite&amp;gt;/Test"&gt;http://&amp;lt;&amp;lt;yoursite&amp;gt;/Test&lt;/a&gt; It automatically route to Test.aspx&lt;br&gt;&lt;br&gt;One more thing true about ASP.net 4.0 routing is even though routing is done, there is still possible that direct request for “ASPX” pages.&lt;br&gt;&lt;br&gt;To disable that &lt;br&gt;&lt;br&gt;&lt;strong&gt;1. from UI (IIS 7.0 or later)&lt;br&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Go to inetmgr&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - In Feature View go to “Request Filtering”&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/TEKw5mXhQHI/AAAAAAAAAIk/AOvfj_9wKdw/s1600-h/image%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_8Ini78jtxBk/TEKw6GGBznI/AAAAAAAAAIo/ynxG6C-Q2Ow/image_thumb.png?imgmax=800" width="92" height="90"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Click Deny FileName Extension&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/TEKw6yXme2I/AAAAAAAAAIs/7F1RTwiwRws/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_8Ini78jtxBk/TEKw7-0yg1I/AAAAAAAAAIw/fhNOeggJSs4/image_thumb%5B1%5D.png?imgmax=800" width="244" height="128"&gt;&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;strong&gt;2.&amp;nbsp; Using main web.config file of your application&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;&lt;pre&gt; &amp;lt;system.webServer&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;lt;modules runAllManagedModulesForAllRequests="true" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;security&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;requestFiltering&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;fileExtensions&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;add fileExtension=".aspx" allowed="false" /&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;/fileExtensions&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;/requestFiltering&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/security&amp;gt;&lt;br&gt;&lt;/strong&gt;&amp;nbsp; &amp;lt;/system.webServer&amp;gt;&lt;/pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Add Module tag with runAllManagedModulesForAllRequests = “true”&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Add requestfiltering with fileextension=”.aspx” and “allowed=false”. &lt;br&gt;&lt;br&gt;&lt;br&gt;Let me know your comment on this.  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-5633707301326718912?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/5633707301326718912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=5633707301326718912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/5633707301326718912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/5633707301326718912'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/07/aspnet-40-url-routing.html' title='ASP.net 4.0 Url Routing'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_8Ini78jtxBk/TEKw6GGBznI/AAAAAAAAAIo/ynxG6C-Q2Ow/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-5384336229623972047</id><published>2010-06-20T23:18:00.001+05:30</published><updated>2010-06-20T23:18:51.056+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><title type='text'>Process Bitmap Faster In .NET</title><content type='html'>&lt;p&gt;In .NET (C# or VB.net) you can process Bitmap pixel by pixel.   &lt;br /&gt;    &lt;br /&gt;Here is the example of simple code. ( Use Example of Gray Scale)&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;System.Drawing.Image img = System.Drawing.Bitmap.FromFile(@&amp;quot;C:\Test.jpg&amp;quot;);     &lt;br /&gt;Bitmap bmp = (Bitmap)img;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int x = 0; x &amp;lt; bmp.Width; x++)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int y = 0; y &amp;lt; bmp.Height; y++)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Color c =&amp;#160; bmp.GetPixel(x, y);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int gray = (int)((c.R + c.G + c.B)/3);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; bmp.SetPixel(x,y,Color.FromArgb(gray,gray,gray));      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&lt;font size="2"&gt;       &lt;br /&gt;Above code works fine but it takes to much time to process.In order to process Bitmap Image Faster “BitmapData” is powerful class in .NET. Here is the example of that class.        &lt;br /&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;System.Drawing.Image img = System.Drawing.Bitmap.FromFile(@&amp;quot;C:\Test.jpg&amp;quot;);     &lt;br /&gt;Bitmap bmp = (Bitmap)img;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;System.Drawing.Imaging.BitmapData data = bmp.LockBits(new Rectangle() { X = 0, Y = 0, Width = bmp.Width, Height = bmp.Height }, System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format24bppRgb);      &lt;br /&gt; IntPtr ptr = data.Scan0;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;int bytes&amp;#160; =data.Stride * bmp.Height;      &lt;br /&gt;byte[] rgbValues = new byte[bytes];&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);      &lt;br /&gt;int val = 0;      &lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;for (int counter = 0; counter &amp;lt; rgbValues.Length; counter += 3)     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; val = rgbValues[counter + 0] + rgbValues[counter + 1] + rgbValues[counter + 2];      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; rgbValues[counter+0] =&amp;#160; (byte)(val/3);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; rgbValues[counter+1] =&amp;#160; (byte)(val/3);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; rgbValues[counter+2] =&amp;#160; (byte)(val/3);      &lt;br /&gt;}      &lt;br /&gt;System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);      &lt;br /&gt;bmp.UnlockBits(data);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;This code works must faster than previous code. Test it with PictureBox Control and See the effect… :)     &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-5384336229623972047?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/5384336229623972047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=5384336229623972047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/5384336229623972047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/5384336229623972047'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/06/process-bitmap-faster-in-net.html' title='Process Bitmap Faster In .NET'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-6506172900526762224</id><published>2010-06-20T14:39:00.001+05:30</published><updated>2010-06-20T14:39:16.142+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bing Translate'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net MVC'/><title type='text'>Translate content using Bing Service In ASP.net MVC</title><content type='html'>&lt;p&gt;I used Translate Bing Service API in &lt;a href="http://spbingwebpart.codeplex.com/" target="_blank"&gt;SharePoint Translate Web Part&lt;/a&gt;. Same API can be used with ASP.net MVC. Here i am writing small extension method for HtmlHelper.&lt;/p&gt;  &lt;p&gt;public static class HtmlHelperExtention   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static string Tranlate(this System.Web.Mvc.HtmlHelper objHelper,string inputContent,string sourceLanguage,string targetLanguage)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string apikey = System.Configuration.ConfigurationManager.AppSettings[&amp;quot;BingAPI&amp;quot;];    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Soap s = new Soap();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string frenchoutputtext = s.Translate(apikey, inputContent, sourceLanguage, targetLanguage);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return frenchoutputtext;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;    &lt;br /&gt;In View Of ASP.net MVC you should write this.&lt;/p&gt;  &lt;p&gt;&amp;lt;body&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;div&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%=&amp;#160; Html.Tranlate(&amp;quot;&amp;lt;div&amp;gt;This is Translation test.&amp;lt;/div&amp;gt;&amp;quot;,&amp;quot;en&amp;quot;,&amp;quot;fr&amp;quot;) %&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/div&amp;gt;    &lt;br /&gt;&amp;lt;/body&amp;gt;    &lt;br /&gt;    &lt;br /&gt;Requirement:     &lt;br /&gt;1. Valid API key required.    &lt;br /&gt;2. Need to Add Proxy Class to user “Bing Translate Service”.    &lt;br /&gt;    &lt;br /&gt;Hope this will help…….&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-6506172900526762224?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/6506172900526762224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=6506172900526762224' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6506172900526762224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6506172900526762224'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/06/translate-content-using-bing-service-in.html' title='Translate content using Bing Service In ASP.net MVC'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-6562846274533121623</id><published>2010-01-31T17:24:00.001+05:30</published><updated>2010-01-31T17:24:37.473+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Custom GroupBox Control for Silverlight 3</title><content type='html'>&lt;p&gt;In previous post i put xaml that allow to create GroupBox using XAML.&lt;/p&gt;  &lt;p&gt;Here i am adding custom groupbox control.   &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/S2VveA0ZhiI/AAAAAAAAAH8/mW92ioNIdg0/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/S2Vve0kI-hI/AAAAAAAAAIA/oLGdT2IFrf8/image_thumb%5B2%5D.png?imgmax=800" width="396" height="303" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Download link :&amp;#160;&amp;#160; &lt;a href="http://dotnetstep.blogspot.com/2010/01/groupbox-control-for-silverlight3.html" target="_blank"&gt;GroupBox control for Silverlight 3&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Codeplex Link :&amp;#160; &lt;a href="http://silverlightgroupbox.codeplex.com" target="_blank"&gt;Silverlight3 GroupBox&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-6562846274533121623?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/6562846274533121623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=6562846274533121623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6562846274533121623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6562846274533121623'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/01/custom-groupbox-control-for-silverlight.html' title='Custom GroupBox Control for Silverlight 3'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/S2Vve0kI-hI/AAAAAAAAAIA/oLGdT2IFrf8/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-6332602129852677082</id><published>2010-01-31T16:45:00.001+05:30</published><updated>2010-01-31T16:45:25.513+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>GroupBox control for Silverlight3</title><content type='html'>&lt;p&gt;GroupBox control is not available in Silverlight 3, but you can create GroupBox control using following XAML.&lt;/p&gt;  &lt;p&gt;&amp;lt;Border CornerRadius=&amp;quot;10&amp;quot; Background=&amp;quot;AliceBlue&amp;quot; BorderBrush=&amp;quot;Black&amp;quot; BorderThickness=&amp;quot;1&amp;quot; Margin=&amp;quot;10,10,10,10&amp;quot; Width=&amp;quot;400&amp;quot; x:Name=&amp;quot;Test&amp;quot;&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;StackPanel&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Border Margin=&amp;quot;20,-10,0,0&amp;quot; Background=&amp;quot;AliceBlue&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;TextBlock Text=&amp;quot;User Setting&amp;quot; Margin=&amp;quot;10,0,10,0&amp;quot; FontWeight=&amp;quot;Bold&amp;quot;&amp;gt;&amp;lt;/TextBlock&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Border&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt; &amp;lt;!-- Put your content --&amp;gt;     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/StackPanel&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Border&amp;gt;    &lt;br /&gt;In above XAML you can replace &amp;lt;!-- Put your content –&amp;gt; with your data inside groupbox .&lt;/p&gt;  &lt;p&gt;For Example :&lt;/p&gt;  &lt;p&gt;&amp;lt;StackPanel&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;TextBox&amp;gt;    &lt;br /&gt;&amp;lt;/StackPanel&amp;gt;&lt;/p&gt;  &lt;p&gt;Let me know your comment on this.   &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-6332602129852677082?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/6332602129852677082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=6332602129852677082' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6332602129852677082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6332602129852677082'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/01/groupbox-control-for-silverlight3.html' title='GroupBox control for Silverlight3'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1869944230933153662</id><published>2010-01-16T14:31:00.004+05:30</published><updated>2010-03-30T22:11:41.144+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight 3: Programmatically Validate Textbox</title><content type='html'>&lt;p&gt;In &lt;a href="http://dotnetstep.blogspot.com/2009/12/silverlight-3-validation.html"&gt;previous post&lt;/a&gt; about validation in Silverlight, I explained the How binding is used to validate data ? .&lt;/p&gt;&lt;p&gt;Here i am going to explain how to validate Textbox ( Any control that has validation states group).&lt;/p&gt;&lt;p&gt;There are three validation states. 1. Valid 2. InvalidFocused 3. InvalidUnfocused. Now use VisualStateManager to change the state of control. &lt;strong&gt;Here is common method.&lt;/strong&gt;&lt;/p&gt;&lt;pre class="cpp" name="code"&gt;public void SetState(Control c, string message,string state)     &lt;br /&gt;      {      &lt;br /&gt;          if (state == "Invalid")      &lt;br /&gt;          {      &lt;br /&gt;              if (c.Focus())      &lt;br /&gt;                  VisualStateManager.GoToState(c, "InvalidFocused", false);      &lt;br /&gt;              else      &lt;br /&gt;                  VisualStateManager.GoToState(c, "InvalidUnfocused", false);       ToolTip tp = ((Grid)VisualTreeHelper.GetChild(c, 0)).FindName("validationTooltip") as ToolTip;     &lt;br /&gt;              tp.DataContext = message;              &lt;br /&gt;              tp.Template = LayoutRoot.Resources["ValidationToolTipTemplate"] as ControlTemplate;      &lt;br /&gt;          }      &lt;br /&gt;          else      &lt;br /&gt;          {      &lt;br /&gt;              VisualStateManager.GoToState(c, "Valid", false);      &lt;br /&gt;          }           &lt;br /&gt;      }&lt;/pre&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;In XAML Page you have to specify control template.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;ControlTemplate x:Key="&lt;strong&gt;ValidationToolTipTemplate&lt;/strong&gt;"&amp;gt;&lt;br /&gt;               &amp;lt;Grid x:Name="Root" &amp;gt;                 &lt;br /&gt;                   &amp;lt;Border Margin="4,4,-4,-4" Background="#152A2E31" CornerRadius="4"/&amp;gt;&lt;br /&gt;                   &amp;lt;Border Margin="3,3,-3,-3" Background="#252A2E31" CornerRadius="4"/&amp;gt;&lt;br /&gt;                   &amp;lt;Border Margin="2,2,-2,-2" Background="#352A2E31" CornerRadius="4"/&amp;gt;&lt;br /&gt;                   &amp;lt;Border Margin="1,1,-1,-1" Background="#452A2E31" CornerRadius="4"/&amp;gt;&lt;br /&gt;                   &amp;lt;Border Background="#FFDC000C" CornerRadius="4"/&amp;gt;&lt;br /&gt;                   &amp;lt;Border CornerRadius="4"&amp;gt;&lt;br /&gt;                       &amp;lt;Border.Background&amp;gt;&lt;br /&gt;                           &amp;lt;LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"&amp;gt;&lt;br /&gt;                               &amp;lt;GradientStop Color="#66FFFFFF"/&amp;gt;&lt;br /&gt;                               &amp;lt;GradientStop Color="#66000000" Offset="1"/&amp;gt;&lt;br /&gt;                               &amp;lt;GradientStop Color="#00E5E5E5" Offset="0.1"/&amp;gt;&lt;br /&gt;                               &amp;lt;GradientStop Color="#00161616" Offset="0.9"/&amp;gt;&lt;br /&gt;                           &amp;lt;/LinearGradientBrush&amp;gt;&lt;br /&gt;                       &amp;lt;/Border.Background&amp;gt;&lt;br /&gt;                       &amp;lt;TextBlock Margin="8,3,8,4" MaxWidth="250" UseLayoutRounding="false" Foreground="White" Text="{Binding}" TextWrapping="Wrap"/&amp;gt;&lt;br /&gt;                   &amp;lt;/Border&amp;gt;&lt;br /&gt;               &amp;lt;/Grid&amp;gt;&lt;br /&gt;           &amp;lt;/ControlTemplate&amp;gt;&lt;/p&gt;&lt;p&gt;This control template is used for validation tooltip.&lt;/p&gt;&lt;p&gt;Control like Textbox,listbox ,combobox,checkbox has validation states so you can use this method.&lt;/p&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;p&gt;if(txtFirstName.Text == “”)&lt;br /&gt;{&lt;br /&gt;    SetState(txtFirstName , “Invalid”, “Please enter first name”);&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;Let me know you comment on this.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1869944230933153662?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1869944230933153662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1869944230933153662' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1869944230933153662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1869944230933153662'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2010/01/silverlight-3-programmatically-validate.html' title='Silverlight 3: Programmatically Validate Textbox'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-8560275680005946732</id><published>2009-12-09T23:12:00.001+05:30</published><updated>2009-12-09T23:12:52.097+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight 3 : Enable and Disable Validation For Control.</title><content type='html'>&lt;p&gt;Please check previous post about &lt;a href="http://dotnetstep.blogspot.com/2009/12/silverlight-3-validation.html"&gt;validation with silverlight.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enable and Disable Validation or you can say manually adding and remove binding for control.&lt;/p&gt;  &lt;p&gt;In previous post i bound myName TextBox to Name property of Customer, But some case you do not want to validate that control and to do so you need to clear binding. ( Simplest way as per my thinking).&lt;/p&gt;  &lt;p&gt;1. Remove Binding in Silverlight or Disable Validation&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;// Clear all errors from validation summary. ( Review previous post XAML)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;valida.Errors.Clear();&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;// Set Text to clear ( As per your need )     &lt;br /&gt;&lt;/strong&gt;myName.Text = String.Empty;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;//This call will cleae binding for TextProperty( Take any dependency property)&lt;/strong&gt;    &lt;br /&gt;myName.SetValue(TextBox.TextProperty, DependencyProperty.UnsetValue);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; myName.ClearValue(TextBox.TextProperty);    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;2. Adding Binding in Silverlight or Enable Validation.&lt;/p&gt;  &lt;p&gt;Binding binding = new Binding(&amp;quot;Name&amp;quot;);   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; binding.ValidatesOnExceptions = true;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; binding.NotifyOnValidationError = true;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; binding.Mode = BindingMode.TwoWay;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; myName.SetBinding(TextBox.TextProperty, binding);&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Let me know your comment on this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-8560275680005946732?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/8560275680005946732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=8560275680005946732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8560275680005946732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8560275680005946732'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/12/silverlight-3-enable-and-disable.html' title='Silverlight 3 : Enable and Disable Validation For Control.'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-2364392125337252511</id><published>2009-12-09T23:04:00.001+05:30</published><updated>2009-12-09T23:04:46.484+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight 3 : Validation</title><content type='html'>&lt;p&gt;To do validation in silverlight 3 , need to use dataannotation. In my &lt;a href="http://dotnetstep.blogspot.com/2009/12/silverlight-3-and-resource-file.html"&gt;previous post&lt;/a&gt; i discussed about binding and resource file. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Sample XAML File.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;UserControl xmlns:dataInput=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input&amp;quot;&amp;#160; xmlns:dataFormToolkit=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit&amp;quot;&amp;#160; x:Class=&amp;quot;SilverlightApplication2.MainPage&amp;quot;&amp;#160;&amp;#160;&amp;#160; xmlns=&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/a&gt;    &lt;br /&gt;xmlns:x=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/a&gt;    &lt;br /&gt;xmlns:controlsToolkit=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit&amp;quot;&amp;#160;&amp;#160;&amp;#160; xmlns:d=&amp;quot;&lt;a href="http://schemas.microsoft.com/expression/blend/2008&amp;quot;"&gt;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/a&gt; xmlns:mc=&amp;quot;&lt;a href="http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/a&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns:local=&amp;quot;clr-namespace:SilverlightApplication2.Resourses&amp;quot; xmlns:localCustom=&amp;quot;clr-namespace:SilverlightApplication2&amp;quot;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; mc:Ignorable=&amp;quot;d&amp;quot; d:DesignWidth=&amp;quot;640&amp;quot; d:DesignHeight=&amp;quot;480&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;UserControl.Resources&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;local:Strings x:Key=&amp;quot;LocStrings&amp;quot;&amp;gt;&amp;lt;/local:Strings&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;localCustom:DisplayLabelConvertor x:Key=&amp;quot;display&amp;quot;&amp;gt;&amp;lt;/localCustom:DisplayLabelConvertor&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/UserControl.Resources&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Grid x:Name=&amp;quot;LayoutRoot&amp;quot; Background=&amp;quot;#FF333333&amp;quot;&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;StackPanel Orientation=&amp;quot;Vertical&amp;quot; x:Name=&amp;quot;MyDataForm&amp;quot; BindingValidationError=&amp;quot;MyDataForm_BindingValidationError&amp;quot; &amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;dataInput:ValidationSummary x:Name=&amp;quot;valida&amp;quot; Height=&amp;quot;100&amp;quot;&amp;gt;&amp;lt;/dataInput:ValidationSummary&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;TextBox x:Name=&amp;quot;myName&amp;quot; Text=&amp;quot;{Binding Name,Mode=TwoWay,ValidatesOnExceptions=True,NotifyOnValidationError=True}&amp;quot; &amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/TextBox&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Button Content=&amp;quot;save&amp;quot; Click=&amp;quot;Button_Click&amp;quot;&amp;gt;&amp;lt;/Button&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/StackPanel&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Grid&amp;gt;    &lt;br /&gt;&amp;lt;/UserControl&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. CS File.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;public partial class MainPage : UserControl   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Customer c = new Customer();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private int _errorCount = 0;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public MainPage()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyDataForm.DataContext = c;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private void MyDataForm_BindingValidationError(object sender, ValidationErrorEventArgs e)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (e.Action == ValidationErrorEventAction.Added)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _errorCount++;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else if (e.Action == ValidationErrorEventAction.Removed)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _errorCount--;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private void Button_Click(object sender, RoutedEventArgs e)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _errorCount = 0; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Need to do for validating control.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // If you do not do this then untill you make any change in control no validation will work.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Like form first time open and you prees submit then it will not validate . To do so this is required.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BindingExpression exp = myName.GetBindingExpression(TextBox.TextProperty);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (exp != null)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; exp.UpdateSource(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (_errorCount ==0)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Success    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Error    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;3. Enjoy Validation………… :)&lt;/p&gt;  &lt;p&gt;Let me know your comment.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-2364392125337252511?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/2364392125337252511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=2364392125337252511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2364392125337252511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2364392125337252511'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/12/silverlight-3-validation.html' title='Silverlight 3 : Validation'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3201287733358015611</id><published>2009-12-06T22:43:00.001+05:30</published><updated>2009-12-06T22:43:58.223+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight 3 and Resource File</title><content type='html'>&lt;p&gt;In silverlight you can access resource file to customize label and other data that need to be localize.&lt;/p&gt;  &lt;p&gt;1. Create class that use DataAnnotation attributes.&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;public class Customer     &lt;br /&gt;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private string _name = string.Empty;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Display(ResourceType=typeof(SilverlightApplication2.Resourses.Strings),Name=&amp;quot;CustomerLabel&amp;quot;)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Required(ErrorMessageResourceType = typeof(SilverlightApplication2.Resourses.Strings), ErrorMessageResourceName = &amp;quot;CustomerNameError&amp;quot;)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Name      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return _name;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&lt;strong&gt;&amp;#160;&amp;#160; Validator.ValidateProperty(value, new ValidationContext(this, null, null) { MemberName = &amp;quot;Name&amp;quot; });&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _name = value;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;In above class you can see that for Display and Required attribute , ResourceType and ErrorMessageResourceType set. This will point to resource file. Also in setter of property you have to validate the value.&lt;/p&gt;  &lt;p&gt;2. Add resource file as per your need. For example here i added Strings.Resx file. &lt;/p&gt;  &lt;p&gt;Step 3 is very very important in order to access resource in .xap file.&lt;/p&gt;  &lt;p&gt;3. &lt;strong&gt;Specially for Silverlight open Strings.Resx.cs file. Change access modifier from internal to public. Also set public for each resource string. ( See below images.)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/SxvmGam8c5I/AAAAAAAAAHo/oICPXaJSQDU/s1600-h/image%5B16%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/SxvmHwNoSPI/AAAAAAAAAHs/4rsyY4-FKPE/image_thumb%5B10%5D.png?imgmax=800" width="439" height="153" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/SxvmI6_dYiI/AAAAAAAAAHw/Qu-3CnHC40o/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/SxvmKPKFt0I/AAAAAAAAAH0/iS-ttQ_bug4/image_thumb%5B7%5D.png?imgmax=800" width="244" height="67" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Generate another resource file for different culture. For example fr-CA culture you need to generate Strings.fr-CA.resx.&lt;/p&gt;  &lt;p&gt;4. Now in silverlight application if you use DataForm then just need to do following.This will automatic use label from display resource.&lt;/p&gt;  &lt;p&gt;dfCustomer.CurrentItem = new Customer();&lt;/p&gt;  &lt;p&gt;5. To access resource in XAML.&lt;/p&gt;  &lt;p&gt;&amp;lt;UserControl xmlns:dataInput=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input&amp;quot;&amp;#160; xmlns:dataFormToolkit=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit&amp;quot;&amp;#160; x:Class=&amp;quot;SilverlightApplication2.MainPage&amp;quot;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/a&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns:x=&amp;quot;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/a&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns:d=&amp;quot;&lt;a href="http://schemas.microsoft.com/expression/blend/2008&amp;quot;"&gt;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/a&gt; xmlns:mc=&amp;quot;&lt;a href="http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;"&gt;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/a&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; xmlns:local=&amp;quot;clr-namespace:SilverlightApplication2.Resourses&amp;quot; xmlns:localCustom=&amp;quot;clr-namespace:SilverlightApplication2&amp;quot;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; mc:Ignorable=&amp;quot;d&amp;quot; d:DesignWidth=&amp;quot;640&amp;quot; d:DesignHeight=&amp;quot;480&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;UserControl.Resources&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;local:Strings x:Key=&amp;quot;LocStrings&amp;quot;&amp;gt;&amp;lt;/local:Strings&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/UserControl.Resources&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Grid x:Name=&amp;quot;LayoutRoot&amp;quot; Background=&amp;quot;#FF333333&amp;quot;&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;StackPanel Orientation=&amp;quot;Vertical&amp;quot; x:Name=&amp;quot;MyDataForm&amp;quot; &amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;dataInput:ValidationSummary Height=&amp;quot;100&amp;quot;&amp;gt;&amp;lt;/dataInput:ValidationSummary&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;TextBox Text=&amp;quot;{Binding Name,Mode=TwoWay,ValidatesOnExceptions=True,NotifyOnValidationError=True}&amp;quot; &amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/TextBox&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Button Content=&amp;quot;save&amp;quot; Click=&amp;quot;Button_Click&amp;quot;&amp;gt;&amp;lt;/Button&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/StackPanel&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Grid&amp;gt;    &lt;br /&gt;&amp;lt;/UserControl&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;In cs file.&lt;/p&gt;  &lt;p&gt;public MainPage()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Customer c = new Customer();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c.Name = &amp;quot;TEST&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyDataForm.DataContext = c;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;6. Last step but very important. You have to edit .csproject file in notepad. Add supportedcultures.&lt;/p&gt;  &lt;p&gt;&amp;lt;SupportedCultures&amp;gt;fr-CA   &lt;br /&gt; &amp;lt;/SupportedCultures&amp;gt;&lt;/p&gt;  &lt;p&gt;Let me know update or any other idea about resource file.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3201287733358015611?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3201287733358015611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3201287733358015611' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3201287733358015611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3201287733358015611'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/12/silverlight-3-and-resource-file.html' title='Silverlight 3 and Resource File'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_8Ini78jtxBk/SxvmHwNoSPI/AAAAAAAAAHs/4rsyY4-FKPE/s72-c/image_thumb%5B10%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-8626391317470231741</id><published>2009-12-06T11:50:00.001+05:30</published><updated>2009-12-06T22:07:34.038+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net MVC'/><title type='text'>ASP.net MVC 2 : Client-side Validation and Resource file</title><content type='html'>&lt;p&gt;In my previous post i gave example of client side validation. Also you need to localize error message. To do this you need to add resource file.Add resource file following way.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SxtM8wAgIDI/AAAAAAAAAHQ/2C4EiVN5NL0/s1600-h/image5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_8Ini78jtxBk/SxtM_AYskRI/AAAAAAAAAHU/Ncf7hm-4U-Y/image_thumb1.png?imgmax=800" width="230" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;During creation of Student model you need to specify the resource.&lt;/p&gt;  &lt;p&gt;public class Student    &lt;br /&gt;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Required(ErrorMessageResourceType = typeof(StudentResourse), ErrorMessageResourceName = &amp;quot;FirstNameError&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [DisplayName(&amp;quot;User name&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string FirstName { get; set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Required(ErrorMessageResourceType = typeof(StudentResourse), ErrorMessageResourceName = &amp;quot;EmailError&amp;quot;)]    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [DisplayName(&amp;quot;Email address&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Email { get; set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Required(ErrorMessageResourceType = typeof(StudentResourse), ErrorMessageResourceName = &amp;quot;PriceError&amp;quot;)]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [DisplayName(&amp;quot;Fees&amp;quot;)]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public double Fees { get; set; }     &lt;br /&gt;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;Here you can see that ErrorMessageResourceType and ErrorMessageResourceName. This is used to identify resource file and resource name.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SxtNAOLTRSI/AAAAAAAAAHY/NUbCrMriIdk/s1600-h/image10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_8Ini78jtxBk/SxtNBfAHtRI/AAAAAAAAAHc/5HuI0s1qeYs/image_thumb4.png?imgmax=800" width="416" height="130" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;you need to create resource file for each culture you need. For example fr-FR.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/SxtNCQbftdI/AAAAAAAAAHg/23Dzx2cz9KM/s1600-h/image19.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/SxtNDp0H6II/AAAAAAAAAHk/aSP-kjRAIKs/image_thumb11.png?imgmax=800" width="425" height="124" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As per the CurrentUICulture message is displayed.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-8626391317470231741?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/8626391317470231741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=8626391317470231741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8626391317470231741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8626391317470231741'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/12/aspnet-mvc-2-client-side-validation-and.html' title='ASP.net MVC 2 : Client-side Validation and Resource file'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_8Ini78jtxBk/SxtM_AYskRI/AAAAAAAAAHU/Ncf7hm-4U-Y/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-6194390053981089527</id><published>2009-12-06T11:49:00.001+05:30</published><updated>2009-12-06T22:06:21.072+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net MVC'/><title type='text'>ASP.net MVC 2 : Client-side Validation</title><content type='html'>&lt;p&gt;In ASP.net MVC 2 Beta, DataAnnontation supports for validation . While creating model you can give attribute that use to support validation.&lt;/p&gt;  &lt;p&gt;public class Student    &lt;br /&gt;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;#160; [Required(ErrorMessage=&amp;quot;Firstname is required field.&amp;quot;)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [DisplayName(&amp;quot;User name&amp;quot;)]       &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string FirstName { get; set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;[Required(ErrorMessage = &amp;quot;Email is required field.&amp;quot;)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [DisplayName(&amp;quot;Email address&amp;quot;)]&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Email { get; set; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;[Required(ErrorMessage = &amp;quot;Fees is required field.&amp;quot;)]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [DisplayName(&amp;quot;Fees&amp;quot;)]       &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public double Fees { get; set; }     &lt;br /&gt;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;Now use this model class to create view.&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;lt;%@ Page Title=&amp;quot;&amp;quot; Language=&amp;quot;C#&amp;quot; MasterPageFile=&amp;quot;~/Views/Shared/Site.Master&amp;quot; Inherits=&amp;quot;System.Web.Mvc.ViewPage&amp;lt;MvcApplication12.Models.Student&amp;gt;&amp;quot; %&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;lt;asp:Content ID=&amp;quot;Content1&amp;quot; ContentPlaceHolderID=&amp;quot;TitleContent&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ViewPage2       &lt;br /&gt;&amp;lt;/asp:Content&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;lt;asp:Content ID=&amp;quot;Content2&amp;quot; ContentPlaceHolderID=&amp;quot;MainContent&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;      &lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&amp;lt;script src=&amp;quot;/Scripts/MicrosoftAjax.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;          &lt;br /&gt;&amp;lt;script src=&amp;quot;/Scripts/MicrosoftMvcAjax.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/strong&gt;&lt;/font&gt;       &lt;br /&gt;&amp;lt;h2&amp;gt;ViewPage2&amp;lt;/h2&amp;gt;       &lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&amp;lt;% Html.EnableClientValidation(); %&amp;gt;&lt;/strong&gt;&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;% using (Html.BeginForm()) {%&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;fieldset&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;legend&amp;gt;Fields&amp;lt;/legend&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;p&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.LabelFor(model =&amp;gt; model.FirstName) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.TextBoxFor(model =&amp;gt; model.FirstName) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.ValidationMessageFor(model =&amp;gt; model.FirstName) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/p&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;p&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.LabelFor(model =&amp;gt; model.Email) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.TextBoxFor(model =&amp;gt; model.Email) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.ValidationMessageFor(model =&amp;gt; model.Email) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/p&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;p&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.LabelFor(model =&amp;gt; model.Fees) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.TextBoxFor(model =&amp;gt; model.Fees) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.ValidationMessageFor(model =&amp;gt; model.Fees) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/p&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;p&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Create&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/p&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/fieldset&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;% } %&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;div&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%=Html.ActionLink(&amp;quot;Back to List&amp;quot;, &amp;quot;Index&amp;quot;) %&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/div&amp;gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;lt;/asp:Content&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;To enable client side validation need to add javascript and&amp;#160; &lt;font color="#0000ff" size="1"&gt;&lt;strong&gt;&amp;lt;% Html.EnableClientValidation(); %&amp;gt;.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;Let me know your comment on this.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-6194390053981089527?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/6194390053981089527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=6194390053981089527' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6194390053981089527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6194390053981089527'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/12/aspnet-mvc-2-client-side-validation.html' title='ASP.net MVC 2 : Client-side Validation'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-8787805378579135273</id><published>2009-11-17T06:29:00.002+05:30</published><updated>2009-11-17T06:34:09.636+05:30</updated><title type='text'>Translation WebPart using Bing Service</title><content type='html'>This is my first project that i added to codeplex. That contain source code as well as binary with PDF document.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://spbingwebpart.codeplex.com/"&gt;Translation WebPart&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As mention in codeplex you can use webpart with WSS/MOSS . But even you can use this with Simple ASP.net WebSite.&lt;br /&gt;&lt;br /&gt;Let me know your comment on this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-8787805378579135273?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/8787805378579135273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=8787805378579135273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8787805378579135273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8787805378579135273'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/11/translation-webpart-using-bing-service.html' title='Translation WebPart using Bing Service'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-4668628575865354957</id><published>2009-09-20T14:37:00.000+05:30</published><updated>2009-09-21T14:38:18.176+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Window Application'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><title type='text'>Cross-thread operation not valid.</title><content type='html'>&lt;p&gt;In window application , when you need to use Threading and access control inside that thread, then you get this error “Cross-thread operation not valid.” The reason behind this control is working under main thread and you create another thread in which you are trying to access control.   &lt;br /&gt;    &lt;br /&gt;There are two ways to solve this error.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;1. Set property in Form constructor.     &lt;br /&gt;&lt;/strong&gt;You need to set static property &lt;em&gt;&lt;strong&gt;&lt;font size="1"&gt;CheckForIllegalCrossThreadCalls&lt;/font&gt;&amp;#160;&lt;/strong&gt;&lt;/em&gt; of control class to false value. This will disable cross thread checking.    &lt;br /&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Form1()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();    &lt;br /&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Control.CheckForIllegalCrossThreadCalls = false;     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;    &lt;br /&gt;Sample Code (C#):&lt;/p&gt;  &lt;p&gt;public partial class Form1 : Form   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Form1()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Control.CheckForIllegalCrossThreadCalls = false;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private void button1_Click(object sender, EventArgs e)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(Test));    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; th.Start(1000);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void Test(object o)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; 10; i++)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; label1.Text = System.Threading.Thread.CurrentThread.ManagedThreadId.ToString() + &amp;quot; --- &amp;quot; + i.ToString();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Threading.Thread.Sleep(int.Parse(o.ToString()));    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;2. Use delegate and event.     &lt;br /&gt;      &lt;br /&gt;Sample Code (C#) :&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;public partial class Form1 : Form   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; delegate void SetLabelText(string str);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SetLabelText setLabel1Text = null;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Form1()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; setLabel1Text = new SetLabelText(Label1Text);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private void button1_Click(object sender, EventArgs e)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(Test));    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; th.Start(1000);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void Test(object o)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; 10; i++)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (this.InvokeRequired)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.Invoke(setLabel1Text, System.Threading.Thread.CurrentThread.ManagedThreadId.ToString() + &amp;quot; --- &amp;quot; + i.ToString());    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Threading.Thread.Sleep(int.Parse(o.ToString()));    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void Label1Text(string str)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; label1.Text = str;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;    &lt;br /&gt;Please give your comment on this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-4668628575865354957?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/4668628575865354957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=4668628575865354957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4668628575865354957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4668628575865354957'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/09/cross-thread-operation-not-valid.html' title='Cross-thread operation not valid.'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7167037368287652559</id><published>2009-06-14T09:17:00.000+05:30</published><updated>2009-06-16T09:20:16.303+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Window Application'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><title type='text'>Remove Focus Rectangle From Button</title><content type='html'>&lt;p&gt;Article is about to remove focus rectangle or say cues from Button in window form application.   &lt;br /&gt;    &lt;br /&gt;First let discuss what default focus rectangle. Please look at following image , in that image OK button has default focus so it display cues rectangle.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/SjcV9TfDRsI/AAAAAAAAAGo/iwFikQV_IU8/s1600-h/image%5B3%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="74" alt="image" src="http://lh4.ggpht.com/_8Ini78jtxBk/SjcV-WMLwpI/AAAAAAAAAGs/vRPUr5FDCzM/image_thumb%5B6%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt; (FlatStyle == System)    &lt;br /&gt;    &lt;br /&gt; When we want to set background image of button to make button attractive in that case this default rectangle create problem with look and feel.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/SjcV_McUbHI/AAAAAAAAAGw/Pd6e5c0CHtI/s1600-h/image%5B7%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="71" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/SjcV__SIbrI/AAAAAAAAAG0/cp7ogDPF0w4/image_thumb%5B12%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt; (FlatStyle = Standard)    &lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/SjcWAkGPYII/AAAAAAAAAG4/nounh3l4qgM/s1600-h/image%5B11%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="76" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/SjcWBlbZJzI/AAAAAAAAAG8/qxK_Nut2zGQ/image_thumb%5B18%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;(FlatStyle = Flat)    &lt;br /&gt;    &lt;br /&gt;In above two image need to set FlatApperance.BorderStyle =0. You can visualize that in all above case default focus rectangle make button look ugly with background image.    &lt;br /&gt;    &lt;br /&gt;To remove this cues ( Default focus rectangle ) you need to set &lt;strong&gt;ShowFocusCues &lt;/strong&gt;property of Button to false but this property does not directly available to Button. This property available in ButtonBase class with protected access specifier. In order to set this property to false we need to create class that inherits from Button or ButtonBase and set this property explicitly false.&lt;/p&gt;  &lt;p&gt;class CustomButton : System.Windows.Forms.Button    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected override bool ShowFocusCues    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return false;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/SjcWCEhJ4sI/AAAAAAAAAHA/UNXwVMb-Drk/s1600-h/image%5B15%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="76" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/SjcWDIkxVuI/AAAAAAAAAHE/PZdGkc_UStw/image_thumb%5B25%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;Now see that default focus rectangle is removed.    &lt;br /&gt;    &lt;br /&gt;More generic class for Button.    &lt;br /&gt;    &lt;br /&gt;class CustomButton : System.Windows.Forms.Button     &lt;br /&gt;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private bool _DisplayFocusCues = true;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected override bool ShowFocusCues    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return _DisplayFocusCues;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public bool DisplayFocusCues   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return _DisplayFocusCues;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _DisplayFocusCues = value;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;Using this class you can set DisplayFocusCues at design time so CustomButton work with any case. ( Want to display focus rectangle or not).   &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/SjcWDveSgqI/AAAAAAAAAHI/YrF2W2R5xYk/s1600-h/image%5B19%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="117" alt="image" src="http://lh6.ggpht.com/_8Ini78jtxBk/SjcWERlFw1I/AAAAAAAAAHM/HzuD_g9-ICU/image_thumb%5B32%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Hope this solution is help you to create button without cues.   &lt;br /&gt;    &lt;br /&gt;Your suggestion is always invited.    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7167037368287652559?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7167037368287652559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7167037368287652559' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7167037368287652559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7167037368287652559'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/remove-focus-rectangle-from-button.html' title='Remove Focus Rectangle From Button'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_8Ini78jtxBk/SjcV-WMLwpI/AAAAAAAAAGs/vRPUr5FDCzM/s72-c/image_thumb%5B6%5D.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1620083946893127749</id><published>2009-06-14T06:13:00.001+05:30</published><updated>2009-06-14T06:13:24.111+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Window Service'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Programmatically Install Window Service</title><content type='html'>&lt;p&gt;This article is about to install / uninstall window service programmatically from C#. This is useful when you need to install / uninstall window service from some other application.   &lt;br /&gt;    &lt;br /&gt;For this purpose you need to use &lt;strong&gt;&lt;em&gt;ServiceProcessInstaller&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;ServiceInstaller&lt;/em&gt;&lt;/strong&gt; class from another application. These two installer classes are responsible for Installation of service.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;C# Example for Programmatically Install Window Service.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Tahoma"&gt;ServiceProcessInstaller ProcesServiceInstaller = new ServiceProcessInstaller();     &lt;br /&gt;ProcesServiceInstaller.Account =&amp;#160; ServiceAccount.User;      &lt;br /&gt;ProcesServiceInstaller.Username = &amp;quot;&amp;lt;&amp;lt;username&amp;gt;&amp;gt;&amp;quot;;      &lt;br /&gt;ProcesServiceInstaller.Password = &amp;quot;&amp;lt;&amp;lt;password&amp;gt;&amp;gt;&amp;quot;;      &lt;br /&gt;      &lt;br /&gt;ServiceInstaller ServiceInstallerObj = new ServiceInstaller();      &lt;br /&gt;InstallContext Context = new System.Configuration.Install.InstallContext();      &lt;br /&gt;String path = String.Format(&amp;quot;/assemblypath={0}&amp;quot;, @&amp;quot;&amp;lt;&amp;lt;path of executable of window service&amp;gt;&amp;gt;&amp;quot;);      &lt;br /&gt;String[] cmdline = { path };      &lt;br /&gt;      &lt;br /&gt;Context = new System.Configuration.Install.InstallContext(&amp;quot;&amp;quot;, cmdline);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;ServiceInstallerObj.Context = Context;      &lt;br /&gt;ServiceInstallerObj.DisplayName = &amp;quot;MyService&amp;quot;;      &lt;br /&gt;ServiceInstallerObj.Description = &amp;quot;MyService installer test&amp;quot;;      &lt;br /&gt;ServiceInstallerObj.ServiceName = &amp;quot;MyService&amp;quot;;      &lt;br /&gt;ServiceInstallerObj.StartType =&amp;#160; ServiceStartMode.Automatic;      &lt;br /&gt;ServiceInstallerObj.Parent = ProcesServiceInstaller;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;      &lt;br /&gt;System.Collections.Specialized.ListDictionary state = new System.Collections.Specialized.ListDictionary();      &lt;br /&gt;ServiceInstallerObj.Install(state);      &lt;br /&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;C# Example to Programmatically Uninstall Window Service.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;ServiceInstaller ServiceInstallerObj = new ServiceInstaller();   &lt;br /&gt;InstallContext Context = new InstallContext(&amp;quot;&amp;lt;&amp;lt;log file path&amp;gt;&amp;gt;&amp;quot;, null);    &lt;br /&gt;ServiceInstallerObj.Context = Context;    &lt;br /&gt;ServiceInstallerObj.ServiceName = &amp;quot;MyService&amp;quot;;    &lt;br /&gt;ServiceInstallerObj.Uninstall(null);    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;other article related to window service.     &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;&lt;a title="http://dotnetstep.blogspot.com/2009/06/passing-parameter-to-installutil.html" href="http://dotnetstep.blogspot.com/2009/06/passing-parameter-to-installutil.html"&gt;&lt;strong&gt;http://dotnetstep.blogspot.com/2009/06/passing-parameter-to-installutil.html&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;a title="http://dotnetstep.blogspot.com/2009/06/install-window-service-without-using.html" href="http://dotnetstep.blogspot.com/2009/06/install-window-service-without-using.html"&gt;&lt;strong&gt;http://dotnetstep.blogspot.com/2009/06/install-window-service-without-using.html&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;a title="http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html" href="http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html"&gt;&lt;strong&gt;http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;a title="http://dotnetstep.blogspot.com/2009/06/get-windowservice-executable-path-in.html" href="http://dotnetstep.blogspot.com/2009/06/get-windowservice-executable-path-in.html"&gt;&lt;strong&gt;http://dotnetstep.blogspot.com/2009/06/get-windowservice-executable-path-in.html&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;Please give your idea about this article.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1620083946893127749?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1620083946893127749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1620083946893127749' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1620083946893127749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1620083946893127749'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/programmatically-install-window-service.html' title='Programmatically Install Window Service'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-4177505677616997407</id><published>2009-06-13T18:58:00.001+05:30</published><updated>2009-06-13T19:00:07.951+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Window Service'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Passing Parameter to InstallUtil</title><content type='html'>&lt;p&gt;When installing window service or any installer ( class inherits from install class) required custom parameter at run time , Need to pass as parameter of installutil.   &lt;br /&gt;    &lt;br /&gt;Crating window service using article (&lt;a title="http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html" href="http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html"&gt;http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html&lt;/a&gt;).&amp;#160; This article suggest you add installer ( ProjectInstaller). Now we use installer class events to configure ServiceProcessInstaller and ServiceInstaller as per parameter pass to installutil.    &lt;br /&gt;    &lt;br /&gt;&lt;font face="Tahoma" size="1"&gt;[RunInstaller(true)]     &lt;br /&gt;public partial class ProjectInstaller : Installer      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public ProjectInstaller()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InitializeComponent();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt; this.BeforeInstall += new InstallEventHandler(ProjectInstaller_BeforeInstall);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.BeforeUninstall += new InstallEventHandler(ProjectInstaller_BeforeUninstall);        &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; void ProjectInstaller_BeforeInstall(object sender, InstallEventArgs e)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Configure Account for Service Process.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; switch(this.Context.Parameters[&amp;quot;Account&amp;quot;])      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case &amp;quot;LocalService&amp;quot;:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case &amp;quot;LocalSystem&amp;quot;:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case &amp;quot;NetworkService&amp;quot;:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.NetworkService;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case &amp;quot;User&amp;quot;:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.User;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.serviceProcessInstaller1.Username = this.Context.Parameters[&amp;quot;UserName&amp;quot;];      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.serviceProcessInstaller1.Password = this.Context.Parameters[&amp;quot;Password&amp;quot;];      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Configure ServiceName      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if(!String.IsNullOrEmpty(this.Context.Parameters[&amp;quot;ServiceName&amp;quot;]))      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.serviceInstaller1.ServiceName = this.Context.Parameters[&amp;quot;ServiceName&amp;quot;];      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="ta" size="1"&gt;&lt;font face="Tahoma"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; void ProjectInstaller_BeforeUninstall(object sender, InstallEventArgs e)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (!String.IsNullOrEmpty(this.Context.Parameters[&amp;quot;ServiceName&amp;quot;]))        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.serviceInstaller1.ServiceName = this.Context.Parameters[&amp;quot;ServiceName&amp;quot;];        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }        &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font size="2"&gt;Above ProjectInstaller class handle two events : BeforeInstall and BeforeUninstall. BeforeInstall is called just before install method of installer (ProjectInstaller) called via InstallUtil and same way BeforeUninstall called just before Uninstall method of projectinstaller class. After adding that two event handler use following to configure service using installutil.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="ta" size="1"&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;1. Install&lt;/font&gt;&lt;/strong&gt;          &lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;installutil /Account=User /UserName=admin /Password=admin /ServiceName=WinService1 /i WindowService1.exe         &lt;br /&gt;          &lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;2. Uninstall&lt;/strong&gt;&lt;/font&gt;          &lt;br /&gt;installutil /ServiceName=WinService1 /u WindowService1.exe          &lt;br /&gt;          &lt;br /&gt;This will also help you configure WindowService1.exe with two different name and different account.&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;installutil /Account=User /UserName=admin /Password=admin&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;/ServiceName=WinService1&lt;/strong&gt; /i WindowService1.exe&lt;/font&gt;      &lt;br /&gt;      &lt;p&gt;&lt;font size="2"&gt;installutil /Account=LocalSystem &lt;strong&gt;/ServiceName=WinService2&lt;/strong&gt; /i WindowService1.exe&lt;/font&gt;        &lt;br /&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-4177505677616997407?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/4177505677616997407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=4177505677616997407' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4177505677616997407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4177505677616997407'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/passing-parameter-to-installutil.html' title='Passing Parameter to InstallUtil'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-8558259364872529346</id><published>2009-06-13T10:49:00.001+05:30</published><updated>2009-06-13T10:49:41.036+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Window Service'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Install window service without using installutil</title><content type='html'>&lt;p&gt;Article is about to install window service without using InstallUtil utility.   &lt;br /&gt;Windows XP or Later has command line utility called sc . (This utility talks with service controller and with services from command line).    &lt;br /&gt;SC is a window base utility. AS explain in article &lt;a title="http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html" href="http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html"&gt;http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html&lt;/a&gt; sc does not required ProjectInstaller.    &lt;br /&gt;    &lt;br /&gt;1. Start service using sc    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sc start &lt;strong&gt;ServiceName     &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;2. Stop serivce    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sc stop &lt;strong&gt;ServiceName     &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;3. Delete window service    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sc delete &lt;strong&gt;servicename&lt;/strong&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Note : During delete call if service is in running state then service is delete when nexttime service is stop or PC restart.    &lt;br /&gt;    &lt;br /&gt;4. Create window service    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sc create &lt;strong&gt;ServiceName binpath= “c:\windowservice1\windowservice1.exe”     &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Apart from above many option available . For that just go to command prompt and type &lt;strong&gt;sc create /?     &lt;br /&gt;      &lt;br /&gt;&amp;#160; For example configure service running account.      &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;sc create servicename binpath= “c:\windowservice1\windowservice1.exe” obj= administrator password= pass    &lt;br /&gt;    &lt;br /&gt;Hope this article will help you .    &lt;br /&gt;    &lt;br /&gt;Please give your comment or idea about this.    &lt;br /&gt;    &lt;br /&gt;In above all case Service ServiceName ( Mark as blue) , don’t use display name.    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/SjM24oejssI/AAAAAAAAAGg/x5HSv-Fx28I/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="225" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/SjM269c2xvI/AAAAAAAAAGk/HBFq-MsZxvg/image_thumb%5B3%5D.png?imgmax=800" width="403" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-8558259364872529346?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/8558259364872529346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=8558259364872529346' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8558259364872529346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8558259364872529346'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/install-window-service-without-using.html' title='Install window service without using installutil'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/SjM269c2xvI/AAAAAAAAAGk/HBFq-MsZxvg/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-4663276717253834256</id><published>2009-06-13T10:21:00.001+05:30</published><updated>2009-06-13T10:52:30.332+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Window Service'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><title type='text'>Install WindowService using installutil.</title><content type='html'>&lt;p&gt;This article is about to install to window service using installutil.exe. InstallUtil.exe or simply say installutil utility comes up with .NET Framework 2.0.    &lt;br /&gt;    &lt;br /&gt;Steps.     &lt;br /&gt;1. Create new Window Service Project.     &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/SjMwPQMHMuI/AAAAAAAAAFw/DxeAT7BcR8Y/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="269" alt="image" src="http://lh6.ggpht.com/_8Ini78jtxBk/SjMwRSjZRcI/AAAAAAAAAF0/OAozl_LXIhM/image_thumb%5B6%5D.png?imgmax=800" width="399" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;2. After that open services1.cs in design mode . It looks like this.     &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SjMwSQ-mOfI/AAAAAAAAAF4/ZW_QfU6JT5Q/s1600-h/image%5B14%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="272" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/SjMwUOUV82I/AAAAAAAAAF8/iOk8YtE3cug/image_thumb%5B17%5D.png?imgmax=800" width="410" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;3. Now right click on design window. It open popup menu with installer option.     &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SjMwU0pEA2I/AAAAAAAAAGA/hWmQy0wVscg/s1600-h/image%5B20%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="266" alt="image" src="http://lh4.ggpht.com/_8Ini78jtxBk/SjMwWBKEPoI/AAAAAAAAAGE/LJYzh0JMxeU/image_thumb%5B23%5D.png?imgmax=800" width="420" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;4. When you click on Add Installer. It will will add new class called projectinstaller.cs. It contain serviceprocessinstaller1 and serviceinstaller component. ServiceProcess installer is used to configure service account and serviceinstaller contain information about service.     &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/SjMwWjHr54I/AAAAAAAAAGI/7TVNYNlsP-Y/s1600-h/image%5B27%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="279" alt="image" src="http://lh4.ggpht.com/_8Ini78jtxBk/SjMwX2fRNEI/AAAAAAAAAGM/nfLSLgvq-Ss/image_thumb%5B30%5D.png?imgmax=800" width="407" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;5. Apart from above ProjectInstaller.cs contain following code which is used to call from installutil.     &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_8Ini78jtxBk/SjMwYSozQdI/AAAAAAAAAGQ/L_80pCaXMXY/s1600-h/image%5B41%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="208" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/SjMwZXhOJ6I/AAAAAAAAAGU/3wuWufr5I6Q/image_thumb%5B45%5D.png?imgmax=800" width="375" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;In above code RunInstaller attribute marked as true. So InstallUtil take this thing into consideration and use this information to call installer.     &lt;br /&gt;    &lt;br /&gt;To install using installutil open VS 2005/VS 2008 command prompt or go to&amp;#160; %windir%\Microsoft.NET\Framework\v2.0.50727.     &lt;br /&gt;    &lt;br /&gt;installutil.exe /i&amp;#160; WindowService1.exe ( To Install ).     &lt;br /&gt;    &lt;br /&gt;installutil.exe /u WindowSerivce1.exe ( To uninstall).     &lt;br /&gt;    &lt;br /&gt;Installutil use Installer class (Projectinstaller) to install service.     &lt;br /&gt;    &lt;br /&gt;If you mark RunInstlaller as false then this installutil not work.     &lt;br /&gt;    &lt;br /&gt;If you don’t want to use installutil to install wndow service then go to &lt;a title="http://dotnetstep.blogspot.com/2009/06/install-window-service-without-using.html" href="http://dotnetstep.blogspot.com/2009/06/install-window-service-without-using.html"&gt;http://dotnetstep.blogspot.com/2009/06/install-window-service-without-using.html&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-4663276717253834256?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/4663276717253834256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=4663276717253834256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4663276717253834256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4663276717253834256'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/install-windowservice-using-installutil.html' title='Install WindowService using installutil.'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_8Ini78jtxBk/SjMwRSjZRcI/AAAAAAAAAF0/OAozl_LXIhM/s72-c/image_thumb%5B6%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7814647787203011958</id><published>2009-06-09T06:29:00.001+05:30</published><updated>2009-06-09T06:29:36.549+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Window Service'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><title type='text'>Get WindowService Executable Path In .NET</title><content type='html'>&lt;p&gt;WindowService has a property called “Path to Executable” . This property contains path of window service that is going to execute. When you need this path in .NET Application there is no direct way to do it . You can not get it either via ServiceControler or any other way.   &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/Si2z7HqP-QI/AAAAAAAAAFo/W9f46rybujQ/s1600-h/image%5B8%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="433" alt="image" src="http://lh4.ggpht.com/_8Ini78jtxBk/Si2z9mXcnBI/AAAAAAAAAFs/7aPaeJx1oBM/image_thumb%5B10%5D.png?imgmax=800" width="400" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;To get that you need to read Registry. All information about all window service installed on machine storead at following location.    &lt;br /&gt;HKLM\SYSTEM\CurrentControlSet\Services.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;C# Code to read Service Registry.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;RegistryKey services = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@&amp;quot;SYSTEM\CurrentControlSet\Services&amp;quot;);     &lt;br /&gt;if (services != null)      &lt;br /&gt;{      &lt;br /&gt;object pathtoexecutable = services.OpenSubKey(&lt;strong&gt;&amp;lt;&amp;lt;ServiceName&amp;gt;&amp;gt;&lt;/strong&gt;).GetValue(&amp;quot;ImagePath&amp;quot;);      &lt;br /&gt;}      &lt;br /&gt;      &lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;In Above code replace &amp;lt;&amp;lt;ServiceName&amp;gt;&amp;gt; with your service name.     &lt;br /&gt;      &lt;br /&gt;Also this is a registry operation so you need proper permission to read registry and apply any other registry operation at your own risk.      &lt;br /&gt;      &lt;br /&gt;Give your comment or any new idea about this task.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7814647787203011958?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7814647787203011958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7814647787203011958' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7814647787203011958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7814647787203011958'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/get-windowservice-executable-path-in.html' title='Get WindowService Executable Path In .NET'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_8Ini78jtxBk/Si2z9mXcnBI/AAAAAAAAAFs/7aPaeJx1oBM/s72-c/image_thumb%5B10%5D.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-904240324242289298</id><published>2009-06-07T17:24:00.001+05:30</published><updated>2009-06-07T18:55:41.770+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><title type='text'>Redirect console application output to another application in .NET</title><content type='html'>&lt;p&gt;In .NET sometime it is required to execute system command and capture its result or data in application that execute that command.    &lt;br /&gt;For example you want to execute ipconfig command from .NET application and display its result in window application or need to read output of .NET console application.     &lt;br /&gt;    &lt;br /&gt;For this purpose you need to use Process class that belongs to System.Diagnostics namespace.     &lt;br /&gt;    &lt;br /&gt;&lt;font face="ta" size="1"&gt;&lt;strong&gt;//Create process class object&lt;/strong&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;      &lt;br /&gt;&lt;font size="1"&gt;System.Diagnostics.Process p = new System.Diagnostics.Process();        &lt;br /&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="1"&gt;&lt;strong&gt;// Set StartInfo property.          &lt;br /&gt;// Set redirection true for Error and output stream.           &lt;br /&gt;&lt;/strong&gt;p.StartInfo.RedirectStandardError = true;         &lt;br /&gt;p.StartInfo.RedirectStandardOutput = true;         &lt;br /&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;strong&gt;&lt;font face="Tahoma" size="1"&gt;// When you set redirection you must set UseShellExecute to false .        &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font face="Tahoma"&gt;&lt;font size="1"&gt;&lt;strong&gt;p.StartInfo.UseShellExecute = false;          &lt;br /&gt;          &lt;br /&gt;// Set window style           &lt;br /&gt;p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;           &lt;br /&gt;          &lt;br /&gt;// Set Command paramter.           &lt;br /&gt;&lt;/strong&gt;p.StartInfo.FileName = &amp;quot;ipconfig&amp;quot;;         &lt;br /&gt;p.StartInfo.Arguments = &amp;quot; /all&amp;quot;;         &lt;br /&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="1"&gt;&lt;strong&gt;// Set CreateNoWindow to true as window is not required here.          &lt;br /&gt;p.StartInfo.CreateNoWindow = true;           &lt;br /&gt;          &lt;br /&gt;// Following two events are new in .NET framework 2.0 which allow us to capture data asynchronously. &lt;/strong&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="1"&gt;&lt;strong&gt;p.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_OutputDataReceived);          &lt;br /&gt;p.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_ErrorDataReceived);           &lt;br /&gt;          &lt;br /&gt;// Start the process.           &lt;br /&gt;&lt;/strong&gt;p.Start();         &lt;br /&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="1"&gt;&lt;strong&gt;// Must call following two methods in order to capture data asynchronously.          &lt;br /&gt;&lt;/strong&gt;p.BeginErrorReadLine();         &lt;br /&gt;p.BeginOutputReadLine();         &lt;br /&gt;        &lt;br /&gt;&lt;strong&gt;// Wait for Process to Exit ( This is not must done ).&lt;/strong&gt;         &lt;br /&gt;p.WaitForExit();         &lt;br /&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Tahoma"&gt;&lt;font size="1"&gt;&lt;strong&gt;// Event Handler for ErrorStream.&lt;/strong&gt;         &lt;br /&gt;void p_ErrorDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)         &lt;br /&gt;{         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Diagnostics.Debug.WriteLine(e.Data);&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;} &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&lt;strong&gt;// Event Handler for OutputStream.&lt;/strong&gt;       &lt;br /&gt;void p_OutputDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Diagnostics.Debug.WriteLine(e.Data);       &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Even you can use this functionality to make utility like process command background and produce result in window application.&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;p.StartInfo.FileName = @&amp;quot;%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe&amp;quot;;        &lt;br /&gt;p.StartInfo.Arguments = @&amp;quot; -v / -f -p C:\Blog\WebSite1 c:\WebSite1Compile&amp;quot;;         &lt;br /&gt;&lt;font color="#0000ff"&gt;// Note : Replace %windir% with your window directory. or use p.StartInfo.EnvironmentVariables[&amp;quot;windir&amp;quot;]&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Above is the one example to compile website application from window application.    &lt;br /&gt;    &lt;br /&gt;Apart from this there is event called Exited associated with Process class object. In order to receive this event you need to set EnableRasingEvents property to true value.    &lt;br /&gt;    &lt;br /&gt;Give your comment and idea on this article.    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-904240324242289298?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/904240324242289298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=904240324242289298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/904240324242289298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/904240324242289298'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/redirect-console-application-output-to.html' title='Redirect console application output to another application in .NET'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7282897961541842285</id><published>2009-06-06T21:49:00.000+05:30</published><updated>2009-06-06T21:50:40.797+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO.net 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>DateTime operation in .NET Application</title><content type='html'>&lt;p&gt;DateTime is a very important datatype and data in terms of realtime application. Some of the application that run timely manner and some of the application that generate data (log file) with time.   &lt;br /&gt;To generate such report you need to required store information about date and time.    &lt;br /&gt;    &lt;br /&gt;In .NET there is datatype called DateTime. This contain all information about datetime but sometime problem with this too.    &lt;br /&gt;    &lt;br /&gt;For example:    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;DateTime dt = DateTime.Now;&amp;#160; // 6/6/2009 09:35:00 PM.     &lt;br /&gt;&lt;/strong&gt;This is used to get current current time of system. If you store this time in file or in a database and later you retrieve then you get that time. So at last “6/6/2009 09:35:00 PM” this is going to&amp;#160; store in a file.    &lt;br /&gt;    &lt;br /&gt;Problem occur when you retrieve this later to display information and by some reason you make changes to current time zone of system or sometime timezone of application. So then also you get “6/6/2009 09:35:00 PM.” as data , which is not right.    &lt;br /&gt;    &lt;br /&gt;So best way to store date is UTC format.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;DateTime dt = DateTime.UtcNow &lt;/strong&gt; and after retrieval convert it to LocalTime but for that also you have to confirm that stored DateTime is in Utc format.    &lt;br /&gt;    &lt;br /&gt;DateTime structure contains&amp;#160; methods called ToBinary() and FromBinary().     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;long binaryDate&amp;#160; = DateTime.Now.ToBinary() ;     &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;Now store ‘binaryDate’ value in database or text file. So later when you get this value.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;DateTime dt =&amp;#160; DateTime.FromBinary(binaryDate).&amp;#160; &lt;/strong&gt;This will generate correct Date and Time even after timezone changed. This is because of binaryDate( Long ) value contain information about TimeZone too. So it automatically adjust as per system timezone.    &lt;br /&gt;    &lt;br /&gt;Apart from this DateTime structure contain one field called &lt;strong&gt;‘Kind’. &lt;/strong&gt;which contain current DateTime format kind and that is Utc , Local or Unspecified. Many of case when you store simple way DateTime and later you retrieve kind is unspecified. But when you store binary date and later you retrieve you get either Utc or Local.    &lt;br /&gt;    &lt;br /&gt;Please give your comment or any new idea about storing datetime.    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7282897961541842285?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7282897961541842285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7282897961541842285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7282897961541842285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7282897961541842285'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/datetime-operation-in-net-application.html' title='DateTime operation in .NET Application'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-8518354214506005687</id><published>2009-06-06T10:46:00.001+05:30</published><updated>2009-06-06T10:46:19.142+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Widows SDK V6.0A'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>Usage of aspnet_compiler.exe and aspnet_merge.exe</title><content type='html'>&lt;p&gt;Whenever asp.net website or webapplication publish,aspnet_compiler.exe is used for compilation.&amp;#160; &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Example :&lt;/strong&gt;    &lt;br /&gt;    &lt;br /&gt;WebSite : c:\myProject\TestSite    &lt;br /&gt;    &lt;br /&gt;1 . Go to Visual Studio Tool from program menu and start Visual studio command prompt.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; or    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; If you do not have visual studio installed on your machine and just .NET Framework 2.0 installed on your machine then also you can use aspnet_compiler tool.&amp;#160; &lt;br /&gt;&lt;strong&gt; - Start &amp;gt; run&amp;#160; and type cmd.     &lt;br /&gt;- set path=%windir%\Microsoft.NET\Framework\v2.0.50727      &lt;br /&gt;- aspnet_compiler –v / –p c:\myproject\testsite c:\testcompile      &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; It will compile c:\myproject\testsite and put published site in c:\testcompile.&amp;#160; &lt;br /&gt; - When you compile site using above command site is not updatable after publish.&amp;#160; &lt;br /&gt;-&amp;#160; If you want to site updatable after publish add –u option to it.     &lt;br /&gt;- It is good to add –f option in order to override existing published site.    &lt;br /&gt;- Fore more help just type aspnet_compiler /?&lt;/p&gt;  &lt;p&gt;Now let discuss about aspnet_merge.exe tool. This tool is introduce later and it is used to merge all assemblies that is located in bin directory of published site. When you published website project many assemblies are in bin directories depending upon your option.   &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;- In aspnet_compiler if you add –fixednames option then it will generate single assembles for each page otherwise it is generated per directory (this is default for asp.net website project).     &lt;br /&gt;      &lt;br /&gt;- Main disadvantage of different assembles either way is problem with reflection. You are not able to get control and page information located in another assemblies without assemblies loading programmatically.       &lt;br /&gt;      &lt;br /&gt;- aspnet_merge.exe tool merge all aspnet generated assemblies to single assemblies.      &lt;br /&gt;      &lt;br /&gt;Example :      &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;1. set path=%programfiles%\Microsoft SDKs\Windows\v6.0A\bin    &lt;br /&gt;2. aspnet_merge c:\testcompile     &lt;br /&gt;&amp;#160;&amp;#160; This will create single DLL ( assembly ) in bin directory.    &lt;br /&gt;3. To set generated assembly name use this.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; aspnet_merge –o Single.dll c:\testcompile.    &lt;br /&gt;    &lt;br /&gt;Hope this will help you.    &lt;br /&gt;    &lt;br /&gt;Please give your comment and advice on this.    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-8518354214506005687?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/8518354214506005687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=8518354214506005687' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8518354214506005687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8518354214506005687'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/06/usage-of-aspnetcompilerexe-and.html' title='Usage of aspnet_compiler.exe and aspnet_merge.exe'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7967923607761600482</id><published>2009-05-28T05:09:00.001+05:30</published><updated>2009-05-28T05:09:38.145+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>BuildManager To Get Detail About Dynamic Compiled Assembly</title><content type='html'>&lt;p&gt;Here i am going to explain how one can use &lt;strong&gt;BuildManager&lt;/strong&gt; to get detail about dynamic generated Assembly.     &lt;br /&gt;In ASP.net 2.0 or ASP.net 3.5 , there are two type of projects. One is ASP.net Web Application and Another one is ASP.net WebSite Project. Significant difference between these two is how they compiled or published.     &lt;br /&gt;    &lt;br /&gt;1. When “ASP.net WebApplication“ project published it create only Single DLL file in Bin for whole application and DLL name is also predetermined. Also when any new item added to the Project ( Either Web Form or Web User Control ) it comes under one namespace.    &lt;br /&gt;    &lt;br /&gt;2. When “ASP.net WebSite“ project published then it create many DLL file in bin directory. No of DLL depend on condition you choose when publish “ASP.net WebSite” project.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/Sh3PKMM7A_I/AAAAAAAAAFY/ZbOQas_2dC4/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="295" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/Sh3PMGubauI/AAAAAAAAAFc/QZAETx4dLo0/image_thumb%5B9%5D.png?imgmax=800" width="447" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;- When only first checkbox is checked then it create assembly per directory. In following image you can see one sample solution. So it create one assembly for Top Level directory and their page and control and one assembly for TestControls directory.    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/Sh3PMzumuOI/AAAAAAAAAFg/UZ3p45Gu4NY/s1600-h/image%5B10%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="211" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/Sh3POJJDsDI/AAAAAAAAAFk/fgigJ3LLcFE/image_thumb%5B16%5D.png?imgmax=800" width="268" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;- When second checkbox is selected then it creates separate assembly for each page and each controls.   &lt;br /&gt;    &lt;br /&gt;Now main thing “BuildManager” comes into picture.&amp;#160; &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;1. If you have “ASP.net WebApplication” project then you can access of another type in project via namespace. For Example you have two page &amp;quot;Default.aspx” and “Default2.aspx” and you want to just create instance of “Default.aspx” via its type in “Default2.aspx”.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;namespace WebApplication3   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public partial class _Default : System.Web.UI.Page    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string GetMessage()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return “Hello”;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected void Page_Load(object sender, EventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}    &lt;br /&gt;    &lt;br /&gt;namespace WebApplication3    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public partial class WebForm1 : System.Web.UI.Page    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected void Page_Load(object sender, EventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WebApplication3._Default dForm = new _Default();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Response.Write(dForm.GetMessage());    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}    &lt;br /&gt;so it is very easy for “ASP.net WebApplication” project.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;2.&amp;#160; For “ASP.net Web site“ type of project this is not a case. This type of project does not allow you to access another simple way as above. For that you have to use BuildManager Class.     &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;public partial class _Default : System.Web.UI.Page     &lt;br /&gt;{&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;protected void Page_Load(object sender, EventArgs e)    &lt;br /&gt;{&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;font size="1"&gt;// You can not access Default2 class directly.&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;// Get Type using BuildManager.      &lt;br /&gt;// Here i specified virtual path.&lt;/font&gt;    &lt;br /&gt;Type compiled_o =&amp;#160; System.Web.Compilation.BuildManager.GetCompiledType(&amp;quot;~/Default2.aspx&amp;quot;);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;font size="1"&gt;//Detail about assembly. Fully qualified name which contain dynamic assembly name too.     &lt;br /&gt;&lt;/font&gt;&lt;em&gt;&lt;strong&gt;Response.Write(compiled_o.FullName);&lt;/strong&gt;&lt;/em&gt;    &lt;br /&gt;&lt;font size="1"&gt;// Create instance of Type.     &lt;br /&gt;&lt;/font&gt;object obj =&amp;#160; Activator.CreateInstance(compiled_o);    &lt;br /&gt;&lt;font size="1"&gt;// GetData is a Method to call.     &lt;br /&gt;&lt;/font&gt; System.Reflection.MethodInfo info = compiled_o.GetMethod(&amp;quot;GetMessage&amp;quot;);&amp;#160; &lt;br /&gt; &lt;font size="1"&gt;// Now Call method . Here Method GetData is a instance method so we need to call&lt;/font&gt;    &lt;br /&gt;&lt;font size="1"&gt;// Invoke method with obj. null as no argument required.&lt;/font&gt;    &lt;br /&gt;object data = info.Invoke(obj, null);    &lt;br /&gt;&lt;font size="1"&gt; // Check that data contain value.&lt;/font&gt;    &lt;br /&gt;if (data != null)    &lt;br /&gt; {    &lt;br /&gt;&amp;#160; Response.Write(data.ToString());    &lt;br /&gt; }&amp;#160; &lt;br /&gt; }    &lt;br /&gt;}    &lt;br /&gt;public partial class Default2 : System.Web.UI.Page    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public string GetMessage()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return “Hello”;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected void Page_Load(object sender, EventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}    &lt;br /&gt;    &lt;br /&gt;BuildManager class has static method GetCompiledType, which required virtual path as a input so you can even give virtual path of user control too.    &lt;br /&gt;    &lt;br /&gt;Please give your comment on this.    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7967923607761600482?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7967923607761600482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7967923607761600482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7967923607761600482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7967923607761600482'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/05/buildmanager-to-get-detail-about.html' title='BuildManager To Get Detail About Dynamic Compiled Assembly'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/Sh3PMGubauI/AAAAAAAAAFc/QZAETx4dLo0/s72-c/image_thumb%5B9%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1202707081889970315</id><published>2009-05-16T14:38:00.001+05:30</published><updated>2009-05-16T14:38:31.844+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS 6.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>SMTP Setting to send outbound email</title><content type='html'>&lt;p&gt;Here i am going to explain about steps required to configure SMTP (Local SMTP) to send outbound email.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Steps.   &lt;br /&gt;1. Go to run and Type inetmgr. After inetmgr ( Internet information services manager ) open. Right click on Default SMTP virtual server ( As shown in figure 1) . If this is not displayed in your inetmgr then you need to first install SMTP services using Add/ Remove component.    &lt;br /&gt;&amp;#160;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/Sg6B1PlEcEI/AAAAAAAAAEc/TeG2QI3jBiI/s1600-h/1%5B14%5D.jpg"&gt;&lt;img title="1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="317" alt="1" src="http://lh5.ggpht.com/_8Ini78jtxBk/Sg6B6b5J38I/AAAAAAAAAEg/CEnilnVoMMs/1_thumb%5B8%5D.jpg?imgmax=800" width="444" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2. After right click on Default SMTP virtual server go for property&amp;#160; &lt;br /&gt;menu item. It will display as show in following image.    &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/Sg6B7F_q5qI/AAAAAAAAAEk/RGWLJvY1mxQ/s1600-h/image%5B4%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="332" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/Sg6B9C2uY3I/AAAAAAAAAEo/7a-b3tptFg8/image_thumb%5B6%5D.png?imgmax=800" width="306" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;3. Now go in Access Tab and click on relay. Please select as shown in following image and click ok.    &lt;br /&gt;&amp;#160;&lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/Sg6B-kfhg8I/AAAAAAAAAEs/KIKoKxWGSsc/s1600-h/2%5B3%5D.jpg"&gt;&lt;img title="2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="380" alt="2" src="http://lh4.ggpht.com/_8Ini78jtxBk/Sg6CADPR_6I/AAAAAAAAAEw/y_nKB4YLzGE/2_thumb%5B1%5D.jpg?imgmax=800" width="311" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;4. After that go for delivery tab. ( Display as follows)    &lt;br /&gt;&amp;#160;&lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/Sg6CBisZlRI/AAAAAAAAAE0/KdeSbCuWriI/s1600-h/image%5B14%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="397" alt="image" src="http://lh5.ggpht.com/_8Ini78jtxBk/Sg6CC7fjLyI/AAAAAAAAAE4/THlNQ2yXs8k/image_thumb%5B18%5D.png?imgmax=800" width="324" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;5. Click on outbound security . In that tab select basic authentication. Here i am using by gmail account to send outbound email. AS gmail required TLS (security to transfer credential) , you have to select TLS encryption checkbox too.Then click on ok.   &lt;br /&gt; &lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/Sg6CFIoTODI/AAAAAAAAAE8/FiZVWvScKaE/s1600-h/5%5B5%5D.jpg"&gt;&lt;img title="5" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="401" alt="5" src="http://lh4.ggpht.com/_8Ini78jtxBk/Sg6CI2kaCCI/AAAAAAAAAFA/NH3hDRW2k1k/5_thumb%5B3%5D.jpg?imgmax=800" width="339" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;7. Now go for outbound connection button. It will display as follows. Please specify TCP port as 587 for gmail otherwise 25 as default.    &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/Sg6CeShemTI/AAAAAAAAAFE/BH1uSpbIHSA/s1600-h/3%5B11%5D.jpg"&gt;&lt;img title="3" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="432" alt="3" src="http://lh3.ggpht.com/_8Ini78jtxBk/Sg6CgHnszdI/AAAAAAAAAFI/PkQu8-XC8Zw/3_thumb%5B5%5D.jpg?imgmax=800" width="325" border="0" /&gt;&lt;/a&gt;     &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;8. Click on Advanced . Configure as follows . In case of other SMTP , you have to specify that smtp server. &lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/Sg6Ch7GpzyI/AAAAAAAAAFM/5GMg8QXmebk/s1600-h/4%5B5%5D.jpg"&gt;&lt;img title="4" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="380" alt="4" src="http://lh3.ggpht.com/_8Ini78jtxBk/Sg6CjhwSehI/AAAAAAAAAFQ/83U4YCtNO2Y/4_thumb%5B3%5D.jpg?imgmax=800" width="331" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click ok and then finally click on apply. Now restart smtp server using inetmgr.    &lt;br /&gt;&lt;strong&gt;Note : Here i took Gmail smtp setting . For that you need to configure Gmail account from Gmail setting and click on IMAP enable.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1202707081889970315?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1202707081889970315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1202707081889970315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1202707081889970315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1202707081889970315'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/05/smtp-setting-to-send-outbound-email.html' title='SMTP Setting to send outbound email'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/Sg6B6b5J38I/AAAAAAAAAEg/CEnilnVoMMs/s72-c/1_thumb%5B8%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-520943062923887289</id><published>2009-05-14T11:58:00.001+05:30</published><updated>2009-05-14T13:24:19.827+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NEt Framework 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>DataTable / DataSet and Linq</title><content type='html'>&lt;p&gt;&lt;strong&gt;1. Querying DataTable using Linq&lt;/strong&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Here i am going to explain how you can use linq to get data from DataTable.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; You need to use AsEnumerable() method of DataTable object to query datatable using linq.     &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Example :&lt;/strong&gt;&lt;/em&gt;&amp;#160;&amp;#160; &lt;br /&gt;&lt;em&gt;DataTable dt = new DataTable();      &lt;br /&gt;dt.Columns.Add(&amp;quot;ID&amp;quot;);       &lt;br /&gt;dt.Columns.Add(&amp;quot;Name&amp;quot;);       &lt;br /&gt;DataRow dr = dt.NewRow();       &lt;br /&gt;dr[&amp;quot;ID&amp;quot;] = &amp;quot;1&amp;quot;;       &lt;br /&gt;dr[&amp;quot;Name&amp;quot;] = &amp;quot;Test1&amp;quot;;       &lt;br /&gt;dt.Rows.Add(dr);       &lt;br /&gt;dr = dt.NewRow();       &lt;br /&gt;dr[&amp;quot;ID&amp;quot;] = &amp;quot;2&amp;quot;;       &lt;br /&gt;dr[&amp;quot;Name&amp;quot;] = &amp;quot;Test2&amp;quot;;       &lt;br /&gt;dt.Rows.Add(dr); &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;var result = from user in dt.AsEnumerable()      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where user.Field&amp;lt;string&amp;gt;(&amp;quot;ID&amp;quot;) == &amp;quot;1&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select user;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;2. Join Two DataTable using Linq.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Example : Here i take two datatable. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataTable dt = new DataTable();      &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Columns.Add(&amp;quot;ID&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Columns.Add(&amp;quot;Name&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataRow dr = dt.NewRow();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;ID&amp;quot;] = &amp;quot;1&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;Name&amp;quot;] = &amp;quot;Test1&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Rows.Add(dr);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr = dt.NewRow();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;ID&amp;quot;] = &amp;quot;2&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;Name&amp;quot;] = &amp;quot;Test2&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Rows.Add(dr); &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataTable dt1 = new DataTable();&lt;/strong&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt1.Columns.Add(&amp;quot;ID&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt1.Columns.Add(&amp;quot;Product&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr = dt1.NewRow();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;ID&amp;quot;] = &amp;quot;1&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;Product&amp;quot;] = &amp;quot;Test-Product&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt1.Rows.Add(dr);&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Linq Query:      &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;var c = from p in dt.AsEnumerable()     &lt;br /&gt;join d in dt1.AsEnumerable() on p.Field&amp;lt;string&amp;gt;(&amp;quot;ID&amp;quot;) equals d.Field&amp;lt;string&amp;gt;(&amp;quot;ID&amp;quot;)     &lt;br /&gt;select new { ID = p.Field&amp;lt;string&amp;gt;(&amp;quot;ID&amp;quot;), Name = p.Field&amp;lt;string&amp;gt;(&amp;quot;Name&amp;quot;), Product = d.Field&amp;lt;string&amp;gt;(&amp;quot;Product&amp;quot;) };     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;3. Except and Intersect operation between two DataTable using Linq .     &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataTable dt = new DataTable();   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Columns.Add(&amp;quot;ID&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Columns.Add(&amp;quot;Name&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataRow dr = dt.NewRow();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;ID&amp;quot;] = &amp;quot;1&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;Name&amp;quot;] = &amp;quot;Test1&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Rows.Add(dr);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr = dt.NewRow();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;ID&amp;quot;] = &amp;quot;2&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;Name&amp;quot;] = &amp;quot;Test2&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Rows.Add(dr); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DataTable dt1 = new DataTable();   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt1.Columns.Add(&amp;quot;ID&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt1.Columns.Add(&amp;quot;Name&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr = dt1.NewRow();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;ID&amp;quot;] = &amp;quot;1&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dr[&amp;quot;Name&amp;quot;] = &amp;quot;Test1&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt1.Rows.Add(dr);&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var&amp;#160; exceptresult = dt.AsEnumerable().Except(dt1.AsEnumerable(), &lt;strong&gt;System.Data.DataRowComparer.Default&lt;/strong&gt;); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var intersectresult&amp;#160; = dt.AsEnumerable().Intersect(dt1.AsEnumerable(), &lt;strong&gt;System.Data.DataRowComparer.Default&lt;/strong&gt;);&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;For both of above operation you need to specify DataRowComparer . System.Data.DataRowComparer is a static sealed class and its static property Default contain comparer reference.&amp;#160; You must have to specify comparer for this operation on Reference datatype.      &lt;br /&gt;      &lt;br /&gt;Next blog i will give you CustomDataRow Comparer to make it more efficient.      &lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-520943062923887289?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/520943062923887289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=520943062923887289' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/520943062923887289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/520943062923887289'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/05/datatable-dataset-and-linq.html' title='DataTable / DataSet and Linq'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3221946601820460345</id><published>2009-05-14T09:02:00.001+05:30</published><updated>2009-05-14T09:02:22.168+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><title type='text'>Important Tool For .NET</title><content type='html'>&lt;p&gt;&lt;strong&gt;1. Managed Stack Explorer&amp;#160; &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; This tool is used to monitor all managed process and their threads.    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; You can download that tool at following location &lt;a href="http://www.microsoft.com/downloadS/details.aspx?FamilyID=80cf81f7-d710-47e3-8b95-5a6555a230c2&amp;amp;displaylang=en" target="_blank"&gt;DownLoad&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Process Explorer     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; This tool is same as Taskmanager but it will give you more detail than taskmanager. Even this tool show you process in parent child relation so it is easy to manager.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; You can find more detail and download location at following link &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx" target="_blank"&gt;Process Explorer&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. CLRProfiler      &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; This tool is specially designed for CLR ( Common language runtime ) . This tool give you more detail about Heap graph of your application.    &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=86ce6052-d7f4-4aeb-9b7a-94635beebdda&amp;amp;displaylang=en" target="_blank"&gt;For .Net Framework 1.1&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A362781C-3870-43BE-8926-862B40AA0CD0&amp;amp;displaylang=en" target="_blank"&gt;For .NET Framework 2.0&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3221946601820460345?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3221946601820460345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3221946601820460345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3221946601820460345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3221946601820460345'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/05/important-tool-for-net.html' title='Important Tool For .NET'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-5366861016456574610</id><published>2009-04-21T07:48:00.001+05:30</published><updated>2009-04-21T07:48:27.870+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>GMail SMTP Setting To Send Email From ASP.net Application</title><content type='html'>&lt;p&gt;First of all , It is required to configured GMail. &lt;/p&gt;  &lt;p&gt;1. Create Gmail account or use existing if you already have it.   &lt;br /&gt;2. Log in into Gmail.    &lt;br /&gt;3. Go Settings.    &lt;br /&gt;4. Go Forwarding and Enable IMAP/POP3    &lt;br /&gt;5. In that go to last section and enable IMAP.     &lt;br /&gt;    &lt;br /&gt;Now in your Web Application / Web Site project , open web.config. Add following to web.config.    &lt;br /&gt;    &lt;br /&gt;&lt;em&gt;&lt;font color="#0000ff"&gt;&amp;lt;system.net&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;mailSettings&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;smtp deliveryMethod=&amp;quot;Network&amp;quot;&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;network host=&amp;quot;smtp.gmail.com&amp;quot; &lt;strong&gt;port=&amp;quot;587&amp;quot;&lt;/strong&gt; userName=&amp;quot;username@gmail.com&amp;quot; password=&amp;quot;password&amp;quot; /&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/smtp&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/mailSettings&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;/system.net&amp;gt;        &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;/em&gt;GMail IMap Service runnig at port 587 so you must required to configured that. Also Gmail required SSL authentication so it is required to enable ssl for SMTPClient.&lt;em&gt;&lt;/em&gt;    &lt;p&gt;&lt;strong&gt;MailMessage message = new MailMessage();       &lt;br /&gt;message.From = new MailAddress(&lt;/strong&gt;&lt;a href="mailto:from@gmail.com"&gt;&lt;strong&gt;from@gmail.com&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;);       &lt;br /&gt;message.To.Add(&amp;quot;to@gmail.com&amp;quot;); &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;SmtpClient client = new SmtpClient();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;font color="#0000ff"&gt;client.EnableSsl = true;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;client.Send(message);        &lt;br /&gt;&lt;/strong&gt;      &lt;br /&gt;Yuo can not enable SSL in web.config so you must required to configure it explicitly.&lt;/p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-5366861016456574610?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/5366861016456574610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=5366861016456574610' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/5366861016456574610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/5366861016456574610'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/04/gmail-smtp-setting-to-send-email-from.html' title='GMail SMTP Setting To Send Email From ASP.net Application'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1089638086775688640</id><published>2009-04-17T06:57:00.001+05:30</published><updated>2009-04-17T06:57:22.039+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>WebService Authenticate against proxy server.</title><content type='html'>&lt;p&gt;When proxy server configured for PC or in a network , if it require authentication to make certain request then you have to use following code.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Error: (407) Proxy Authentication Required.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Here i am taking example of SharePoint List service. I added reference of SharePoint List Service.   &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;ListSerivce lst = new ListSerivce();    &lt;br /&gt;//Get Default Proxy Setting    &lt;br /&gt;&lt;strong&gt;IWebProxy proxy = System.Net.WebRequest.DefaultWebProxy;     &lt;br /&gt;&lt;/strong&gt;// Authenticate using network credential. In My case i need authentication using windows account.    &lt;br /&gt;proxy.Credential = new System.Net.NetworkCredential(“username”,”password”,”domain”);    &lt;br /&gt;lst.Proxy = proxy;    &lt;br /&gt;// Make Call to WebService Method.&lt;/p&gt;  &lt;p&gt;You can even find System.Net.WebProxy.GetDefaultProxy() return default proxy setting but it is deprecated to better to use WebRequest.DefaultWebProxy.   &lt;br /&gt;    &lt;br /&gt;You can even configure your own webproxy&lt;/p&gt;  &lt;p&gt;Lists lst = new Lists();   &lt;br /&gt;&lt;strong&gt;System.Net.WebProxy proxy = new WebProxy();     &lt;br /&gt;proxy.Address = new Uri(&amp;quot;&lt;/strong&gt;&lt;a href="http://proxy:8090&amp;quot;);"&gt;&lt;strong&gt;http://proxy:8090&amp;quot;);&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;&lt;strong&gt;proxy.Credentials = new NetworkCredential (&amp;quot;username&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;domain&amp;quot;);     &lt;br /&gt;&lt;/strong&gt;lst.Proxy = proxy;&lt;/p&gt;  &lt;p&gt;In both case credential pass as NetworkCredential but you can use CredentialCache to pass other type of credential.   &lt;br /&gt;    &lt;br /&gt;Please give comment on this. Also if you have any better idea please free give your suggestion.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1089638086775688640?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1089638086775688640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1089638086775688640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1089638086775688640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1089638086775688640'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/04/webservice-authenticate-against-proxy.html' title='WebService Authenticate against proxy server.'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-21863558259553598</id><published>2009-04-09T05:42:00.001+05:30</published><updated>2009-04-09T05:42:43.764+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>CrystalReport redistribution package</title><content type='html'>&lt;p&gt;This is just a small information about Crystal Report redistribution package. You can fine different packages related to Visual Studio at following location &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“&amp;lt;system drive&amp;gt;:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages”&lt;/p&gt;    &lt;p&gt;At this location you can different directories that contains .exe or .msi related to Visual Studio 2008 installation. &lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-21863558259553598?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/21863558259553598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=21863558259553598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/21863558259553598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/21863558259553598'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/04/crystalreport-redistribution-package.html' title='CrystalReport redistribution package'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7960500024204135720</id><published>2009-04-03T21:41:00.001+05:30</published><updated>2009-04-03T23:19:33.524+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSE 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>WSE 3.0 Setting Tool For Visual Studio 2008</title><content type='html'>&lt;p&gt;WSE 3.0 Setting Tool not available in VS 2008. Here i am explaining steps required to enable it in Visual Studio 2008.&lt;/p&gt;  &lt;p&gt;1 . Download Following Tool    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=018a09fd-3a74-43c5-8ec1-8d789091255d&amp;amp;displaylang=en"&gt;WSE 3.0 Tools&lt;/a&gt;     &lt;br /&gt;2.&amp;#160; Install that MSI File.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; “Basically that installation is for Visual Studio 2005.”     &lt;br /&gt;3.&amp;#160; After installation you find one file at following location.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Here i assumed that your OS is installed at C:\.     &lt;br /&gt;4. At that location you find this file “&lt;strong&gt;WSESettingsVS3.Addin”.&lt;/strong&gt;     &lt;br /&gt;5. Open file in Notepad , you find following XML content.&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#160; &amp;lt;HostApplication&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;Microsoft Visual Studio Macros&amp;lt;/Name&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Version&amp;gt;8.0&amp;lt;/Version&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/HostApplication&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;HostApplication&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;Microsoft Visual Studio&amp;lt;/Name&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Version&amp;gt;8.0&amp;lt;/Version&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/HostApplication&amp;gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;change it to&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#160; &amp;lt;HostApplication&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;Microsoft Visual Studio Macros&amp;lt;/Name&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Version&amp;gt;&lt;font color="#0000ff"&gt;9.0&lt;/font&gt;&amp;lt;/Version&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/HostApplication&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;HostApplication&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Name&amp;gt;Microsoft Visual Studio&amp;lt;/Name&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Version&amp;gt;&lt;font color="#0000ff"&gt;9.0&lt;/font&gt;&amp;lt;/Version&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;/HostApplication&amp;gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;save that file.    &lt;br /&gt;6. Open Visual Studio , Tools – &amp;gt; Options –&amp;gt; Environments&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/SdY1JDibkPI/AAAAAAAAAEU/ynZd_LKiw1s/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="310" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/SdY1KlZee_I/AAAAAAAAAEY/3V79c6XjE3c/image_thumb%5B3%5D.png?imgmax=800" width="444" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Add Following    &lt;br /&gt;“C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins”&lt;/p&gt;  &lt;p&gt;(Note : In Image it displayed D:\ as my os is on D Drive.)&lt;/p&gt;  &lt;p&gt;7. Close all instance of Visual Studio. &lt;/p&gt;  &lt;p&gt;8. Open it again , create web service application . Now you can se that WSE 3.0 Setting option enable.    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7960500024204135720?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7960500024204135720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7960500024204135720' title='26 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7960500024204135720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7960500024204135720'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/04/wse-30-setting-tool-for-visual-studio.html' title='WSE 3.0 Setting Tool For Visual Studio 2008'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_8Ini78jtxBk/SdY1KlZee_I/AAAAAAAAAEY/3V79c6XjE3c/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-4554628570798975259</id><published>2009-04-02T04:52:00.001+05:30</published><updated>2009-04-02T04:52:15.862+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>How to get assembly name for registration ?</title><content type='html'>&lt;p&gt;When assembly added into global assembly cache and there is need for adding that assembly to web.config assemblies section.&lt;/p&gt;  &lt;p&gt;&amp;lt;compilation debug=&amp;quot;false&amp;quot;&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;assemblies&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add assembly=&amp;quot;System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089&amp;quot;/&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/assemblies&amp;gt;    &lt;br /&gt; &amp;lt;/compilation&amp;gt;&lt;/p&gt;  &lt;p&gt;Now there is need to add System.Web.Extensions assembly , for that you need assembly detail with its public key token to register.&lt;/p&gt;  &lt;p&gt;Easiest way to get that detail is&amp;#160; &lt;/p&gt;  &lt;p&gt;1. Go to run and type assembly.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SdP2-o11h1I/AAAAAAAAAD0/S7dYl9FBYOU/s1600-h/run%5B3%5D.jpg"&gt;&lt;img title="run" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="149" alt="run" src="http://lh5.ggpht.com/_8Ini78jtxBk/SdP2_1r62FI/AAAAAAAAAD4/Ze83nBq57Js/run_thumb%5B1%5D.jpg?imgmax=800" width="400" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;it will open following window.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SdP3BxSsgZI/AAAAAAAAAD8/IUZs88EqDxs/s1600-h/window1%5B16%5D.jpg"&gt;&lt;img title="window1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="274" alt="window1" src="http://lh3.ggpht.com/_8Ini78jtxBk/SdP3Dpy5ezI/AAAAAAAAAEA/SSyYbJ18Pas/window1_thumb%5B14%5D.jpg?imgmax=800" width="439" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2. Now select assembly , for example system.web.extensions , then go to edit menu and select option Copy display name as shown in following image.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SdP3FgIt1II/AAAAAAAAAEE/gLT9E1_MT8M/s1600-h/window2%5B5%5D.jpg"&gt;&lt;img title="window2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="249" alt="window2" src="http://lh5.ggpht.com/_8Ini78jtxBk/SdP3Gwq2laI/AAAAAAAAAEI/g4cS-FVzSf0/window2_thumb%5B3%5D.jpg?imgmax=800" width="427" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3. Now paste data.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/SdP3IAulCCI/AAAAAAAAAEM/0GO6i7A622w/s1600-h/image%5B7%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="203" alt="image" src="http://lh3.ggpht.com/_8Ini78jtxBk/SdP3JabuGoI/AAAAAAAAAEQ/FUnQYONs25w/image_thumb%5B5%5D.png?imgmax=800" width="436" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;you get all detail to register assembly. Enjoy… !&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-4554628570798975259?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/4554628570798975259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=4554628570798975259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4554628570798975259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4554628570798975259'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/04/how-to-get-assembly-name-for.html' title='How to get assembly name for registration ?'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/SdP2_1r62FI/AAAAAAAAAD4/Ze83nBq57Js/s72-c/run_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1253972693297680055</id><published>2009-03-06T17:53:00.001+05:30</published><updated>2009-03-06T17:53:38.485+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS 6.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Run MSI In Context Of User</title><content type='html'>&lt;p&gt;Several times to install program you need administrative or other user privileges. For example you take input from user for username and password and run that program in that particular user context.&lt;/p&gt;  &lt;p&gt;I faced problem during installing MSI in particular user context or start IIS in context of another user.&lt;/p&gt;  &lt;p&gt;I found this solution using command line argument.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Inermgr ( Run following command in Command line)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;C:\runas /user:administrator “mmc %sysroot%\system32\inetsrv\iis.msc”   &lt;br /&gt;Enter the password for administrator :&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. MSI install&lt;/strong&gt;    &lt;br /&gt;C:\runas /user:administrator “msiexec /i &amp;lt;full path of msi file&amp;gt;”    &lt;br /&gt;    &lt;br /&gt;c:\runas /user:administrator “msiexec /i c:\download\setup.msi”    &lt;br /&gt;Enter the password for administrator : &lt;/p&gt;  &lt;p&gt;For more information just type runas /? on command line.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1253972693297680055?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1253972693297680055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1253972693297680055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1253972693297680055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1253972693297680055'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/03/run-msi-in-context-of-user.html' title='Run MSI In Context Of User'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1464500369204230034</id><published>2009-03-05T07:17:00.001+05:30</published><updated>2009-03-05T07:17:33.932+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='IIS 6.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><title type='text'>Unauthorized (401.1) Exception calling Web Services in SharePoint (.Net Framework 3.5 )</title><content type='html'>&lt;p align="justify"&gt;After installing .NET Framework 3.5 sp1 following error may occur while making call to webservice. This thing mostly happen when you are trying to make webservice call using fully qualified domain name instead of IPAddress or Hostheader is used to map request on single port.   &lt;br /&gt;    &lt;br /&gt;I found one strange thing in IIS Log that , for such request it is not sending authentication information to webservice request even though you pass it in NetworkCredential. &lt;strong&gt;One solution is to disable integrated authentication and use basic authentication. This will compromise with security but solve problem&lt;/strong&gt;. Another solution that need to require registry changes. You can find it at following link with grate explanation.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=44" href="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=44"&gt;http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=44&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://support.microsoft.com/default.aspx?scid=kb;EN-US;896861" href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;896861"&gt;http://support.microsoft.com/default.aspx?scid=kb;EN-US;896861&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1464500369204230034?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1464500369204230034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1464500369204230034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1464500369204230034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1464500369204230034'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/03/unauthorized-4011-exception-calling-web.html' title='Unauthorized (401.1) Exception calling Web Services in SharePoint (.Net Framework 3.5 )'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-262726638006830932</id><published>2009-03-05T06:55:00.001+05:30</published><updated>2009-03-05T06:55:04.144+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SPAlert DynamicRecipient On Custom List</title><content type='html'>&lt;p&gt;In SharePoint default. alert functionality available. You can subscribe Alert on List or ListItem using AlertMe action. But in certain situation you need to automize this alert. Like Alert automatically send to particular user even though he/she did not subscribe event. &lt;/p&gt;  &lt;p&gt;There are two way to do . Create feature that receive ItemAdded or ItemUpdated Event , Find out user and email address , send email using SendEmail Functionality of SharePoint.&lt;/p&gt;  &lt;p&gt;Another way is use DynamicRecipient property of SPAlert.&lt;/p&gt;  &lt;p&gt;Sample List :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/Sa8pnotpupI/AAAAAAAAADk/Ra5m6UybyL0/s1600-h/list%5B4%5D.jpg"&gt;&lt;img title="list" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="167" alt="list" src="http://lh5.ggpht.com/_8Ini78jtxBk/Sa8p3842v5I/AAAAAAAAADo/yYeqag1nydw/list_thumb%5B2%5D.jpg?imgmax=800" width="441" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here you can see that To Field is type of Person or Group. Send automatic email to user enter ‘To’ Field.   &lt;br /&gt;    &lt;br /&gt;List Entry look Like (Edit View).    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/Sa8p5l0ARxI/AAAAAAAAADs/-bm1t3v2kTc/s1600-h/alert%20list%20entry%5B5%5D.jpg"&gt;&lt;img title="alert list entry" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="272" alt="alert list entry" src="http://lh4.ggpht.com/_8Ini78jtxBk/Sa8p7T5HONI/AAAAAAAAADw/pkkBn1TWwf0/alert%20list%20entry_thumb%5B3%5D.jpg?imgmax=800" width="439" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Note : UserName must have email id associated with him.SMTP also configured properly for site.   &lt;br /&gt;    &lt;br /&gt;Now run following code against your site. (use console application).&lt;/p&gt;  &lt;p&gt;SPSite site = new SPSite(&amp;quot;&lt;a href="http://yoursite&amp;quot;);"&gt;http://yoursite&amp;quot;);&lt;/a&gt;    &lt;br /&gt;SPWeb web = site.OpenWeb();    &lt;br /&gt;SPList lst = web.Lists[&amp;quot;Alert Test&amp;quot;];    &lt;br /&gt;SPAlert alert = web.Alerts.Add();    &lt;br /&gt;alert.AlertFrequency = SPAlertFrequency.Immediate;    &lt;br /&gt;alert.AlertType = SPAlertType.List;    &lt;br /&gt;alert.EventType = SPEventType.All;    &lt;br /&gt;alert.DynamicRecipient = &amp;quot;To&amp;quot;;    &lt;br /&gt;alert.List = lst;    &lt;br /&gt;alert.Status = SPAlertStatus.On;    &lt;br /&gt;&lt;strong&gt;alert.Title = “Auto Email Alert”;&lt;/strong&gt;    &lt;br /&gt;alert.Filter = &amp;quot;&amp;lt;Query&amp;gt;&amp;lt;IsNotNull&amp;gt;&amp;lt;FieldRef Name='To'&amp;gt;&amp;lt;/FieldRef&amp;gt;&amp;lt;/IsNotNull&amp;gt;&amp;lt;/Query&amp;gt;&amp;quot;;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;alert.Update();    &lt;br /&gt;    &lt;br /&gt;You can even use FeatureReceiver to install/ Activate / deactivate this thing as a feature.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-262726638006830932?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/262726638006830932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=262726638006830932' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/262726638006830932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/262726638006830932'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/03/spalert-dynamicrecipient-on-custom-list.html' title='SPAlert DynamicRecipient On Custom List'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_8Ini78jtxBk/Sa8p3842v5I/AAAAAAAAADo/yYeqag1nydw/s72-c/list_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-4589026421420142688</id><published>2009-02-12T21:37:00.001+05:30</published><updated>2009-02-12T21:37:41.350+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>Global Theme Setting for ASP.net 2.0 or Later.</title><content type='html'>&lt;p&gt;In order to set theme globally for application. There are two ways to do that. one is longer and second one shorter way to do that.   &lt;br /&gt;    &lt;br /&gt;1.     &lt;br /&gt;Create App_Themes directory for each application. This is special directory. You can copy Theme over here for each application.    &lt;br /&gt;    &lt;br /&gt;2.     &lt;br /&gt;Put New theme under Themes directory of aspnet_clientfile directory.    &lt;br /&gt;    &lt;br /&gt;C:\inetpub\wwwroot\aspnet_client\system_web\2_0_50727    &lt;br /&gt;    &lt;br /&gt;If themes directory not found then create one. For example if theme name is Green then it should be like&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;C:\inetpub\wwwroot\aspnet_client\system_web\2_0_50727\Themes\Green     &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;This will work for all website that already created. In IIS6 website can be created afterwards. so for that this clientfile does not map to new site, following location must contain themes directory and required theme folder.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;C:\Windows\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\Themes\Green&lt;/strong&gt;    &lt;br /&gt;    &lt;br /&gt;After that run following command from studio command prompt    &lt;br /&gt;&amp;gt; aspnet_regiis –c     &lt;br /&gt;    &lt;br /&gt;Above setting works for only IIS6 or previous versino of IIS 5. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-4589026421420142688?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/4589026421420142688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=4589026421420142688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4589026421420142688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4589026421420142688'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/02/global-theme-setting-for-aspnet-20-or.html' title='Global Theme Setting for ASP.net 2.0 or Later.'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1491578219098935577</id><published>2009-02-11T17:22:00.001+05:30</published><updated>2009-02-11T17:22:27.323+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='WinXP'/><title type='text'>Kill Process On Remote Machine</title><content type='html'>&lt;p&gt;It is not recommended that each and every time abort process this way but sometime it is necessary stop some process from executing on remote machine.&lt;/p&gt;  &lt;p&gt;There are few useful command for that.&lt;/p&gt;  &lt;p&gt;TaskList   &lt;br /&gt;Taskkill or tskill    &lt;br /&gt;    &lt;br /&gt;Run following command on command prompt.    &lt;br /&gt;&amp;gt; TaskList&amp;#160;&amp;#160;&amp;#160;&amp;#160; ( Current system running process list)&lt;/p&gt;  &lt;p&gt;&amp;gt; TaskList /S &amp;lt;system name&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; e.g Remote system name remote1 then     &lt;br /&gt;&amp;#160;&amp;#160; TaskList /S remote1    &lt;br /&gt;&amp;#160;&amp;#160; Some of the case you require to pass credential for remote pc in that case use following command.    &lt;br /&gt;&amp;#160;&amp;#160; TaskList /S remote1 /U &amp;lt;username&amp;gt; /P &amp;lt;Password&amp;gt;    &lt;br /&gt;TaskList command is used to get process id that we want to kill.    &lt;br /&gt;    &lt;br /&gt;To Kill process there are two command TaskKill and tskill . I prefer TaskKill over tskill as it gives more command line options.    &lt;br /&gt;    &lt;br /&gt;&amp;gt; TaskKill /PID &amp;lt;process id&amp;gt; ( use to kill perticular process that identified by process id on local machine)    &lt;br /&gt;    &lt;br /&gt;&amp;gt; Taskkill /S &amp;lt;remote pc name or IP Address&amp;gt; /PID &amp;lt;process id&amp;gt; ( kill process that identified by process id on remote machine)    &lt;br /&gt;    &lt;br /&gt;If remote pc require credential than use     &lt;br /&gt;    &lt;br /&gt;&amp;gt; taskkill /S &amp;lt; remote pc name or IP Address&amp;gt; /PID &amp;lt;process id&amp;gt; /U &amp;lt;username&amp;gt; /P &amp;lt;password&amp;gt;&lt;/p&gt;  &lt;p&gt;All above command are tested on Windows XP and Windows 2003.   &lt;br /&gt;You must require permission to run above command in order to use functionality.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;In All Above you can use IP Address instead of remote PC name.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1491578219098935577?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1491578219098935577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1491578219098935577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1491578219098935577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1491578219098935577'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/02/kill-process-on-remote-machine.html' title='Kill Process On Remote Machine'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7441630744903640305</id><published>2009-02-01T18:08:00.001+05:30</published><updated>2009-02-01T18:08:49.924+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>Difference Between Explicit And Implicit Interface Implementation</title><content type='html'>&lt;p&gt;Interface can be implemented two ways. Explicitly or Implicitly.   &lt;br /&gt;For Example :    &lt;br /&gt;public interface IEmployee    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string FullName    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Implicit implementation of Interface     &lt;br /&gt;&lt;/strong&gt;public class ImplicitClass : IEmployee    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string FullName    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get ;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set ;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Explicit implementation of Interface.     &lt;br /&gt;&lt;/strong&gt;public class ExplicitClass : IEmployee    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; string IEmployee.FullName    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get ;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set ;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}    &lt;br /&gt;Here you can see that FullName property does not have access modifier.As this is explicit implementation so it does not allow access modifier.    &lt;br /&gt;    &lt;br /&gt;Now we see what happen when try to create object of both of above class. &lt;/p&gt;  &lt;p&gt;ImplicitClass cls = new ImplicitClass();   &lt;br /&gt;cls.FullName = “test”;    &lt;br /&gt;// Above code works fine    &lt;br /&gt;    &lt;br /&gt;ExplicitClass cls1 = new ExplicitClass();    &lt;br /&gt;&lt;strong&gt;cls1.FullName = “test”; // error occur&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As interface implement explicitly FullName property not available directly to cl1 object b’coz it become private to the Interface type.   &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SYWXn9iKhWI/AAAAAAAAADc/iG3zKogUXWc/s1600-h/img1%5B5%5D.jpg"&gt;&lt;img title="img1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="279" alt="img1" src="http://lh3.ggpht.com/_8Ini78jtxBk/SYWXqCHdeyI/AAAAAAAAADg/h7VYjzjBlIY/img1_thumb%5B3%5D.jpg?imgmax=800" width="435" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;By reflection     &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;ImplicitClass cls = new ImplicitClass();   &lt;br /&gt;PropertyInfo pinfo = cls.GetType().GetProperty(&amp;quot;FullName&amp;quot;);    &lt;br /&gt;if (pinfo != null)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pinfo.SetValue(cls, &amp;quot;test&amp;quot;,null);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;    &lt;br /&gt; ExplicitClass cls1 = new ExplicitClass();    &lt;br /&gt; PropertyInfo pinfo1 = cls1.GetType().GetProperty(&amp;quot;FullName&amp;quot;);    &lt;br /&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (pinfo1 != null) // pinfo1 is null in this case.     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pinfo1.SetValue(cls1, &amp;quot;test&amp;quot;,null);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;By reflection way also not able to set property as can no available propertyinfo.   &lt;br /&gt;    &lt;br /&gt;Solution for this is , If interface implemented explicit way then cast to Interface type then set property.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;ExplicitClass cls1 = new ExplicitClass();     &lt;br /&gt;IEmployee emp = cls1 as IEmployee;      &lt;br /&gt;emp.FullName = “test”;      &lt;br /&gt;      &lt;br /&gt;if want to access with use of Reflection       &lt;br /&gt;&lt;/strong&gt;ExplicitClass cls1 = new ExplicitClass();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PropertyInfo pinfo1 = cls1.GetType().GetInterface(&amp;quot;IEmployee&amp;quot;).GetProperty(&amp;quot;FullName&amp;quot;);    &lt;br /&gt;if (pinfo1 != null)    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160; pinfo1.SetValue(cls1, &amp;quot;test&amp;quot;,null);    &lt;br /&gt;}&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;    &lt;br /&gt;Note: only choose explicit interface if needed. One such case is if your class previously has property/Event/Method that Interface has also , than to avoid conflict must need of explicit interface implementation.    &lt;br /&gt;    &lt;br /&gt;Please give you further suggestion about this article.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7441630744903640305?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7441630744903640305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7441630744903640305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7441630744903640305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7441630744903640305'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/02/difference-between-explicit-and.html' title='Difference Between Explicit And Implicit Interface Implementation'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_8Ini78jtxBk/SYWXqCHdeyI/AAAAAAAAADg/h7VYjzjBlIY/s72-c/img1_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-201653285031739891</id><published>2009-01-29T06:19:00.001+05:30</published><updated>2009-01-31T01:33:53.761+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>ASP.net MasterPage Advanced</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;1. Dynamically Setting MasterPage At Runtime&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;MasterPage can be set dynamically at runtime in Pre_Init method of Page.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;protected void Page_PreInit(object sender, EventArgs e)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Page.MasterPageFile = “&amp;lt;virtual path of .masterfile&amp;gt;&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;      &lt;br /&gt;&lt;/em&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;2. Strongly Type Access Of MasterPage And Its Properties.&lt;/font&gt;       &lt;br /&gt;&lt;/strong&gt;&amp;#160; &lt;br /&gt;&lt;em&gt;&lt;strong&gt;MasterPage.aspx.cs&lt;/strong&gt;       &lt;br /&gt;public partial class MainMaster : System.Web.UI.MasterPage       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected void Page_Load(object sender, EventArgs e)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public string PageTitle       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Page.Title;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Page.Title = value;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;}       &lt;br /&gt;      &lt;br /&gt;&lt;/em&gt;Now in Content Page need for access PageTitle Property.     &lt;br /&gt;    &lt;br /&gt;In Content Page use @MasterType directive.&lt;/p&gt;  &lt;p&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; MasterPageFile=&amp;quot;~/MainMaster.master&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;Default2.aspx.cs&amp;quot; Inherits=&amp;quot;Default2&amp;quot; Title=&amp;quot;Untitled Page&amp;quot; %&amp;gt;    &lt;br /&gt;&amp;lt;%@ MasterType VirtualPath=&amp;quot;~/MainMaster.master&amp;quot; %&amp;gt;     &lt;br /&gt;    &lt;br /&gt;//Default2.aspx.cs&lt;/p&gt;  &lt;p&gt;protected void Page_Load(object sender, EventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Master.PageTitle = &amp;quot;By use of MasterType&amp;quot;;&lt;/strong&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;If @MasterType directive is not used than you can not access custom property of MasterPage . You are only limited to access MasterPage class property.     &lt;br /&gt;&lt;strong&gt;Note: When @MasterType directive used than it is not allowed to set page dynamically. It gives you type cast error as it try to convert object of one type to another type.      &lt;br /&gt;      &lt;br /&gt;&lt;font color="#0000ff"&gt;3. Access MasterPage Properties Using Reflection.&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;By use of reflection you can also set property of master page.   &lt;br /&gt;For example access PageTitle Property (. It is not neccessary to specify MasterType directive on Page).&lt;/p&gt;  &lt;p&gt;&lt;em&gt;System.Reflection.PropertyInfo pinfo =&amp;#160; Page.Master.GetType().GetProperty(&amp;quot;PageTitle&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (pinfo != null)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt; pinfo.SetValue(Page.Master, &amp;quot;This is test reflection : Default&amp;quot;, null);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;      &lt;br /&gt;&lt;/em&gt;This approach is good if your requirement is set to masterpage at runtime.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;4. By Use Of Common Interface For All MasterPage.&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/strong&gt;Use this approach when decided that certain property must supported by MasterPage&lt;strong&gt;.&lt;/strong&gt; In such case create one interface and that must be implemented by each of required masterpage.    &lt;br /&gt;    &lt;br /&gt;&lt;em&gt;// App_Code IMasterPageProperties.cs     &lt;br /&gt; public interface IMasterPageProperties      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; string PageTitle      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt; }&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;em&gt;//SeconMaster.master.cs     &lt;br /&gt;public partial class SecondMaster : System.Web.UI.MasterPage , IMasterPageProperties      &lt;br /&gt;{      &lt;br /&gt;&amp;#160; //&amp;#160; Interface Implementation      &lt;br /&gt;&amp;#160; public string PageTitle      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Page.Title;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Page.Title = value;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;// Defalt.aspx.cs (Page_Load event just for example)IMasterPageProperties property = Page.Master as IMasterPageProperties;     &lt;br /&gt;if (property != null)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; property.PageTitle = &amp;quot;By use of Interface&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Note : Try to cast Page.Master as Interface Type. This approach is good and cover both explicit and implicit implementation of interface.   &lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;5. By Use Of Abstract Base Class For MasterPage. &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Create one abstract class . (Possibly in App_Code).&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;public abstract class BaseMasterPage : MasterPage        &lt;br /&gt;&lt;/strong&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public string PageTitle      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return Page.Title;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Page.Title = value;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;      &lt;br /&gt;Now create new MasterPage ( I name it Third.master).&amp;#160; In normal case all masterpage inherits from MasterPage Class. Now ThirdMaster class should inherits from BaseMasterPage Class.      &lt;br /&gt;      &lt;br /&gt;This is how Third.master.cs look like.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt; public partial class Third : BaseMasterPage       &lt;br /&gt;&lt;/strong&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected void Page_Load(object sender, EventArgs e)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt; this.PageTitle = &amp;quot;By use of abstarct base class&amp;quot;;       &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-201653285031739891?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/201653285031739891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=201653285031739891' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/201653285031739891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/201653285031739891'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/aspnet-masterpage-advanced.html' title='ASP.net MasterPage Advanced'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1278768976756749760</id><published>2009-01-24T18:44:00.001+05:30</published><updated>2009-01-24T18:44:43.745+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>Batch Update In SharePoint</title><content type='html'>&lt;p&gt;SharePoint support batch update in List by webservice and SharePoint object model.   &lt;br /&gt;    &lt;br /&gt;For Example i used sample Custom List (Orders).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_8Ini78jtxBk/SXsUMwO3EpI/AAAAAAAAAC8/t2cpxsq2NwM/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="164" alt="image" src="http://lh6.ggpht.com/_8Ini78jtxBk/SXsUPic0uoI/AAAAAAAAADA/fskXlmqbn7M/image_thumb%5B3%5D.png?imgmax=800" width="404" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;1. By Use of Web Service.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;SharePoint webservice allows update list items as a batch.&lt;strong&gt;At a time only one list can be updated by single webservice call.     &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;CAML That use for Batch Update. Here i update item with ID 2 and create new item in Orders List in one webservice call.&lt;/p&gt;  &lt;p&gt;&amp;lt;Batch OnError=’Continue’&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Method ID=’1’ Cmd=’Update’&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=’ID’ &amp;gt;2&amp;lt;/Field&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=’OrderDate’ &amp;gt;2007-1-21&amp;lt;/Field&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;lt;Field Name=’CustomerID’ &amp;gt;1;#Cust_1&amp;lt;/Field&amp;gt;     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Method&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Method ID=’2’ Cmd=’New’&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=’OrderDate’ &amp;gt;2007-1-21&amp;lt;/Field&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;lt;Field Name=’CustomerID’ &amp;gt;2;#Cust_2&amp;lt;/Field&amp;gt;     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Method&amp;gt;    &lt;br /&gt;&amp;lt;/Batch&amp;gt;&lt;/p&gt;  &lt;p&gt;C# Code (Either Add web reference of SharePoint webservice or Create Proxy Class using wsdl.exe and use that class)   &lt;br /&gt;    &lt;br /&gt;Lists lst = new Lists();    &lt;br /&gt;lst.Url = “http://&amp;lt;your site&amp;gt;/_vti_bin/lists.asmx”;    &lt;br /&gt;lst.Credentials = new System.Net.NetworkCredential (&amp;quot;test&amp;quot;, &amp;quot;test&amp;quot;);    &lt;br /&gt;XmlDocument doc = new XmlDocument();    &lt;br /&gt;XmlElement batchElement =&amp;#160; doc.CreateElement(&amp;quot;Batch&amp;quot;);    &lt;br /&gt;batchElement.SetAttribute(&amp;quot;OnError&amp;quot;, &amp;quot;Continue&amp;quot;);    &lt;br /&gt;batchElement.InnerXml = &amp;quot;&amp;lt;Method ID='1' Cmd='Update'&amp;gt;&amp;quot; +    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;Field Name='ID'&amp;gt;2&amp;lt;/Field&amp;gt;&amp;quot; +    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;Field Name='OrderDate'&amp;gt;2009-1-31&amp;lt;/Field&amp;gt;&amp;lt;Field Name='OrderDateTime'&amp;gt;2009-1-31&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;&amp;lt;Method ID='2' Cmd='New'&amp;gt;&amp;lt;Field Name='CustomerID'&amp;gt;1;#Cust_1&amp;lt;/Field&amp;gt;&amp;lt;Field Name='OrderDate'&amp;gt;2009-1-31&amp;lt;/Field&amp;gt;&amp;lt;Field Name='OrderDateTime'&amp;gt;2009-1-31&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;&amp;quot;;    &lt;br /&gt;&lt;strong&gt;XmlNode result = lst.UpdateListItems(&amp;quot;Orders&amp;quot;, batchElement); // This line of code make webservice call to update lists.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;One more thing In CAML displayed above has two bold line for CustomerID field. CustomerID is a LookUp Field. So i mention that date id;#Value (Commom lookup Structure).If you want to choose lookup value only by id then use following CAML for Field.   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;Batch OnError=’Continue’&amp;gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Method ID=’1’ Cmd=’Update’&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=’ID’ &amp;gt;2&amp;lt;/Field&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=’OrderDate’ &amp;gt;2007-1-21&amp;lt;/Field&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;lt;Field Name=’CustomerID’&amp;#160; Type=’LookUp’ LookUpID=’True’&amp;gt;1&amp;lt;/Field&amp;gt;     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Method&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Method ID=’2’ Cmd=’New’&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=’OrderDate’ &amp;gt;2007-1-21&amp;lt;/Field&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;lt;Field Name=’CustomerID’ Type=’LookUp’&amp;#160; LookUpID=’True’ &amp;gt;2&amp;lt;/Field&amp;gt;     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Method&amp;gt;    &lt;br /&gt;&amp;lt;/Batch&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;2. By Use Of SharePoint Object Model. (SPWeb.ProcessBatchData)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;SharePoint Object Model has SPWeb class. SPWeb class has ProcessBatchData Method , this method is used to update Batch via object model. Even this method allows you update two list items in Single method call.     &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;Sample CAML .     &lt;br /&gt;&lt;/font&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;    &lt;br /&gt;&amp;lt;ows:Batch OnError=&amp;quot;Continue&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160; &lt;font color="#008000"&gt;&amp;lt;Method ID=&amp;quot;1&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetList&amp;gt;71a9fac3-2e94-4246-8fec-41e30ea65b06&amp;lt;/SetList&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;Cmd&amp;quot;&amp;gt;Save&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;ID&amp;quot;&amp;gt;New&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#OrderDate&amp;quot;&amp;gt;2009-2-21&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#OrderDateTime&amp;quot;&amp;gt;2009-2-21&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#CustomerID&amp;quot;&amp;gt;1;#Cust_1&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/Method&amp;gt;      &lt;br /&gt;&lt;/font&gt;&amp;#160;&lt;font color="#ff8000"&gt; &amp;lt;Method ID=&amp;quot;2&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetList&amp;gt;71a9fac3-2e94-4246-8fec-41e30ea65b06&amp;lt;/SetList&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;Cmd&amp;quot;&amp;gt;Save&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;ID&amp;quot;&amp;gt;3&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#OrderDate&amp;quot;&amp;gt;2009-2-21&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#OrderDateTime&amp;quot;&amp;gt;2009-2-21&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#CustomerID&amp;quot;&amp;gt;1;#Cust_1&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/Method&amp;gt;      &lt;br /&gt;&amp;#160; &lt;/font&gt;&lt;font color="#000080"&gt;&amp;lt;Method ID=&amp;quot;3&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetList&amp;gt;71a9fac3-2e94-4246-8fec-41e30ea65b06&amp;lt;/SetList&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;Cmd&amp;quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;ID&amp;quot;&amp;gt;4&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#OrderDate&amp;quot;&amp;gt;2009-2-21&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#OrderDateTime&amp;quot;&amp;gt;2009-2-21&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;SetVar Name=&amp;quot;urn:schemas-microsoft-com:office:office#CustomerID&amp;quot;&amp;gt;2;#Cust_2&amp;lt;/SetVar&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/Method&amp;gt;      &lt;br /&gt;&lt;/font&gt;&amp;lt;/ows:Batch&amp;gt;&lt;/p&gt;  &lt;p&gt;In above SetList element set GUID of SPList. Here i only update Orders List but you can set another list id combine it with above by just adding another Method Element. &lt;/p&gt;  &lt;p&gt;SetVar element with attribute Name ‘cmd’ used to identify type of functionality. It has mainly two values : Save and Delete . Save is used for either for New Item or in case of update existing item.&lt;/p&gt;  &lt;p&gt;SetVar element with attribute Name ‘ID’ used to find out on which item it operate. ID value ‘New’ is for new item and in case of Update and Delete it should have valid id value. (Integer).   &lt;br /&gt;    &lt;br /&gt;SetVar element with Name attribute value urn:schemas-microsoft-com:office:office#&lt;strong&gt;&amp;lt;Field_Name&amp;gt;&lt;/strong&gt; indicate perticular field of ListItem,&amp;lt;Field_Name&amp;gt; should replace by respetive field internal name.&lt;/p&gt;  &lt;p&gt;C# Code.&lt;/p&gt;  &lt;p&gt;SPSite site = new SPSite(&amp;quot;&lt;a href="http://avani:45830&amp;quot;);"&gt;http://avani:45830&amp;quot;);&lt;/a&gt;    &lt;br /&gt;SPWeb web = site.OpenWeb();    &lt;br /&gt;SPList lst = web.Lists[&amp;quot;Orders&amp;quot;];    &lt;br /&gt;string batchFormat = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;UTF-8\&amp;quot;?&amp;gt;&amp;quot; +    &lt;br /&gt;&amp;quot;&amp;lt;ows:Batch OnError=\&amp;quot;Return\&amp;quot;&amp;gt;{0}&amp;lt;/ows:Batch&amp;gt;&amp;quot;; &lt;/p&gt;  &lt;p&gt;string methodFormat = &amp;quot;&amp;lt;Method ID=\&amp;quot;{0}\&amp;quot;&amp;gt;&amp;quot; +   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;SetList&amp;gt;{1}&amp;lt;/SetList&amp;gt;&amp;quot; +    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;SetVar Name=\&amp;quot;Cmd\&amp;quot;&amp;gt;{2}&amp;lt;/SetVar&amp;gt;&amp;quot; +    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;SetVar Name=\&amp;quot;ID\&amp;quot;&amp;gt;{3}&amp;lt;/SetVar&amp;gt;&amp;quot; +    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;SetVar Name=\&amp;quot;urn:schemas-microsoft-com:office:office#OrderDate\&amp;quot;&amp;gt;{4}&amp;lt;/SetVar&amp;gt;&amp;quot; +    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;SetVar Name=\&amp;quot;urn:schemas-microsoft-com:office:office#OrderDateTime\&amp;quot;&amp;gt;{5}&amp;lt;/SetVar&amp;gt;&amp;quot; +    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;SetVar Name=\&amp;quot;urn:schemas-microsoft-com:office:office#CustomerID\&amp;quot;&amp;gt;{6}&amp;lt;/SetVar&amp;gt;&amp;quot; +&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;&amp;lt;/Method&amp;gt;&amp;quot;; &lt;/p&gt;  &lt;p&gt;StringBuilder strmethodFormat = new StringBuilder();   &lt;br /&gt;strmethodFormat.AppendFormat(methodFormat, 1, lst.ID.ToString(), &amp;quot;Save&amp;quot;, &amp;quot;New&amp;quot;, &amp;quot;2009-2-21&amp;quot;, &amp;quot;2009-2-21&amp;quot;,&amp;quot;1;#Cust_1&amp;quot;);    &lt;br /&gt;strmethodFormat.AppendFormat(methodFormat, 2, lst.ID.ToString(), &amp;quot;Save&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;2009-2-21&amp;quot;, &amp;quot;2009-2-21&amp;quot;,&amp;quot;1;#Cust_1&amp;quot;);    &lt;br /&gt;strmethodFormat.AppendFormat(methodFormat, 3, lst.ID.ToString(), &amp;quot;Save&amp;quot;, &amp;quot;4&amp;quot;, &amp;quot;2009-2-21&amp;quot;, &amp;quot;2009-2-21&amp;quot;,&amp;quot;2;#Cust_2&amp;quot;);    &lt;br /&gt;string processtext = String.Format(batchFormat, strmethodFormat.ToString()); &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;web.ProcessBatchData(processtext);&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Other usefull post about Batch element creation through XLinq or Linq are   &lt;br /&gt;&lt;a title="http://dotnetstep.blogspot.com/2009/01/xlinq-to-generate-batch-element-for.html" href="http://dotnetstep.blogspot.com/2009/01/xlinq-to-generate-batch-element-for.html"&gt;http://dotnetstep.blogspot.com/2009/01/xlinq-to-generate-batch-element-for.html&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://dotnetstep.blogspot.com/2009/01/sharepoint-to-linq.html" href="http://dotnetstep.blogspot.com/2009/01/sharepoint-to-linq.html"&gt;http://dotnetstep.blogspot.com/2009/01/sharepoint-to-linq.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1278768976756749760?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1278768976756749760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1278768976756749760' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1278768976756749760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1278768976756749760'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/batch-update-in-sharepoint.html' title='Batch Update In SharePoint'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_8Ini78jtxBk/SXsUPic0uoI/AAAAAAAAADA/fskXlmqbn7M/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-6107271474656958765</id><published>2009-01-21T05:14:00.001+05:30</published><updated>2009-01-23T07:18:47.290+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>ThreadPool Wait For All Thread To Complete</title><content type='html'>&lt;p&gt;I already discuss issue related to &lt;a href="http://dotnetstep.blogspot.com/2009/01/waithandlewaitall-limitation.html" target="_blank"&gt;WaitHandle.WaitAll&lt;/a&gt; that it does not support wait for more 64 waithandle. In that article discuss about 64 chunks of thread to be executed parallel.     &lt;br /&gt;    &lt;br /&gt;When you use ThreadPool and you combine it with 64 chunks of thread concept than you can not take advantage of ThreadPool. In ThreadPool all task wait for pool become empty.( Not fully). As ThreadPool have available thread then new task automatically executed.     &lt;br /&gt;    &lt;br /&gt;So wait for more than 64 waithandle is needed, i found solution by following way.     &lt;br /&gt;    &lt;br /&gt;C# Code.     &lt;br /&gt;&lt;/p&gt;  &lt;div&gt;using System;    &lt;br /&gt;using System.Collections.Generic;     &lt;br /&gt;using System.Threading;     &lt;br /&gt;namespace ThreadPoolWaitForAllThread     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; class Program     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;ManualResetEvent&amp;gt; events = new&amp;#160; List&amp;lt;ManualResetEvent&amp;gt;();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; 100; i++)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ThreadPoolObj obj = new ThreadPoolObj();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.ObjectID = i;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.signal =&amp;#160; new ManualResetEvent(false);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; events.Add(obj.signal);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WaitCallback callback = new WaitCallback(ThreadFunction);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ThreadPool.QueueUserWorkItem(callback,obj);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WaitForAll(events.ToArray());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Compelted&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static bool WaitForAll(ManualResetEvent[] events)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; bool result = false;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (events != null)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; events.Length; i++)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; events[i].WaitOne();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; result = true;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; result = false;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return result;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void ThreadFunction(object threadobj)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ThreadPoolObj obj = threadobj as ThreadPoolObj;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (obj != null)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(obj.ObjectID.ToString());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Thread.Sleep(2000); // Just Wait To Show Syncronization     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.signal.Set();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; class ThreadPoolObj     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int ObjectID;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public ManualResetEvent signal;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;}     &lt;br /&gt;By this way you can wait for more than 64 Waithandle.&lt;/div&gt;  &lt;p&gt;Same function you can use anywhere even in case of article (&lt;a href="http://dotnetstep.blogspot.com/2009/01/waithandlewaitall-limitation.html" target="_blank"&gt;WaitHandle.WaitAll Limitation&lt;/a&gt;). After use of this function you can avoid logic of 64 chunks, but if your thread consume more resource than it is better to run as chunks of thread instead of starting all thread at once. ThreadPool maintain this thing automatically.     &lt;br /&gt;    &lt;br /&gt;Please give your comment on this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-6107271474656958765?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/6107271474656958765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=6107271474656958765' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6107271474656958765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/6107271474656958765'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/threadpool-wait-for-all-thread-to.html' title='ThreadPool Wait For All Thread To Complete'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3557945889900981188</id><published>2009-01-21T04:40:00.001+05:30</published><updated>2009-01-21T04:40:14.272+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FSharp'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><title type='text'>Find BigNumber Factorial (!)</title><content type='html'>&lt;p&gt;Sometime when work with mathematical application , there is need to find out “Big Number” Factorial.&lt;/p&gt;  &lt;p&gt;By Use of Simple Factorial Function&lt;/p&gt;  &lt;p&gt;C# Code.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;using System;     &lt;br /&gt;class Program      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 1; i &amp;lt; 50; i++)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(i.ToString() + &amp;quot;\t\t&amp;quot; +SimpleFactorial(i).ToString());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static System.Int64 SimpleFactorial(System.Int64 number)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Int64 result = 1;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (System.Int64 i = 2; i &amp;lt;= number; i++)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; result = result * i;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return result;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;&lt;/em&gt;If you are using above code than maximum up to value 20 you can find right answer. (Means 20!). If need is to find out Factorial larger this than you have to use FSharp Library in C#.&lt;/p&gt;  &lt;p&gt;You can find F#Sharp Library at &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en#filelist" target="_blank"&gt;DownLoad&lt;/a&gt; .&lt;/p&gt;  &lt;p&gt;After download , extract it and Add reference of FSharp.Core in C# Project.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;using System;     &lt;br /&gt;using Microsoft.FSharp.Math;      &lt;br /&gt;class Program      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 1; i &amp;lt; 50; i++)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(i.ToString() + &amp;quot;\t\t&amp;quot; + FSharpFactorial(i).ToString());      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static BigInt FSharpFactorial(System.Int64 number)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BigInt num = new BigInt(number);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return BigInt.Factorial(num);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;      &lt;br /&gt;&lt;/em&gt;By using FSharp Version of factorial 50! easily calculated. Even i test upto 20000! and It product result.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3557945889900981188?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3557945889900981188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3557945889900981188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3557945889900981188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3557945889900981188'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/find-bignumber-factorial.html' title='Find BigNumber Factorial (!)'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-4297352358725104513</id><published>2009-01-18T08:58:00.001+05:30</published><updated>2009-01-18T08:58:54.628+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>Connect To Office 2007(Access 2007 , Excel 2007) Without Installing Entire Office 2007</title><content type='html'>&lt;p&gt;Deploy application that use office 2007 ( Access 2007 , Excel 2007) and end user machine does not have Office installed on machine. In this case it is not necessary that end user machine must have office 2007 installed on machine.&lt;/p&gt;  &lt;p&gt;Just install Data Connectivity driver.   &lt;br /&gt;&lt;strong&gt;2007 Office System Driver: Data Connectivity Components&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&amp;amp;displaylang=en" target="_blank"&gt;Office 2007 Data Connectivity driver&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ODBC to connect to Microsoft Office Access data, set the Connection String to “Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”     &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;ODBC to connect to Microsoft Office Excel data, set the Connection String to “Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file”     &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Driver is around 25mb so it can reduce overhead of office 2007.   &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-4297352358725104513?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/4297352358725104513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=4297352358725104513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4297352358725104513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4297352358725104513'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/connect-to-office-2007access-2007-excel.html' title='Connect To Office 2007(Access 2007 , Excel 2007) Without Installing Entire Office 2007'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7009755399061473863</id><published>2009-01-18T06:09:00.001+05:30</published><updated>2009-01-18T08:47:36.973+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>XLinq To Generate Batch Element For SharePoint ListService</title><content type='html'>&lt;p&gt;In my article (&lt;a title="http://dotnetstep.blogspot.com/2009/01/update-datetime-column-using-webservice.html" href="http://dotnetstep.blogspot.com/2009/01/update-datetime-column-using-webservice.html"&gt;http://dotnetstep.blogspot.com/2009/01/update-datetime-column-using-webservice.html&lt;/a&gt;) i used SharePoint List Service to update SharePoint ListItems. In that article i manually set batchElement.InnerXml property with Xml.&lt;/p&gt;  &lt;p&gt;When there is to many row and you want to generate it automatically then you can use XLinq.&lt;/p&gt;  &lt;p&gt;In following example first select all items from orders List then use item id and update each item orderdate and orderdatetime column with current date and current datetime respectively. &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;font size="1"&gt;Lists lst = new Lists();              &lt;br /&gt;lst.Url = “http://&amp;lt;your site&amp;gt;/_vti_bin/lists.asmx”;              &lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;lst.Credentials = new System.Net.NetworkCredential(&amp;quot;test&amp;quot;, &amp;quot;test&amp;quot;); // Site Administrator username and password              &lt;br /&gt;XmlNode resultNode = lst.GetListItems(&amp;quot;Orders&amp;quot;, String.Empty, null, null, int.MaxValue.ToString(), null, String.Empty);&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;// Use XElement To Generate Batch Element Automatically&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;font size="1"&gt;XElement orders = XElement.Parse(resultNode.OuterXml);              &lt;br /&gt;XName name = XName.Get(&amp;quot;data&amp;quot;,&amp;quot;urn:schemas-microsoft-com:rowset&amp;quot;);               &lt;br /&gt;int methodsequence=1;               &lt;br /&gt;XElement updatexml =               &lt;br /&gt;new XElement(&amp;quot;Batch&amp;quot;, new XAttribute(&amp;quot;OnError&amp;quot;,&amp;quot;Continue&amp;quot;),               &lt;br /&gt;from order in orders.Element(name).Elements()               &lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;strong&gt;// you can also use where condition over here                &lt;br /&gt;// for eg. where order.Attribure(“ows_ID”).value = “2”&lt;/strong&gt;               &lt;br /&gt;select new&amp;#160; XElement(&amp;quot;Method&amp;quot;,&amp;#160; &lt;br /&gt;new XAttribute(&amp;quot;ID&amp;quot;, (methodsequence++).ToString()),&amp;#160; &lt;br /&gt;new XAttribute(&amp;quot;Cmd&amp;quot;, &amp;quot;Update&amp;quot;),               &lt;br /&gt;new XElement(&amp;quot;Field&amp;quot;, new XAttribute(&amp;quot;Name&amp;quot;, &amp;quot;ID&amp;quot;), order.Attribute(&amp;quot;ows_ID&amp;quot;).Value),               &lt;br /&gt;new XElement(&amp;quot;Field&amp;quot;,new XAttribute(&amp;quot;Name&amp;quot;,&amp;quot;OrderDate&amp;quot;),DateTime.Now.SharepointFormatDate()),               &lt;br /&gt;new XElement(&amp;quot;Field&amp;quot;, new XAttribute(&amp;quot;Name&amp;quot;, &amp;quot;OrderDateTime&amp;quot;), DateTime.Now.SharepointFormatDateTime())));&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;br /&gt;Now Convert XElement to XmlNode as UpdateListItems only accept XmlNode as parameter.   &lt;br /&gt;  &lt;br /&gt;  &lt;table cellspacing="0" cellpadding="0" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;strong&gt;&lt;font size="1"&gt;XmlDocument doc=&amp;#160; new XmlDocument();              &lt;br /&gt;doc.LoadXml(updatexml.ToString());               &lt;br /&gt;lst.UpdateListItems(&amp;quot;Orders&amp;quot;,doc.FirstChild);&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7009755399061473863?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7009755399061473863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7009755399061473863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7009755399061473863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7009755399061473863'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/xlinq-to-generate-batch-element-for.html' title='XLinq To Generate Batch Element For SharePoint ListService'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-4021849306254963922</id><published>2009-01-18T05:42:00.001+05:30</published><updated>2009-01-20T06:40:59.573+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>Update DateTime Column Using SharePoint ListService</title><content type='html'>&lt;p&gt;SharePoint webservice can be used to update item or items in SharePoint List.When SharePoint List contains “Date And Time” Column with only Date or Date And Time Mode, you have to pass date or datetime in specific format so it can be update by webservice.&lt;/p&gt;  &lt;p&gt;UpdateListItems method is used for this purpose.&lt;/p&gt;  &lt;p&gt;To format DateTime for SharePoint Webservice, i created following extension methods.&lt;/p&gt;  &lt;p&gt;// Extensions Method&lt;/p&gt;  &lt;p&gt;public static class DateTimeExtensions    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // Only Date Column     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static string SharepointFormatDate(this DateTime dt)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return dt.ToString(&amp;quot;yyyy-MM-dd&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; // Date And Time column    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static string SharepointFormatDateTime(this DateTime dt)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return dt.ToString(&amp;quot;yyyy-MM-ddTHH:mm:ssZ&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;To Update List using webservice.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;System.Xml.XmlDocument doc = new System.Xml.XmlDocument();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;System.Xml.XmlElement batchElement = doc.CreateElement(&amp;quot;Batch&amp;quot;);             &lt;br /&gt;batchElement.SetAttribute(&amp;quot;OnError&amp;quot;, &amp;quot;Continue&amp;quot;);             &lt;br /&gt;batchElement.SetAttribute(&amp;quot;ListVersion&amp;quot;, &amp;quot;1&amp;quot;);             &lt;br /&gt;batchElement.InnerXml =”&amp;lt;Method ID='1' Cmd='Update'&amp;gt;&amp;quot; + &amp;quot;&amp;lt;Field Name='ID'&amp;gt;2&amp;lt;/Field&amp;gt;&amp;quot; +             &lt;br /&gt;&amp;quot;&amp;lt;Field Name='OrderDate'&amp;gt;”+ DateTime.Now.SharepointFormatDate() +”&amp;lt;/Field&amp;gt;&amp;lt;Field Name='OrderDateTime'&amp;gt;”+ DateTime.Now.SharepointFormatDateTime()&amp;#160; +”&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;&amp;quot;;             &lt;br /&gt;            &lt;br /&gt;// List Serivce object&amp;#160; (Add web reference for this)             &lt;br /&gt;Lists lst = new Lists();             &lt;br /&gt;lst.Url = “http://&amp;lt;your site&amp;gt;/_vti_bin/lists.asmx” ;             &lt;br /&gt;lst.Credentials = new System.Net.NetworkCredential(&amp;quot;test&amp;quot;, &amp;quot;test&amp;quot;);             &lt;br /&gt;lst.UpdateListItems(“Orders”,batchElement);&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;In above code &amp;lt;Field Name=’ID’&amp;gt;2&amp;lt;/Field&amp;gt; is used to identify unique row that need to be update. In Sample only item with id 2 is updated. In order to update multiple items just add another method element. For example, (This update both item with id 2 and 3)&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;batchElement.InnetXml =          &lt;br /&gt;          &lt;p&gt;“&amp;lt;Method ID='1' Cmd='Update'&amp;gt;&amp;quot; + &amp;quot;&amp;lt;Field Name='ID'&amp;gt;2&amp;lt;/Field&amp;gt;&amp;quot; +            &lt;br /&gt;&amp;quot;&amp;lt;Field Name='OrderDate'&amp;gt;”+ DateTime.Now.SharepointFormatDate() +”&amp;lt;/Field&amp;gt;&amp;lt;Field Name='OrderDateTime'&amp;gt;”+ DateTime.Now.SharepointFormatDateTime()&amp;#160; +”&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;&amp;quot; +             &lt;br /&gt;&amp;quot;&amp;lt;Method ID='2' Cmd='Update'&amp;gt;&amp;quot; + &amp;quot;&amp;lt;Field Name='ID'&amp;gt;3&amp;lt;/Field&amp;gt;&amp;quot; +             &lt;br /&gt;&amp;quot;&amp;lt;Field Name='OrderDate'&amp;gt;”+ DateTime.Now.SharepointFormatDate() +”&amp;lt;/Field&amp;gt;&amp;lt;Field Name='OrderDateTime'&amp;gt;”+ DateTime.Now.SharepointFormatDateTime()&amp;#160; +”&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;&amp;quot;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Same way you can update another type of columns too.&lt;/p&gt;  &lt;p&gt;More information available at following location.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/lists.lists.updatelistitems.aspx" href="http://msdn.microsoft.com/en-us/library/lists.lists.updatelistitems.aspx"&gt;&lt;font size="1"&gt;http://msdn.microsoft.com/en-us/library/lists.lists.updatelistitems.aspx&lt;/font&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms440289.aspx" href="http://msdn.microsoft.com/en-us/library/ms440289.aspx"&gt;&lt;font size="1"&gt;http://msdn.microsoft.com/en-us/library/ms440289.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-4021849306254963922?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/4021849306254963922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=4021849306254963922' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4021849306254963922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/4021849306254963922'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/update-datetime-column-using-webservice.html' title='Update DateTime Column Using SharePoint ListService'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-8467238824675652400</id><published>2009-01-11T14:08:00.000+05:30</published><updated>2009-01-13T06:19:50.595+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>SharePoint to Linq</title><content type='html'>&lt;p&gt;Here specially talking about SharePoint and XLinq. When you choose SharePoint webservice to get data from SharePoint List, data return by web service is in XML format. To read this data as well as filter data XLinq is more powerful.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to Use SharePoint webservice.      &lt;br /&gt;&lt;/strong&gt;1. Add Web reference or generate proxy using WSDL tool.     &lt;br /&gt;then&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="403" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="401"&gt;Lists lst = new Lists();          &lt;br /&gt;lst.Url = “http://&amp;lt;your site&amp;gt;/_vti_bin/lists.asmx”;          &lt;br /&gt;lst.Credentials = new System.Net.NetworkCredential(&amp;quot;test&amp;quot;, &amp;quot;test&amp;quot;);&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Now use GetListItems to retrieve all items from SharePoint List. I would suggest take scenario into consideration. If you require less data to be return from SharePoint List then use Query in GetListItems function. ( Here concentration is on XLinq so it is out of scope for this post).&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;XmlNode resultNode = lst.GetListItems(&amp;quot;Customers&amp;quot;, String.Empty, null, null, int.MaxValue.ToString(), null, String.Empty);&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;XElement (System.Xml.Linq) to read result into XElement      &lt;br /&gt;&lt;/strong&gt;XElement customers = XElement.Parse(resultNode.OuterXml);&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;XName to read type of Node.      &lt;br /&gt;&lt;/strong&gt;XName name = XName.Get(&amp;quot;data&amp;quot;,&amp;quot;urn:schemas-microsoft-com:rowset&amp;quot;);&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Read All Node Using Linq      &lt;br /&gt;&lt;/strong&gt;var filtercustomers = from ele in customers.Element(name).Elements()&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;select new {CustomerID =&amp;#160; ele.Attribute(&amp;quot;ows_ID&amp;quot;).Value , Name = ele.Attribute(&amp;quot;ows_CustomerName&amp;quot;).Value , City = ele.Attribute(&amp;quot;ows_CustomerCity&amp;quot;).Value , Country = ele.Attribute(&amp;quot;ows_CustomerCountry&amp;quot;).Value};&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Filtering Node using XLinq      &lt;br /&gt;&lt;/strong&gt;var filtercustomers = from ele in customers.Element(name).Elements()&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;where ele.Attribute(&amp;quot;ows_CustomerCountry&amp;quot;).Value == &amp;quot;India&amp;quot; &amp;amp;&amp;amp; ele.Attribute(&amp;quot;ows_CustomerCity&amp;quot;).Value == &amp;quot;Banglore&amp;quot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;select new {CustomerID =&amp;#160; ele.Attribute(&amp;quot;ows_ID&amp;quot;).Value , Name = ele.Attribute(&amp;quot;ows_CustomerName&amp;quot;).Value , City = ele.Attribute(&amp;quot;ows_CustomerCity&amp;quot;).Value , Country = ele.Attribute(&amp;quot;ows_CustomerCountry&amp;quot;).Value};&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Join Using XLinq&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;1. Join Two Result&lt;/font&gt;&lt;/strong&gt;     &lt;br /&gt;This is use full case when join in needed on filter data set.     &lt;br /&gt;In following code customers and orders represent two sample reslut set.&lt;/p&gt;  &lt;p&gt;XmlNode resultNode = lst.GetListItems(&amp;quot;Customers&amp;quot;, String.Empty, null, null, int.MaxValue.ToString(), null, String.Empty);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XElement customers = XElement.Parse(resultNode.OuterXml);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XName name = XName.Get(&amp;quot;data&amp;quot;,&amp;quot;urn:schemas-microsoft-com:rowset&amp;quot;); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;var filtercustomers&lt;/strong&gt; = from ele in customers.Element(name).Elements()&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;where ele.Attribute(&amp;quot;ows_CustomerCountry&amp;quot;).Value == &amp;quot;India&amp;quot; &amp;amp;&amp;amp; ele.Attribute(&amp;quot;ows_CustomerCity&amp;quot;).Value == &amp;quot;Banglore&amp;quot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;select new {CustomerID =&amp;#160; ele.Attribute(&amp;quot;ows_ID&amp;quot;).Value , Name = ele.Attribute(&amp;quot;ows_CustomerName&amp;quot;).Value , City = ele.Attribute(&amp;quot;ows_CustomerCity&amp;quot;).Value , Country = ele.Attribute(&amp;quot;ows_CustomerCountry&amp;quot;).Value}; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // Retrive data From Orders    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; resultNode = lst.GetListItems(&amp;quot;Orders&amp;quot;, String.Empty, null, null, int.MaxValue.ToString(), null, String.Empty);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XElement orders = XElement.Parse(resultNode.OuterXml);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;var filterorders&lt;/strong&gt; = from ele in orders.Element(name).Elements()&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select new { OrderID = ele.Attribute(&amp;quot;ows_ID&amp;quot;).Value, CustomerID = ele.Attribute(&amp;quot;ows_CustomerID&amp;quot;).Value.Split(new string[]{&amp;quot;;#&amp;quot;},StringSplitOptions.None)[0] , OrderDate = ele.Attribute(&amp;quot;ows_OrderDate&amp;quot;).Value };&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Join Results&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;var joinresult = from customerele in filtercustomers    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; join orderele in filterorders on customerele.CustomerID equals orderele.CustomerID     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select new { customerele, orderele };&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;2. Directly Join Two XElement&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;var directjoin = from customerele in customers.Element(name).Elements()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; join orderele in orders.Elements(name).Elements() on customerele.Attribute(&amp;quot;ows_ID&amp;quot;).Value equals orderele.Attribute(&amp;quot;ows_CustomerID&amp;quot;).Value.Split(new string[] { &amp;quot;;#&amp;quot; }, StringSplitOptions.None)[0]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select new { CustomerID = customerele.Attribute(&amp;quot;ows_ID&amp;quot;).Value, Name = customerele.Attribute(&amp;quot;ows_CustomerName&amp;quot;).Value, City = customerele.Attribute(&amp;quot;ows_CustomerCity&amp;quot;).Value, Country = customerele.Attribute(&amp;quot;ows_CustomerCountry&amp;quot;).Value, OrderID = orderele.Attribute(&amp;quot;ows_ID&amp;quot;).Value, OrderDate = orderele.Attribute(&amp;quot;ows_OrderDate&amp;quot;).Value };&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note: When working with webservice do care while retrieve data. Whatever data needed from single list for operation try to retrieve in single webservice call instead of making many web service call.For my point of view this will improve the performance.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-8467238824675652400?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/8467238824675652400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=8467238824675652400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8467238824675652400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8467238824675652400'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/sharepoint-to-linq.html' title='SharePoint to Linq'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-2956428463312996135</id><published>2009-01-07T06:49:00.001+05:30</published><updated>2009-01-21T05:19:33.847+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><title type='text'>WaitHandle.WaitAll Limitation</title><content type='html'>&lt;p&gt;WaitHanlde.WaitAll function has limitation about no. of WaitHandles it can handle. As it take array of WaitHandles so one can think it can handle any no. of WaitHandles, but it is not true. It can only handle 64 waithandles. When array exceed this value it display following error.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;“The number of WaitHandles must be less than or equal to 64.”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;strong&gt;Example that cause this error.&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;using System;            &lt;br /&gt;using System.Collections.Generic;             &lt;br /&gt;using System.Threading; &lt;/p&gt;          &lt;p&gt;namespace WaitHandle_Limitation            &lt;br /&gt;{             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; class Program             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;ManualResetEvent&amp;gt; events = new List&amp;lt;ManualResetEvent&amp;gt;();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 0;&lt;strong&gt; i &amp;lt; 100&lt;/strong&gt;; i++)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Thread th = new Thread(new ParameterizedThreadStart(ThreadRunner));             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ThreadParamObj obj = new ThreadParamObj();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.startval = (i*100);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.endval = (i*100)+10;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.eve = new ManualResetEvent(false);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; events.Add(obj.eve);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; th.Start(obj);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;WaitHandle.WaitAll(events.ToArray());              &lt;br /&gt;/* Cause error when event.ToArray return array larger than 64. Here to cause error i used 100. So it will create array of 100. */               &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch (Exception ex)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(ex.Message + ex.StackTrace);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;          &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void ThreadRunner(object thObj)            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ThreadParamObj obj = (ThreadParamObj)thObj;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (obj != null &amp;amp;&amp;amp; obj.startval &amp;lt; obj.endval)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = obj.startval; i &amp;lt; obj.endval; i++)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Thread ID {0} Value : {1}&amp;quot;, Thread.CurrentThread.ManagedThreadId, i.ToString());             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.eve.Set();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;          &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;          &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; class ThreadParamObj            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int startval;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int endval;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public ManualResetEvent eve;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;}&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;br /&gt;To overcome this error one solution is make chunk of 64 thread first then wait for that all thread complete then start another 64 chunk.   &lt;br /&gt;  &lt;br /&gt;  &lt;table cellspacing="0" cellpadding="0" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;strong&gt;// Possible Solution by use of 64 Chunks.&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;using System;            &lt;br /&gt;using System.Collections.Generic;             &lt;br /&gt;using System.Linq;             &lt;br /&gt;using System.Text;             &lt;br /&gt;using System.Threading; &lt;/p&gt;          &lt;p&gt;namespace WaitHandle_Limitation            &lt;br /&gt;{             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; class Program             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int noofthread = 100;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int startindex = 0;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int endindex = 64;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int noofchunk = (int)Math.Ceiling(((double)noofthread / 64.00));             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (noofthread &amp;lt; endindex)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; endindex = noofthread;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int chunk = 0; chunk &amp;lt; noofchunk; chunk++)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;ManualResetEvent&amp;gt; events = new List&amp;lt;ManualResetEvent&amp;gt;();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = startindex; i &amp;lt; endindex; i++)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Thread th = new Thread(new ParameterizedThreadStart(ThreadRunner));             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ThreadParamObj obj = new ThreadParamObj();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.startval = (i * 100);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.endval = (i * 100) + 10;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.eve = new ManualResetEvent(false);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; events.Add(obj.eve);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; th.Start(obj);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WaitHandle.WaitAll(events.ToArray());             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; startindex += 64;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; endindex += 64;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (endindex &amp;gt; noofthread)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; endindex = noofthread;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch (Exception ex)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(ex.Message + ex.StackTrace);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Completed&amp;quot;);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;          &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void ThreadRunner(object thObj)            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ThreadParamObj obj = (ThreadParamObj)thObj;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (obj != null &amp;amp;&amp;amp; obj.startval &amp;lt; obj.endval)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = obj.startval; i &amp;lt; obj.endval; i++)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Thread ID {0} Value : {1}&amp;quot;, Thread.CurrentThread.ManagedThreadId, i.ToString());             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; obj.eve.Set();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;          &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; class ThreadParamObj             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int startval;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public int endval;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public ManualResetEvent eve;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;}&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;br /&gt;Let me know if you have any other ideas or comment on this.  &lt;p&gt;Another possible solution at &lt;a title="http://dotnetstep.blogspot.com/2009/01/threadpool-wait-for-all-thread-to.html" href="http://dotnetstep.blogspot.com/2009/01/threadpool-wait-for-all-thread-to.html"&gt;http://dotnetstep.blogspot.com/2009/01/threadpool-wait-for-all-thread-to.html&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-2956428463312996135?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/2956428463312996135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=2956428463312996135' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2956428463312996135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2956428463312996135'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/waithandlewaitall-limitation.html' title='WaitHandle.WaitAll Limitation'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7615311739437853169</id><published>2009-01-07T05:34:00.001+05:30</published><updated>2009-01-07T05:37:43.703+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><title type='text'>Flags Attribute For Enum</title><content type='html'>&lt;p&gt;Really a very good functionality provided by “Flags Attribute” for Enum. When Enum mark with “Flags“ attribute it will work as bit field.   &lt;br /&gt;Here i am going to explain Enum with and without Flags Attribute.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="434" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="432"&gt;         &lt;p&gt;// Enum Without Flags Attribute.           &lt;br /&gt;public enum Simple : int            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserRead =1,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserWrite = 2,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserExecute = 4,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GroupRead = 8,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GroupWrite = 16,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GroupExecute = 32            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;            &lt;br /&gt;//Enum With Flags Attribute            &lt;br /&gt;[Flags()]            &lt;br /&gt;public enum WithFlagAttrib : int            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserRead = 1,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserWrite = 2,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserExecute = 4,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GroupRead=&amp;#160; 8,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GroupWrite = 16,            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GroupExecute = 32            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;In Above code Simple Enum is without attribute and in that i explicitly defined value for each of Enum. (That is just for compare both of them in same scenario).   &lt;br /&gt;    &lt;br /&gt;Now Simple Example Test&lt;/p&gt;  &lt;p&gt;int result = (int)(Simple.UserRead | Simple.UserWrite | Simple.GroupRead))   &lt;br /&gt;Console.WriteLine(result.ToString()); // output 11&lt;/p&gt;  &lt;p&gt;Now value to enum&lt;/p&gt;  &lt;p&gt;Console.WriteLine(((Simple)result).ToString()); // output 11. It will not converted to enum as none of the value is associated with 11.    &lt;br /&gt;In some scenario when Enum converted to value and stored in database and when it retrieve back from database , we want to convert it to Enum. This is where “Flags Attribute” real usage comes into picture.&lt;/p&gt;  &lt;p&gt;Now With Flags Attribute Enum&lt;/p&gt;  &lt;p&gt;int result = (int)(WithFlagAttrib.UserRead | WithFlagAttrib.UserWrite | WithFlagAttrib.GroupRead)).ToString();   &lt;br /&gt;Console.WriteLine(result.ToString()); // output 11&lt;/p&gt;  &lt;p&gt;Now value to Enum   &lt;br /&gt;    &lt;br /&gt;Console.WriteLine(((WithFlagAttrib)result).ToString()); // It will produce output UserRead , UserWrite , GroupRead. This is what we needed.&lt;/p&gt;  &lt;p&gt;In both of the case when bitwise operation done at first place it produce same output but when convert value to Enum then Enum with “Flags Attribute” show right result b’coz it use bit as usage.&lt;/p&gt;  &lt;p&gt;One thing keep into mind that when Enum create with “Flags Attribute” always assign value power of 2 starting from 1. like 1,2,4,8,16,32,64,128. (Actually it shows which bit is used for particular enum operation and it also limit this type of enum with no criteria it contains).&lt;/p&gt;  &lt;p&gt;// For Value (11)    &lt;br /&gt;11 (32 bit binary value) : 00000000000000000000000000001011&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="417" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="56"&gt;&lt;font size="1"&gt;Bit Position&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="56"&gt;&lt;font size="1"&gt;32&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;font size="1"&gt;16&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="61"&gt;&lt;font size="1"&gt;8&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;&lt;font size="1"&gt;4&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="55"&gt;&lt;font size="1"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;font size="1"&gt;1&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="57"&gt;&lt;font size="1"&gt;Enum&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;font size="1"&gt;GroupExecute&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;font size="1"&gt;GroupWrite&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="65"&gt;&lt;font size="1"&gt;GroupRead&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;&lt;font size="1"&gt;UserExecute&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="55"&gt;&lt;font size="1"&gt;UserWrite&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font size="1"&gt;UserRead&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="56"&gt;&lt;font size="1"&gt;Value&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="46"&gt;&lt;font size="1"&gt;0&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;font size="1"&gt;0&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="69"&gt;&lt;font size="1"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="71"&gt;&lt;font size="1"&gt;0&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="55"&gt;&lt;font size="1"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="65"&gt;&lt;font size="1"&gt;1&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Only used few bits in above table to display value 11. Now you get idea that which ever bit is on it produce in result.&lt;/p&gt;  &lt;p&gt;For Example :   &lt;br /&gt;int val = 12;    &lt;br /&gt;Console.WriteLine(((WithFlagAttrib)val).ToString());    &lt;br /&gt;// 12 binary number&amp;#160; 00000000000000000000000000001100. So output is GroupRead , UserExecute.&lt;/p&gt;  &lt;p&gt;Let me know if you have any question or comment on this. &lt;/p&gt;  &lt;p&gt;Note : When you search this thing MSDN please make sure that Enum mark with “Flags Attribute “&amp;#160; start with value 1 not by 0.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7615311739437853169?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7615311739437853169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7615311739437853169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7615311739437853169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7615311739437853169'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/flags-attribute-for-enum.html' title='Flags Attribute For Enum'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1165542517409042239</id><published>2009-01-04T06:50:00.001+05:30</published><updated>2009-01-04T06:50:39.704+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>Custom GridView Field For SharePoint LookUp Column</title><content type='html'>&lt;p&gt;In Sharepoint When retrieve data using web service, there is need for customization during display in GridView. There are two ways to do this.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;1. First Way&lt;/font&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Use Template Column of GridView. Write Inline coding to Format data.&lt;/p&gt;  &lt;p&gt;For Example .&lt;/p&gt;  &lt;p&gt;In Codebehind file Write Following Function.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To Fetch data using web service.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;public DataTable GetData()      &lt;br /&gt;{&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;DataTable dt = new DataTable();      &lt;br /&gt;Lists lst = new Lists();       &lt;br /&gt;lst.Url = &amp;quot;&lt;/font&gt;&lt;a href="http://&amp;lt;your site&amp;gt;/_vti_bin/lists.asmx&amp;quot;;"&gt;&lt;font size="1"&gt;/_vti_bin/lists.asmx&amp;quot;;'&amp;gt;http://&amp;lt;your site&amp;gt;/_vti_bin/lists.asmx&amp;quot;;&lt;/font&gt;&lt;/a&gt;&lt;font size="1"&gt;      &lt;br /&gt;lst.Credentials = new System.Net.NetworkCredential(&amp;quot;test&amp;quot;, &amp;quot;test&amp;quot;);&amp;#160; &lt;br /&gt;XmlNode result =lst.GetListItems(&amp;quot;Orders&amp;quot;, String.Empty, null, null, int.MaxValue.ToString(), null, string.Empty);&amp;#160; &lt;br /&gt;System.IO.StringReader read = new System.IO.StringReader(result.OuterXml);&amp;#160; &lt;br /&gt;DataSet dst = new DataSet();&amp;#160; &lt;br /&gt;dst.ReadXml(read);&amp;#160; &lt;br /&gt;if (dst.Tables.Count == 2 &amp;amp;&amp;amp; Convert.ToInt32(dst.Tables[0].Rows[0][&amp;quot;ItemCount&amp;quot;].ToString()) &amp;gt; 0)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt = dst.Tables[1];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt.Columns.Add(new DataColumn(&amp;quot;ows_CustomerID&amp;quot;,typeof(string)));       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return dt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;// Enum For Display Mode of LookUpField.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;public enum Mode      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ID,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Value,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; All       &lt;br /&gt;};&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;// Function that format data (This Fuction must be Public or Proctected)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;protected string GetLookupValue(string value,Mode LookUpDisplayMode)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string returnVal = String.Empty;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string[] str;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; switch (LookUpDisplayMode)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case Mode.All:       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; returnVal = value;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case Mode.ID:       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; str = value.Split(new string[] { &amp;quot;;#&amp;quot; }, StringSplitOptions.None);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; returnVal = str[0];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case Mode.Value:       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; str = value.Split(new string[] { &amp;quot;;#&amp;quot; }, StringSplitOptions.None);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; returnVal = str[1];       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return returnVal;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;And in ASPX Page.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;lt;asp:GridView ID=&amp;quot;GridView1&amp;quot; runat=&amp;quot;server&amp;quot; AutoGenerateColumns=&amp;quot;false&amp;quot; &amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Columns&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:TemplateField&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ItemTemplate&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;#160; &amp;lt;%# GetLookupValue(Eval(&amp;quot;ows_CustomerID&amp;quot;).ToString(),Mode.ID) %&amp;gt;        &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ItemTemplate&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/asp:TemplateField&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:TemplateField&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ItemTemplate&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;#160; &amp;lt;%# GetLookupValue(Eval(&amp;quot;ows_CustomerID&amp;quot;).ToString(),Mode.Value) %&amp;gt;        &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ItemTemplate&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/asp:TemplateField&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:TemplateField&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ItemTemplate&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;lt;%# GetLookupValue(Eval(&amp;quot;ows_CustomerID&amp;quot;).ToString(),Mode.All) %&amp;gt;        &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ItemTemplate&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/asp:TemplateField&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Columns&amp;gt;       &lt;br /&gt;&amp;lt;/asp:GridView&amp;gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;2. Other Way&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;This way is create custom DataBoundField that inherits from BoundField.This is required one time coding as well as avoid inline coding.&lt;/p&gt;  &lt;p&gt;Put following class in either App_Code or create class library and use it any application you want.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;strong&gt;//LookupField Class&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;font size="1"&gt;public class LookupField : BoundField             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public enum Mode { ID, Value, All};&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public LookupField()             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;font size="1"&gt; } &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Mode LookUpDisplayMode             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; get;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; set;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected override string FormatDataValue(object dataValue, bool encode)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dataValue = GetLookupValue(dataValue.ToString());              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return base.FormatDataValue(dataValue, encode);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected override void InitializeDataCell(DataControlFieldCell cell, DataControlRowState rowState)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if(rowState == DataControlRowState.Normal || rowState == DataControlRowState.Selected || rowState == DataControlRowState.Alternate)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.InitializeDataCell(cell, rowState);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TextBox txt = new TextBox();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cell.Controls.Add(txt);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; txt.DataBinding += new EventHandler(OnDataBindField);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected override DataControlField CreateField()             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return new LookupField();              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected override void OnDataBindField(object sender, EventArgs e)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Control c = sender as Control;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if(c is TableCell)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.OnDataBindField(sender, e);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else if (c is TextBox)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string val=&amp;#160; GetLookupValue(this.GetValue(c.NamingContainer).ToString());              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ((TextBox)c).Text = val;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private string GetLookupValue(string value)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string returnVal = String.Empty;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string[] str;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; switch (LookUpDisplayMode)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case Mode.All:              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; returnVal = value;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case Mode.ID:              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; str = value.Split(new string[] { &amp;quot;;#&amp;quot; }, StringSplitOptions.None);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; returnVal = str[0];              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; case Mode.Value:              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; str = value.Split(new string[] { &amp;quot;;#&amp;quot; }, StringSplitOptions.None);              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; returnVal = str[1];              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return returnVal;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;strong&gt;// ASPX Page.&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="400"&gt;Register Control         &lt;br /&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;lt;%@ Register TagPrefix=&amp;quot;CC&amp;quot; Assembly=&amp;quot;App_Code&amp;quot; Namespace=&amp;quot;LookupFields&amp;quot; %&amp;gt;             &lt;br /&gt;&lt;/strong&gt;            &lt;br /&gt;            &lt;p&gt;&amp;lt;asp:GridView ID=&amp;quot;GridView1&amp;quot; runat=&amp;quot;server&amp;quot; AutoGenerateColumns=&amp;quot;false&amp;quot;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AutoGenerateEditButton=&amp;quot;true&amp;quot; onrowediting=&amp;quot;GridView1_RowEditing&amp;quot;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Columns&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;CC:LookupField DataField=&amp;quot;ows_CustomerID&amp;quot; LookUpDisplayMode=&amp;quot;ID&amp;quot; HeaderText=&amp;quot;CustomerID&amp;quot;&amp;gt;&amp;lt;/CC:LookupField&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;CC:LookupField DataField=&amp;quot;ows_CustomerID&amp;quot; LookUpDisplayMode=&amp;quot;Value&amp;quot; HeaderText=&amp;quot;CustomerValue&amp;quot;&amp;gt;&amp;lt;/CC:LookupField&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;CC:LookupField DataField=&amp;quot;ows_CustomerID&amp;quot; LookUpDisplayMode=&amp;quot;All&amp;quot; HeaderText=&amp;quot;Customer&amp;quot;&amp;gt;&amp;lt;/CC:LookupField&amp;gt;&lt;/p&gt; &amp;lt;/asp:GridView&amp;gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;In above two way use following code to bind GridView.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;//ASPX Page          &lt;br /&gt;          &lt;p&gt;&lt;font size="1"&gt;protected void Page_Load(object sender, EventArgs e)             &lt;br /&gt;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (!Page.IsPostBack)              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GridView1.DataSource = GetData();              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GridView1.DataBind();              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }              &lt;br /&gt;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;Note: Implementation of custom LookupField is not complete. You may required to add or override few more function in order to work with diffrent mode of GridView Row. (Row Selection , Editing etc).&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;Please give me your comment.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1165542517409042239?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1165542517409042239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1165542517409042239' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1165542517409042239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1165542517409042239'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/custom-gridview-field-for-sharepoint.html' title='Custom GridView Field For SharePoint LookUp Column'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-2055057973180895902</id><published>2009-01-03T07:42:00.001+05:30</published><updated>2009-01-03T07:44:44.785+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><title type='text'>InternalsVisibleTo Attribute Usage</title><content type='html'>&lt;p&gt;Before going into detail of InternalsVisibalTo attribute usage i would like to clear two access modifier in C#.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Internal :&lt;/strong&gt; Access limited to current assembly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Protected Internal :&lt;/strong&gt; This means that &lt;strong&gt;protected or internal.&lt;/strong&gt; So access limited to all class of current assembly or in other assembly class derive from this class.&lt;/p&gt;  &lt;p&gt;In certain situation that is needed when you write your own set of classlibrary that you have to access internal of other assembly.In that case this attribute is usefull.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;InternalsVisibalTo attribute applied at assembly level. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;For example you have Two Assembly.&lt;/p&gt;  &lt;p&gt;One in Library1 and Another one is Library2.&lt;/p&gt;  &lt;p&gt;Library1 Contains Following Code.&lt;/p&gt;  &lt;p&gt;public class Library1Class   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected internal void TestProctectedInternal()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;You are in protected internal method&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; internal void TestInternal()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;You are in internal method&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void TestPublic()  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;You are in public method&amp;quot;);  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;Build Library1. That create library1.dll .&lt;/p&gt;  &lt;p&gt;Now In Library2 you want to use Library1. So you add reference of Library1.&lt;/p&gt;  &lt;p&gt;Library2 sample Code.&lt;/p&gt;  &lt;p&gt;public class Library2Class   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void TestMethod()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Library1.Library1Class cls = new InterVisibalsToTest.Class1();&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cls.TestPublic(); // it’s ok&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cls.TestInternal(); &lt;font color="#ff0000"&gt;// can’t access due to protection level.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cls.TestProtectedInternal(); &lt;font color="#ff0000"&gt;// can’t access due to protection level.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;When you compile Library2 you can see two errors in build. (Mark as red in above code).&lt;/p&gt;  &lt;p&gt;Now in order to avoid this error and give access to Library2 so it can access Internal and Protected Internal member, you have to use InternalsVisibleTo attribute in Library1 assemblyinfo.cs.&lt;/p&gt;  &lt;p&gt;You have to add following line in assemlbyinfo.cs&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;[assembly: InternalsVisibleTo(&amp;quot;Library2&amp;quot;)]&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;After apply this attribute again build library1 and update reference in Library2. Now you have access of both method . TestInternal() and TestProtectedInternal();&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Also possible to grant access to more than one assembly. For that you just have to add another line in assemlbyinfo.cs with diffrent assembly name.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;For Example :&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;[assembly: InternalsVisibleTo(&amp;quot;Library2&amp;quot;)]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [assembly: InternalsVisibleTo(&amp;quot;Library3&amp;quot;)].&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Please give your comment on this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-2055057973180895902?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/2055057973180895902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=2055057973180895902' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2055057973180895902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2055057973180895902'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2009/01/internalsvisibleto-attribute-usage.html' title='InternalsVisibleTo Attribute Usage'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-2026760862968874247</id><published>2008-12-30T04:06:00.001+05:30</published><updated>2008-12-30T04:06:20.286+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><title type='text'>Windows Identity Impersonation</title><content type='html'>&lt;p&gt;Sometime in window application it is required that it run in context of user account other than current login account.Few condition that required this is &lt;/p&gt;  &lt;p&gt;1) Window Application that authenticate and authorize user by his/her user account. &lt;/p&gt;  &lt;p&gt;2) SharePoint sometime required this to gain access of resource that is not granted for SharePoint users.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;You can use following code to impersonate particular user.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;[System.Runtime.InteropServices.DllImport(&amp;quot;advapi32.dll&amp;quot;, SetLastError = true)]     &lt;br /&gt;public static extern bool LogonUser(      &lt;br /&gt;String lpszUsername,      &lt;br /&gt;String lpszDomain,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; String lpszPassword,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int dwLogonType,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; int dwLogonProvider,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ref IntPtr phToken);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [System.Runtime.InteropServices.DllImport(&amp;quot;kernel32.dll&amp;quot;, CharSet = CharSet.Auto)]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public extern static bool CloseHandle(IntPtr handle); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void Main(string[] args)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IntPtr usertoken = new IntPtr(0);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; bool b = LogonUser(&amp;quot;test&amp;quot;, &amp;quot;local&amp;quot;, &amp;quot;123&amp;quot;, 2, 0, ref usertoken);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (b == true)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Security.Principal.WindowsIdentity iden = new System.Security.Principal.WindowsIdentity(usertoken);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Security.Principal.WindowsImpersonationContext con = iden.Impersonate();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;// You Code that required impersonation&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;con.undo()&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;Note : Impersonation can be used in any type of application. (Window Application , Web Application , Class Library).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;In Web Application web.config contains specific &amp;lt;identity&amp;gt; attribute for impersonation.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-2026760862968874247?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/2026760862968874247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=2026760862968874247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2026760862968874247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2026760862968874247'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/12/windows-identity-impersonation.html' title='Windows Identity Impersonation'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1934198430306785921</id><published>2008-12-30T03:39:00.001+05:30</published><updated>2008-12-30T03:56:55.070+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>Linq to SharePoint List. (Where , Join )</title><content type='html'>&lt;p&gt;This article give you information regarding how to use Liinq with SharePoint List to fetch data from SPList.&lt;/p&gt;  &lt;p&gt;For Example there are three SharePoint List . Customers , Orders , OrderDetails. (Please See image below). In Orders list CustomerID is lookup field and in OrderDetails list OrderID is lookup field.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SVlKiVgQQPI/AAAAAAAAACk/4BjLjGPB9Zw/s1600-h/Customer%5B12%5D.jpg"&gt;&lt;img title="Customer" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="124" alt="Customer" src="http://lh6.ggpht.com/_8Ini78jtxBk/SVlKjX4_FeI/AAAAAAAAACo/2msw98Ildm8/Customer_thumb%5B10%5D.jpg?imgmax=800" width="404" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_8Ini78jtxBk/SVlKkCeXqhI/AAAAAAAAACs/y98G9eT-7Jk/s1600-h/orders%5B4%5D.jpg"&gt;&lt;img title="orders" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="184" alt="orders" src="http://lh5.ggpht.com/_8Ini78jtxBk/SVlKlOTvaRI/AAAAAAAAACw/ZXQcSc6kodY/orders_thumb%5B2%5D.jpg?imgmax=800" width="404" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_8Ini78jtxBk/SVlKl3lmKrI/AAAAAAAAAC0/Q74-U6zfO3o/s1600-h/Order%20Details%5B5%5D.jpg"&gt;&lt;img title="Order Details" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="204" alt="Order Details" src="http://lh4.ggpht.com/_8Ini78jtxBk/SVlKmj2guCI/AAAAAAAAAC4/KB4dlFp0XIM/Order%20Details_thumb%5B3%5D.jpg?imgmax=800" width="404" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now Get All Customer From Customer List using Linq.&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;SPSite site = new SPSite(&amp;quot;&lt;/font&gt;&lt;a href="http://localhost:45833&amp;quot;);"&gt;&lt;font size="1"&gt;http://localhost:45833&amp;quot;);&lt;/font&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;font size="1"&gt;SPWeb web = site.OpenWeb();     &lt;br /&gt;SPList lstCustomer = web.Lists[&amp;quot;Customers&amp;quot;]; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;var customers = from SPListItem customer in lstCustomer.Items     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select customer;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;by use of SPListItem (As we use select customer in Linq query)       &lt;br /&gt;&lt;/strong&gt;foreach (SPListItem item in customers)       &lt;br /&gt;{      &lt;br /&gt;Console.WriteLine(item.ID.ToString() + &amp;quot;-&amp;quot; +item[&amp;quot;CustomerName&amp;quot;].ToString());      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;or by using ananymous type&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;font size="1"&gt;var customers = from SPListItem customer in lstCustomer.Items   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select new {ID = customer.ID.ToString(), Name= customer[“CustomerName”].ToString()};    &lt;br /&gt;foreach (var item in customers)     &lt;br /&gt;{    &lt;br /&gt;Console.WriteLine(item.ID + &amp;quot;-&amp;quot; + item.Name);    &lt;br /&gt;}&lt;/font&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;use of where clause with this&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;var customers = from SPListItem customer in lstCustomer.Items     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where customer.ID == 1      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select new { ID = customer.ID.ToString(), Name = customer[&amp;quot;CustomerName&amp;quot;].ToString() };&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;Join Three List to get Related Data&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;SPList lstCustomer = web.Lists[&amp;quot;Customers&amp;quot;];     &lt;br /&gt;SPList lstorders = web.Lists[&amp;quot;Orders&amp;quot;];      &lt;br /&gt;SPList lstorderdetails = web.Lists[&amp;quot;OrderDetails&amp;quot;];      &lt;br /&gt;var customerorders = &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;from SPListItem customer in lstCustomer.Items     &lt;br /&gt;join SPListItem order in lstorders.Items on customer.ID.ToString() equals order[&amp;quot;CustomerID&amp;quot;].ToString().Split(new string[]{&amp;quot;;#&amp;quot;},StringSplitOptions.None)[0]      &lt;br /&gt;join SPListItem orderdetail in lstorderdetails.Items on order.ID.ToString() equals orderdetail[&amp;quot;OrderID&amp;quot;].ToString().Split(new string[] { &amp;quot;;#&amp;quot; }, StringSplitOptions.None)[0]&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;select new {Product = orderdetail[&amp;quot;Product&amp;quot;].ToString() , Price = Convert.ToDouble(orderdetail[&amp;quot;Price&amp;quot;].ToString()) , Qty = Convert.ToInt32(orderdetail[&amp;quot;Qty&amp;quot;].ToString()) , OrderID = order.ID , OrderDate = order[&amp;quot;OrderDate&amp;quot;].ToString() , CustomerID = customer.ID.ToString(), CustomerName = customer[&amp;quot;CustomerName&amp;quot;].ToString() };&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;     &lt;br /&gt;foreach (var item in customerorders)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(item.Product + &amp;quot;&amp;#160; &amp;quot; + item.Price.ToString() + &amp;quot;,&amp;quot; + item.Qty.ToString() + &amp;quot;,&amp;quot;+ (item.Price * item.Qty).ToString() + &amp;quot;,&amp;quot;+ item.OrderID.ToString() + &amp;quot;,&amp;quot; + item.OrderDate + &amp;quot;,&amp;quot; + item.CustomerName);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Note :In above code, I used split operation on string in order to compare LookUp Field ID Value with ID of parent List. There is also posibility to join more than three tables.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;For that you have to use nested this join inside other. Please give your comment or advice on this.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1934198430306785921?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1934198430306785921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1934198430306785921' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1934198430306785921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1934198430306785921'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/12/linq-and-sharepoint-list.html' title='Linq to SharePoint List. (Where , Join )'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_8Ini78jtxBk/SVlKjX4_FeI/AAAAAAAAACo/2msw98Ildm8/s72-c/Customer_thumb%5B10%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-2832783930857218701</id><published>2008-12-17T21:48:00.001+05:30</published><updated>2008-12-17T21:49:22.228+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='MCTS Exam'/><title type='text'>MCTS 70-528 Book update (MCTS Self-Paced Training Kit (Exam 70-528))</title><content type='html'>&lt;p&gt;MCTS book update. If you have book called MCTS Self-Paced Training Kit (Exam 70-528): Microsoft .NET Framework 2.0 Web-Based Client Development, then you have to look at following correction.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a title="http://support.microsoft.com/kb/930739" href="http://support.microsoft.com/kb/930739"&gt;http://support.microsoft.com/kb/930739&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-2832783930857218701?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/2832783930857218701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=2832783930857218701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2832783930857218701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2832783930857218701'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/12/mcts-70-528-book-update-mcts-self-paced.html' title='MCTS 70-528 Book update (MCTS Self-Paced Training Kit (Exam 70-528))'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3237698502629377658</id><published>2008-12-15T14:17:00.001+05:30</published><updated>2008-12-15T14:17:15.049+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='MCTS Exam'/><title type='text'>MCTS Self-Paced Training Kit Exam 70-536 Correction and Updates link.</title><content type='html'>&lt;p&gt;MCTS 70-536 Self-Paced Training kit contains some wrong information. Microsoft support site provides updates in book and materials associated with book. (Like CD, Practice Test)&lt;/p&gt;  &lt;p&gt;Part 1 : &lt;a title="http://support.microsoft.com/kb/923018" href="http://support.microsoft.com/kb/923018"&gt;http://support.microsoft.com/kb/923018&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Part 2 : &lt;a title="http://support.microsoft.com/kb/935218" href="http://support.microsoft.com/kb/935218"&gt;http://support.microsoft.com/kb/935218&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Part 3 : &lt;a title="http://support.microsoft.com/kb/949730/" href="http://support.microsoft.com/kb/949730/"&gt;http://support.microsoft.com/kb/949730/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Part 4 : &lt;a title="http://support.microsoft.com/kb/949734/" href="http://support.microsoft.com/kb/949734/"&gt;http://support.microsoft.com/kb/949734/&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3237698502629377658?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3237698502629377658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3237698502629377658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3237698502629377658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3237698502629377658'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/12/mcts-self-paced-training-kit-exam-70.html' title='MCTS Self-Paced Training Kit Exam 70-536 Correction and Updates link.'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3854497522505263487</id><published>2008-12-05T07:09:00.001+05:30</published><updated>2008-12-05T07:10:12.956+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><title type='text'>New controls for .NET Framework 3.5 SP1</title><content type='html'>&lt;p&gt;This is really a nice thing that Microsoft did in .NET Framework 3.5 SP1, Introduce really cool Chart Controls. This chart controls is for Windows as well as Web Application.&lt;/p&gt;  &lt;p&gt;You can download it from Microsoft Site.&lt;/p&gt;  &lt;p&gt;Link : &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&amp;amp;displaylang=en" target="_blank"&gt;Download Chart Control&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In related download you can find document and VS 2008 Add-on for this control.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3854497522505263487?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3854497522505263487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3854497522505263487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3854497522505263487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3854497522505263487'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/12/new-controls-for-net-framework-35-sp1.html' title='New controls for .NET Framework 3.5 SP1'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-2503563379412180006</id><published>2008-10-09T09:43:00.001+05:30</published><updated>2008-10-09T09:44:16.358+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><title type='text'>Change The Location Of GAC</title><content type='html'>&lt;p&gt;By default whne .NET framework install then it will install global assembly cache to operating system root drive:\windows\assembly.&lt;/p&gt;  &lt;p&gt;In order to change its location you need to update following registry.&lt;/p&gt;  &lt;p&gt;Go to&amp;#160; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion&lt;/p&gt;  &lt;p&gt;Add CacheLocation (REG_SZ) key and set it to new location.&lt;/p&gt;  &lt;p&gt;Suppose your new location is c:\bkfrm then CacheLocation c:\bkfrm. Now .NET framework search for assembly directory inside c:\bkfrm.&lt;/p&gt;  &lt;p&gt;Use code to backup assembly and give source directory c:\windows\assembly and destination (f you take c:\bkfrm) then c:\bkfrm\assembly. (assembly folder must required in any of case).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note: It is required to change in registry so it may cause problem.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-2503563379412180006?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/2503563379412180006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=2503563379412180006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2503563379412180006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2503563379412180006'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/10/change-location-of-gac.html' title='Change The Location Of GAC'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7626272176159757159</id><published>2008-10-09T09:25:00.001+05:30</published><updated>2008-10-09T09:25:58.451+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><title type='text'>Global Assembly Cache Directory Structure and Backup</title><content type='html'>&lt;p&gt;Whenever .NET framework install on PC. There is one specific directory created called Global Assembly Cache.It contains all assemblies that available to all application on machine.&lt;/p&gt;  &lt;p&gt;To open global assembly cache go to run and type assembly or if your sysroot in C drive then go for c:\windows\assembly.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/jinal.patel82/SO2AwZTc_rI/AAAAAAAAACU/-kONSkirhmc/s1600-h/assembly%5B11%5D.jpg"&gt;&lt;img title="assembly" style="display: inline" height="193" alt="assembly" src="http://lh6.ggpht.com/jinal.patel82/SO2AxfxrafI/AAAAAAAAACY/6wj9Asx4K8w/assembly_thumb%5B9%5D.jpg?imgmax=800" width="406" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It is a special directory so it look like this. By default it store data in directory structure.Please look at following image.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/jinal.patel82/SO2AyelEOjI/AAAAAAAAACc/-JvcvmfVPR8/s1600-h/assemblyst%5B20%5D.jpg"&gt;&lt;img title="assemblyst" style="display: inline; margin-left: 0px; margin-right: 0px" height="183" alt="assemblyst" src="http://lh4.ggpht.com/jinal.patel82/SO2AzKZSg_I/AAAAAAAAACg/hA-xvUl0Wjo/assemblyst_thumb%5B18%5D.jpg?imgmax=800" width="421" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;To Copy global assembly cache you can use following code in C# 2.0.&lt;/p&gt;  &lt;table style="background: #f3f3f3" cellspacing="0" cellpadding="2" width="434" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="432"&gt;         &lt;p&gt;static void Main(string[] args)            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string assemblyfolderpath = &amp;quot;d:\\windows\\assembly&amp;quot;;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string copypath = &amp;quot;c:\\newtest123&amp;quot;;             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Directory.CreateDirectory(copypath);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DirectoryInfo dir = new DirectoryInfo(assemblyfolderpath);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ReadDir(dir,copypath);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;          &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; static void ReadDir(DirectoryInfo dir,string copypath)            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (dir != null)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FileInfo[] infos =&amp;#160; dir.GetFiles();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; infos.Length; i++)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(infos[i].Name);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; infos[i].CopyTo(copypath + &amp;quot;/&amp;quot; + infos[i].Name);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DirectoryInfo[] dirs = dir.GetDirectories();             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (int i = 0; i &amp;lt; dirs.Length; i++)             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(dirs[i].Name);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Directory.CreateDirectory(copypath + &amp;quot;/&amp;quot; + dirs[i].Name);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ReadDir(dirs[i],copypath +&amp;quot;/&amp;quot;+ dirs[i].Name);             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }             &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;This is the way by which you can create copy of Assembly.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7626272176159757159?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7626272176159757159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7626272176159757159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7626272176159757159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7626272176159757159'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/10/global-assembly-cache-directory.html' title='Global Assembly Cache Directory Structure and Backup'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/jinal.patel82/SO2AxfxrafI/AAAAAAAAACY/6wj9Asx4K8w/s72-c/assembly_thumb%5B9%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3904712101220811227</id><published>2008-10-07T23:01:00.001+05:30</published><updated>2008-10-07T23:03:50.875+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>The File Exists. (Exception from HRESULT: 0x80070050)</title><content type='html'>&lt;p&gt;This error i got when i removed Active Directory from PC. Actually first i install active directory. Then on next day iremoved it from PC. So it remove all account from my PC. Only administrator are present over there. So none of other program working. Even IIS stop working. I removed iis and then reinstall it . Then configure .net by using aspnet_regiis command. This will create ASPNET user account. Also Reinstallation of IIS create IUSR_ &amp;lt;Machine Name&amp;gt; account.After everything runs ok sharepoint stop working . I removed sharepoint and reinstall it. In Installation of sharepoint i choose same database as previous installation.So it create all sites in IIS. After successfull installtion Central Admin so me error message The File Exists. (Exception from HRESULT: 0x80070050). So for solution i create one user in system with adiminstrators as group and try to login using that user. ( I am not able to login using administrator account).&lt;/p&gt;  &lt;p&gt;After this i choose each of application and add new user as a secondary account. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://localhost:47105/"&gt;Central Administration&lt;/a&gt; &amp;gt; &lt;a href="http://localhost:47105/_admin/applications.aspx"&gt;Application Management&lt;/a&gt; &amp;gt; Site Collection Owners&lt;/p&gt;  &lt;p&gt;Change each of site collection secondary user. &lt;strong&gt;This solution works for me.May be cause is different in certain condition.&lt;/strong&gt;(Possible then restart PC after user setting in all site collection).Cause of problem is related to SID.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3904712101220811227?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3904712101220811227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3904712101220811227' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3904712101220811227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3904712101220811227'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/10/file-exists-exception-from-hresult_07.html' title='The File Exists. (Exception from HRESULT: 0x80070050)'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-2300203216142704573</id><published>2008-10-05T09:16:00.001+05:30</published><updated>2008-10-05T14:15:37.730+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Retrieve SharePoint List With Folders and Files ( Tree Structure)</title><content type='html'>&lt;p&gt;To retrieve SPList structure wise use SPQuery to retrieve childitems.&lt;/p&gt;  &lt;p&gt;There is property called FileSystemObjectType of SPListItem that identifies the current item (Either Folder or File).&lt;/p&gt;  &lt;p&gt;SPSite site = new SPSite(&amp;quot;&lt;a href="http://localhost:43588&amp;quot;);"&gt;http://localhost:43588&amp;quot;);&lt;/a&gt;     &lt;br /&gt;SPWeb web = site.OpenWeb();     &lt;br /&gt;SPList list = web.Lists[&amp;quot;WebLink List&amp;quot;];     &lt;br /&gt;&lt;strong&gt;Response.Write(&amp;quot;&amp;lt;span style='padding-left:0px'&amp;gt;&amp;quot; + list.RootFolder.Name + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot; + &amp;quot;&amp;lt;/br&amp;gt;&amp;quot;);      &lt;br /&gt;GetChildItems(list, list.RootFolder,10);&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;GetChildItems is a recrusive function.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;GetChildItems Function&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;private void GetChildItems(SPList lst , SPFolder folder,int padding)    &lt;br /&gt;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SPQuery query = new SPQuery();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; query.Folder = folder;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SPListItemCollection col =&amp;#160; lst.GetItems(query);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (SPListItem item in col)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;if (item.FileSystemObjectType == SPFileSystemObjectType.File)      &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Response.Write(&amp;quot;&amp;lt;span style='padding-left:&amp;quot;+ padding +&amp;quot;px'&amp;gt;&amp;quot;+item[&amp;quot;URL&amp;quot;]+&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;+ &amp;quot;&amp;lt;/br&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;else if (item.FileSystemObjectType == SPFileSystemObjectType.Folder)      &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Response.Write(&amp;quot;&amp;lt;span style='padding-left:&amp;quot; + padding + &amp;quot;px'&amp;gt;&amp;quot; + item.Title + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot; + &amp;quot;&amp;lt;/br&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GetChildItems(lst, item.Folder,padding+30);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-2300203216142704573?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/2300203216142704573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=2300203216142704573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2300203216142704573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/2300203216142704573'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/10/retrieve-sharepoint-list-with-folders.html' title='Retrieve SharePoint List With Folders and Files ( Tree Structure)'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-7345510922710409430</id><published>2008-10-04T13:20:00.001+05:30</published><updated>2008-10-04T13:21:28.938+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><title type='text'>Event Null Checking In VB.NET Before It Raise</title><content type='html'>&lt;p&gt;For Example In C#&lt;/p&gt;  &lt;p&gt;class MyClass   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public delegate void MyEventHandler(int i);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public event MyEventHandler MyEvent; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public MyClass()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void FireEvent()   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (MyEvent != null)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyEvent(10);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;In above example we check&amp;#160; MyEvent has reference or not by checking if(MyEvent != null) in FireEvent Method. So Event only raise when it has reference.&lt;/p&gt;  &lt;p&gt;In VB.NET raiseevent internally check this thing. but if you want to manually check then use following method.&lt;/p&gt;  &lt;p&gt;VB.NET Example:&lt;/p&gt;  &lt;p&gt;Public Class MyClass1   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Public Event MyEvent(ByVal i As Integer)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Public Sub New()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End Sub    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Public Sub FireEvent()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; If MyEventEvent IsNot Nothing Then    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RaiseEvent MyEvent(10)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; End If    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End Sub    &lt;br /&gt;End Class&lt;/p&gt;  &lt;p&gt;In VB.net that is not necessary to create delegate. You can directly create event. If you want to check that event has reference or not if you have to Add “Event” extra word at the end of Event Name . In above example out event is MyEvent so we did check MyEventEvent is nothing or not. We can not directly check MyEvent is not nothing in VB.NET. &lt;/p&gt;  &lt;p&gt;One more thing to know VB.net allow us to create event directly ( Without creating delegate). But implicitly it create delegate that has same name like MyEventEvent. Suppose you declare event Add then AddEvent delegate automatically created. (Please see below image).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/jinal.patel82/SOcgK3CDnLI/AAAAAAAAACM/Z4O-oFxn_m0/s1600-h/vbnetevent%5B5%5D.jpg"&gt;&lt;img title="vbnetevent" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="182" alt="vbnetevent" src="http://lh4.ggpht.com/jinal.patel82/SOcgL2cpP4I/AAAAAAAAACQ/K4ByPZqEox8/vbnetevent_thumb%5B3%5D.jpg?imgmax=800" width="447" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-7345510922710409430?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/7345510922710409430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=7345510922710409430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7345510922710409430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/7345510922710409430'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/10/event-null-checking-in-vbnet-before-it.html' title='Event Null Checking In VB.NET Before It Raise'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/jinal.patel82/SOcgL2cpP4I/AAAAAAAAACQ/K4ByPZqEox8/s72-c/vbnetevent_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-797830427959019187</id><published>2008-09-14T06:42:00.000+05:30</published><updated>2008-09-14T07:08:40.649+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><title type='text'>Passing reference type ByVal or ByRef.</title><content type='html'>In .net framework there is two type set. One is reference type and another one is value type.&lt;br /&gt;&lt;br /&gt;This post is about passing reference type by val or byref.&lt;br /&gt;&lt;br /&gt;1. Passing ByVal.&lt;br /&gt;&lt;br /&gt; Example:&lt;br /&gt;                   class A&lt;br /&gt;                                 {&lt;br /&gt;                                  int i;                                 &lt;br /&gt;                                 }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  class bMain&lt;br /&gt;                              {&lt;br /&gt;                                           public static void main()&lt;br /&gt;                                           {&lt;br /&gt;                                               A var  = new A();&lt;br /&gt;                                               var.i = 10;                                               &lt;br /&gt;                                               Console.WriteLine("Before Pass{0}",var.i);&lt;br /&gt;                                               TestFun(var);&lt;br /&gt;                                               Console.WriteLine("After Pass{0}",var.i);&lt;br /&gt;                                           }&lt;br /&gt;                                           public static void TestFun(A a)&lt;br /&gt;                                           {&lt;br /&gt;                                               a.i = 20;               &lt;br /&gt;                                           }&lt;br /&gt;                              }&lt;br /&gt;&lt;br /&gt;output:&lt;br /&gt;Before Passs : 10&lt;br /&gt;After Pass: 20&lt;br /&gt;&lt;br /&gt;Here you can see default behavior of reference type. When reference type pass by value then you can change member of that variable. But what happen when you try to reassign variable it self.&lt;br /&gt;&lt;br /&gt;Please following code For TestFun&lt;br /&gt;&lt;br /&gt;public static void TestFun(A a)&lt;br /&gt;                                           {&lt;br /&gt;                                                 a = new A();&lt;br /&gt;                                                 a.i = 20;&lt;br /&gt;                                                 Console.WriteLine("Inside Fun: {0}",a.i);&lt;br /&gt;                                           }&lt;br /&gt;&lt;br /&gt;Output:&lt;br /&gt;Before Pass :  10&lt;br /&gt;Inside Fun: 20&lt;br /&gt;After Pass: 10&lt;br /&gt;&lt;br /&gt;Because when reference type pass by value not actual reference is passed. Instead of that copy of reference is passed. When you try to update that parameter inself it will not take affect outside scope of function.&lt;br /&gt;&lt;br /&gt;2. Passing By Ref.&lt;br /&gt;&lt;br /&gt; class A&lt;br /&gt;                                 {&lt;br /&gt;                                  int i;                                 &lt;br /&gt;                                 }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                  class bMain&lt;br /&gt;                              {&lt;br /&gt;                                           public static void main()&lt;br /&gt;                                           {&lt;br /&gt;                                               A var  = new A();&lt;br /&gt;                                               var.i = 10;                                               &lt;br /&gt;                                               Console.WriteLine("Before Pass{0}",var.i);&lt;br /&gt;                                               TestFun(var);&lt;br /&gt;                                               Console.WriteLine("After Pass{0}",var.i);&lt;br /&gt;                                           }&lt;br /&gt;                                           public static void TestFun(ref A a)&lt;br /&gt;                                           {&lt;br /&gt;                                               a.i = 20;               &lt;br /&gt;                                           }&lt;br /&gt;                              }&lt;br /&gt;&lt;br /&gt;output:&lt;br /&gt;Before Pass : 10&lt;br /&gt;After Pass :20&lt;br /&gt;&lt;br /&gt;Now we update reference itself.&lt;br /&gt;                                           public static void TestFun(ref A a)&lt;br /&gt;                                            {&lt;br /&gt;                                               a = new A();&lt;br /&gt;                                                a.i = 20;               &lt;br /&gt;                                               Console.WriteLine("Inside Fun {0}",a.i);&lt;br /&gt;                                            }&lt;br /&gt;Output:&lt;br /&gt;Before Pass: 10&lt;br /&gt;Inside Fun: 20&lt;br /&gt;After Pass: 20&lt;br /&gt;&lt;br /&gt;Here actual reference is passed. So it will take affect outside function too.&lt;br /&gt;&lt;br /&gt;You can get more detail at following location:&lt;br /&gt;http://msdn.microsoft.com/en-us/library/0f66670z(vs.71).aspx#vclrfpassingmethodparameters_referencetypes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-797830427959019187?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/797830427959019187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=797830427959019187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/797830427959019187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/797830427959019187'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/09/passing-reference-type-byval-or-byref.html' title='Passing reference type ByVal or ByRef.'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-909560835522127835</id><published>2008-09-09T22:09:00.000+05:30</published><updated>2008-09-09T22:18:06.813+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><title type='text'>Bind Generic List To DataBound Control.</title><content type='html'>Suppose you have class called Person that represent person.&lt;br /&gt;(This is specific to ASP.net 3.5 , C# 3.0)&lt;br /&gt;&lt;br /&gt;public class Person&lt;br /&gt;{&lt;br /&gt; public Person()&lt;br /&gt; {&lt;br /&gt;        this.Name = "";&lt;br /&gt;        this.Email = "";&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;    public string Name&lt;br /&gt;    {&lt;br /&gt;        get;&lt;br /&gt;        set;&lt;br /&gt;    }&lt;br /&gt;    public string Email&lt;br /&gt;    {&lt;br /&gt;        get;&lt;br /&gt;        set;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Generic feature available in .NET Framework 2.0 onwards. So you can use that to create generic list.&lt;br /&gt;&lt;br /&gt;Here we create List of Person using following code.&lt;br /&gt;&lt;br /&gt;System.Collections.Generic.List&lt;Person&gt; lst =&lt;br /&gt;            new System.Collections.Generic.List&lt;Person&gt;()&lt;br /&gt;            {&lt;br /&gt;                new Person{Name = "XYZ" , Email = "xyz@xyz.com"},&lt;br /&gt;                new Person{Name = "123" , Email = "123@xyz.com"}&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;Bind to GridView.&lt;br /&gt;&lt;br /&gt;GridView1.DataSource = lst;&lt;br /&gt;GridView.DataBind();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bind To ListBox&lt;br /&gt;&lt;br /&gt;Listbox1.DataSource = lst;&lt;br /&gt;Listbox1.DataBind();&lt;br /&gt;&lt;br /&gt;Binding with gridview works perfect and display Name and Email as column. Same is not happen with ListBox.&lt;br /&gt;&lt;br /&gt;ListBox Display item something like&lt;br /&gt;&lt;br /&gt;Person&lt;br /&gt;Person But it not display anything.&lt;br /&gt;&lt;br /&gt;For that you have to do following thing.&lt;br /&gt;&lt;br /&gt;ListBox1.DataSource =lst;&lt;br /&gt;ListBox1.DataTextField = "Name";&lt;br /&gt;ListBox1.DataValueField = "Email";&lt;br /&gt;ListBox1.DataBind();&lt;br /&gt;&lt;br /&gt;So It display name and ListBox1.SelectedValue contain appropiate Eamil Id.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-909560835522127835?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/909560835522127835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=909560835522127835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/909560835522127835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/909560835522127835'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/09/bind-generic-list-to-databound-control.html' title='Bind Generic List To DataBound Control.'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-1237316319520841051</id><published>2008-09-08T22:19:00.000+05:30</published><updated>2008-09-09T07:30:46.253+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Prevent site from IFRAME</title><content type='html'>Sometime it is neccessary to prevent site or perticular page opening in IFRAME. To do that use following code in page or site. (Someway every page on site).&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;  if(top != self)&lt;br /&gt;         top.location = self.location;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;If some page written above code and still you want to open that page in IFRAME. You need to use following syntax. This is only supported in IE.&lt;br /&gt;&lt;br /&gt;&amp;lt;iframe src="write your url that contain above code." width="500" Height="500" security="restricted"&amp;gt;&lt;br /&gt;&lt;br /&gt;If any one have firefox solution for this please inform me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-1237316319520841051?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/1237316319520841051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=1237316319520841051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1237316319520841051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/1237316319520841051'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/09/prevent-site-from-opening-in-iframe.html' title='Prevent site from IFRAME'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-3611873954203595830</id><published>2008-08-15T11:02:00.000+05:30</published><updated>2008-09-10T22:14:25.105+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 3.5'/><title type='text'>JSonSerialization Error Solution</title><content type='html'>Sometime when working with ScriptSevice and ScriptMethod in ASP.net webservice following error may occur.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reason for this is JavaScript Serialization setting . This allow maximum 2097152 character by default. It method return string larger then this then it throw above error.&lt;br /&gt;&lt;br /&gt;Solution for this is to put following configuration in web.config file.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&amp;lt;connectionStrings&amp;gt;             &lt;br /&gt;                   &amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;                    &amp;lt;system.web.extensions&amp;gt;&lt;br /&gt;                    &amp;lt;scripting&amp;gt;&lt;br /&gt;                    &amp;lt;webServices&amp;gt;&lt;br /&gt;                    &amp;lt;jsonSerialization maxJsonLength="500000"&amp;gt;&amp;lt;/jsonSerialization&amp;gt;&lt;br /&gt;                    &amp;lt;/webServices&amp;gt;&lt;br /&gt;                    &amp;lt;/scripting&amp;gt;&lt;br /&gt;                    &amp;lt;/system.web.extensions&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Rej-9DkutdpRZJZZJrH8Qw?authkey=lhXkzRAApDI"&gt;&lt;img style="width: 607px; height: 171px;" src="http://lh6.ggpht.com/jinal.patel82/SKUXRZxjM-I/AAAAAAAAAAM/Rpr--LtizwQ/jsonconfig.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In above configuration instead you can set maxJsonLength to certain value so it allow larger string.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Maximum value for that field is 2147483647 as this property is System.Int32.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;More information you can find it on following location.&lt;br /&gt;http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.maxjsonlength.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-3611873954203595830?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/3611873954203595830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=3611873954203595830' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3611873954203595830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/3611873954203595830'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/08/jsonserialization-error-solution.html' title='JSonSerialization Error Solution'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/jinal.patel82/SKUXRZxjM-I/AAAAAAAAAAM/Rpr--LtizwQ/s72-c/jsonconfig.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-8706092210655751027</id><published>2008-08-13T23:05:00.000+05:30</published><updated>2008-12-30T02:16:50.898+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# 2.0'/><title type='text'>bool vs bitvector32 in C#</title><content type='html'>&lt;p&gt;In application sometime you need more boolean fields.Also that memory usage and performance is main concern.    &lt;br /&gt;    &lt;br /&gt;For example you require 50 boolean fields. If you create 50 boolean variable     &lt;br /&gt;like     &lt;br /&gt;bool b1,b2,b3....b50;     &lt;br /&gt;or     &lt;br /&gt;create array of 50 than bool[] b = new bool[50]; then also each bool veriable require 1 byte. so total space usage 50 * 1 = 50bytes.     &lt;br /&gt;    &lt;br /&gt;If you use bitvector32 instead of creating array or 50 variable then it just require 4byte. Each bitvector32 can hold upto 32 different flags.     &lt;br /&gt;    &lt;br /&gt;so for 50 we just need two bitvector32,and space usage reduce to 8 byte instead of 50 byte.     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;BitArray is also provide functionality like bitvector32 but it is class so it overhead with instance of class, but bitvector32 is simple structure so it reduce that over head too.&lt;/p&gt;  &lt;p&gt;Example:&lt;/p&gt;  &lt;p&gt;BitVector32 bv = new BitVector32(0); This will assign all bits to 0, as 0 binary representation is 00000000000000000000000000000000.&lt;/p&gt;  &lt;p&gt;BitVector32 bv = new BitVector32(-1); This will assign all bits set to 1. As –1 binary representation is 11111111111111111111111111111111. (Two’s complement).&lt;/p&gt;  &lt;p&gt;You can choose BitArray over BitVector32 when size of array like 40 , 48. That is not in multiple of 32. ( This is just a suggestion).    &lt;br /&gt;    &lt;br /&gt;More information you can find at following location.     &lt;br /&gt;http://msdn.microsoft.com/en-us/library/system.collections.specialized.bitvector32.aspx     &lt;br /&gt;http://msdn.microsoft.com/en-us/library/eahchzkf.aspx(C# ref)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-8706092210655751027?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/8706092210655751027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=8706092210655751027' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8706092210655751027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8706092210655751027'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/08/bool-vs-bitvector32-in-c.html' title='bool vs bitvector32 in C#'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-9088042576514366802</id><published>2008-08-12T21:07:00.000+05:30</published><updated>2008-08-13T23:17:15.809+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADO.net 2.0'/><title type='text'>Find distinct value from DataSet/DataTable in .NET</title><content type='html'>Suppose you have dataset that contain data in following manner&lt;br /&gt;&lt;br /&gt;ID      Name       Country&lt;br /&gt;----------------------------&lt;br /&gt;1       X          USA&lt;br /&gt;2       Y          INDIA&lt;br /&gt;3       Z          INDIA&lt;br /&gt;This is a DataTable name EmpInfo.&lt;br /&gt;&lt;br /&gt;Now you want to select distinct   country value from above table.&lt;br /&gt;&lt;br /&gt;DataTable country = EmpInfo.DefaultView.ToTable(true,"Country");&lt;br /&gt;&lt;br /&gt;Now country datatable contain distinct country value from EmpInfo Table.&lt;br /&gt;&lt;br /&gt;You get more information from following link.&lt;br /&gt;            http://msdn.microsoft.com/en-us/library/wec2b2e6.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-9088042576514366802?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/9088042576514366802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=9088042576514366802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/9088042576514366802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/9088042576514366802'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/08/find-distinct-value-from-dataset-in-net.html' title='Find distinct value from DataSet/DataTable in .NET'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8519994871712148194.post-8641847449997320167</id><published>2008-07-01T21:16:00.000+05:30</published><updated>2008-07-03T21:55:30.893+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.net 2.0'/><title type='text'>Custom SessionID In ASP.net 2.0</title><content type='html'>By default asp.net 2.0 create sessionid like this kidt1m55iyqcx2vrtkn3z0ba. But requirement is such that you need to use your own algorithm to generate sessionid. For this pupose you have to create class that inherit from SessionIDManager class and override it CreateSessionID and Validate methods.&lt;br /&gt;For Example : I want to use GUID as sessionid .&lt;br /&gt;public class CustomSessionID : System.Web.SessionState.SessionIDManager&lt;br /&gt;{&lt;br /&gt;public override string CreateSessionID(HttpContext context)&lt;br /&gt;{&lt;br /&gt;    return Guid.NewGuid().ToString();&lt;br /&gt;}&lt;br /&gt;public override bool Validate(string id)&lt;br /&gt;{&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        Guid idtest = new Guid(id);&lt;br /&gt;        if (idtest.ToString() == id)&lt;br /&gt;            return true;&lt;br /&gt;    }&lt;br /&gt;    catch&lt;br /&gt;    {&lt;br /&gt;        return false;&lt;br /&gt;    }&lt;br /&gt;    return false;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;You can also use DateTime.Now().Ticks as SessionID, or any custom string as a sessionid.&lt;br /&gt;&lt;br /&gt;This is very useful case when you want to functionality like same sessionid generate for sameuser.&lt;br /&gt;&lt;br /&gt;You also have to set web.config sessionStat Section in following manner. Here i assume that above class present in App_code directory . but you can create class library and refrence that class in sessionState session.&lt;br /&gt;&lt;br /&gt;web.config setting.&lt;br /&gt;&lt;br /&gt;&lt;sessionstate sessionidmanagertype="CustomSessionID,App_code"&gt;&amp;lt;sessionState sessionIDManagerType="CustomSessionID,App_code" &amp;gt;&lt;br /&gt;&amp;lt;/sessionState&amp;gt;&lt;br /&gt;&lt;/sessionstate&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8519994871712148194-8641847449997320167?l=dotnetstep.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetstep.blogspot.com/feeds/8641847449997320167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8519994871712148194&amp;postID=8641847449997320167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8641847449997320167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8519994871712148194/posts/default/8641847449997320167'/><link rel='alternate' type='text/html' href='http://dotnetstep.blogspot.com/2008/07/custom-sessionid-in-aspnet-20.html' title='Custom SessionID In ASP.net 2.0'/><author><name>Jinal Patel</name><uri>http://www.blogger.com/profile/03609915059669757510</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
