<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13686468</id><updated>2011-11-28T07:06:00.808+05:30</updated><category term='Patterns'/><category term='Architecture'/><category term='General'/><category term='.NET'/><category term='Web Services'/><category term='ASP.NET'/><category term='SQL Server'/><title type='text'>Techno Scatter</title><subtitle type='html'>This blog contains articles and snippets from articles which I find interesting.... Most of the material here are not mine unless specified so ... 
All are welcome to add comments and add new topics of interest ..</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13686468.post-2557814650443245871</id><published>2009-07-21T10:04:00.002+05:30</published><updated>2009-07-21T10:05:17.993+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Network Class Librar in 4.0</title><content type='html'>Came across this interesting post on the changes in the NCL.&lt;br /&gt;http://blogs.msdn.com/ncl/archive/2009/07/20/new-ncl-features-in-net-4-0-beta-2.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-2557814650443245871?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/2557814650443245871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=2557814650443245871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/2557814650443245871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/2557814650443245871'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2009/07/network-class-librar-in-40.html' title='Network Class Librar in 4.0'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-4637182584456288135</id><published>2009-07-17T11:35:00.003+05:30</published><updated>2009-07-17T11:38:02.952+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>DLL HELL</title><content type='html'>Faced DLL hell issues after a real long time. &lt;br /&gt;In the dev env, we compiled the VB6 dll and tested it and it worked fine.&lt;br /&gt;But the minute we put it in test, it started off giving the CLSID errors.&lt;br /&gt;We then registered, unregistered quite a few times. Turned out that there were multiple registrations of the same DLL. So we uninstalled all the versions, took the latest from VSS, compiled the DLL again, regsitered it and it finally worked.&lt;br /&gt;Took around 2 whole days for it!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-4637182584456288135?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/4637182584456288135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=4637182584456288135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/4637182584456288135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/4637182584456288135'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2009/07/dll-hell.html' title='DLL HELL'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-8001531486680975922</id><published>2009-07-13T15:42:00.000+05:30</published><updated>2009-07-13T15:45:14.023+05:30</updated><title type='text'>My First Look at Moblin</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-8001531486680975922?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/8001531486680975922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=8001531486680975922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/8001531486680975922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/8001531486680975922'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2009/07/my-first-look-at-moblin.html' title='My First Look at Moblin'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-3929078361027091713</id><published>2009-06-30T16:28:00.001+05:30</published><updated>2009-06-30T16:29:49.087+05:30</updated><title type='text'>Not a valid assembly (Add Reference failure)</title><content type='html'>When trying to add a reference to a VB DLL, you may receive the following error popup: A reference to  &lt;br /&gt;  &lt;br /&gt;'assemblyname.exe' could not be added. This is not a valid assembly or COM  &lt;br /&gt;  &lt;br /&gt;component. Please make sure that the file is accessible, and that it is a  &lt;br /&gt;  &lt;br /&gt;valid assembly or COM component.  &lt;br /&gt;&lt;br /&gt;WorkAround:-&lt;br /&gt;There were some on the net, but I registered the DLL using regsvr and added it from the COM components tab and it worked fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-3929078361027091713?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/3929078361027091713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=3929078361027091713' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/3929078361027091713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/3929078361027091713'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2009/06/not-valid-assembly-add-reference.html' title='Not a valid assembly (Add Reference failure)'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-6175127639681500828</id><published>2008-12-05T19:04:00.001+05:30</published><updated>2008-12-05T19:06:06.430+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Session on Continuous Integration</title><content type='html'>I'm planning on giving a session on Continuous Integration using CruiseControl and nAnt. Started prearing my notes for it. Hope it goes on well.&lt;br /&gt;I will upload my PPT and notes if any once I'm done with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-6175127639681500828?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/6175127639681500828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=6175127639681500828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/6175127639681500828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/6175127639681500828'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/12/session-on-continuous-integration_05.html' title='Session on Continuous Integration'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-4840476054864030836</id><published>2008-12-05T19:04:00.000+05:30</published><updated>2008-12-05T19:05:54.396+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Session on Continuous Integration</title><content type='html'>I'm planning on giving a session on Continuous Integration using CruiseControl and nAnt. Started prearing my notes for it. Hope it goes on well.&lt;br /&gt;I will upload my PPT and notes if any once I'm done with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-4840476054864030836?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/4840476054864030836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=4840476054864030836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/4840476054864030836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/4840476054864030836'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/12/session-on-continuous-integration.html' title='Session on Continuous Integration'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-5671941763930417080</id><published>2008-12-02T11:40:00.000+05:30</published><updated>2008-12-02T11:44:37.380+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Search for Objects in DB</title><content type='html'>Came across this article. I'll dig into it later.&lt;br /&gt;&lt;br /&gt;&lt;a href="'http://www.sqlservercentral.com/scripts/search+object/64828/'"&gt;SQL Server Central&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-5671941763930417080?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/5671941763930417080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=5671941763930417080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/5671941763930417080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/5671941763930417080'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/12/search-for-objects-in-db.html' title='Search for Objects in DB'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-1735374956096561164</id><published>2008-11-26T15:37:00.001+05:30</published><updated>2008-12-02T11:30:43.524+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Performance Tuning in ASP.NET</title><content type='html'>I have a situation here.&lt;br /&gt;We have a search criteria which returns about 70K + records. We have paging and the option to export to Excel. The earlier design was using caching which I promptly got it removed. Caching is not on a per user basis. So if there are two users trying to get the same report with different search criteria, one of them is surely in for a rude shock!&lt;br /&gt;I ran the perf mon and saw that the large object heap size was going in GB's. The Gen 2 heap size was also huge.&lt;br /&gt;&lt;br /&gt;So after reading this post from &lt;a title="Tess" href="http://blogs.msdn.com/tess/archive/2006/08/11/asp-net-quiz-answers-does-page-cache-leak-memory.aspx"&gt;Tess&lt;/a&gt; i came to this conclusion.&lt;br /&gt;Solutions:-&lt;br /&gt;    Option I-    Session&lt;br /&gt;                     The primary concern is disposing the objects after usage. If we run the perfmon, we see that the data gets moved to the Gen2. This is not good. The large object heap size also goes in GB's.&lt;br /&gt;&lt;br /&gt;    Option II -    Cache&lt;br /&gt;            This seems to be the better solution under the circumstances. The advantages of using caching is that we can set the expiry to say 20 minutes. IN order to use the cache for each user, we can use the cache key as "Session.SessionID". This will be unique for each user.&lt;br /&gt;This also moves the the object to Gen2 but from what I have seen, ASP.NET takes care of disposing the cached objects as and when it faces memory issues OR "memory pressures".&lt;br /&gt;Additionally in the Session End event in Global.asax, we can remove the cache item.&lt;br /&gt;&lt;br /&gt;Option II still has some issues to be resolved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-1735374956096561164?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/1735374956096561164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=1735374956096561164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/1735374956096561164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/1735374956096561164'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/11/performance-tuning-in-aspnet.html' title='Performance Tuning in ASP.NET'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-1520853411024044363</id><published>2008-11-24T17:56:00.002+05:30</published><updated>2008-11-25T10:39:36.876+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Meeting Jeff</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_HQAxXjcm7pk/SSuIesdarjI/AAAAAAAAAA8/A6aK32gLLGo/s1600-h/Picture+001.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5272457849679294002" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 240px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://2.bp.blogspot.com/_HQAxXjcm7pk/SSuIesdarjI/AAAAAAAAAA8/A6aK32gLLGo/s320/Picture+001.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;I went to the Wintellect site the other day and got on Jeff's blog.&lt;br /&gt;To my pleasant surprise, I saw that Jeff would actually be here in hyderabad. I immediately put in a note requesting him to meet me for a while. He replied back and said he would let me know. I was thrilled beyond words. When I came to know that I would be meeting him on Friday, I was so excited that everyone at my place knew that I was meeting him.&lt;br /&gt;I waited outside the MS gate and there he was. With a very pleasant smile and a sore that :) we spoke for some time on a lot of topics. I was a little disappointed that I couldnt get to spend the whole afternoon (talk about wishful thinking eh :)) but it was awesome getting insights from the man himself!&lt;br /&gt;We also did have a quick photo session! I did learn one thing though.. humility was at its best that day. I am now a bigger fan of the Wintellect team and I do hope to see them more often!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-1520853411024044363?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/1520853411024044363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=1520853411024044363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/1520853411024044363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/1520853411024044363'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/11/meeting-jeff.html' title='Meeting Jeff'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HQAxXjcm7pk/SSuIesdarjI/AAAAAAAAAA8/A6aK32gLLGo/s72-c/Picture+001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-4708800607122210397</id><published>2008-05-22T17:28:00.000+05:30</published><updated>2008-05-22T17:50:06.415+05:30</updated><title type='text'>Workflow Versioning</title><content type='html'>One of my assignments required me to build a state machine workflow. I started going through the Workflow foundation and built the workflow definition. I must say that working with WF was amazing. I think its one of the best things that MS has done! Yes it still needs some work but hey ... who says life is perfect!&lt;br /&gt;Anyways I used the external data service to pass parameters to the WF from the host. we now had this requirement to change the WF definition. I was under the impression that his will not lead to any issues. I thought that as long as I was not adding a new state, the existing data which was created using the old WF definition should work fine. Turns out.. it does not!&lt;br /&gt;Which is fine, considering the security point of view, data built using one version of the dll should not work with another version. But what is the solution.&lt;br /&gt;The solution it seemed was to go for versioning. There are quite a few posts which talks about that so i'll not get into the details here. So we tried to getthe versioning to work but unfortunately we hit a dead end there. We then came to know through reliable sources(I'm not at a liberty to mention who) that for versioning to work with External data services, we may need to use a concept called correlations. Remember that serialization has to be enables for this. Now I looked around for some samples and found that it looked like a pretty simple task (though understanding it is not!) and i tried the same with my workflow. Surprise surprise... it didnt work at all. I did see some posts about how getting correlation to work with a state machine workflow is not an easy if not impossible task. I have still not been able to solve it (pressed for time) and we had a workaround. We built a small appllication which would take all the workflow data which was built using the version 1 of the workflow, use the new version of the workflow and recreate them. In the process, we had to sensure that all the workflows were in the same state as before. Our workaround was aided since our application database was also holding the WFGUID's. WE have done some testing and it seems to be working fine.&lt;br /&gt;In the meanwhile I'll need to get back to the original problem and see if I can actually get this to work with a state machine workflow.&lt;br /&gt;&lt;br /&gt;My reliable source also mentioned that the instance state table stores the version of the dll in the binary data. Hence if you ever get this error "System.IndexOutOfRangeException: Index was outside the bounds of the array. ", this is a versioning problem and then when you try to fix it using correlation or whatever is the right solution, you may get this error&lt;br /&gt;"System.Workflow.Activities.EventDeliveryFailedException: Event "CRApproval" on interface type ", and if you do get this error ....&lt;br /&gt;"Run to the Hills....&lt;br /&gt;Run for your lives .... "&lt;br /&gt;&lt;br /&gt;A tribute to one of the greatest bands ever :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-4708800607122210397?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/4708800607122210397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=4708800607122210397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/4708800607122210397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/4708800607122210397'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/05/workflow-versioning.html' title='Workflow Versioning'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-4159674959806708354</id><published>2008-03-28T10:58:00.000+05:30</published><updated>2008-03-28T11:06:17.846+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><title type='text'>Who is an Architect</title><content type='html'>&lt;span style="font-family:verdana;font-size:85%;"&gt;I have been playing the role of a Technical Lead for over 2+ years now. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;A couple of weeks back, I had an interview for an architect's role. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;It was a very interesting interview and it showed that I still have some way to go before I'm ready to be an architect.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;From the Arch Journals that I was reading, Arvindra SehmiArchitect, Developer and Platform Evangelism Group, Microsoft EMEA says that a typical architect will have the following responsibilities&lt;/span&gt;&lt;br /&gt;" &lt;span style="font-family:verdana;font-size:85%;"&gt;Support business visioning and scoping activities.&lt;br /&gt;Translate between business and IT requirements.&lt;br /&gt;Communicate with stakeholders, both within business and IT.&lt;br /&gt;Weigh different interests.&lt;br /&gt;Determine solution alternatives.&lt;br /&gt;Create a viable and feasible design.&lt;br /&gt;Choose solutions.&lt;br /&gt;Manage quality.&lt;br /&gt;Manage complexity.&lt;br /&gt;Mitigate risks.&lt;br /&gt;Communicate. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;This requires a diverse range of skills, including knowledge of architecture&lt;br /&gt;design, workgroup and communications skills, and consultancy skills.&lt;/span&gt; "&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Ram, another Architect from MS, has these interesting things to say about an Architect.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ramkoth/archive/tags/Architecture/default.aspx"&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;http://blogs.msdn.com/ramkoth/archive/tags/Architecture/default.aspx&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-4159674959806708354?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/4159674959806708354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=4159674959806708354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/4159674959806708354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/4159674959806708354'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/03/who-is-architect.html' title='Who is an Architect'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-3798456715589965089</id><published>2008-03-27T13:49:00.002+05:30</published><updated>2008-03-28T10:41:09.163+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><title type='text'>SaaS, SOA , Software + Services</title><content type='html'>&lt;span style="font-size:85%;"&gt;The above terms are something that you will hear on a regular basis these days. I am going to go on a hunt. A hunt to find out what are these terms, what do they mean, and what impact do they have on the industry in the coming years. This is going to involve some amount of research so I will be updating this on a regular basis.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Till then ... time for a treasure hunt!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Update on 27 Mar 08&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Found this image on the architecture journal article&lt;/span&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/arcjournal/bb906061.aspx"&gt;http://msdn2.microsoft.com/en-us/arcjournal/bb906061.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bp2.blogger.com/_HQAxXjcm7pk/R-trv-1yMPI/AAAAAAAAAAM/fg8_TQyyGZ4/s1600-h/Bb906061.jour13_.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5182354268286497010" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://bp2.blogger.com/_HQAxXjcm7pk/R-trv-1yMPI/AAAAAAAAAAM/fg8_TQyyGZ4/s200/Bb906061.jour13_.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It gives a nice picture.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So far what I have think is&lt;br /&gt;Software + Services is a Microsoft initiative. Talks about Software + cloud serices. I need to find out what is this cloud services.&lt;br /&gt;SaaS is basically some applications that are ready to be used and are consumed over the internet. Now how is this different from WS..?&lt;br /&gt;finding out...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-3798456715589965089?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/3798456715589965089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=3798456715589965089' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/3798456715589965089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/3798456715589965089'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/03/saas-soa-software-services.html' title='SaaS, SOA , Software + Services'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_HQAxXjcm7pk/R-trv-1yMPI/AAAAAAAAAAM/fg8_TQyyGZ4/s72-c/Bb906061.jour13_.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-9157260937291678889</id><published>2008-03-06T12:53:00.001+05:30</published><updated>2008-03-28T10:42:01.126+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><title type='text'>Authentication in Web Services</title><content type='html'>Ismail and me were sitting and having a coffee the other day and Ismail asked me about security in Web Services. Though it was quite a while since I had worked on it, I remembered that we need to send some tokens. I quickly did a search and came across this article that kind of covers it well.&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/webservices/WS-Security.aspx"&gt;http://www.codeproject.com/KB/webservices/WS-Security.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-9157260937291678889?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/9157260937291678889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=9157260937291678889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/9157260937291678889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/9157260937291678889'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2008/03/authentication-in-web-services.html' title='Authentication in Web Services'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-7797965163265390630</id><published>2007-07-26T11:45:00.001+05:30</published><updated>2008-03-28T10:43:57.657+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patterns'/><title type='text'>Structural Patterns</title><content type='html'>&lt;div class="Section1"&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;Reference: &lt;/span&gt;&lt;a href="http://home.earthlink.net/~huston2/dp/structural_rules.html"&gt;&lt;span style="font-size:85%;"&gt;http://home.earthlink.net/~huston2/dp/structural_rules.html&lt;/span&gt;&lt;/a&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;Got some usefull info here .. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-size:85%;"&gt;Rules of thumb &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h1&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;1.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Adapter&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; makes things work after they're designed; &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Bridge&lt;/span&gt;&lt;/b&gt; makes them work before they are. [GOF, p219] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;2.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Bridge&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; is designed up-front to let the abstraction and the implementation vary independently. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Adapter&lt;/span&gt;&lt;/b&gt; is retrofitted to make unrelated classes work together. [GOF, p161] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;3.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Adapter&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; provides a different interface to its subject. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Proxy&lt;/span&gt;&lt;/b&gt; provides the same interface. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Decorator&lt;/span&gt;&lt;/b&gt; provides an enhanced interface. [GOF, p216] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;4.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Adapter&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; changes an object's interface, &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Decorator&lt;/span&gt;&lt;/b&gt; enhances an object's responsibilities. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Decorator&lt;/span&gt;&lt;/b&gt; is thus more transparent to the client. As a consequence, &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Decorator&lt;/span&gt;&lt;/b&gt; supports recursive composition, which isn't possible with pure &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Adapters&lt;/span&gt;&lt;/b&gt;. [GOF, p149] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;5.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Composite&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; and &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Decorator&lt;/span&gt;&lt;/b&gt; have similar structure diagrams, reflecting the fact that both rely on recursive composition to organize an open-ended number of objects. [GOF, p219] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;6.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Composite&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; can be traversed with &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Iterator&lt;/span&gt;&lt;/b&gt;. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Visitor&lt;/span&gt;&lt;/b&gt; can apply an operation over a &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Composite&lt;/span&gt;&lt;/b&gt;. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Composite&lt;/span&gt;&lt;/b&gt; could use &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Chain of Responsibility&lt;/span&gt;&lt;/b&gt; to let components access global properties through their parent. It could also use &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Decorator&lt;/span&gt;&lt;/b&gt; to override these properties on parts of the composition. It could use &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Observer&lt;/span&gt;&lt;/b&gt; to tie one object structure to another and &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;State&lt;/span&gt;&lt;/b&gt; to let a component change its behavior as its state changes. [GOF, pp173,349] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;7.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Composite&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; can let you compose a &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Mediator&lt;/span&gt;&lt;/b&gt; out of smaller pieces through recursive composition. [Vlissides, Apr96, p18] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;8.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Decorator&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; lets you change the skin of an object. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Strategy&lt;/span&gt;&lt;/b&gt; lets you change the guts. [GOF, p184] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;9.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Decorator&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; is designed to let you add responsibilities to objects without subclassing. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Composite&lt;/span&gt;&lt;/b&gt;'s focus is not on embellishment but on representation. These intents are distinct but complementary. Consequently, &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Composite&lt;/span&gt;&lt;/b&gt; and &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Decorator&lt;/span&gt;&lt;/b&gt; are often used in concert. [GOF, p220] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;10.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Decorator&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; and &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Proxy&lt;/span&gt;&lt;/b&gt; have different purposes but similar structures. Both describe how to provide a level of indirection to another object, and the implementations keep a reference to the object to which they forward requests. [GOF, p220] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;11.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Facade&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; defines a new interface, whereas &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Adapter&lt;/span&gt;&lt;/b&gt; reuses an old interface. Remember that &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Adapter&lt;/span&gt;&lt;/b&gt; makes two existing interfaces work together as opposed to defining an entirely new one. [GOF, p219] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;12.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Facade&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; objects are often &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Singletons&lt;/span&gt;&lt;/b&gt; because only one &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Facade&lt;/span&gt;&lt;/b&gt; object is required. [GOF, p193] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;13.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Mediator&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; is similar to &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Facade&lt;/span&gt;&lt;/b&gt; in that it abstracts functionality of existing classes. &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Mediator&lt;/span&gt;&lt;/b&gt; abstracts/centralizes arbitrary communication between colleague objects, it routinely "adds value", and it is known/referenced by the colleague objects. In contrast, &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Facade&lt;/span&gt;&lt;/b&gt; defines a simpler interface to a subsystem, it doesn't add new functionality, and it is not known by the subsystem classes. [GOF, p193] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;14.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Abstract Factory&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; can be used as an alternative to &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Facade&lt;/span&gt;&lt;/b&gt; to hide platform-specific classes. [GOF, p193] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;15.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Whereas &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Flyweight&lt;/span&gt;&lt;/b&gt; shows how to make lots of little objects, &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Facade&lt;/span&gt;&lt;/b&gt; shows how to make a single object represent an entire subsystem. [GOF, p138] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;16.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Flyweight&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; is often combined with &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Composite&lt;/span&gt;&lt;/b&gt; to implement shared leaf nodes. [GOF, p206] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="mso-list: Ignore"&gt;17.&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="FONT-WEIGHT: bold;font-family:Verdana;" &gt;Flyweight&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt; explains when and how &lt;b&gt;&lt;span style="FONT-WEIGHT: bold"&gt;State&lt;/span&gt;&lt;/b&gt; objects can be shared. [GOF, p313] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;- Soni&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Times New Roman;font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-7797965163265390630?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/7797965163265390630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=7797965163265390630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/7797965163265390630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/7797965163265390630'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2007/07/structural-patterns.html' title='Structural Patterns'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-8391974007391107105</id><published>2007-06-12T21:35:00.000+05:30</published><updated>2007-06-12T21:44:03.700+05:30</updated><title type='text'>I'm back!!</title><content type='html'>&lt;span style="font-family:Verdana;font-size:85%;"&gt;After weeks or rather months of not knowing where my blog disappeared, I finally managed to track it down. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;To give a quick brief update, I'm currently working on a POC using Workflow foundation. So you can expect some posts here w.r.t that. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;Oterwise watched some good movies, read some good fiction ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;and listening to some good music .. been hectic .. need a break i guess .. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-8391974007391107105?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/8391974007391107105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=8391974007391107105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/8391974007391107105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/8391974007391107105'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2007/06/im-back.html' title='I&apos;m back!!'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-114001660881721654</id><published>2006-02-15T20:39:00.000+05:30</published><updated>2008-03-28T12:02:05.888+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET 2.0</title><content type='html'>&lt;span style="font-family:verdana;font-size:85%;"&gt;I happened to attend a good session on ASP.NET 2.0 today at the Taj.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;Started off with Janikaram giving a good peep into some of the fancy new controls in ASP.NET 2.0. He didnt have time to cover Deployement though. Some of the controls that he covered were the Login Control, the Create User Control etc. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;Nikhil then started off on extensibility. I should say that the session was a tough one to catch up with since some of the concepts that were being covered were a lil deep and the demo couldnt have been coded on the fly. Hence I got a lil lost there.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-114001660881721654?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/114001660881721654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=114001660881721654' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/114001660881721654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/114001660881721654'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2006/02/aspnet-20.html' title='ASP.NET 2.0'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-112140811651697696</id><published>2005-07-15T11:45:00.000+05:30</published><updated>2008-03-28T12:02:05.889+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>MSCOREE.DLL</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN class=937261306-15072005&gt;From Nikhilesh  ..&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN  class=937261306-15072005&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN class=937261306-15072005&gt;&lt;STRONG&gt;Microsoft  Component Object Runtime Execution Engine&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN class=937261306-15072005&gt;This DLL holds the  definition of _CORDLLMAIN and _COREXEMAIN methods. These methods will always be  placed in a managed assembly. &lt;BR&gt;These methods are used to load the managed  environment if the assembly is called from unmanaged  environment.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=937261306-15072005&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT  face=Verdana size=2&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-112140811651697696?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/112140811651697696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=112140811651697696' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/112140811651697696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/112140811651697696'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/07/mscoreedll.html' title='MSCOREE.DLL'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111944450746320566</id><published>2005-06-22T18:18:00.000+05:30</published><updated>2005-06-22T18:18:27.503+05:30</updated><title type='text'>Schedule</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN class=369273912-22062005&gt;So this is what I  need to do eh ..?&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN class=369273912-22062005&gt;Lets see how far I  go with this one .. :)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN class=369273912-22062005&gt;Still havent got  the schedule up adn running but atleast &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN class=369273912-22062005&gt;after listing  these down I feel a lot better. Now I know I am doomed :)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN  class=369273912-22062005&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;SPAN  class=369273912-22062005&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Verdana  size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt; &lt;TABLE style="WIDTH: 437pt; BORDER-COLLAPSE: collapse" cellSpacing=0  cellPadding=0 width=582 border=0 x:str&gt;   &lt;COLGROUP&gt;&lt;FONT face=Verdana&gt;   &lt;COL style="WIDTH: 131pt; mso-width-source: userset; mso-width-alt: 6363"    width=174&gt;   &lt;COL style="WIDTH: 306pt; mso-width-source: userset; mso-width-alt: 14921"    width=408&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;   &lt;TBODY&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 131pt; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      width=174 height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana      size=2&gt;UML&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; WIDTH: 306pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"      width=408&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Diagrams&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Views&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;Patterns&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Categorisation of Patterns&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana      size=2&gt;SDLC/Processes&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Processes&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Phases&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;Project        Management&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Estimation&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Requirement Elicitation&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Requirement Management&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Planning and Scheduling&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Risk management&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Config Management&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;etc&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;OOPS&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;OOAD&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Object Modelling&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;OOAD with UML&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;COM/COM+&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;MTS&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Deployment and management&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Diff between MTS and COM+&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;DCOM&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Creation&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Deployment and management&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;VB/ASP&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Migration techniques to .NET&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Interop&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;VB - MultiThreading&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;.NET        Framework/Internals&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;CLR&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Assemblies&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;etc.&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17 x:str="C# "&gt;&lt;STRONG&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;C#&lt;SPAN        style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Diff between C# and VB.NET&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Multithreading&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;Web  Services&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Security&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Transaction&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;SOA&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Comparison between Remoring and    Webservices&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;Remoting&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Comparison between CORBA, RMI and COM/DCOM with        Remoting&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Transaction&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;Serviced        Components&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;SQL Server&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Usage of XML in SQL&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Security in SQL&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Performance Tuning&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Data Modeling&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana      size=2&gt;Whidbey/Indigo&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;Biztalk&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;Speech SDK&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;SPPS&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;XML&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;XPATH&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;XSLT&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;DTD vs Schema&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;XSL&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;ASP.NET&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;State maintenance between ASP and ASP.NET&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 12.75pt" height=17&gt;     &lt;TD class=xl24      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent"      height=17&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD class=xl25      style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"&gt;&lt;FONT        face=Verdana size=2&gt;Perf. Max. - all  techniques&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Soni&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111944450746320566?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111944450746320566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111944450746320566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111944450746320566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111944450746320566'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/schedule.html' title='Schedule'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111943770931425030</id><published>2005-06-22T16:25:00.000+05:30</published><updated>2005-06-22T16:25:09.316+05:30</updated><title type='text'>Interface or Class?</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Arial size=2&gt; &lt;P class=MsoNormal  style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in"&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"&gt;Some  more info that i got on the net... &lt;/SPAN&gt;&lt;/P&gt; &lt;P class=MsoNormal  style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in"&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"&gt;&lt;/SPAN&gt;&lt;?xml:namespace  prefix = o ns = "urn:schemas-microsoft-com:office:office"  /&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt; &lt;P class=MsoNormal  style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in"&gt;&lt;FONT  face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Interfaces, like classes, define a  set of properties, methods, and events. But unlike classes, interfaces do not  provide implementation. They are implemented by classes, and defined as separate  entities from classes. Even though class inheritance allows your classes to  inherit implementation from a base class, it also forces you to make most of  your design decisions when the class is first published.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt; &lt;P class=MsoNormal  style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in"&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Abstract classes are useful when  creating components because they allow you specify an invariant level of  functionality in some methods, but leave the implementation of other methods  until a specific implementation of that class is needed. They also version well,  because if additional functionality is needed in derived classes, it can be  added to the base class without breaking code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt; &lt;P class=MsoNormal  style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in"&gt;&lt;FONT  size=3&gt;&lt;FONT face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; &lt;P class=MsoNormal  style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list .5in"&gt;&lt;FONT  size=3&gt;&lt;FONT face="Times New Roman"&gt;&amp;nbsp;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; &lt;TABLE class=MsoNormalTable  style="MARGIN: auto auto auto 0.5in; WIDTH: 423pt; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 0in 0in 0in"  cellSpacing=0 cellPadding=0 width=564 border=0&gt;   &lt;TBODY&gt;   &lt;TR style="mso-yfti-irow: 0"&gt;     &lt;TD      style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 423pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent"      width=564 colSpan=3&gt;       &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center"        align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Interfaces vs. Abstract        Classes&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;       &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center"        align=center&gt;&lt;FONT face="Times New Roman"&gt;&amp;nbsp;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 1"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: gray 1pt inset; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent"      width=108&gt;       &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN        style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;Feature&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN        style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: gray 1pt inset; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt"      width=204&gt;       &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN        style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;Interface&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN        style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: gray 1pt inset; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt"      width=252&gt;       &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN        style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;Abstract        class&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN        style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 2"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: center"        align=center&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Multiple        inheritance&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;A class may implement        several interfaces. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;A class may extend only one        abstract class. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 3"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Default        implementation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;An interface cannot        provide any code at all, much less default code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;An abstract class        can provide complete code, default code, and/or just stubs that have to be        overridden.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 4"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Constants&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Static final        constants only, can use them without qualification in classes that        implement the interface. On the other paw, these unqualified names pollute        the namespace. You can use them and it is not obvious where they are        coming from since the qualification is optional. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Both instance and        static constants are possible. Both static and instance intialiser code        are also possible to compute the constants.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 5"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Third party convenience        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;An interface        implementation may be added to any existing third party class.        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;A third party class        must be rewritten to extend only from the abstract        class.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 6"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;is-a vs -able or can-do        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Interfaces are        often used to describe the peripheral abilities of a class, not its        central identity, e.g. an Automobile class might implement the Recyclable        interface, which could apply to many otherwise totally unrelated objects.        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;An abstract class        defines the core identity of its descendants. If you defined a Dog        abstract class then Damamation descendants are Dogs, they are not merely        dogable. Implemented interfaces enumerate the general things a class can        do, not the things a class is. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 7; page-break-inside: avoid"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Plug-in        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;You can write a new        replacement module for an interface that contains not one stick of code in        common with the existing implementations. When you implement the        interface, you start from scratch without any default implementation. You        have to obtain your tools from other classes; nothing comes with the        interface other than a few constants. This gives you freedom to implement        a radically different internal design. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;You must use the        abstract class as-is for the code base, with all its attendant baggage,        good or bad. The abstract class author has imposed structure on you.        Depending on the cleverness of the author of the abstract class, this may        be good or bad. Another issue that's important is what I call        "heterogeneous vs. homogeneous." If implementors/subclasses are        homogeneous, tend towards an abstract base class. If they are        heterogeneous, use an interface. (Now all I have to do is come up with a        good definition of hetero/homogeneous in this context.) If the various        objects are all of-a-kind, and share a common state and behavior, then        tend towards a common base class. If all they share is a set of method        signatures, then tend towards an interface.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="HEIGHT: 53pt; mso-yfti-irow: 8"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; HEIGHT: 53pt; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Homogeneity        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; HEIGHT: 53pt; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If all the various        implementations share is the method signatures, then an interface works        best. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; HEIGHT: 53pt; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If the various        implementations are all of a kind and share a common status and behavior,        usually an abstract class works best.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 9"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Maintenance        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If your client code        talks only in terms of an interface, you can easily change the concrete        implementation behind it, using a factory method.  &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Just like an        interface, if your client code talks only in terms of an abstract class,        you can easily change the concrete implementation behind it, using a        factory method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 10"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Speed      &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Slow, requires        extra indirection to find the corresponding method in the actual class.        Modern JVMs are discovering ways to reduce this speed penalty.        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Fast&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 11"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Terseness        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The constant        declarations in an interface are all presumed public static final, so you        may leave that part out. You can't call any methods to compute the initial        values of your constants. You need not declare individual methods of an        interface abstract. They are all presumed so.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;You can put shared        code into an abstract class, where you cannot into an interface. If        interfaces want to share code, you will have to write other bubblegum to        arrange that. You may use methods to compute the initial values of your        constants and variables, both instance and static. You must declare all        the individual methods of an abstract class      abstract.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR style="mso-yfti-irow: 12; mso-yfti-lastrow: yes"&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: gray 1pt inset; WIDTH: 81pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-top-alt: inset gray 1.0pt"      width=108&gt;       &lt;P style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN        style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Adding functionality        &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 153pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=204&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If you add a new        method to an interface, you must track down all implementations of that        interface in the universe and provide them with a concrete implementation        of that method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;     &lt;TD      style="BORDER-RIGHT: gray 1pt inset; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 189pt; PADDING-TOP: 0in; BORDER-BOTTOM: gray 1pt inset; BACKGROUND-COLOR: transparent; mso-border-left-alt: inset gray 1.0pt; mso-border-top-alt: inset gray 1.0pt"      width=252&gt;       &lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If you add a new        method to an abstract class, you have the option of providing a default        implementation of it. Then all existing code will continue to work without        change.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt; &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT  face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Here are some recommendations to  help you to decide whether to use an interface or an abstract class to provide  polymorphism for your components. &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt; &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT  face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;If you anticipate creating  multiple versions of your component, create an abstract class. Abstract classes  provide a simple and easy way to version your components. By updating the base  class, all inheriting classes are automatically updated with the change.  Interfaces, on the other hand, cannot be changed once created. If a new version  of an interface is required, you must create a whole new interface. &lt;BR&gt;If the  functionality you are creating will be useful across a wide range of disparate  objects, use an interface. Abstract classes should be used primarily for objects  that are closely related, whereas interfaces are best suited for providing  common functionality to unrelated classes. &lt;BR&gt;If you are designing small,  concise bits of functionality, use interfaces. If you are designing large  functional units, use an abstract class. &lt;BR&gt;If you want to provide common,  implemented functionality among all implementations of your component, use an  abstract class. Abstract classes allow you to partially implement your class,  whereas interfaces contain no implementation for any members.  &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt; &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT  face="Times New Roman"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt; &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;STRONG&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Soni&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt; &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman"  size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt; &lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman"  size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Soni&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;"P&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;rograms  must be written for people to read, and only incidentally for machines to  execute"&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Abelson  &amp;amp; Sussman, &lt;I&gt;SICP&lt;/I&gt;, preface to the first edition&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111943770931425030?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111943770931425030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111943770931425030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111943770931425030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111943770931425030'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/interface-or-class.html' title='Interface or Class?'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111943733299860898</id><published>2005-06-22T16:16:00.000+05:30</published><updated>2005-06-22T16:33:36.426+05:30</updated><title type='text'>Structures in Detail</title><content type='html'>A struct type is a value type that can contain constructors, constants, fields, methods, properties, indexers, operators, events, and nested types.&lt;br /&gt;&lt;br /&gt;The struct type is suitable for representing lightweight objects such as Point, Rectangle, and Color. Although it is possible to represent a point as a class, a struct is more efficient in some scenarios. For example, if you declare an array of 1000 Point objects, you will allocate additional memory for referencing each object. In this case, the struct is less expensive.&lt;br /&gt;It is an error to declare a default (parameterless) constructor for a struct. A default constructor is always provided to initialize the struct members to their default values.&lt;br /&gt;&lt;br /&gt;It is an error to initialize an instance field in a struct.&lt;br /&gt;When you create a struct object using the new operator, it gets created and the appropriate constructor is called. Unlike classes, structs can be instantiated without using the new operator. If you do not use new, the fields will remain unassigned and the object cannot be used until all of the fields are initialized.&lt;br /&gt;&lt;br /&gt;There is no inheritance for structs as there is for classes. A struct cannot inherit from another struct or class, and it cannot be the base of a class. Structs, however, inherit from the base class Object. A struct can implement interfaces, and it does that exactly as classes do.&lt;br /&gt;Unlike C++, you cannot declare a class using the keyword struct. In C#, classes and structs are semantically different. A struct is a value type, while a class is a reference type. For more information on the features of value types, see Value Types.&lt;br /&gt;&lt;br /&gt;Unless you need reference type semantics, a class that is smaller than 16 bytes may be more efficiently handled by the system as a struct.&lt;br /&gt;&lt;br /&gt;More info here &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcwlkstructstutorial.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcwlkstructstutorial.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What is the difference between a Struct and a Class?&lt;br /&gt;· The struct type is suitable for representing lightweight objects such as Point, Rectangle, and Color. Although it is possible to represent a point as a class, a struct is more efficient in some scenarios. For example, if you declare an array of 1000 Point objects, you will allocate additional memory for referencing each object. In this case, the struct is less expensive.&lt;br /&gt;· When you create a struct object using the new operator, it gets created and the appropriate constructor is called. Unlike classes, structs can be instantiated without using the new operator. If you do not use new, the fields will remain unassigned and the object cannot be used until all of the fields are initialized.&lt;br /&gt;· It is an error to declare a default (parameterless) constructor for a struct. A default constructor is always provided to initialize the struct members to their default values.&lt;br /&gt;· It is an error to initialize an instance field in a struct.&lt;br /&gt;· There is no inheritance for structs as there is for classes. A struct cannot inherit from another struct or class, and it cannot be the base of a class. Structs, however, inherit from the base class Object. A struct can implement interfaces, and it does that exactly as classes do.&lt;br /&gt;· A struct is a value type, while a class is a reference type.&lt;br /&gt;&lt;br /&gt;Also,&lt;br /&gt;There is no inheritance for structs as there is for classes. A struct cannot inherit from another struct or class, and it cannot be the base of a class. Structs, however, inherit from the base class Object. A struct can implement interfaces, and it does that exactly as classes do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111943733299860898?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111943733299860898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111943733299860898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111943733299860898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111943733299860898'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/structures-in-detail.html' title='Structures in Detail'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111942817673956127</id><published>2005-06-22T13:46:00.000+05:30</published><updated>2005-06-22T13:46:17.426+05:30</updated><title type='text'>Some stuff from Nasar</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;The Five Components of Function Points  &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Data Functions &lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Internal Logical Files &lt;BR&gt;External Interface  Files&amp;nbsp;&lt;BR&gt;Transactional Functions &lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;External Inputs &lt;BR&gt;External Outputs &lt;BR&gt;External  Inquiries &lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;&lt;STRONG&gt;Worst Practices - To  Avoid!&lt;BR&gt;&lt;/STRONG&gt;Make it unclear who is responsible for tasks; don't trust  anyone with clear ownership, but ask several people to get the job  done.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Keep yourself very busy, so team members will see  how valuable you are, even if you have no time to supervise their assignments,  solve problems, or monitor work methods.&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Assign new team members to tasks without adequate  task definitions, guidance or training; use the sink or swim method for work  assignments.&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Let poor performers continue without comment, and  ignore gossip and dissension among project team members.&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Reward your excellent performers by giving them  an impossible workload; let them be the heroes to carry the project on their  backs.&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;I'm not trying to be negative or sarcastic here,  but it is sometimes helpful to describe negative behaviors we want to avoid to  help us recognize them and not fall into the traps. &lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Webservices -&amp;nbsp; How to expose a Type from a  webmethod which is not a .NET generic type&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Whats the base namespace when you define a .NET  class&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;What is an Architecture?&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Verdana size=2&gt;Can you parse XML data in SQL server. If so  how?&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Soni&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111942817673956127?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111942817673956127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111942817673956127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111942817673956127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111942817673956127'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/some-stuff-from-nasar.html' title='Some stuff from Nasar'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111925519201074778</id><published>2005-06-20T13:43:00.000+05:30</published><updated>2008-03-28T12:02:05.889+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>How to Share Session State</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Arial size=2&gt; &lt;H1 class=dtH1&gt;&lt;FONT face=Verdana size=1&gt;Interesting article in MSDN ...  &lt;/FONT&gt;&lt;/H1&gt; &lt;P class=dtH1&gt;&lt;FONT face=Verdana size=1&gt;&lt;/FONT&gt;&lt;/P&gt; &lt;H1 class=dtH1&gt;&lt;A  href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/converttoaspnet.asp"&gt;&lt;FONT  size=1&gt;&lt;FONT face=Verdana&gt;http://msdn.microsoft.com/library/&lt;/FONT&gt;&lt;FONT  face=Verdana&gt;default.asp?url=/library/en-us/dnaspp/html/converttoaspnet.asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/H1&gt; &lt;DIV class=dtH1&gt;&lt;A href="http://searchvb.techtarget.com/vsnetTip/"&gt;&lt;A  href="http://searchvb.techtarget.com/vsnetTip/1,293823,sid8_gci951935_tax293033,00.html"&gt;&lt;FONT  face=Verdana size=1&gt;http://searchvb.techtarget.com/vsnetTip/&lt;/FONT&gt;&lt;/A&gt;&lt;FONT  face=Verdana size=1&gt;1,293823,sid8_gci951935_tax293033,00.html&lt;/FONT&gt;&lt;/A&gt;&lt;/DIV&gt; &lt;DIV class=dtH1&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111925519201074778?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111925519201074778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111925519201074778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111925519201074778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111925519201074778'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/how-to-share-session-state_20.html' title='How to Share Session State'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111925396492789269</id><published>2005-06-20T13:22:00.001+05:30</published><updated>2008-03-28T10:44:58.050+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><title type='text'>Maintaining Transactions in Web Services</title><content type='html'>&lt;span style="font-family:Verdana;font-size:85%;"&gt;The TransactionOption Property&lt;br /&gt;If you've ever programmed MTS or COM+ components, you're probably comfortable with the idea of developing transaction-based services. A transaction can be thought of as any set of procedures (e.g., events, function calls) that collectively result in a change of state such as a success or failure. One example is a credit card processing system that authenticates a credit card number, charges the card, and triggers a fulfillment process. If any of these three steps fails (e.g., the card is declined), the transaction as a whole will fail, and each of the individual processes must be returned to its original state (e.g., cancel a fulfillment process if it has been started). All three steps are part of a transaction.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;Microsoft includes support in the .NET platform for MTS or COM+ style transactions through the System.EnterpriseServices namespace. We're not going to get into the details of developing transacted services in this book; however, it is important to understand the difference between .NET-style transactions and what we'll call distributed web service transactions.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;.NET transaction support is set through the TransactionOption property of the WebMethod attribute. The five possible settings for this property are:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;Disabled &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;NotSupported &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;Supported &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;Required &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;RequiresNew &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;By default, transactions are disabled. If you decide to use .NET transactions, your web method will be able to participate only as the root object in a transaction. This means that your web method may call other transaction-enabled objects, but may not itself be called as part of a transaction started by another object. This limitation is due to the stateless nature of the HTTP protocol. As a result, the Required and RequiresNew values for TransactionOption are equivalent (and both declare a RequiresNew method that will start a new transaction). Disabled, NotSupported, and Supported all disable transactions for the web method, despite what their names imply.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;strong&gt;Soni&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;"P&lt;span style="FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-: EN-USfont-family:'Times New Roman';font-size:10;"  &gt;rograms must be written for people to read, and only incidentally for machines to execute"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-: EN-USfont-family:'Times New Roman';font-size:10;"  &gt;Abelson &amp;amp; Sussman, &lt;i&gt;SICP&lt;/i&gt;, preface to the first edition&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111925396492789269?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111925396492789269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111925396492789269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111925396492789269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111925396492789269'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/maintaining-transactions-in-web.html' title='Maintaining Transactions in Web Services'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111901129650991114</id><published>2005-06-17T17:58:00.000+05:30</published><updated>2005-06-17T17:58:16.513+05:30</updated><title type='text'>Access Modifiers</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Arial size=2&gt; &lt;P&gt;&lt;A  href="http://weblogs.asp.net/cnagel/archive/2004/12/27/332733.aspx"&gt;http://weblogs.asp.net/cnagel/archive/2004/12/27/332733.aspx&lt;/A&gt;&lt;/P&gt; &lt;P&gt;The December version of Visual Studio 2005 / C++ now has an &lt;FONT  face="Courier New" size=2&gt;internal&lt;/FONT&gt; access modifier instead of using &lt;FONT  face="Courier New" size=2&gt;public private&lt;/FONT&gt;. This is different from my &lt;A  href="http://weblogs.asp.net/cnagel/archive/2004/12/20/327247.aspx"&gt;previous  post&lt;/A&gt;. The access modifiers public protected and protected private are still  the same as before:&lt;/P&gt; &lt;TABLE border=1&gt;   &lt;TBODY&gt;   &lt;TR&gt;     &lt;TD&gt;&lt;STRONG&gt;C++&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD&gt;&lt;STRONG&gt;C#&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD&gt;&lt;STRONG&gt;VB&lt;/STRONG&gt;&lt;/TD&gt;     &lt;TD&gt;&lt;STRONG&gt;IL&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD&gt;public&lt;/TD&gt;     &lt;TD&gt;public&lt;/TD&gt;     &lt;TD&gt;Public&lt;/TD&gt;     &lt;TD&gt;public&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD&gt;protected&lt;/TD&gt;     &lt;TD&gt;protected&lt;/TD&gt;     &lt;TD&gt;Protected&lt;/TD&gt;     &lt;TD&gt;family&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD&gt;private&lt;/TD&gt;     &lt;TD&gt;private&lt;/TD&gt;     &lt;TD&gt;Private&lt;/TD&gt;     &lt;TD&gt;private&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD&gt;internal&lt;/TD&gt;     &lt;TD&gt;internal&lt;/TD&gt;     &lt;TD&gt;Friend&lt;/TD&gt;     &lt;TD&gt;assembly&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD&gt;public protected&lt;/TD&gt;     &lt;TD&gt;internal protected&lt;/TD&gt;     &lt;TD&gt;Protected Friend&lt;/TD&gt;     &lt;TD&gt;famorassem&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD&gt;protected private&lt;/TD&gt;     &lt;TD&gt;&lt;EM&gt;not possible&lt;/EM&gt;&lt;/TD&gt;     &lt;TD&gt;&lt;EM&gt;not possible&lt;/EM&gt;&lt;/TD&gt;     &lt;TD&gt;famandassem&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt; &lt;P&gt;&lt;FONT face="Courier New" size=2&gt;public public&lt;/FONT&gt; is no longer supported,  too. &lt;FONT face="Courier New" size=2&gt;public&lt;/FONT&gt; is good enough  ;-)&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;A  href="http://builder.com.com/5100-6373-1027680.html"&gt;http://builder.com.com/5100-6373-1027680.html&lt;/A&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Q:&lt;/STRONG&gt; I'm confused about what some of the .NET  access modifiers mean and when I should use them. Can you help me sort them  out?&lt;BR&gt;&lt;BR&gt;&lt;B&gt;A:&lt;/B&gt; Well, I'll certainly try. The allowed access modifiers in  .NET are public, private, protected, internal, and protected internal. These  keywords control the visibility of class members (and other things), defining  the circumstances under which a member may be accessed&amp;#8212;hence their collective  name as access modifiers. With the exception of the last, protected internal,  it's illegal to combine two access modifiers. Let's look at what each of these  mean in turn when used in a .NET class.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;SPAN  class=subhead1&gt;Access modifiers illustrated&lt;/SPAN&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;FONT  size=2&gt;Public means just that: public and visible to everyone and everything. A  public member can be accessed using an instance of a class, by a class's  internal code, and by any descendants of a class. This is illustrated in  &lt;B&gt;Figure A&lt;/B&gt;.&lt;BR&gt;&lt;/FONT&gt; &lt;DIV align=center&gt;&lt;BR&gt; &lt;TABLE&gt;   &lt;TBODY&gt;   &lt;TR&gt;     &lt;TD class=fighead&gt;Figure A&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD align=middle&gt;&lt;IMG height=147        src="http://builder.com.com/i/tr/cms/contentPics/r008_accessmod_a.gif"        width=421&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD class=caption&gt;A public class  member&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;Private is also intuitively  understood, meaning hidden and usable only by the class itself. No code using a  class instance can successfully access a private member and neither can a  descendant class, as illustrated in &lt;B&gt;Figure B&lt;/B&gt;. Information or  functionality that will not be needed or has no meaning outside of the context  of a specific class should be made private.&lt;BR&gt; &lt;DIV align=center&gt;&lt;BR&gt; &lt;TABLE&gt;   &lt;TBODY&gt;   &lt;TR&gt;     &lt;TD class=fighead&gt;Figure B&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD align=middle&gt;&lt;IMG height=147        src="http://builder.com.com/i/tr/cms/contentPics/r008_accessmod_b.gif"        width=421&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD class=caption&gt;A private class  member&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;Protected members are similar to  private ones in that they are accessible only by the containing class. However,  protected members also may be used by a descendant class. So members that are  likely to be needed by a descendant class should be marked protected, as  &lt;B&gt;Figure C&lt;/B&gt; shows.&lt;BR&gt; &lt;DIV align=center&gt;&lt;BR&gt; &lt;TABLE&gt;   &lt;TBODY&gt;   &lt;TR&gt;     &lt;TD class=fighead&gt;Figure C&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD align=middle&gt;&lt;IMG height=147        src="http://builder.com.com/i/tr/cms/contentPics/r008_accessmod_c.gif"        width=421&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD class=caption&gt;A protected class  member&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;Members marked as internal are  public to the entire application but private to any outside applications.  Internal is useful when you want to allow a class to be used by other  applications but reserve special functionality for the application that contains  the class. &lt;B&gt;Figure D&lt;/B&gt; illustrates internal in action.&lt;BR&gt; &lt;DIV align=center&gt;&lt;BR&gt; &lt;TABLE&gt;   &lt;TBODY&gt;   &lt;TR&gt;     &lt;TD class=fighead&gt;Figure D&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD align=middle&gt;&lt;IMG height=255        src="http://builder.com.com/i/tr/cms/contentPics/r008_accessmod_d.gif"        width=421&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD class=caption&gt;An internal class  member&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;Finally, we have the only compound  access modifier allowed in .NET, protected internal, which is shown in &lt;B&gt;Figure  E&lt;/B&gt;. Members marked as protected internal may be accessed only by a descendant  class that's contained in the same application as its base class. You use  protected internal in situations where you want to deny access to parts of a  class' functionality to any descendant classes found in other applications.&lt;BR&gt; &lt;DIV align=center&gt;&lt;BR&gt; &lt;TABLE&gt;   &lt;TBODY&gt;   &lt;TR&gt;     &lt;TD class=fighead&gt;Figure E&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD align=middle&gt;&lt;IMG height=255        src="http://builder.com.com/i/tr/cms/contentPics/r008_accessmod_e.gif"        width=421&gt;&lt;/TD&gt;&lt;/TR&gt;   &lt;TR&gt;     &lt;TD class=caption&gt;A protected internal class  member&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;SPAN class=subhead1&gt;Not  limited to controlling class access&lt;/SPAN&gt;&lt;BR&gt;&lt;/STRONG&gt;As I mentioned before,  access modifiers aren't limited to use on class members but can be applied to a  few other code constructs. The rules defining when modifiers may be legally  assigned to a construct are dependant on the construct's container:&lt;BR&gt; &lt;UL&gt;   &lt;LI&gt;&lt;I&gt;Interface&lt;/I&gt; and &lt;I&gt;enumeration&lt;/I&gt; members are always public and no    access modifiers are needed (or allowed).    &lt;LI&gt;Classes in &lt;I&gt;namespaces&lt;/I&gt; are internal by default and may be either    internal or public, while &lt;I&gt;namespaces&lt;/I&gt; themselves are always public.    &lt;LI&gt;Members of a &lt;I&gt;struct&lt;/I&gt; are private by default and may be given public,    internal, or private access modifiers.&lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;In all cases, however, the  modifier's meaning remains the same.&lt;BR&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Soni&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;"P&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;rograms  must be written for people to read, and only incidentally for machines to  execute"&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Abelson  &amp;amp; Sussman, &lt;I&gt;SICP&lt;/I&gt;, preface to the first edition&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111901129650991114?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111901129650991114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111901129650991114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111901129650991114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111901129650991114'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/access-modifiers.html' title='Access Modifiers'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111892679500977813</id><published>2005-06-16T18:29:00.000+05:30</published><updated>2005-06-16T18:29:55.010+05:30</updated><title type='text'>"How can I avoid turning into a pointy-haired boss?"</title><content type='html'>Read this somewhere .. guess we all need to decide at one point of time or the other.&lt;br /&gt;&lt;br /&gt;"The pointy-haired boss is a manager who doesn't program. So the surest way to avoid becoming him is to stay a programmer. What tempts programmers to become managers are companies with old-fashioned corporate structure, where the only way to advance in salary and prestige is to go into management. So if you want to avoid becoming a PHB, avoid such companies, and work for (or start) startups.&lt;br /&gt;&lt;br /&gt;I never had to manage anyone in our startup, even though I was the president. The other hackers were my peers, and would have given me the raspberry if I'd tried to "manage" them. We operated by consensus. And the rest of the company reported to our experienced COO, who was also more of a peer.&lt;br /&gt;&lt;br /&gt;Why be a manager when you could be a founder or early employee at a startup?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111892679500977813?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111892679500977813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111892679500977813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111892679500977813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111892679500977813'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/how-can-i-avoid-turning-into-pointy.html' title='&quot;How can I avoid turning into a pointy-haired boss?&quot;'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111892656133077168</id><published>2005-06-16T18:17:00.000+05:30</published><updated>2005-06-16T18:26:01.343+05:30</updated><title type='text'>Inputs from Nikhilesh</title><content type='html'>To support the CLR, Microsoft has extended the PE/COFF file format to include metadata and IL code. The CLR uses metadata to determine how to load classes and uses the IL code to turn it into native code for execution. The extensions that Microsoft has added to the normal PE format include the CLR header and CLR data. The CLR header mainly stores relative virtual addresses (RVA) to locations that hold pertinent information to help the CLR manage program execution. The CLR data portion contains metadata and IL code, both of which determine how the program will be executed. Compilers that target the CLR must emit both the CLR header and data information into the generated PE file, otherwise the resulting PE file will not run under the CLR.&lt;br /&gt;&lt;br /&gt;Looking at this text dump of a .NET PE file, you can see that a PE file starts off with the MS-DOS/COFF header, which all Windows programs must include. Following this header, you will find the PE header that supports Windows 32-bit programs. Immediately after the PE headers, you can find the code section for this program. The raw data (RAW DATA #1) of this section stores the CLR header, as follows:&lt;br /&gt;RAW DATA #1   . . .     clr Header:           /* CLR HEADER */         48 cb         2.00 runtime version         207C [     214] RVA [size] of MetaData Directory            1 flags     6000001 entry point token            0 [       0] RVA [size] of Resources Directory            0 [       0] RVA [size] of StrongNameSignature Directory          0 [       0] RVA [size] of CodeManagerTable Directory            0 [       0] RVA [size] of VTableFixups Directory           0 [       0] RVA [size] of ExportAddressTableJumps Directory&lt;br /&gt;  Section contains the following imports:    mscoree.dll         . . .         0 _CorExeMain . . .As mentioned earlier, the CLR header holds a number of pertinent details required by the runtime, including:&lt;br /&gt;Runtime version Indicates the runtime version that is required to run this program&lt;br /&gt;MetaData directory Is important because it indicates the location of the metadata needed by the CLR at runtime&lt;br /&gt;Entry point token Is even more important because, for a single file assembly, this is the token that signifies the entry point, such as Main( ), that the CLR executes&lt;br /&gt;Below the CLR Header, note that there is an imported function called _CorExeMain, which is implemented by mscoree.dll, the core execution engine of the CLR.[2] At the time of this writing, Windows 98, 2000, and Me have an OS loader that knows how to load standard PE files. To prevent massive changes to these operating systems and still allow .NET applications to run on them, Microsoft has updated the OS loaders for all these platforms. The updated loaders know how to check for the CLR header, and, if this header exists, it executes _CorExeMain, thus not only jumpstarting the CLR but also surrendering to it. You can then guess that the CLR will call Main( ), since it can find the entry point token within the CLR header.[3]&lt;br /&gt;&lt;br /&gt;The common language runtime can either run garbage collection concurrently on a separate thread or on the same thread as the application. Use the &lt;gcconcurrent&gt; element to specify how the runtime should run garbage collection. For example:&lt;br /&gt;&lt;configuration&gt;   &lt;runtime&gt;       &lt;gcconcurrent enabled="false"&gt;   &lt;/runtime&gt;&lt;/configuration&gt;By default, the runtime runs garbage collection concurrently, which reduces performance. If your application is single-threaded and involves heavy user interaction, leave concurrent garbage collection enabled so the application does not pause to perform garbage collection. If your application is an ASP.NET server application, you do not need to alter the default value of the &lt;gcconcurrent&gt; element.&lt;br /&gt;&lt;br /&gt;A delegate is a data structure that refers to a static method or to an object instance and an instance method ofthat object.&lt;br /&gt;&lt;br /&gt;A component container is a specialized class that acts as a means of organizing and containing components. Through a container you can track your components, communicate with them via the Site that hosts the component, and provide a means of common disposal after they are no longer needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111892656133077168?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111892656133077168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111892656133077168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111892656133077168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111892656133077168'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/inputs-from-nikhilesh.html' title='Inputs from Nikhilesh'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111882157655607518</id><published>2005-06-15T13:16:00.000+05:30</published><updated>2008-03-28T12:02:05.890+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>What are ASHX Files</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;ASHX files contain HTTP handlers.&lt;BR&gt;HTTP Handlers  are nothing but software modules that handle raw HTTP requests received by  ASP.NET&lt;BR&gt;With .ASHX files one can easily deploy HTTP Handlers without  modifying IIS metabase. &lt;BR&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Soni&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;"P&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;rograms  must be written for people to read, and only incidentally for machines to  execute"&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV align=left&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN  style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Abelson  &amp;amp; Sussman, &lt;I&gt;SICP&lt;/I&gt;, preface to the first edition&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111882157655607518?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111882157655607518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111882157655607518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111882157655607518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111882157655607518'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/what-are-ashx-files.html' title='What are ASHX Files'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13686468.post-111881953136834510</id><published>2005-06-15T12:41:00.000+05:30</published><updated>2005-06-15T12:45:39.060+05:30</updated><title type='text'>What is the maximum amount of memory any single process on Windows can address</title><content type='html'>Any process running under Windows gets a Virtual Address Space of 4 GB, no matter how much RAM is actually installed on the computer.&lt;br /&gt;Actually, this is essentially the same for all operating systems running on 32 bit hardware that implement Virtual memory.&lt;br /&gt;The only way to increase the size of the virtual address space beyond 4 GB is by using 64 bit hardware with an operating system and application built for that hardware.&lt;br /&gt;In the normal, default Windows OS configuration, 2 GB of this address space are allocated to the process's private use and the other 2 GB are allocated to shared and operating system use.&lt;br /&gt;The nub of it is, that no matter how much physical RAM is in the computer,the amount of memory available in the application's private part of thevirtual address space in 32 bit Windows implementations is limited to:&lt;br /&gt;1. 2 GB - without the /3GB switch - this is the normal, default maximumprivate virtual address space or&lt;br /&gt;2. 3GB with the /3GB switch AND a special application modification (more details below) or 3. any physical RAM not used by the OS and other applications by modifyingthe application to use the AWE (Address Windowing Extensions) API&lt;br /&gt;&lt;br /&gt;More on address &amp;amp; memory allocation:&lt;br /&gt;There seems to be a lot of confusion in the industry about what's commonly called the Windows “4GB memory limit.” When talking about performance tuning and server sizing, people are quick to mention the fact that an application on a 32-bit Windows system can only access 4GB of memory. But what exactly does this mean?&lt;br /&gt;By definition, a 32-bit processor uses 32 bits to refer to the location of each byte of memory. 2^32 = 4.2 billion, which means a memory address that's 32 bits long can only refer to 4.2 billion unique locations (i.e. 4 GB).&lt;br /&gt;In the 32-bit Windows world, each application has its own “virtual” 4GB memory space. (This means that each application functions as if it has a flat 4GB of memory, and the system's memory manager keeps track of memory mapping, which applications are using which memory, page file management, and so on.)&lt;br /&gt;This 4GB space is evenly divided into two parts, with 2GB dedicated for kernel usage, and 2GB left for application usage. Each application gets its own 2GB, but all applications have to share the same 2GB kernel space.&lt;br /&gt;This can cause problems in Terminal Server environments. On Terminal Servers with a lot of users running a lot of applications, quite a bit of information from all the users has to be crammed into the shared 2GB of kernel memory. In fact, this is why no Windows 2000-based Terminal Server can support more than about 200 users—the 2GB of kernel memory gets full—even if the server has 16GB of memory and eight 3GHz processors. This is simply an architectural limitation of 32-bit Windows.&lt;br /&gt;Windows 2003 is a little bit better in that it allows you to more finely tune how the 2GB kernel memory space is used. However, you still can't escape the fact that the thousands of processes from hundreds of users will all have to share the common 2GB kernel space.&lt;br /&gt;Using the /3GB (for Windows 2000) or the /4GT (for Windows 2003) boot.ini switches is even worse in Terminal Server environments because those switches change the partition between the application memory space and kernel memory space. These switches gives each application 3GB of memory, which in turn only leaves 1GB for the kernel—a disaster in Terminal Server environments!&lt;br /&gt;People who are unfamiliar with the real meaning behind the 4GB Windows memory limit often point out that certain versions of Windows (such as Enterprise or Datacenter editions) can actually support more than 4GB of physical memory. However, adding more than 4GB of physical memory to a server still doesn't change the fact that it's a 32-bit processor accessing a 32-bit memory space. Even when more than 4GB of memory is present, each process still has the normal 2GB virtual address space, and the kernel address space is still 2GB, just as on a normal non-PAE system.&lt;br /&gt;However, systems booted /PAE can support up to 64GB physical memory. A 32-bit process can "use" large amounts of memory via AWE (address windowing extension) functions. This means that they must map views of the physical memory they allocate into their 2GB virtual address space. Essentially, they can only use 2GB of memory at a time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13686468-111881953136834510?l=wordsinmymind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wordsinmymind.blogspot.com/feeds/111881953136834510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13686468&amp;postID=111881953136834510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111881953136834510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13686468/posts/default/111881953136834510'/><link rel='alternate' type='text/html' href='http://wordsinmymind.blogspot.com/2005/06/what-is-maximum-amount-of-memory-any.html' title='What is the maximum amount of memory any single process on Windows can address'/><author><name>hangar18</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_HQAxXjcm7pk/SSu2vZNFrqI/AAAAAAAAABU/lKpibMZp1QY/S220/IM_A0020.jpg'/></author><thr:total>0</thr:total></entry></feed>
