<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D04FR3o6eip7ImA9WhRRFE4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334</id><updated>2011-11-28T04:48:36.412+05:30</updated><category term="C#" /><category term="Upgrade Sharepoint Version" /><category term="Crystal Report" /><category term="Social" /><category term="ASP.Net" /><category term="Design Patterns" /><category term="TFS 2005" /><category term="WSS 3.0" /><category term="Sharepoint" /><title>Technology - As experienced !!</title><subtitle type="html">All about my experience with different technologies</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://coolsubhash-tech.blogspot.com/" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Technology-AsExperienced" /><feedburner:info uri="technology-asexperienced" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DUMGRHYzeyp7ImA9Wx9aEE8.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-8886356371220297152</id><published>2011-03-02T06:04:00.002+05:30</published><updated>2011-03-02T06:27:05.883+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-02T06:27:05.883+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Crystal Report" /><title>Crystal Reports with Visual Studio</title><content type="html">Recently I was trying to work with Crystal Reports for learning purpose and I have ran through couple of issues. Solutions to these issues were trivial but took good amount of time in research.

&lt;BR&gt;
&lt;BR&gt;
It goes without saying that you should have a valid installation of Visual Studio with crystal report basic and valid license on the server for running crystal reports.
&lt;BR&gt;
&lt;BR&gt;

Issue No. 1 - Can't see images for Crystal report viewer, or not able to use the export, print functionalities when deployed to another web server. 
&lt;BR&gt;
&lt;BR&gt;
Solution : This happens because crystal repots viewer assumes a very specific directory structure for the images and scripts. If you are running IIS on your development machine, you can find the structure here 
"C:\inetpub\wwwroot\aspnet_client\System_Web\2_0_50727\CrystalReportWebFormViewer4"
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
Now all you have to do is that copy the content of this whole structure, right from aspnet_client to your webserver and create a virtual directory to point to this path. Even if you dont want to create a virtual directory or dont have access to do so, you can simply copy the full structure to the root of your webapp and that should do the magic.
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
If you are not using IIS and using a inbuilt webserver with Visual studio (cassini i.e.), still you will have this structure , only thing that in this case it would be available at C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles 

&lt;BR&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-8886356371220297152?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PR0v_e7nknsPmNYF3fQPCwE7KUs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PR0v_e7nknsPmNYF3fQPCwE7KUs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PR0v_e7nknsPmNYF3fQPCwE7KUs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PR0v_e7nknsPmNYF3fQPCwE7KUs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/gxzBwiQv9IU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/8886356371220297152/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2011/03/crystal-reports-with-visual-studio.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/8886356371220297152?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/8886356371220297152?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/gxzBwiQv9IU/crystal-reports-with-visual-studio.html" title="Crystal Reports with Visual Studio" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2011/03/crystal-reports-with-visual-studio.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAGRXc4fyp7ImA9Wx9aEE8.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-7427002447586955001</id><published>2011-03-02T05:42:00.000+05:30</published><updated>2011-03-02T05:42:04.937+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-02T05:42:04.937+05:30</app:edited><title>Inserting code in blogger was never so easy</title><content type="html">I have always struggle for inserting code in my blog. 
&lt;pre name="code" class="csharp"&gt;
//Now it seems to be easy
&lt;/pre&gt;

Many thanks to him http://pleasemakeanote.blogspot.com/2008/06/posting-source-code-in-blogger.html for sharing the knowledge&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-7427002447586955001?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pL-_q1y8GEuhiJFQRDo-GeAm2SI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pL-_q1y8GEuhiJFQRDo-GeAm2SI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pL-_q1y8GEuhiJFQRDo-GeAm2SI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pL-_q1y8GEuhiJFQRDo-GeAm2SI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/_xrFhxkfZmw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/7427002447586955001/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2011/03/inserting-code-in-blogger-was-never-so.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/7427002447586955001?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/7427002447586955001?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/_xrFhxkfZmw/inserting-code-in-blogger-was-never-so.html" title="Inserting code in blogger was never so easy" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2011/03/inserting-code-in-blogger-was-never-so.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYDQX4zfSp7ImA9Wx9bE0Q.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-6149109864604058916</id><published>2011-02-22T22:10:00.002+05:30</published><updated>2011-02-22T22:16:10.085+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-22T22:16:10.085+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Crystal Report" /><title>Crystal Report Error - Field name is not known</title><content type="html">If you are getting the error while running the crystal report like this. "This field name is not known". The below step should fix your problem.
&lt;BR/&gt;
&lt;BR/&gt;
&lt;BR/&gt;
Ensure that database view is updated corrected and correct field name is being reffered from Crystal Report.
&lt;BR/&gt;
&lt;BR/&gt;
&lt;BR/&gt;
Then open the crystal report in Crystal Report view and From the Database Menu, select option " Verify Database " . &lt;BR/&gt;It would ask you credentials and then would ask whether you want to update. Click Okay and Save the report file.
&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;
Now try to run the report again. You should see the report without any problem. This was the solution I saw recently somewhere, and thought of posting it for everyone else. Hope this helps someone.&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-6149109864604058916?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/X5MB8dg730tjMe46NNY6_u-DfM4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X5MB8dg730tjMe46NNY6_u-DfM4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/X5MB8dg730tjMe46NNY6_u-DfM4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X5MB8dg730tjMe46NNY6_u-DfM4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/S2j4_Se6esQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/6149109864604058916/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2011/02/crystal-report-error-field-name-is-not.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/6149109864604058916?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/6149109864604058916?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/S2j4_Se6esQ/crystal-report-error-field-name-is-not.html" title="Crystal Report Error - Field name is not known" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2011/02/crystal-report-error-field-name-is-not.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUFSXwyfyp7ImA9Wx5XEU8.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-675577923623058414</id><published>2010-09-10T18:33:00.003+05:30</published><updated>2010-09-10T18:40:18.297+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-10T18:40:18.297+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net" /><title>CS0426: The type name XXX does not exist in the type XXX</title><content type="html">Yesterday, I was getting below error continously when I was working on a sample of MasterPage. 
&lt;BR&gt;
&lt;BR&gt;
&lt;i&gt;&lt;b&gt;CS0426: The type name 'MyMaster' does not exist in the type 'System.Web.UI.WebControls.TreeView' &lt;/b&gt;&lt;/i&gt;
&lt;BR&gt;
&lt;BR&gt;
While I tried a lot many things (deleting page, adding new etc.) and also googled couple of things, but could not get any clue. Later while reading a post I realized the problem.
&lt;BR&gt;
&lt;BR&gt;
Problem here was that I had named my project (and thereby assembly and the namespace) as TreeView. So at runtime, the CLR was trying to find my master page inside Sytem's standard treeview class.
&lt;BR&gt;
&lt;BR&gt;
So solution was simple i.e. just change the project and namespace name to a non reserved work like TreeviewPOC in my case. 
&lt;BR&gt;
&lt;BR&gt;
So next time you get CS0426 error, just check if your namespace or project name is colliding with any of the standard (or even third party controls etc).
&lt;BR&gt;
&lt;BR&gt;
Happy Coding
&lt;BR&gt;
&lt;BR&gt;
Regards,
Subhash Dike&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-675577923623058414?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FUyt8LMeUAxBbP3UFnbmR3BOnbo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FUyt8LMeUAxBbP3UFnbmR3BOnbo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FUyt8LMeUAxBbP3UFnbmR3BOnbo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FUyt8LMeUAxBbP3UFnbmR3BOnbo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/9jvVy2ux-yU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/675577923623058414/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2010/09/cs0426-type-name-xxx-does-not-exist-in.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/675577923623058414?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/675577923623058414?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/9jvVy2ux-yU/cs0426-type-name-xxx-does-not-exist-in.html" title="CS0426: The type name XXX does not exist in the type XXX" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2010/09/cs0426-type-name-xxx-does-not-exist-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGSXo_eip7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-971031217813459867</id><published>2010-08-20T09:59:00.003+05:30</published><updated>2010-08-23T08:32:08.442+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:32:08.442+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TFS 2005" /><title>How to unshelve when items are locked in other workspace</title><content type="html">Ever faced a problem, where you have been given a shelveset but the owner has locked files in his shelveset.&lt;BR&gt;&lt;BR&gt;

Here is how you could get those files in your workspace without any issue.&lt;BR&gt;&lt;BR&gt;

Just execute the below command (put the original values in place of placeholders denoted by &amp;lt;&amp;gt;&lt;BR&gt;&lt;BR&gt;

&lt;i&gt;&lt;b&gt;tf view /server:&amp;lt;Your Server Name&amp;gt; shelveset:"&amp;lt;ShelvesetName&amp;gt;";&amp;lt;Owner in Domain\UserID format&amp;gt; &amp;lt;Path of item you want to unshelve&amp;gt; &amp;gt; &amp;lt;Path Where you want to copy those files&amp;gt;&lt;/b&gt;&lt;/i&gt;
&lt;BR&gt;&lt;BR&gt;
For more information you can visit &lt;a href="http://msdn.microsoft.com/en-us/library/5dxk6367(VS.80).aspx" target = _blank&gt;MSDN Documentation&lt;/a&gt;
&lt;BR&gt;&lt;BR&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-971031217813459867?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DKFH__Pz_N65NS7mJTMY5fVQlgM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DKFH__Pz_N65NS7mJTMY5fVQlgM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DKFH__Pz_N65NS7mJTMY5fVQlgM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DKFH__Pz_N65NS7mJTMY5fVQlgM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/jMiquCrERgs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/971031217813459867/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2010/08/how-to-unshelve-when-items-are-locked.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/971031217813459867?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/971031217813459867?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/jMiquCrERgs/how-to-unshelve-when-items-are-locked.html" title="How to unshelve when items are locked in other workspace" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2010/08/how-to-unshelve-when-items-are-locked.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIBQ3w-eCp7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-5039303437705904636</id><published>2010-02-17T11:05:00.002+05:30</published><updated>2010-08-23T08:32:32.250+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:32:32.250+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TFS 2005" /><title>How to avoid recurring TFS login from Visual Studio</title><content type="html">&lt;span xmlns=''&gt;&lt;p&gt;Every time you open Visual studio (with tfs connected mode), it asks you to enter credentials. Even if you are trying to do some command line stuff for tfs, it will prompt you for credentials.
&lt;/p&gt;&lt;p&gt;Let's try to make that easy. 
&lt;/p&gt;&lt;p&gt;Steps (Windows Vista)
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Control Panel, User Accounts, User Accounts (again); 
&lt;/li&gt;&lt;li&gt;Click "Manage your network passwords" ("Tasks" list on the left); 
&lt;/li&gt;&lt;li&gt;In the "Stored User Names and Password" dialog, click Add; 
&lt;/li&gt;&lt;li&gt;&lt;div&gt;Type in your Code-Plex (or any other TFS server for that matter) 
&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Add only the host name in the "Log on to" field (); 
&lt;/li&gt;&lt;li&gt;Type username in the "Domain\FirstName.LastName" format; 
&lt;/li&gt;&lt;li&gt;Select "A Windows logon credential" radio button.
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Steps (Windows 7)
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Control Panel, User Accounts
&lt;/li&gt;&lt;li&gt;Click "Manage your credentials" (on the left); 
&lt;/li&gt;&lt;li&gt;In the "Stored Credentials for Automatic logon" page, click "Add a windows credential"; 
&lt;/li&gt;&lt;li&gt;&lt;div&gt;On the resultant page Type in your following details -Plex (or any other TFS server for that matter) 
&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Add only the host name in the "Network details" field (tfs server full name); 
&lt;/li&gt;&lt;li&gt;Type username in the "Domain\FirstName.LastName" format; 
&lt;/li&gt;&lt;li&gt;Type Password
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Steps (Windows XP)
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Control Panel, User Accounts, Advanced tab 
&lt;/li&gt;&lt;li&gt;Click Manage Passwords 
&lt;/li&gt;&lt;li&gt;Click Add 
&lt;/li&gt;&lt;li&gt;Enter the server name (tfs server name), user name (Domain\FirstName.LastName and password).
&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-5039303437705904636?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RUEDd8HmDHoZ2G0lHmK5S5c2mxk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RUEDd8HmDHoZ2G0lHmK5S5c2mxk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RUEDd8HmDHoZ2G0lHmK5S5c2mxk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RUEDd8HmDHoZ2G0lHmK5S5c2mxk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/nLMGeF7kMb0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/5039303437705904636/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2010/02/how-to-avoid-recurring-tfs-login-from.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/5039303437705904636?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/5039303437705904636?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/nLMGeF7kMb0/how-to-avoid-recurring-tfs-login-from.html" title="How to avoid recurring TFS login from Visual Studio" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2010/02/how-to-avoid-recurring-tfs-login-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIMQX85eCp7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-7464988753839164926</id><published>2008-09-05T11:49:00.005+05:30</published><updated>2010-08-23T08:33:00.120+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:33:00.120+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns" /><title>Bridge Design Pattern using C# .Net</title><content type="html">&lt;span xmlns=""&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Bridge Design Pattern:
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;[This article has been created from a presentation that was created by my wife-Anita. Special thanks to Anita for facilitating the presentation.]
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Definition: &lt;/strong&gt;Decouple an abstraction from its implementation so that both can vary independently &lt;strong&gt;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You will find many articles describing the theory about using Bridge Design Pattern using c# .net. Many articles including wiki has already listed down possible usage of this design pattern. I will simply start with a problem statement and we will see how this problem can be achieved.
&lt;/p&gt;&lt;p&gt;Here is the class diagram of my vacation planner (The problem statement) and the code.
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://1.bp.blogspot.com/_CvsNLQovb5k/SMDW38-3LPI/AAAAAAAAAg0/5ZGDxsWbjKU/s1600-h/BridgeProblem.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_CvsNLQovb5k/SMDW38-3LPI/AAAAAAAAAg0/5ZGDxsWbjKU/s400/BridgeProblem.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5242426223010196722" /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Here is the code
&lt;/p&gt;
&lt;code&gt; 
 &lt;span style="font-size:100%;"&gt;
&lt;p  &gt;&lt;span style="font-family:Courier New;"&gt;&lt;span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; Agency
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Program
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;TravelManager&lt;/span&gt; tm = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;TravelManager&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;utilize(tm);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;FoodManager&lt;/span&gt; fm = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;FoodManager&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;utilize(fm);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//fm.PayBill();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;GuideManager&lt;/span&gt; gm= &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;GuideManager&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;utilize(gm);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.ReadKey();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; utilize(&lt;span style="color:#2b91af;"&gt;AgencyManager&lt;/span&gt; am)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;am.Engage();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;am.Release();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; Agency
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AgencyManager
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//public abstract void PayBill();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//public void PayBill()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//{
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;// Console.WriteLine("Amount debited to a/c");
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//}
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;TravelManager&lt;/span&gt; : &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AgencyManager
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;TravelController&lt;/span&gt;.BookVehicle();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;TravelController&lt;/span&gt;.ReleaseVehivle();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//public override void PayBill()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//{
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;// Console.WriteLine("Amount debited to a/c");
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//}
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;FoodManager&lt;/span&gt; : &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AgencyManager
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;FoodController&lt;/span&gt;.OrderFood();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;FoodController&lt;/span&gt;.FinishFood();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;GuideManager&lt;/span&gt; : &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AgencyManager
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;GuideController&lt;/span&gt;.HireGuide();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;GuideController&lt;/span&gt;.DeHireGuide();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//public override void PayBill()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//{
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;// Console.WriteLine("Amount debited to a/c");
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:green;"&gt;//}
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; Agency
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;TravelController
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; BookVehicle()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Vehicle booked"&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; ReleaseVehivle()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span &gt;&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Vehicle Released"&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;FoodController
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; OrderFood()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Food ordered."&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; FinishFood()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Food finished."&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;GuideController
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; HireGuide()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Guide hired."&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span &gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; DeHireGuide()
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span &gt;&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Guide dehired."&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/code&gt;
&lt;/span&gt;
As listed down in the above code and class diagram I have a simple abstract class and 3 implementations. Now the problem starts when I start exploring the application more. Let's say I have to add a new method PayBill which are required only for two implementations i.e for TravelManager and GuideManager. However I want to keep the third implementation FoodManager away from this method. Since all of them are implementing the same abstract class, I cannot add this method at the abstract level since in that case it will compulsory for FoodManager to implement that method which I don't want. The other way is to add the method at individual classes. However that will invite unnecessary duplication of code.
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;There can be someother solution to this problem but we will see how to handle such situation using the Bridge Design Pattern.
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;So here is the class diagram and the resulting code which shows us how we can resolve this issue.
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_CvsNLQovb5k/SMDW35Z_WnI/AAAAAAAAAg8/GyhGfA0vcdU/s1600-h/BridgeResolution.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_CvsNLQovb5k/SMDW35Z_WnI/AAAAAAAAAg8/GyhGfA0vcdU/s400/BridgeResolution.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5242426222050237042" /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;And here is the code
&lt;/p&gt;&lt;p&gt;
&lt;code&gt;
&lt;/p&gt;
&lt;span  style="font-size:100%;"&gt; &lt;p  style="font-size:100%;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; BridgeDesignPattern
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;Program
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args)
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;PaidAgencies&lt;/span&gt; agency = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;PaidAgencies&lt;/span&gt;();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;agency.AgencyManager = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;TravelManager&lt;/span&gt;();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;agency.Engage();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;agency.Release();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;agency.PayBill();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;agency.AgencyManager = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;GuideManager&lt;/span&gt;();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;agency.Engage();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;agency.Release();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;agency.PayBill();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;AddOnAgecies&lt;/span&gt; freeagency = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;AddOnAgecies&lt;/span&gt;();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;freeagency.AgencyManager = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;FoodManager&lt;/span&gt;();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;freeagency.Engage();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;freeagency.Release();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;freeagency.Reimburse();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.ReadKey();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; BridgeDesignPattern
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; Abstraction
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;AgencyAbstraction
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;AgencyManager&lt;/span&gt; agencyManager;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;AgencyManager&lt;/span&gt; AgencyManager
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;get&lt;/span&gt; { &lt;span style="color:blue;"&gt;return&lt;/span&gt; agencyManager; }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;set&lt;/span&gt; { agencyManager = &lt;span style="color:blue;"&gt;value&lt;/span&gt;; }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; Refined abstraction
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;PaidAgencies&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;AgencyAbstraction
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;AgencyManager.Engage();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;AgencyManager.Release();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; PayBill()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Amount Debited to Account"&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; Refine abstraction 2
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;AddOnAgecies&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;AgencyAbstraction
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;AgencyManager.Engage();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;AgencyManager.Release();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Reimburse()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Amount credited to Account"&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; BridgeDesignPattern
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; This is implementor
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;AgencyManager
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;abstract&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; This is concrete implementor
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;TravelManager&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;AgencyManager
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;TravelController&lt;/span&gt;.BookVehicle();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;TravelController&lt;/span&gt;.ReleaseVehicle();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; This is concrete implementor
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;FoodManager&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;AgencyManager
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;FoodController&lt;/span&gt;.OrderFood();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;FoodController&lt;/span&gt;.FinishFood();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; This is concrete implementor
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;GuideManager&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;AgencyManager
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Engage()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;GuideController&lt;/span&gt;.HireGuide();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;override&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Release()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;GuideController&lt;/span&gt;.DeHireGuide();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; System.Text;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; BridgeDesignPattern
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;TravelController
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; BookVehicle()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Vehicle booked"&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; ReleaseVehicle()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Vehicle Released"&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;FoodController
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; OrderFood()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Food ordered"&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; FinishFood()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Food finished"&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;GuideController
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; HireGuide()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Guide hired"&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;
&lt;span style="color:blue;"&gt;public&lt;/span&gt;
&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; DeHireGuide()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;"Guide dehired"&lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;
&lt;/code&gt;
&lt;p&gt;
&lt;/span&gt;
As you can see now we can add methods at the Abstraction level whereas clients are using the refined abstraction. This way we are free to make changes at the abstract level as well as at the implementation level.
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;I Hope this explains the bridge design pattern clearly. Please feel free to comment on this article in case you have any queries/suggestions/comments. I have this source code along with a presentation in a zip and I can provide the same free of cost. Email me at SubhashD987[AT]mail.com
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Enjoy programming…&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-7464988753839164926?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3BlwDPuG1t-j89CPjbYvdMLtoWU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3BlwDPuG1t-j89CPjbYvdMLtoWU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3BlwDPuG1t-j89CPjbYvdMLtoWU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3BlwDPuG1t-j89CPjbYvdMLtoWU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/eGz9OQDvA5U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/7464988753839164926/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2008/09/bridge-design-pattern-using-c-net.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/7464988753839164926?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/7464988753839164926?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/eGz9OQDvA5U/bridge-design-pattern-using-c-net.html" title="Bridge Design Pattern using C# .Net" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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://1.bp.blogspot.com/_CvsNLQovb5k/SMDW38-3LPI/AAAAAAAAAg0/5ZGDxsWbjKU/s72-c/BridgeProblem.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2008/09/bridge-design-pattern-using-c-net.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGRH8yfip7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-1286412804330518791</id><published>2008-08-08T16:31:00.003+05:30</published><updated>2010-08-23T08:33:45.196+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:33:45.196+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WSS 3.0" /><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint" /><title>Create new folder, Upload document to sharepoint site – Maintain metadata</title><content type="html">&lt;span xmlns=''&gt;&lt;p&gt;There was one requirement which I was working on recently. It was very simple to create a user control wherein the user should be able to select the file and upload it to a WSS 3.0 Document Library. Also the second part was user should be able to create folders in the document library and upload document inside the folder.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;With this very simple task was stated to me, I was very happy to answer my boss on the spot that the, I have the design ready. But boss (being a boss !) told me, Hold On! The requirement also states that the user should be able to see his/her name after uploading document and creating folder. For this I had a very straight forward solution which is inbuild for WSS 3.0. I used following code to upload the document.
&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;    /// &amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;       /// Uploads Document to the Site
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;     ///   foldername: Name of folder to which the document is to be uploaded.  (Eg. "Shared Documents")
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;    /// documentFIleName: FileName of the file to be uploaded. Typically FileUpload control's output after formatting gets in here  (Eg. "C:\MyFile.Doc")
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;        /// &amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;        public void UploadDocumentToSite(string foldername, string documentFileName)
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;        {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            SPSite site = SPControl.GetContextSite(HttpContext.Current);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            SPWeb myWeb = site.AllWebs["123"]; //123 is the site id.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            try
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                site.AllowUnsafeUpdates = true;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                myWeb.AllowUnsafeUpdates = true;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                SPFolder destFolder = myWeb.GetFolder(foldername);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                SPUser user = myWeb.Users["Domain\\UserName"]; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                destFolder.Files.Add(documentFileName, content, user, user, DateTime.Now, DateTime.Now);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;         //The above overload used will help me to maintain the metadata such as created by and modified by fields.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            catch (Exception ex)
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                //Log the error here
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            finally
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                //Dispose the web and site 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;            }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;  }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;So far so good. The above code perfectly uploads the document to the document library and also maintains the metadata such as Created by/Modified By fields.
&lt;/p&gt;&lt;p&gt;The challenge starts later. Now the same requirement had a provision that user should be able to create folders in the document library. Creating folder is simple 
&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;SPFolder destFolder = myWeb.GetFolder(foldername);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;destFolder.SubFolders.Add(folderName);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Now the problem starts. The above SubFolders.Add method does not have any overload where I can pass on SPUser. Apparently what would happen is that the document gets uploaded with some other userid (or system account which was impersonated) but not with the specific userid I wanted. 
&lt;/p&gt;&lt;p&gt; Then I again searched on the web and somewhere down the line I got a hint which worked for me like anything. The below is the way to go about it.
&lt;/p&gt;&lt;p style='margin-left: 72pt'&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;  SPFolder newFolder = destFolder.SubFolders.Add(folderName);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                    newFolder.Item[&lt;span style='color:#a31515'&gt;"Modified By"&lt;/span&gt;] = user.ID;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                    newFolder.Item[&lt;span style='color:#a31515'&gt;"Created By"&lt;/span&gt;] = user.ID;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;                    newFolder.Item.Update();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Wow… This was so simple but still so important to know.. I am very thankful to the guy who floated this on the web. (Unfortunately I did not bookmarked the url, but I commented down there)..
&lt;/p&gt;&lt;p&gt;Go ahead and try this out if this works for you.. if it does, keep the work spreading… 
&lt;/p&gt;&lt;p&gt;Enjoy Life .. Enjoy Programming.. ..
&lt;/p&gt;&lt;p&gt;Let me know if you need any assistance on such issues…
&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-1286412804330518791?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vRH9S5URTEtmspZlAt04sc7qhis/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vRH9S5URTEtmspZlAt04sc7qhis/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vRH9S5URTEtmspZlAt04sc7qhis/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vRH9S5URTEtmspZlAt04sc7qhis/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/TylpWuy0ck0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/1286412804330518791/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2008/08/create-new-folder-upload-document-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/1286412804330518791?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/1286412804330518791?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/TylpWuy0ck0/create-new-folder-upload-document-to.html" title="Create new folder, Upload document to sharepoint site – Maintain metadata" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2008/08/create-new-folder-upload-document-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEARX4zfCp7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-4943704677801076362</id><published>2008-07-04T17:27:00.002+05:30</published><updated>2010-08-23T08:34:04.084+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:34:04.084+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WSS 3.0" /><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint" /><title>Issue with Document upload in WSS 3.0 migrated site</title><content type="html">&lt;span xmlns=''&gt;&lt;p&gt;&lt;strong&gt;This time I have one problem with which I have been struggling a lot but still I do not have any solution. If any one of you have the solution, please let me know.
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Problem Statement:
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The custom document library schema.xml is not being utilized completely in case of upload action.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Details:
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We have migrated our custom site from WSS 2.0 to WSS 3.0. We have a custom document library and it was also part of the migration. After migration we have used "UseLegacyForm" attribute in all of our custom list/document libraries' schema.xml. Using this attribute we are able to keep our exists lookup and other functionalities unaffected. However we observed that in case of custom document library, when we try to request for "Upload Document" functionality in the service. The call is getting redirected to _layouts/Upload.aspx instead of Forms/Upload.aspx. That means that the content of our schema.xml is not being followed. Surprisingly the forms/upload.aspx page is invoked properly if we are creating a "New Folder". But whenever we try to upload the document the requested gets redirected to _Layouts/Upload.aspx instead of Doclib/Forms/Upload.aspx.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-4943704677801076362?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zNUT5cdI5Bef8pZHA_cUoAz9Hic/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zNUT5cdI5Bef8pZHA_cUoAz9Hic/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zNUT5cdI5Bef8pZHA_cUoAz9Hic/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zNUT5cdI5Bef8pZHA_cUoAz9Hic/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/iQC6bQcbeyk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/4943704677801076362/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2008/07/issue-with-document-upload-in-wss-30.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/4943704677801076362?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/4943704677801076362?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/iQC6bQcbeyk/issue-with-document-upload-in-wss-30.html" title="Issue with Document upload in WSS 3.0 migrated site" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2008/07/issue-with-document-upload-in-wss-30.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEECSXs4cCp7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-8487695573440133796</id><published>2008-05-14T16:42:00.001+05:30</published><updated>2010-08-23T08:34:28.538+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:34:28.538+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Social" /><title>Vayam call for urgent action</title><content type="html">&lt;span style="font-family:verdana;"&gt;This is not technical but serious social issue in India. I am quoting email below from Milind Thatte of Vayam India.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;Please see if any one can help here!!.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;You may ask me [Subhash Dike] if you need any further details.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt; Visit &lt;a href="http://vayamindia.wordpress.com/"&gt;http://vayamindia.wordpress.com/&lt;/a&gt; for details
&lt;span style="font-family:verdana;"&gt;"Vayam call for urgent action

Dear all,

I am writing this to involve all of you in a war-footing effort that we alias Vayam are taking up in this month and the next. This is almost a war and Vayam has to fight it. We can not be bystanders and watch our forests and the communities there just vanish into deserts of barren mountains.

The calamity and opportunity
Government of India has passed a law that is handing over "Forest rights" to forest-dwelling communities. This law is a double-edged sword. If the community (i.e. the tribes) use it in a proper and restrained manner, it will rejuvenate all of our forests. But if the community falls prey to campaigns by mafia, political parties, and some NGOs - the forests will vanish within next six months.
As of now, there is double tragedy:
1 - the community does not know how to manage forests for long-term sustainability and benefit.
2 - the anti-forest lobby is already at large
Our war plan
There is need to launch an awareness campaign with immediate effect (starting latest by 20th May) in all forest-dwelling villages of Jawhar-Mokhada blocks (Thane district). We have identified that 24 villages in this belt are still having some forest cover. Our team will reach these villages, conduct meetings, present a workable Forest Management model, and appeal people to join our movement. Our movement shall support both: Forest rights and Forest management by community. This campaign is proposed to be run from 20th May to 15th June.
Please understand the urgency. Government has begun the implementation of this law and is bent upon completing the procedures in six months beginning April 2008. Village forest committees are already formed in most villages... and forest maps will be redrawn in next month.
What YOU got to do
You can volunteer for this campaign, but not for less than seven days. If you can write a streetplay (in tribal dialect), or help design/print posters, or if you can drive a car, hold a loudspeaker, fold a chaddar, take photographs, or if you can talk to villagers... You are welcome to volunteer.
We need approx. 1,50,000 rupees to run this campaign. If you are not coming to the field, you have to raise this fund and empower the field team to work without worry. Some of the expenditures are as follows:
1. Printing of leaflets/handbills, posters, and stickers
2. Printing of Flex (roll-up boards) for temporary exhibition in villages
3. Vehicle hiring expenses (or fuel for motorcycles) {You can donate a motorcycle for a month}
4. Honorarium for field workers (working for one month or more)
5. Food expenses of the campaign team
6. White LED torches (10) to illuminate the stage for night meetings
We have about 42k rupees contributed by our core team. (We have another 28k by donors, but we will have to seek their permission to use it for this purpose.)
So we need more funds. You can drop a cheque in the name of "Amit Tillu" or "Milind Thatte" and drop it in any ICICI ATM. (Account number: 002701551755, Branch: Nashik). If you (or your friend) donates, please send a mail to &lt;/span&gt;&lt;a href="mailto:vayamindia@gmail.com" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;vayamindia@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; and give your contact details. All contributors will get a detailed report of expenses at the end of the campaign by email.

I am not going to send reminders. This is not my war, this is our fight. And we don't have too much time in hand.
I am going to be in the field for this entire campaign. Two tribal karyakartas are ready to be with me. Many more will join. Even if you don't collect funds, this team will fight. But then, their families will suffer - as all of them will lose their monthly/daily wages.

Feel free to fwd this mail to your friends and talk to as many people as possible.(Vayam's profile - if required - is attached.) Your contributions are can start falling in from today. Call me for all queries/questions.

Ram ram,
- Milind
More information about this issue...
What is the law all about
This law and its rules were passed on 1 January 2008 and it is called as "Scheduled Tribes and Other traditional Forest-dwellers (Recognition of Forest Rights) Act". The Act gives or recognises three sets of rights:
1. Right to own/cultivate/habitat land in forest for bonafide livelihood needs. (Cultivation/habitation before 2005 is to be legalised)
2. Right to use/distribute/process all plant-based forest produce (excluding timber) and to use all grasslands and water sources in the forest for bonafide livelihood needs
3. Right to conserve/manage forest resources
The law is positive in the sense that it has recognized the rights of tribes over forests that were taken away by the British government and carried forward by Indian governments.
But it is dangerous - for it is quite possible - that people will destroy/cut forests to get immediate gains. Deforestation will damage the forest-dwellers to the maximum. Food-fuel-fodder everything will be lost and forest-dwelling communities will virtually become beggars if forests are finished.
Assessment visit (cutting of forests has begun)
Vayam's team has already been to some forest villages in Thane districts and assessed the current status of the law and the forests. Village Forest committees - as required by the law - are being formed. In some villages, certain organisations have provoked people to cut forests and we have seen cut trees (approx. 90 in one village, Bharsatmet in Taluka Jawhar). We met some forest farming persons and some Gram Panchayat Forest committee members. (See pictures attached.) After this assessment, we have chalked out the plan of a blitzkrieg campaign.
Networking to increase impact
We have been talking to Voluntary organisations with good grass-roots network. I and Amit have already alerted all our old contacts and friends in tribal villages and have got them activated. We have addressed two meetings of tribal volunteers and are connecting to friends in MP and 36gadh.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;"&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-8487695573440133796?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZG8ZOenMYxasemZ_ryzr7fdHPls/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZG8ZOenMYxasemZ_ryzr7fdHPls/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZG8ZOenMYxasemZ_ryzr7fdHPls/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZG8ZOenMYxasemZ_ryzr7fdHPls/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/jMzDtmfKlqA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/8487695573440133796/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2008/05/vayam-call-for-urgent-action.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/8487695573440133796?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/8487695573440133796?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/jMzDtmfKlqA/vayam-call-for-urgent-action.html" title="Vayam call for urgent action" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2008/05/vayam-call-for-urgent-action.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEMSX06cSp7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-6143031660734018179</id><published>2008-04-21T13:40:00.001+05:30</published><updated>2010-08-23T08:34:48.319+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:34:48.319+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WSS 3.0" /><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint" /><title>0x81070201 error</title><content type="html">&lt;span style="font-family:verdana;"&gt;Recently I was going through a critical issue. &lt;/span&gt;

&lt;span style="font-family:verdana;"&gt;I used to gets  0x81070201 error when I open default page of my sharepoint site in WSS 3.0. While I was looking for solution one of the blogs gave me great relief.
The issue may appear because Schema.xml files from site definition folder under sitetemplates on webserver or schema tag is missing from onet.xml.
If you simply reload these files at site definition and listdefinition, your problem should be resolved.
[While I was searching around for the similar issue, I observed that similar problem may occur if your schema.xml and/or onet.xml is not accessible]&lt;/span&gt;

&lt;span style="font-family:verdana;"&gt;Thanks,&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;Subhash&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-6143031660734018179?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FKYdVtO6qCAjwy9Ch6XDPxr1QgI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FKYdVtO6qCAjwy9Ch6XDPxr1QgI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FKYdVtO6qCAjwy9Ch6XDPxr1QgI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FKYdVtO6qCAjwy9Ch6XDPxr1QgI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/0YmotFfy2Gg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/6143031660734018179/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2008/04/0x81070201-error.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/6143031660734018179?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/6143031660734018179?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/0YmotFfy2Gg/0x81070201-error.html" title="0x81070201 error" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2008/04/0x81070201-error.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAEQn4zfCp7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-8167004001742723963</id><published>2008-01-21T20:12:00.001+05:30</published><updated>2010-08-23T08:35:03.084+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:35:03.084+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WSS 3.0" /><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint" /><title>SPBasePermission</title><content type="html">&lt;span style="font-family:verdana;"&gt;While my friends were having fun during weekends, I was hitting my head against an issue in my application. It took me a very long time to understand and resolve the issue. But finally all well that ends well.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;Here is the issue.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;I use Visual Studio for creating a subsite under a site collection. The users are present in the site collection under "Read" role. I use impersonation to create the subsite. After creation of site, I create RoleDefinition and the RoleAssigment so that the users have all appropriate rights on the newly created subsite. &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;I was properly breaking inheritance by using  &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;web.RoleDefinitions.BreakInheritance(false,false);&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;The above statment was written to ensure that the "Read" role permissions are not carried over to subsite, instead subsite should use their unique permission level and unique role definition.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;The problem was, after creation of subsite the subsite was not accessible to the users in the specified group. &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;Inspite of all above written measures, I was not sure what is causing this error. After trying lots of things finally I got the solution. The solution was simple as to have following permissions applied to the RoleDefinition at the time of creation&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;  SPBasePermissions.ViewListItems &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.AddListItems                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.EditListItems                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.DeleteListItems                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.OpenItems                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.ViewVersions                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.DeleteVersions                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.ViewFormPages                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.Open                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.ViewPages                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.BrowseDirectories                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.BrowseUserInfo                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.UseClientIntegration                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.UseRemoteAPIs                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.CreateAlerts                        &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;SPBasePermissions.EditMyUserInfo;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;That resolved my issue.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;If anybody has same or similar issue, let me know. I would be happy to assist.&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;Thanks,&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;Subhash&lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-8167004001742723963?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YCS6YpRcWgSf7OYqVu_SxwVlnMU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YCS6YpRcWgSf7OYqVu_SxwVlnMU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YCS6YpRcWgSf7OYqVu_SxwVlnMU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YCS6YpRcWgSf7OYqVu_SxwVlnMU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/EMTv9NzOV7w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/8167004001742723963/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2008/01/spbasepermission.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/8167004001742723963?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/8167004001742723963?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/EMTv9NzOV7w/spbasepermission.html" title="SPBasePermission" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2008/01/spbasepermission.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEACQnY8eCp7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-7021783137518649062</id><published>2008-01-20T11:13:00.002+05:30</published><updated>2010-08-23T08:36:03.870+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:36:03.870+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Upgrade Sharepoint Version" /><category scheme="http://www.blogger.com/atom/ns#" term="WSS 3.0" /><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint" /><title>Remember this while upgrading from WSS 2.0 to WSS3.0</title><content type="html">&lt;span style="font-family:Verdana;"&gt;In this article we would try to figure out few small things which you must remember before/during an In-place upgrade from WSS 2.0 to WSS 3.0.&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;1. Connection strings/ connection string information:&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;If you have a custom application running under a sharepoint site, make sure that you do not have connection string like &lt;/span&gt;&lt;span style="font-family:Verdana;"&gt;"Data Source=(local);Initial Catalog = MyDB;....." etc. This is because the upgrade might fail because of the word (local). Same is applicable to your settings in Sharepoint Central Administration. Make sure that Content/configuration Database server name is not &lt;strong&gt;&lt;em&gt;(local) or .&lt;/em&gt;&lt;/strong&gt; Even if you are using local server as database server, make sure you give Full Name.&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;2. Prescan-tool:&lt;/strong&gt; After the last step of Installation of WSS 3.0, the installation wizard have one check-box for executing Sharepoint Technology Configuration Wizard. This check-box is checked by default. However the upgrade would fail if you continue as is. Ensure that you have executed Pre-scan tool before execution Sharepoint Technology and configuration wizard. The prescan tool exists under programfiles/Microsoft Shared/Web server extension/12/bin directory.&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;3. Rights:&lt;/strong&gt; Make sure that the service accounts are set properly and that these accounts have all required access to all servers and to the database.&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;In the unfortunate even of upgrade failure, don't worry. Just visit upgrade log available under programfiles/Microsoft Shared/Web server extension/12/logs. Understand the exception and act accordingly. Though wizard states that the process is irriversible, you can always correct the issues and execute the wizard again. In most of the cases, the upgrade fails because of few obvious reaons.&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;Enjoy !!&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;Subhash&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-7021783137518649062?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hV69AJHObGRwvjPlK41JHipyRbc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hV69AJHObGRwvjPlK41JHipyRbc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hV69AJHObGRwvjPlK41JHipyRbc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hV69AJHObGRwvjPlK41JHipyRbc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/6ecJAbQqCVI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/7021783137518649062/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2008/01/remember-this-while-upgrading-from-wss.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/7021783137518649062?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/7021783137518649062?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/6ecJAbQqCVI/remember-this-while-upgrading-from-wss.html" title="Remember this while upgrading from WSS 2.0 to WSS3.0" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2008/01/remember-this-while-upgrading-from-wss.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEADSHo8eCp7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-6720802153925247888</id><published>2008-01-12T12:35:00.001+05:30</published><updated>2010-08-23T08:36:19.470+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:36:19.470+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Upgrade Sharepoint Version" /><category scheme="http://www.blogger.com/atom/ns#" term="WSS 3.0" /><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint" /><title>System policies must have full control !!</title><content type="html">&lt;span style="font-family:verdana;"&gt;I have been trying hard with a problem with the search service.

&lt;strong&gt;&lt;em&gt;Here is the problem definition.&lt;/em&gt;&lt;/strong&gt;

While using Windows Sharepoint Services 3.0 Search Service, when you try to start the search service instance on webserver, it throws error "System policies must have full control".

&lt;strong&gt;&lt;em&gt;And this is the solution that worked for me:
&lt;/em&gt;&lt;/strong&gt;I digged into all kind of books, technical references. There may be several different reasons behind this error and solutions defer from situation to situation. But the in my case problem was with the Service Account and Content Access account. I was trying to start the search service using credentials of Farm Administator. However it has been explicity mentioned on Microsoft Techcenter, that the content access account and service account MUST NOT BE farm administrator. I got this reference from here: &lt;a href="http://technet2.microsoft.com/Office/en-us/library/f07768d4-ca37-447a-a056-1a67d93ef5401033.mspx?mfr=true"&gt;http://technet2.microsoft.com/Office/en-us/library/f07768d4-ca37-447a-a056-1a67d93ef5401033.mspx?mfr=true&lt;/a&gt; . &lt;/span&gt;
&lt;span style="font-family:verdana;"&gt;I just created a seperate domain account and used that as service &amp;amp; content access account. That's it!!! The search service started working very smoothly.

Hope this helps you. Happy programming :-)&lt;/span&gt;
&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;
[Please note: This solution/comment is based on personal experience and may not be authentic. This solution does not guarantee that it would react the same way anywhere else. You can refer to product documentation and authorized websites for more information.]&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-6720802153925247888?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-GnHAXDvFUYBmzYB5YeSHosVjTg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-GnHAXDvFUYBmzYB5YeSHosVjTg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-GnHAXDvFUYBmzYB5YeSHosVjTg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-GnHAXDvFUYBmzYB5YeSHosVjTg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/v-KoyetLRzY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/6720802153925247888/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2008/01/system-policies-must-have-full-control.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/6720802153925247888?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/6720802153925247888?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/v-KoyetLRzY/system-policies-must-have-full-control.html" title="System policies must have full control !!" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2008/01/system-policies-must-have-full-control.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAHR384fip7ImA9Wx5RFU4.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-4413878128207480420</id><published>2007-09-19T08:55:00.002+05:30</published><updated>2010-08-23T08:35:36.136+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T08:35:36.136+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WSS 3.0" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.Net" /><title>Build ASP.Net Webpart for Windows Sharepoint Services 3.0</title><content type="html">Webpart, one of the few words many Sharepoint Experts throw towards a newbie. After you finish reading this article, you would have your own webpart created and deployed by following few simple steps.

One obvious question that would appear in your mind is what exactly is this webpart? In fact the answer is also known to you. Webparts are ASP.Net server controls. To create a new type of Web Part, you create an ASP.NET custom control. However, unlike standard ASP.NET controls, which are added to Web form pages by programmers at design time, Web Parts are intended to be added to Web Part Zones on Web Part Pages by users at run time. Webparts helps application designers, developers and users satisfying each of them. You can very easily get more information about these webparts and how to effectively use them in your sharepoint sites. However this article would try to explain to build an ASP.Net 2.0 Webpart for WSS 3.0.

We would start up by creating a sharepoint web application in WSS 3.0. To create a sharepoint web application, you would need to start from Sharepoint Central Administration site from Administrative tools (Assumption: WSS 3.0 installed on Windows Server 2003).

To create a sharepoint webapplication go to Application Management. Follow Create a new web application link. You can either create a new IIS site or use an existing IIS site as a base for new web application. On the create application page, fill up all the required information and move ahead. Once the application is created we would have to create a new site collection, in order to place our new webpart. You create a site collection with Blank site template, since we would be just doing the test.

Now we need to move to visual studio for creation of webpart. In Visual Studio 2005, create a new class library and name it as "MyFirstWebpart". In order to use existing infrastructure, you would need few namespaces in your webpart code. 


System.Web

System.Web.UI

System.Web.UI.WebControls 

System.Web.UI.WebControls.Webpart 
The built-in webpart class would be inherited by our webpart. The Webpart class was introduced in asp.net 2.0 along with other webpart infrastructure code. Under this class we would override RenderContents method which would give us access to simple HTML writer. Under the method we would get access to context as well. The code should look like following.

&lt;a href="http://3.bp.blogspot.com/_CvsNLQovb5k/RvCXCQXzSHI/AAAAAAAAAfU/PknczNnitRc/s1600-h/code.gif"&gt;&lt;img style="float:left; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_CvsNLQovb5k/RvCXCQXzSHI/AAAAAAAAAfU/PknczNnitRc/s320/code.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5111751642075842674" /&gt;&lt;/a&gt;

Now our simplest webpart code is ready. In the earlier steps we have created a site collection under sharepoint. Next, we need to deploy the webpart which can be used by the site collection. In production scenario we can also do this by giving a strong name to the webpart assembly and deploy it to the GAC. However in this sample application, we can simply change the build path of class library and map it to the bin directory of the sharepoint web application. This way the sharepoint web application would get this webpart assembly directly.

Next step would be adding the assmbly as a safecontrol, since Sharepoint 3.0 would run those assemblies only which are marked as safecontrols. To add an assembly to safecontrols, we need to open web.config file of sharepoint web applicaiton.
Add an entry in the &lt;SafeControls&gt; area as follows

 &lt;SafeControl Assembly="MyFirstWebpart" Namespace="MyFirstWebpart" TypeName="*" Safe="True" AllowRemoteDesigner="True" /&gt;

Thats it!

However this webpart is still not available for applications, though it is ready for use. Reason is, you would need to add this web part explicitly to the webpart gallery. To add our new webpart visit Webpart gallery under Site settings. Each entry under this gallery is an xml file. It would contain two types of data. In earlier version of sharepoint services, the webpart used to have extension .dwp. However new version has a new extension for webparts and that is .webpart. The gallary would support both of them.

If you click New option under the gallery, you would see another cool feature of WSS 3.0. Sharepoint internally reads the web.config file and understands which controls have been added as safecontrols &amp; can be used as webpart. All you need to do is select our "MyFirstWebpart" and click on Populate gallery. Now our webpart is added to the site and fully ready to use.

Now if you visit Site home page and try to add new webpart in edit mode, you would see HelloWorld webpart. Once you add this you can see your code working well. 

There is more. You would see that making changes is even easier. Just go ahead and make changes to your code in visual studio. The moment you build you webpart, it is available for you without any further configuration. It would not even require the IIS Reset.

You can find a detailed demo on http://go.microsoft.com/?linkid=6167263&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-4413878128207480420?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lzyOIwDyeRP4Gu2vBiuGlrOEIPE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lzyOIwDyeRP4Gu2vBiuGlrOEIPE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lzyOIwDyeRP4Gu2vBiuGlrOEIPE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lzyOIwDyeRP4Gu2vBiuGlrOEIPE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/sLux4E_XML0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/4413878128207480420/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2007/09/build-aspnet-webpart-for-windows.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/4413878128207480420?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/4413878128207480420?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/sLux4E_XML0/build-aspnet-webpart-for-windows.html" title="Build ASP.Net Webpart for Windows Sharepoint Services 3.0" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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://3.bp.blogspot.com/_CvsNLQovb5k/RvCXCQXzSHI/AAAAAAAAAfU/PknczNnitRc/s72-c/code.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2007/09/build-aspnet-webpart-for-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEADRHgzeSp7ImA9WBFaGEk.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-8868598709026216709</id><published>2007-05-22T20:31:00.000+05:30</published><updated>2007-05-22T20:42:55.681+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-22T20:42:55.681+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint" /><title>Some or all identity references could not be translated</title><content type="html">&lt;span style="font-family:verdana;font-size:85%;"&gt;We have migrated Custom site from WSS 2.0 to WSS 3.0. After successful migration, we were performing post migration configuration. During these events we have moved SQL Server (Holding Content and Configuration databases) and Web server (Holding the custom application) from one domain to other domain.

After this domain change, we observed an error in the Sharepoint Central Administration site. When we click on “Operation” or “Application Management” tab in Central administration we get following error

&lt;span style="color:#cc0000;"&gt;&lt;strong&gt;“Some or all identity references could not be translated”&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;"&gt;As always we struggled with this error, tried searching couple of blogs, forums, but nothing could get us through.&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;"&gt;Fortunately later we came to know about STSADM utility. This utility is amazing, it resides under c:\program\files\common files\microsoft shared\web server extensions\12\bin.&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;"&gt;We executed following command &lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#3366ff;"&gt;&lt;strong&gt;"stsadm.exe -o updatefarmcredentials -userlogin &lt;domain\username&gt;-password &lt;password&gt;"&lt;/strong&gt;&lt;/span&gt;
&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:85%;color:#3366ff;"&gt;&lt;/span&gt;&lt;/strong&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#333333;"&gt;And hurray !! that was it , the WSS 3.0 Sharepoint Central Administration started working.&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#333333;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#333333;"&gt;This might also work when you change password for your admin account, or when you change your domains.&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#333333;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#333333;"&gt;Ensure that you have database (Config and Content) backup before you perform this action, so that if something goes wrong you can go back.&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#333333;"&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#3366ff;"&gt;&lt;strong&gt;Enjoy life !!!&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#3366ff;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;color:#3366ff;"&gt;&lt;strong&gt;Subhash&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;[Please note: This solution/comment is based on personal experience and may not be authentica. This solution does not guarantee that it would react the same way anywhere else. You can refer to product documentation and authorized websites for more information.]
&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-8868598709026216709?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/V6Mi_m_74whLYtPpl-OeOzi05Fk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V6Mi_m_74whLYtPpl-OeOzi05Fk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/V6Mi_m_74whLYtPpl-OeOzi05Fk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V6Mi_m_74whLYtPpl-OeOzi05Fk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/JL9faLpU0kA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/8868598709026216709/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2007/05/some-or-all-identity-references-could.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/8868598709026216709?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/8868598709026216709?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/JL9faLpU0kA/some-or-all-identity-references-could.html" title="Some or all identity references could not be translated" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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>7</thr:total><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2007/05/some-or-all-identity-references-could.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8MQX89fCp7ImA9WBFaF0k.&quot;"><id>tag:blogger.com,1999:blog-6496094356365401334.post-5174990926764743725</id><published>2007-05-21T16:43:00.000+05:30</published><updated>2007-05-21T17:31:20.164+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-21T17:31:20.164+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sharepoint" /><title>_vti_bin/owssvr.dll?CS=109 Page cannot be found</title><content type="html">&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;span style="color:#3366ff;"&gt;_vti_bin/owssvr.dll?CS=109 Page cannot be found&lt;/span&gt;

Recently I faced a strange problem related to Un-installation of Windows Sharepoint Services 3.0. We were upgrading an Windows Sharepoint Services 2.0 application to WSS 3.0 using In-Place upgrade wizard. We finished upgrade successfully but after upgrading we decided to go back to WSS 2.0 and start upgrade again (for some issues).

We followed following approach for rollback (with an assumption that we have code and DB backup of WSS 2.0 application)

1. Un-install WSS 3.0.
2. Remove .Net framework 3.0.
3. Execute Setup of WSS 2.0 (with SP2) and go for “Reinstall or repair” option.
4. Drop all migrated databases.
5. Start deployment of WSS 2.0 application (As if you are installing it for the first time). Restore the content database and follow procedure for “Detach and Attach” content database
6. The application would be running with WSS 2.0.

This plan was supposed to work perfectly as it was tested couple of times before. However while we performed it in one of our environment, we started facing issues. The one issue that took most of our nights was “Page cannot be found error” while we try to save any values in Contacts, Events, Discussion lists. At that time the browser showed url as

http://&lt;site-url&gt;/_vti_bin/owssvr.dll?CS=109

We tried so many things but were unable to understand why its happening. Then we started old configuration and recent configuration one by one. And guess what, yes… we could finally figure out the difference.

While we use WSS 2.0 application, in IIS you will notice “Web Service Extensions” section next to “Application Pool” and “Web sites” section.

Under the Web Service Extension there has to one entry for “Windows Sharepoint Services” with status as “Allowed”. If you don’t have such entry then try creating a new one. Make sure that you allow following DLLs
a. _vti_bin\admin.dll
b. _vti_aut\author.dll
c. owssvr.dll
d. shtml.dll

Thankfully this took us to a working application and we could have a great relaxed weekend … !!
&lt;/span&gt;
&lt;span style="font-family:verdana;font-size:85%;color:#3366ff;"&gt;&lt;strong&gt;Enjoy Life&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;font-size:85%;color:#3366ff;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;
&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Subhash Dike&lt;/span&gt;&lt;/strong&gt;
&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;
[Please note: This solution/comment is based on personal experience and may not be authentica. This solution does not guarantee that it would react the same way anywhere else. You can refer to product documentation and authorized websites for more information.] &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Blog: CoolSubhash-tech.blogspot.com Blogger:Subhash Dike [SubhashD987@gmail.com]&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6496094356365401334-5174990926764743725?l=coolsubhash-tech.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jRGk3JJWoa-DeayHwfGum7C7vRo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jRGk3JJWoa-DeayHwfGum7C7vRo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jRGk3JJWoa-DeayHwfGum7C7vRo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jRGk3JJWoa-DeayHwfGum7C7vRo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Technology-AsExperienced/~4/dofQ-FUPIYw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://coolsubhash-tech.blogspot.com/feeds/5174990926764743725/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://coolsubhash-tech.blogspot.com/2007/05/vtibinowssvrdllcs109-page-cannot-be.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/5174990926764743725?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6496094356365401334/posts/default/5174990926764743725?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Technology-AsExperienced/~3/dofQ-FUPIYw/vtibinowssvrdllcs109-page-cannot-be.html" title="_vti_bin/owssvr.dll?CS=109 Page cannot be found" /><author><name>सुभाष डिके (Subhash Dike)</name><uri>http://www.blogger.com/profile/16525368657212882192</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><feedburner:origLink>http://coolsubhash-tech.blogspot.com/2007/05/vtibinowssvrdllcs109-page-cannot-be.html</feedburner:origLink></entry></feed>

