<?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:blogger='http://schemas.google.com/blogger/2008' 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-25756307</id><updated>2024-10-17T22:45:56.164-07:00</updated><category term="Ramblings"/><title type='text'>Coffee, smoke and Techilicious Burps at 3.47 AM</title><subtitle type='html'>Some half baked ideas, by Don, about Tao, Zen and the art of converting coffee into code...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techburps.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default?start-index=26&amp;max-results=25'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>110</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-25756307.post-4226718776827415236</id><published>2010-01-12T07:15:00.001-08:00</published><updated>2010-01-12T07:17:41.638-08:00</updated><title type='text'>Passion for the craft…</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;I was just going through the website of &lt;a href=&quot;http://www.chetanbhagat.com/speeches/speech_2.php&quot;&gt;Chetan Bhagat&lt;/a&gt; the “Oh so great Indian Author” while browsing around. He has given a couple of best sellers in India, but I feel it is not even worth spending time on light reading. I would rather read the entire C# Language Specification, (which happens to be exceptionally boring), than read one of his. Anyways I read this part where he quotes, &lt;a href=&quot;http://dasboard.in/nilotpal/blogs/347/?p=159&quot;&gt;Read More…&lt;/a&gt;&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/4226718776827415236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/4226718776827415236'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2010/01/passion-for-craft.html' title='Passion for the craft…'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-756682835868628563</id><published>2010-01-03T08:23:00.001-08:00</published><updated>2010-01-03T08:23:38.722-08:00</updated><title type='text'>Security Essenitials and Defender</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;em&gt;Note: I am slowly moving my blog to &lt;/em&gt;&lt;/strong&gt;&lt;a href=&quot;http://www.dasboard.in/nilotpal/blogs/347&quot;&gt;&lt;strong&gt;&lt;em&gt;http://www.dasboard.in/nilotpal/blogs/347&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;. Please check my blogs there and update your RSS feeds. Thanks.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;I bought a computer recently and I didn’t have an antivirus software. I was wondering what I would do about that. Microsoft already had a fantastic utility called Defender, to detect and remove spyware and potentially unwanted software (which ships with Windows 7). Well now they have come up with is a new antivirus software. It is called the Microsoft Security Essentials, previously known as Microsoft One live care.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;It is freely downloadable. There is a 32 bit and a 64 bit versions available and they are compatible with the new and shining Windows 7.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;The 32 bit is downloadable &lt;a href=&quot;http://download.microsoft.com/download/A/3/8/A38FFBF2-1122-48B4-AF60-E44F6DC28BD8/mssefullinstall-x86fre-en-us-xp.exe&quot;&gt;here&lt;/a&gt; and the 64 bit &lt;a href=&quot;http://download.microsoft.com/download/A/3/8/A38FFBF2-1122-48B4-AF60-E44F6DC28BD8/mssefullinstall-amd64fre-en-us-vista-win7.exe&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;So no need to worry about spending extra just to keep your machine safe. I say it should come free with the OS, coz the OS, after all, is a software and what’s a software if its not safe…&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/756682835868628563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/756682835868628563'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2010/01/security-essenitials-and-defender.html' title='Security Essenitials and Defender'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-6083183195521096963</id><published>2009-12-29T07:27:00.001-08:00</published><updated>2009-12-29T07:27:10.354-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ramblings"/><title type='text'>Joomla… or should it be Zoomla…</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;I have been thinking of owning a website of my own for a long time. First web space was expensive. Not universally, but at least for me. Always thought, is it worth it? How am I justify the annual cost no matter how little. And then of course my salary wasn’t that big then.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Well by God’s grace I am doing pretty ok now. But since the last couple of years, I just didn’t have the time to do it.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;I bought web space some 1 and a half year back. wrote a whiz bang application that would host a video invitation to my marriage. Yeah we wanted it to be different, so we made a video wedding invitation.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Anyways. I own a web space since then and I never had the time to create a portal out of it. Just the default page. And then one day I decided to go to godaddy.com and check out what my money buys me. And it turns out that it is more than just the space. I get a host of other products free with it. like Blogs, Emails, CMS, etc.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Honestly, I felt a little shy using the CMS initially. I being a developer should be able to write my own asp.Net application. I bought the damn windows hosting with .Net and everything. I should use it. But then I figured that having a CMS made website is better than not having one. Joomla is what I ended up using.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Usually I ramble about Microsoft Technologies here. But I have to tell you guys. joomla really is zoomla. Initially it might look confusing. But once you get a hang of it, you will have your website ready pronto.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;I have mine ready in 1 day. It is called &lt;a href=&quot;http://www.dasboard.in&quot;&gt;http://www.dasboard.in&lt;/a&gt;. It is not much. Not that I have built the next google or anything. But its something, and its there. All that waiting and all it takes is a day.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/6083183195521096963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/6083183195521096963'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/12/joomla-or-should-it-be-zoomla.html' title='Joomla… or should it be Zoomla…'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-2395887396171346507</id><published>2009-10-28T07:47:00.001-07:00</published><updated>2009-10-28T07:48:52.738-07:00</updated><title type='text'>What’s it about a phone that pulls you so hard…??</title><content type='html'>&lt;p&gt;So I have a Sony Ericsson P990i. So what…? So what if I had a P910i before this and a P900 before that…? So what…? Why did i feel so much attracted to the Experia X1 and why do I feel an even harder pull towards the Experia X2.&lt;br /&gt;&lt;br /&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.sonyericsson.com/demo/product/generic/embed/sedemoembed.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type=&quot;text/javascript&quot;&gt;new SEdemoEmbed( &quot;phone&quot;, &quot;x2&quot;, 725, 525 ).embed();&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;I guess men are going to be men… And they will get attracted to unachievably expensive gadgets no matter what…&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/2395887396171346507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/2395887396171346507'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/10/whats-it-about-phone-that-pulls-you-so.html' title='What’s it about a phone that pulls you so hard…??'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-330689969224340027</id><published>2009-10-23T21:42:00.001-07:00</published><updated>2009-10-23T21:42:36.980-07:00</updated><title type='text'>An interesting Mathematics</title><content type='html'>&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=88E0TYijc5I&quot;&gt;A very interesting mathematics&lt;/a&gt;&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/330689969224340027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/330689969224340027'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/10/interesting-mathematics.html' title='An interesting Mathematics'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-524072196394485240</id><published>2009-09-22T06:01:00.001-07:00</published><updated>2009-09-22T06:01:56.829-07:00</updated><title type='text'>Visual Studio 2008 Unit tests… Error loading *.vsmdi: *.vsmdi</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;I got this error. I got no information on the internet as to how to get around it…&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;3 hours earlier:&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;I wanted to create a sequence diagram from the code I have already written. Visual Studio 2010 comes with the sequence diagram feature. I decided heck why not use it. It creates some really cool sequence diagrams. I opened the same project in Visual Studio 2010, created the sequence diagram, closed the project. Went for a smoke.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;30 minutes earlier:&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;My test cases won’t run. the error I get is&amp;#160; “&lt;font size=&quot;1&quot;&gt;Error loading xxx.vsmdi: D:\Projects\xxx\xxx.vsmdi” looked here, looked there looked everywhere. But didn’t look in the place I should have been looking.&lt;/font&gt;&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;font size=&quot;1&quot;&gt;10 minutes earlier:&lt;/font&gt;&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;font size=&quot;1&quot;&gt;I built the test project. I got an error. “&lt;font size=&quot;1&quot;&gt;Project file contains ToolsVersion=&amp;quot;4.0&amp;quot;, which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion=&amp;quot;3.5&amp;quot;.”&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;font size=&quot;1&quot;&gt;Well I should have been looking at this 30 minutes ago. I went to the test projects Properties, went to TargetFramework and checked. it was not selected at all. I selected Framework 3.5.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;font size=&quot;1&quot;&gt;After this all I had to do was close the project and open it and then run all my tests in the solution.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;font size=&quot;1&quot;&gt;They were all still green. Love it when that happens…!!&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/524072196394485240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/524072196394485240'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/09/visual-studio-2008-unit-tests-error.html' title='Visual Studio 2008 Unit tests… Error loading *.vsmdi: *.vsmdi'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-3356207883813655340</id><published>2009-09-08T20:09:00.001-07:00</published><updated>2009-09-08T20:09:47.023-07:00</updated><title type='text'>UML 101</title><content type='html'>&lt;p&gt;So you need to read the entire UML book in 20 minutes. What do you do? These are the excerpts from the Unified Modeling Language Reference Manual I was reading and thought I could summarize for a quick refresh.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9-v55lqgHR0jLTBjx1RPyytTpqghNOHZYvyheV3ID7OMQLw766lxESA5FF0YwZYC4Hfl2OxtAw26CZAjyHxHFZxxdEdN0dEDWxtYoumdeiu1Gg0hDFCVeEYI04wGCZDy1e3B5/s1600-h/clip_image002%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2DFeduVG8BCT9qu0M_NC3GsVf90KPl5T8k3112cHZPxhi5-hvhHcD5pE1l5BLj-1WHPRgj11t02dZ7BCFqAH-lCEyQFG9_rx6OTFu3NPSsWEgt1IpKnp68MRdVyNCe5VwIt6N/?imgmax=800&quot; width=&quot;504&quot; height=&quot;435&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Aggregation and composition:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMsKLRBObngTnz_yzQr1HjvZDc_U3c1l28aZE9HPyOM0wINCPgpHUkLXVyf_mzPm3aDdfEl6cT-ZW2I4i4ErSiIggY_pAqTTyfp5fKDtisc4jMFUbQf7ogL5Znio_JjImhkQVD/s1600-h/clip_image004%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image004&quot; border=&quot;0&quot; alt=&quot;clip_image004&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTpsGKQ0s23Q7sZoNeKrOY04yLa_hId8aABFQM6mbQxpBwclQE0FYl1Twl2GrqQLBue7aL_BM7jPn9EUeBxapq-RX9eOrtuB2Nfntnl9EzhUwqz59iLdWF6oNT8T8bg8AuXOJv/?imgmax=800&quot; width=&quot;504&quot; height=&quot;216&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Generalization:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM7Ue1EbwV3U-70jVITG8DDiynJ0ay0_EzKZ1PVey_gU9Ev3P5LXwUIPd5soatxbqQsAxrxEuiyI_bVXU5ezy-81IQdIVmgz80yGkpP50WiEW7OnsyVhW8Nwd02vDewTmFLvQ_/s1600-h/clip_image006%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image006&quot; border=&quot;0&quot; alt=&quot;clip_image006&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrt3d-rtxmEvivxbviMIFsBbxuOIyTcG3H42GcIAs89S1NKvEkFs4Dcbov447RNghpxA4ZdqpiIJrnW9hEXKiJT35Ct-MkhLCYTwP7f8EIJI5bVmNLylUhnfFvzAJQMa0PoKQH/?imgmax=800&quot; width=&quot;504&quot; height=&quot;323&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Kinds of dependencies:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ5SvlljrRik13i9npyiFj2S2gV9VuH1sMddzoXaMSx3rFISnpAk9MOQexwKLqnOIxlg_JB592fQN6k9evdOSc2cVP-Rx4r4bJuwsk0xR_i5WBAWHM1o9wLA857wxLLMWCpIIo/s1600-h/clip_image008%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image008&quot; border=&quot;0&quot; alt=&quot;clip_image008&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPeQeEXNYYuixjoQIy5qTq6zCs8YsAhLX_jrl6aoTlokVT17oxH8CdWDDIQ9aJKPHK19fJvrxmHqfdR9bMWITq35TmzLalfq-_YlJPVU_1HIEjbZy2JOHL5vdtgizrKQshQ0S0/?imgmax=800&quot; width=&quot;504&quot; height=&quot;759&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHiRgT8H2LZPu4drvStmmNZaYXk2zVpPyJHovbY13UPCpWpEX3XtIYj_dvHVInw-t55Xv3kKjflvgtNngG78LK7yktLslpKdYfapYM7LOaeWhyKuayJT5l-BkTH3lUL5rwm59V/s1600-h/clip_image010%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image010&quot; border=&quot;0&quot; alt=&quot;clip_image010&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzM29_L7vPV02RhAYoV1ooClbcDrSaq9ZxlKmZqPvHqMo_xCb-Vy3JdejGhBYsohFml5NJB16QWSW3Mp3AVcO0xija8WGF3Ni73NEj2Zs_SZqbyrq85gtHi-6Vq3FDMAckxVhg/?imgmax=800&quot; width=&quot;404&quot; height=&quot;116&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Use case diagram:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYbgiC-Duk28ShXJXYUJhc33O-AbbdWV31Tvu1iZw3QMlOFdz_sVM1P3oVmNth4VeVbbNVhs9Tf_o1wN2hjjKx_WDKSBzf0eagJXaq4xjGCfe-LS6xPYafFuUWJb2U9edrWd_6/s1600-h/clip_image012%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image012&quot; border=&quot;0&quot; alt=&quot;clip_image012&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7GW-rmbfs4J8xzRkmAHZ-o3w-g0Yr8h0h7D62RKSTbsCivt62JxccFKWUtJu1PAOYRekoN7TriqTlTPsSYvEpHbnTRlGMglfOEC0SEw_18RrHG1GO2d-CrXkK2aJ7yxEQ-7aS/?imgmax=800&quot; width=&quot;504&quot; height=&quot;419&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Kinds of Use Case relationships:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Lq7x940NkvZOso84x5qaYF00ZDCEpIYXgF98C_ZtmSjjgnoKo_wH1QU7c08rw3qOCkxcoUEEpVb8TSK5GSlMC6FQDmD9mL0sBA8OucREHPiLM7n6pv7XtnaFzxBb_mnMpHII/s1600-h/clip_image014%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image014&quot; border=&quot;0&quot; alt=&quot;clip_image014&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoxwXWy0T5IiIcdPzf5GNojuxkW4_WWOtjz3On9alwfFsRQUsvFoi38ksF2TrTkdKq0SBliE8p8MGjAUaJFFsiIKrA3VKjmusyKg546WoQk9ZJYZSD0n2urDuOyWGnGsx9yb8r/?imgmax=800&quot; width=&quot;504&quot; height=&quot;321&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL1QfLryqSeGg3cqKCRngUDQiyMP5AiQJ5sB6Rdh92lHocpOt0MAJ-we2aY5pgOfm6PdxjvprPpDez1bLJprHeLxfIm7E4Rz1KE9j1adaMpVAip02ggiAZOZHxjD6Xc197UVWF/s1600-h/clip_image016%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image016&quot; border=&quot;0&quot; alt=&quot;clip_image016&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXYxjwdYxGNNPHAPcPik-ztpU0CQ_NdwC_6S0tsV-Y_VUDNMee18k5uIHACYaP1NhOeOsgG9rl9JTd6j3u_EF4p0-wdRyu7E5JMDek5Vd2IEmwT3OL1LDVKHExfYnLQLqKZLHi/?imgmax=800&quot; width=&quot;504&quot; height=&quot;98&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWUdWyejy-KUYD_73lxb9oPzSqFnDDmqI7f3OaRhVBPkuu5rH8oYlgIwl11ccDXlILwMZuKo-IrG7-DYA5OhbdD8OHzyR7VPc84v5PSS2mKXe4ZnpNGrz0XF4iLuW2fk60j7hL/s1600-h/clip_image018%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image018&quot; border=&quot;0&quot; alt=&quot;clip_image018&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7x_1FwEPsfqkZ2Ij8dxwWREWPuaONVSceMKa_O4a1e95GDDsQ4IDj5MzlfhyVyXVYpQhrJ_aSzPtXznm1f2eh3_g2Nkk8UGTuqHWmP0K_YI_nLHZP5EEjwkYHyLAZ8z4u2Dbu/?imgmax=800&quot; width=&quot;504&quot; height=&quot;246&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihxt6kMZqoLuHo2KS16GSVJel_lZnSItQKQMDR0nX3LcODGVoYyWnbY1UdJ4yYWqhHI-XrocaESJccYJeplIKmwt0r4R8uVrLBvBvZ7XvRiBBahbRmkcbUyXJwsOeex5GxTamP/s1600-h/clip_image020%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image020&quot; border=&quot;0&quot; alt=&quot;clip_image020&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPFPfaO3fD7JKOdAdSzL3wN66K7Ei9WVQ7vNU6VkgKTi4szSMtx9f081aUqJ1lTubpkW-nHgytPpwLuoPgewa1HIDe9_m599FxLPAS35xVRB1mq7rMCV5DCwKeocVTKTmhOwN4/?imgmax=800&quot; width=&quot;504&quot; height=&quot;131&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGtlf7Lrvldvm1p2j4MPZVxWWfvQ3vVlfa_Q_OKpwceqDT8SalNQdEgROV_JsoPkUeVoKalS_QaqlBpYSqUFxa2aWfbZMRu8jecCj9BSh3NZsQzO-emMsJh7OYPrhlubrKg-8-/s1600-h/clip_image022%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image022&quot; border=&quot;0&quot; alt=&quot;clip_image022&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdpxlv147DdJ8FNDFiW4xg-X-vrrORqZOUmLZEvyTuKZIcCd0iPd8ewG7YRTIAK8qOmuI_jb7ToW7oYbqvIUXI2L2_T94M3F978KkUN4GeRm_JtyRi8RvlI-lhoTNTi55lut3a/?imgmax=800&quot; width=&quot;504&quot; height=&quot;94&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMHfMvI7IRznyptebUcO3tinqXjCMwh_Jp6kXcu6kFSMVNFmSkT439r99OPKr_d1PZvq8sfcCsA8tv-6Ndz0Nf0MNKDb9F1P6m4oDVx2zGpExQk7MKdHfMHJJKPEi0Tta5jCpB/s1600-h/clip_image024%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image024&quot; border=&quot;0&quot; alt=&quot;clip_image024&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTBmByOIZpWoNwDgyN58nMfhShupuQT_tf5aEVquRMBP7WGtD2AK1TUXZxQbkXII8hDq09t_HH8zU7XoKtXp0GR1h5yHGLCjsuBqpS9qV7MQOssViqvScbL_UQmrAd42Tma7UL/?imgmax=800&quot; width=&quot;504&quot; height=&quot;475&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcxwcRqp15xVLhmsbM3t3d0MoRj_zqpPfrM37bK-eb_lhxUgw628v94hbdvFSZQM0VRx834edXL6WBih43ep8kBV0Au3dgR9aIHotNESx4Nid0e1V8uWZGzE3TQYs2V-awMARq/s1600-h/clip_image026%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image026&quot; border=&quot;0&quot; alt=&quot;clip_image026&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkr87kSAMUHVM3nny3fOIEwBiiVa4MizHjWxZ2AVvMO_HkWfftAPuII4zbUsy47NbNkXOjJWC536BZG3gktI_pN7a0Lxt5EmiSlIEY2R_Fz-6Pq9Ii1gHhRbI8de9Lj-NuKlk9/?imgmax=800&quot; width=&quot;404&quot; height=&quot;553&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ygMO98943pPtYgSno74tIokNAgeTJ_s-GsSyBuUb1XJJ92mwH88Z1vQva7aZexya9Ai1rfo18tN2h0gID6K3o90fhDV0A7aEAA7rDZJ0Fm7ITlpMv8H_1SCbkf6tkw5H2u3u/s1600-h/clip_image028%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image028&quot; border=&quot;0&quot; alt=&quot;clip_image028&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx4wjCLnUg6Rw_AmnfwdMsutvotyiUFtj1wv1ItG58MrJLvnrp2MQYlt3U7EbPGKv8QVYTLLEByFZxt1Bp_2Rcdx4VU9Ej_Lspc33UmLxSxyNKI2b__ptgCqt_q_CdsyKYVPJY/?imgmax=800&quot; width=&quot;504&quot; height=&quot;523&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Activity Diagram:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE058nTH4yWmtahZOzR5cNF2X6l-ehjqHSl3RdSFBSKwKUxSF_X4eLYU9ZCNBI67xpXqwGljSS0KcmChQRSx9WlkB7NfgTEqedxU6QOeOvU-kVn4E4JzCkGs0gaXQuZFmtKKjD/s1600-h/clip_image030%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image030&quot; border=&quot;0&quot; alt=&quot;clip_image030&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYMq8Js-9-LfzdxHKwe5XmdOGZSrsG0cC4gull2uESS2wFhlrhzzm9rduK4zMXS1E-apwDNT2ZisXfYHdKOgBvwngcTc2bi5DBoquoK57Pe6ojhsdXHxpD8Bn35OkECdXioI7a/?imgmax=800&quot; width=&quot;504&quot; height=&quot;542&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK0w8TR3CiC_bSqyJGal616dHLAmoXJvrSgsVabQx1W9t_d41z9fcVXgugpZSINLyaKJwS_hjyKgvGsLwrObH6Zf4fREoCIjsR-RZ0FXDS0aYnEJ8Cmsf59TQ6Xw3SAupgA1JV/s1600-h/clip_image032%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image032&quot; border=&quot;0&quot; alt=&quot;clip_image032&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUz5EhckDWq761880HhwP3F3X4iC1Nw7md1B4Crf_whWDzDNt97e8m-WONeRyruuzOIjxVRixVew9n65jciRQ7EJEschKlMZzHAw3IdWrVzDkv__27FUf_8RyMDM6-1e-A20YH/?imgmax=800&quot; width=&quot;504&quot; height=&quot;517&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sequence diagrams and Activation:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmzbxPf1PtYGnmmRbKF79tRoS55awfO_h4dq4iNTeglgQfzuILG28yg9HRzi8NztP6RHDw-YxPE6OnWUyfdud_jyCFhNq8l8PXPV-kkHFqbKqY1qGQdvXsyWH5oGdlb-AjbHOg/s1600-h/clip_image034%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image034&quot; border=&quot;0&quot; alt=&quot;clip_image034&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7RDeHo7k-Esx2WfRzlHacfMJqjWEZoijQy4gkb5ISWz8SoAR44ZkayPpWWWmCnluPQ6GPXFO-wNeIO-jgOacqFlmENWOFMx9n_aXieAyhbJhDY15p9oPLUCyX7i07KZIUGJbI/?imgmax=800&quot; width=&quot;504&quot; height=&quot;296&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicX637wEoOSbtFU4_zV0XFywFtIjYT6_IWZ6TGJB9gf7dnqZYzBWm_sDjWmzEti86xzhG4bYu3UdcP_ApzIDIq9Zgp0E6nDEivA0PAA_3jR7nAl4WERJjgfa1nH8ePKZJH8sUU/s1600-h/clip_image036%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image036&quot; border=&quot;0&quot; alt=&quot;clip_image036&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLvrCPw8xzM53IKwh8MRABGq_Bqrxw8Ch8xABqujfe9B-72Y9_M8OXfBN_QLHNDNWW_Eox13Ot8TH1VTAr8-IG5HalUnR_21tRCQeJam8TNS2BILu-9qUoHA2At5jO-JbkgqC/?imgmax=800&quot; width=&quot;504&quot; height=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgopwGEg8CSN0C94Uwgl7zbUqUnjUXvD5KQ8pvflaT1hTFThRCooP7IMhEPBBo_Xhj86nnz5TEDJa-ShbIJOk8zyrY-w3Udk6PwSKxpIMzdAJXj444OIHBQSqbwr9N90kEf9K8-/s1600-h/clip_image038%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image038&quot; border=&quot;0&quot; alt=&quot;clip_image038&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjijTanH-sao3yFZQFjdtIu8cFXaLNjTv-XJeHvS2PkGIvOTEepUdWo6wWpl1qiFVkGv1IIvtGNA2KRxwF5Dgl53yOeget3SFCvMoUxCscjKoxs-ks7b0WgS7FrHltrxdrDPhBq/?imgmax=800&quot; width=&quot;504&quot; height=&quot;464&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Component Diagram:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv28suGVpPqU0ugsOCSQRHOmYb6C3TapnaYUL1TMAwCc2GSddiBSUeDWhAU7BWFmjfP7XzLyENxN7AwJv4qK4YU-AtAUb8A2ggzz8ifoS49_L3DKiGFGlzdtvBIEB35Cm9OAqk/s1600-h/clip_image040%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image040&quot; border=&quot;0&quot; alt=&quot;clip_image040&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdSBwQNUianwrVwI9HZBUN8pGiPCgLW040Qp3AET3YpTPbu08k2GdSlDB0mH8UJDGxaZxJTNMb6Iky-ixAF57o7pLkoF2eY_sUmlorohQSiFxK4-YJ-FDtKinQcptDiF5uwSyc/?imgmax=800&quot; width=&quot;504&quot; height=&quot;344&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Deployment Diagram:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMC2sLfw01s2rfOiaXxnjSe6Ksc9-al0awPytOPX6uRWOpIEkx-X-Luln4Qo14ERFv6J2vH-rMypy2cHkrSp9-GrRscNCJZTPz5Z8PCS3G-7lE2Rn1dI8LK723sJ_rtJeIqwO_/s1600-h/clip_image042%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image042&quot; border=&quot;0&quot; alt=&quot;clip_image042&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix_GHik7lmgf9dp3MQKCGyX5i8LmBx1L-HfvLnMQi_FoNzXCkmPyJdWbwHwvlTqwqGcMQ_MgCXB1izF-dMpgNfiH0jGLWMzp_Rj9SelxdHJTqbR7myFp967SDgxM_l67yH1stT/?imgmax=800&quot; width=&quot;504&quot; height=&quot;366&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Packages and relationships:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmVflbUjeeEI6BI4vYetpNirO8FbLZ41F3UipWAMRieLnOTFif5_p11m9R9-5AIXT8Kdrf47nAMleaWXEJ4QU8joACybRK_jRRN1ccSEpFeSaz5RSJNbOw_zeQPyngteCLPh1l/s1600-h/clip_image044%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image044&quot; border=&quot;0&quot; alt=&quot;clip_image044&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7qjdSw_66JER7ce55NMPNvl_sR4YoopPeGtxRLqRd82I3NemOHbnHo3TuVZjNVMeLQ4fmZ_N5lQq6JZBIviQ-ua2x6I0UzpV3HkmmI_MnyREA0IpI2zd7VAOamminXj5-eXLZ/?imgmax=800&quot; width=&quot;504&quot; height=&quot;444&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/3356207883813655340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/3356207883813655340'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/09/uml-101.html' title='UML 101'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2DFeduVG8BCT9qu0M_NC3GsVf90KPl5T8k3112cHZPxhi5-hvhHcD5pE1l5BLj-1WHPRgj11t02dZ7BCFqAH-lCEyQFG9_rx6OTFu3NPSsWEgt1IpKnp68MRdVyNCe5VwIt6N/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-5886106037174385286</id><published>2009-08-22T02:51:00.001-07:00</published><updated>2009-08-22T02:51:28.904-07:00</updated><title type='text'>Dots instead of spaces in Studio 2008 while running test cases…</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;Well I was running my test cases today and suddenly all my white spaces turned into dots. Yes it creeped the heck out of me.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;First thing I thought was to get rid of that. Went to Tools and Options and couldn’t find the setting that would get rid of the nauseating dots.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;So I started trying all the shortcut keys. But initially nothing worked. Now Ctrl + R + D happens to be a combination that debugs the tests in context. So I thought the key pattern that enables and disables the visible whitespace feature has to be similar.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Discovery: Ctrl + E + S&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/5886106037174385286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/5886106037174385286'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/08/dots-instead-of-spaces-in-studio-2008.html' title='Dots instead of spaces in Studio 2008 while running test cases…'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-6212825352711889583</id><published>2009-08-18T13:05:00.001-07:00</published><updated>2009-08-18T13:05:09.928-07:00</updated><title type='text'>Left outer join in Entity Framework</title><content type='html'>&lt;p&gt;This evening I heard someone say that Left Outer Joins are not possible in Entity Framework or perhaps Left Outer Joins are possible, but they bring in all the data and then filter out the right table.&lt;/p&gt;  &lt;p&gt;I felt an urge to argue, but I resisted. I thought I would investigate before I waste time. I came up with some articles pretty quickly.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href=&quot;http://solidcoding.blogspot.com/2007/12/left-outer-join-in-linq.html&quot;&gt;Left Outer Join in LINQ&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/a3f2b146-750b-435c-b48c-2ea301bf130f/&quot;&gt;Left Outer Join using Inverse Navigation Property&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.microsoft.co.il/blogs/gilf/archive/2008/05/14/how-why-use-definingquery-element.aspx&quot;&gt;DefiningQuery Element&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://bhaidar.net/cs/archive/2007/08/01/left-outer-join-in-linq-to-sql.aspx&quot;&gt;Left Outer Join in LINQ to SQL&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/78468/linq-to-entity-with-multiple-left-outer-joins&quot;&gt;LINQ to Entities with Multiple Left Outer Joins&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I am sure these should resolve all questions related to Left Outer Joins.&lt;/p&gt;  &lt;p&gt;Now about the performance and the question about how the data is brought, I am pretty sure we can prove that LINQ Queries all support deferred execution. But we can always prove that using the SQL Query Profiler.&lt;/p&gt;  &lt;p&gt;Hope this helps.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/6212825352711889583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/6212825352711889583'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/08/left-outer-join-in-entity-framework.html' title='Left outer join in Entity Framework'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-7347714071798056194</id><published>2009-07-29T21:40:00.001-07:00</published><updated>2009-07-29T21:40:30.668-07:00</updated><title type='text'>Singleton Vs. Static Class</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;Well I was asked this question once. “What is a singleton design pattern and why should I use it? Why not use a static class instead?” &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;And it was quite surprising how it went. I said that Singleton is used when you need to maintain state. Static classes are used when you want to club together a bunch of stateless methods that do something irrespective of which instance calls these methods. Math class is a good example. &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;So he asked me, can I not maintain state in a static class? So I said if you want to instantiate something in a static class how would &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin9g1mjVjCR07qAKCY08zD_YrA9Zp1OnmbJu8KaQvgy0LfB7qRKzgsMZ-1ypgBGnpI9ySYlGXTJ2XjoX4pNJj0FC-RyKnzJTBOsx_LGb-FyXZz6XHMIWFZzHfaCgISncbC0bT8/s1600-h/image%5B8%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZQEmfGJx39BRAAjJOR4b3EbJivoluOL3p4ucb0HMNkGxlvCHlkf4VLnPFwT5ROZBA2koWRdth07Yult64LRjoNyItRSux9CUi12kGre9gGF9HLm4bxQPAxOabU7ztDNipqcHV/?imgmax=800&quot; width=&quot;341&quot; height=&quot;82&quot; /&gt;&lt;/a&gt;you do it? And surprisingly he told me that he would do it in a static constructor. I asked him, is it possible to instantiate anything in the static constructor or even declare an instance type in a static class? And he asked me is it not possible? I said it is not as far as I know and he asked me if I am sure.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Now the way the questions were asked about this subject, I was quite surprised. The interviewer looked quite convinced that instance types can be declared in a static class. I am surprised how he was allowed to take the interview in the first place. Or was he checking my confidence?&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;I wonder.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/7347714071798056194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/7347714071798056194'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/07/singleton-vs-static-class.html' title='Singleton Vs. Static Class'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZQEmfGJx39BRAAjJOR4b3EbJivoluOL3p4ucb0HMNkGxlvCHlkf4VLnPFwT5ROZBA2koWRdth07Yult64LRjoNyItRSux9CUi12kGre9gGF9HLm4bxQPAxOabU7ztDNipqcHV/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-4925542728249376344</id><published>2009-07-27T22:49:00.001-07:00</published><updated>2009-07-27T22:49:21.320-07:00</updated><title type='text'>To query the local object context</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;When faced with the dilemma that what if I wanted to insert something and before I actually saved the changes into a persistent storage (database) by calling SaveAllChanges() method on the data context, I wanted to do a select, and also I wanted to make sure that this select is done on the just inserted objects, what should I be doing?&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Well generally we write a generic method that gets all the records for a generic object. it looks like this:&lt;/p&gt; &lt;font size=&quot;2&quot;&gt;   &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;IQueryable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;lt;T&amp;gt; result = &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;null&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;;&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; type = &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;typeof&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;(T).Name;&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;//ObjectQuery query = entities.CreateQuery&amp;lt;T&amp;gt;(type);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;    &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;ObjectQuery&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; query = Context.CreateQuery&amp;lt;T&amp;gt;(type);&lt;/font&gt;     &lt;p&gt;result = (&lt;/p&gt;   &lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;IQueryable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;lt;T&amp;gt;)query; &lt;/font&gt;    &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; result;&lt;/font&gt;&lt;/font&gt;   &lt;p align=&quot;justify&quot;&gt;This will only query into the database. So if you have just recently inserted some records, but haven&#39;t yet committed them, they won’t appear in the results. &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;However, if we provide another method (an overload perhaps) that handles local objects, this would be possible. When I say local objects, I mean objects that have been inserted into the Object Context and yet not been persisted into the database. this method would look something like this:&lt;/p&gt; &lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;     &lt;p&gt;IQueryable&lt;/p&gt;   &lt;/font&gt;&lt;font color=&quot;#000000&quot; size=&quot;2&quot;&gt;&amp;lt;T&amp;gt; result = &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;null&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;;&lt;/font&gt;&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; type = &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;typeof&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;(T).Name;&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;from&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; stateEntry &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;in&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; context.ObjectStateManager.GetObjectStateEntries(&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;EntityState&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;.Added |&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;EntityState&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;.Modified |&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;EntityState&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;.Unchanged)&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;where&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; stateEntry.Entity != &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;null&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; &amp;amp;&amp;amp; stateEntry.EntitySet.Name == type&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;   &lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;select&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; stateEntry.Entity &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;as&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; T;&lt;/font&gt;&lt;/font&gt;   &lt;p align=&quot;justify&quot;&gt;This way we give the option to the user of the API to choose which kind of select he wants to fire. A local one or one on the database.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/4925542728249376344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/4925542728249376344'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/07/to-query-local-object-context.html' title='To query the local object context'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-7995693621210610348</id><published>2009-07-14T10:58:00.001-07:00</published><updated>2009-07-14T10:58:10.708-07:00</updated><title type='text'>Entity Framework, Business Objects and Beyond…</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;Back during the RMI days, we used to generate skeleton (henceforth referred to as skel or skels) and stubs for all long range service communications… Yes… WCF has its roots there and perhaps further into the past…! Details available &lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmi-arch2.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Looking at it from an architectural perspective, the data contracts were designed in such a way that the changes are minimal because every change in the stub would have to trickle down all the way to the client.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;We have come a long now and Service Oriented Architecture is something that must be considered in any well behaved and decent enterprise application. In an environment such as this, I wouldn’t ever suggest having client dependencies on any 7 letter word starting with an ‘s’ ending with an ‘e’ and having ‘ervic’ in between.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;We should think about providing all client apps independence so that any server / database / service changes do not affect the client… to a great extent…&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Now there is a big discussion going on across the Internet about whether business objects should be separately created or should we treat EF entities as business objects. After all that’s what they are. Business Objects carry data from the client to the server and back and that’s what EF entities do… really really well… with all those amazing features such as state management, change tracking, yadda yadda… “straight out of the box” as they call it…&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Well couldn’t I agree more. But wait… entities are created from the database right…? using the EF Designer…?”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Yes… and you could create in a number of other ways…”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Well… doesn’t that mean that the design of my business objects would be dictated by the database design?”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Of course not… Hell no… it is not necessary that you have to import all the entities from the database straight… of course you have the choice to customize them… manually…”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Hmm… That’s nice… so now I can create my business objects with inheritance and everything just as I want them to and then map it to my database… True Object Relational Mapping…”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Umm… Wait… did you say Inheritance… well you have that exception… you see the entities are already inherited from ObjectContext. And since there is no true multiple inheritance… you have that constraint… At least not in Framework 3.5… I don’t know if that would be available in Framework 4.0 either…”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Ok… so what if the structure of the entities change…”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Well all you have to do is regenerate the proxies and you are done…”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Umm… new proxies…? Do you mean a change in the data contract…? what if I am not consuming the change… Like I have first name and last name in one of my screen and I don’t need the middle name although, i need it somewhere in the server… Do I still have to break the data contract…?”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Err… Yes…”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Precisely why you should not be using Custom Entities or EF entities as business objects. You might be able to solve all your problems using partial classes and all code customizations… But end of the day, you are breaking the dependency rule.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;There’s a reason why they call it a Data &lt;strong&gt;&lt;font size=&quot;4&quot;&gt;Contract&lt;/font&gt;&lt;/strong&gt;. &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;The solution would be to create a separate business objects layer and then map your business objects with the EF entities. There are a couple of really smart implementations available. One of them could be implementing the &lt;a href=&quot;http://www.c-sharpcorner.com/UploadFile/rmcochran/ObserverPatternVideo03072009184135PM/ObserverPatternVideo.aspx&quot; target=&quot;_blank&quot;&gt;Observer Design Pattern&lt;/a&gt; so any change could be tracked and reacted to.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Speaking of which I just discovered a &lt;a href=&quot;http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/5/6/7/4/E2EBeckmanMeijerRx_2MB_ch9.wmv&quot; target=&quot;_blank&quot;&gt;good video&lt;/a&gt; in which Eric Meijer talks about the Reactive Framework. Definitely worth a watch.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/7995693621210610348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/7995693621210610348'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/07/entity-framework-business-objects-and.html' title='Entity Framework, Business Objects and Beyond…'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-7634746062190005849</id><published>2009-07-07T10:11:00.001-07:00</published><updated>2009-07-07T10:11:06.021-07:00</updated><title type='text'>“Open in new tab” hangs IE 8</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;I have been facing this problem for some time, and to tell you the truth, it gets a little embarrassing when if you are trying to show something to a larger group.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;All you need to do these days, is Bing it and I got &lt;a href=&quot;http://social.msdn.microsoft.com/forums/en-US/iewebdevelopment/thread/b09c11e2-a167-40e6-b8b6-ba25749c5b6a/&quot; target=&quot;_blank&quot;&gt;this&lt;/a&gt;. But this is with IE 8. Heck I thought why not give it a shot. And what do you know. It works with IE 8 too.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/7634746062190005849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/7634746062190005849'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/07/open-in-new-tab-hangs-ie-8.html' title='“Open in new tab” hangs IE 8'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-1857562095174100955</id><published>2009-06-03T23:55:00.001-07:00</published><updated>2009-06-03T23:55:10.481-07:00</updated><title type='text'>Function Import and loading of referenced data</title><content type='html'>&lt;p&gt;Why do Entity Framework Function Imports do not have eager loading? Because when you use Entity SQL or regular Object context to retrieve data, it is a live connection. So whenever you say eager loading enabled, it gets the data from the database using the live connection. But if you want to do it using Function Import, EF doesn’t know where to get the data from, since the stored procedure that the function import maps to, doesn’t get that data. Perhaps in the later versions of EF, the team might add the feature which can mix and match the object context and the stored procedure to get the required data. But as of now it is not possible. &lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/1857562095174100955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/1857562095174100955'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/06/function-import-and-loading-of.html' title='Function Import and loading of referenced data'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-8562347179346969102</id><published>2009-05-30T00:26:00.001-07:00</published><updated>2009-05-30T00:26:56.015-07:00</updated><title type='text'>Does not have a valid user</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;“Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;You are sitting at home, working on your work laptop, you have a deadline to meet, give an entity relationship diagram for your technical specification document for the module you are working on. So you decide to create a temporary database on your machine itself and then generate a database diagram.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;You try to create the diagram and this is the error message you get. You go check the “Files” page of the database properties and it rightly contains your office alias. you refresh it and it still doesn’t work. You think it is some security / privilege issue. You check the Securities tab and everything is in order. It still doesn’t work.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;You distinctly remember it to be working when you tried it yesterday at work. It just doesn’t budge now. Wonder what’s wrong.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;The problem is you were at work yesterday which you are not now. Meaning you are not on the corporate network and you don’t have the Domain Server available. SQL Server tries to validate your credentials with the Domain Server. It doesn’t find it. If you have any means to get on to your corporate network, like RAS, perhaps, then you should and you will see it will work like magic.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/8562347179346969102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/8562347179346969102'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/05/does-not-have-valid-user.html' title='Does not have a valid user'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-2931422213790672780</id><published>2009-05-28T07:03:00.001-07:00</published><updated>2009-05-28T07:03:50.913-07:00</updated><title type='text'>Xsd to Database</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;There are times when you have to work with XML. Yes those dreadful times. Specially the times when you get data as XML. And not just master data you sometimes get transactional data in XML. Think about it. How much worse can it get if you had to work with transactional data, and sync it with the database?&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;I am working on something in that direction. Although I haven’t finalized the approach yet, but it would involve creating an xsd, converting the xsd into datasets and then moving the data into the database.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;But have you wondered how you would create a database that is similar to the xsd? Of course you won’t hand code it? Smart developers use smart tools. I found this cool tool that does it all for me. it is called &lt;a href=&quot;http://xsd2db.sourceforge.net/&quot; target=&quot;_blank&quot;&gt;XSD2DB&lt;/a&gt;. Isn’t that an intuitive name? It is available download for &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=81795&amp;amp;package_id=83743%5C&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/2931422213790672780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/2931422213790672780'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/05/xsd-to-database.html' title='Xsd to Database'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-3554349189485066768</id><published>2009-04-21T23:18:00.001-07:00</published><updated>2009-04-21T23:18:44.832-07:00</updated><title type='text'>Your user profile was not loaded correctly! You have been logged on with a temporary profile.</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;This is not a problem that I feel you would encounter on a regular basis. I think I had a unique problem because of which I encountered this one. When you install an operating system it allows you to create a profile. Now I installed the machine at home. Which means I was not on the corpnet of Microsoft which means I could not log on to the domain. So when I created a profile named after my alias, it was considered as a local profile and not a domain profile. And a folder was created under “C:\Users” with my alias name.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;I am not sure if this makes any sense or not, but hey, I am a software program writer not a network administrator. So please excuse my jargon. Anyway, when I actually logged on to the domain with my brand new operating system the next day, a new profile had to be created for the domain. Now since there was a folder already with my alias name in “C:\Users” the brand new operating system create a brand new profile with in the format &amp;lt;alias.domain&amp;gt; so now there was a “.” in my profile directory name.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;What happens is this “.” sometimes creates problems in installing certain software. I got the error message saying “There is an invalid character in the directory path of My Documents”. I checked the path and could find only one anomaly. And no &lt;em&gt;points (“.”) &lt;/em&gt;for guessing what.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;So I decided I will rename the profile directory. I straight away went to the directory and though I would rename it to something else. of course it wouldn’t let you. So I thought I would log on as a local administrator and then do it. Also I made sure that I start windows in safe mode.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;After Logging on I backup my documents, and delete the profile and assume that the next time I log on, it will automatically create the new directory for me. Guess what… Not that easy…&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;So after a long research I found out that there are registry entries out of which windows reads the location of the profile directory. So if it doesn’t find the directory at the specified location, it creates a temporary directory and logs you on with a temporary profile. And after the log on is complete, it gives you that message.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;So here is what you do to save your life. Please do this only if you have already deleted your profile and did not take backup. If you are doing your research before you have messed with your machine, please skip these steps and refer below.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Log on with local administrator account, preferably in safe mode. To boot the machine in safe mode, Click F8 during boot. &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Click Start + Run and type in regedit and then Enter. &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Open HKEY_LOCAL_MACHINE &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Open Software &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Open Microsoft &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Open Windows NT &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Open Current Version &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Open ProfileList &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Here you will see keys that belong to each profile. To find your problematic profile navigate to each key and refer to the ProfileImagePath entry on the right hand side. &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Once you find your problematic profile, just delete the key. This means delete the folder on the left hand side tree view that contains your alias in the ProfileImagePath entry. &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Restart machine.&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p align=&quot;justify&quot;&gt;There is another way you can actually backup your profile and create a new one. &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Click on “Start”, Right click “Computer” and go to “properties”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Click on “Change Settings”&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwmALUMKUYD5cNhMjMZPi-0A9sze_oZeSMkobr3sYuzjGyIaUqjPkSeBrBQYuvsSMDoYYxLeGEOzCcMhwlbg-pQY3MaFKC_17NTjaIeCF09uSaPzPOo003leDm__nkquibapS0/s1600-h/image%5B2%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGJNH_7xjbgv3SBu-SRsLtDWBcCmwDohmE4XwM7ak0S9-h9vgyFx42ZhPFzpotE-LWG2iQqDKw_VThlKPNZ0_FPPjMlT7MHie0u0T4qh0rwVNOcrSAadbYuRro9as4_KTnzqmC/?imgmax=800&quot; width=&quot;244&quot; height=&quot;154&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Go to the “Advanced” tab and click on User Profiles “Settings” button&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUH7WycEygjC5_HilrXyoENgQpIgTJBVf7XGqpYjq1VaQ_1s2ou9kKLtNjeZ2-WZ-mPdDselkSv3VGOCA8YvIDzRF8ygSLNiFdJR5BwVFfPTE-iWWHi5qHZhAETF_St2wtTBI5/s1600-h/image%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs0neIUqj1vOOYfmxwGGR_bFCRHPcUBpD8015xCvJ3qt3XoEUg2_JuA6e_X9GkYJbWw6rT3fk6cNwEO16j16TRI-ZL2bieP7zL5Yd7wKkXUaYmqeoADu7nXe1hU3hhcDRdyRta/?imgmax=800&quot; width=&quot;220&quot; height=&quot;244&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoaXjDaoDlLNW7eUvBD5wxV5CmQGev_ptxsG2TMOIKYL9_aj_xGgPCxZMKWvVzNI7O_FQs2ZQD7z9IS-vgzAYn5sNyAU6I2K67ZBaq81BZdR50KdCkTRUQx8vnKJjlVREwGgPM/s1600-h/image%5B8%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNxfgEHrJjuoUU4G5eCKb4ekNGw9P46GyKg9uSmRICYBvaavkpKTNd0T4PSYLig3i8mRYtlFRFInC28vk5_Q95d4gI8YAhjfrbJ9QzAZLIOYPcJDCn-24zKX3Z-AFdDy6Y_Cl_/?imgmax=800&quot; width=&quot;233&quot; height=&quot;244&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Change type” will allow you to change your profile type between Roaming and Local Profiles&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Delete” will delete that profile. Including the registry entries and everything.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;“Copy To” will back up your profile. It is always advisable to backup your profile from here rather than from anywhere else. Your profile contains more than you can see. Hidden Files, System Files, etc. This takes care of everything in a safe manner.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Hope this helps.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/3554349189485066768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/3554349189485066768'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/04/your-user-profile-was-not-loaded.html' title='Your user profile was not loaded correctly! You have been logged on with a temporary profile.'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGJNH_7xjbgv3SBu-SRsLtDWBcCmwDohmE4XwM7ak0S9-h9vgyFx42ZhPFzpotE-LWG2iQqDKw_VThlKPNZ0_FPPjMlT7MHie0u0T4qh0rwVNOcrSAadbYuRro9as4_KTnzqmC/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-8159687870184859229</id><published>2009-01-28T08:01:00.001-08:00</published><updated>2009-01-28T08:01:57.603-08:00</updated><title type='text'>Are you Eager? Or are you Lazy? Or are you both on a case to case basis...??</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;Entity Framework, Eager Loading and Lazy Loading, my own 2 cents. For those new to Entity Framework, we are talking about the patterns that you can use to load related objects. The strategy by which you would load entity objects that are related to the one in question. There is a &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd196179.aspx&quot;&gt;beautiful resource&lt;/a&gt; that mentions it all. I do not think there is any elaboration required in that matter. But this is not the meat of the matter.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYq9_-zl7KnnGxydPI5wNOKNtBxMSa3AQB5Uw6fdk74MOHwQILcRqbCSQ1_ht8k2vgmqM871blD8lzhWRuXiClmt2sWXDzFJi-JE8yvcoNlXqxB6w6d1zssB8NMTYD44aKKjmV/&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 0px 10px 0px 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDvvZR8hjDssAnWZdvHDZvEBqDgHpiXbKHCkzD9772bfuZcupEGlw1r5PuvLynMLbQDICoOrcLmIw2-7MlJnwZJzFGvVMdHVHMdjKCGado8UOxbkGa9mSe6A4A__R6cxKxBIUU/&quot; width=&quot;217&quot; height=&quot;244&quot; /&gt;&lt;/a&gt; How do you design an application that uses Entity Framework as a data access strategy? There are a no. of things to consider. The apparent answer all over the Internet is the Repository Pattern (ref: &lt;a href=&quot;http://blogs.infosupport.com/blogs/willemm/archive/2008/08/18/Using-ADO.NET-Entity-framework-with-the-repository-pattern.aspx&quot;&gt;http://blogs.infosupport.com/blogs/willemm/archive/2008/08/18/Using-ADO.NET-Entity-framework-with-the-repository-pattern.aspx&lt;/a&gt;, &lt;a href=&quot;http://blogs.microsoft.co.il/blogs/kim/archive/2008/11/12/data-access-with-the-entity-framework.aspx&quot;&gt;http://blogs.microsoft.co.il/blogs/kim/archive/2008/11/12/data-access-with-the-entity-framework.aspx&lt;/a&gt;, &lt;a href=&quot;http://www.simonsegal.net/blog/2009/01/13/entity-framework-repository-specifications-and-fetching-strategies/&quot;&gt;http://www.simonsegal.net/blog/2009/01/13/entity-framework-repository-specifications-and-fetching-strategies/&lt;/a&gt;). The &lt;a href=&quot;http://martinfowler.com/eaaCatalog/repository.html&quot;&gt;purpose of the repository&lt;/a&gt; pattern is &amp;quot;A system with a complex domain model often benefits from a layer, such as the one provided by Data Mapper (165), that isolates domain objects from details of the database access code.&amp;quot; All said and done, we write the repository to abstract the CRUD from the Application Layer. This way, simply put, we don&#39;t need to write separate routines to do CRUD behaviour on every entity type. The functions look something like this:&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;-------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;&lt;font size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&amp;lt;summary&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt; Returns the required querable object to the caller          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&amp;lt;/summary&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&amp;lt;typeparam name=&amp;quot;T&amp;quot;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;Generic Object&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&amp;lt;/typeparam&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;///&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&amp;lt;returns&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;IQueryable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;font color=&quot;#808080&quot; size=&quot;2&quot;&gt;&amp;lt;T&amp;gt;&amp;lt;/returns&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;private&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;IQueryable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;lt;T&amp;gt; GetTable&amp;lt;T&amp;gt;()        &lt;br /&gt;{         &lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IQueryable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;lt;T&amp;gt; result = &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;null&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; type = &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;typeof&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;(T).Name;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ObjectQuery&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; query = Context.CreateQuery&amp;lt;T&amp;gt;(type);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; result = (&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;IQueryable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;lt;T&amp;gt;)query;        &lt;br /&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; result;        &lt;br /&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;}&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size=&quot;2&quot;&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=&quot;2&quot;&gt;This routine is called like this.&lt;/font&gt;&lt;/p&gt; &lt;font size=&quot;2&quot;&gt;&lt;font size=&quot;2&quot;&gt;     &lt;p&gt;&lt;/p&gt;     &lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;////&amp;lt;summary&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;////Return all instances of type T.          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;////&amp;lt;/summary&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#008000&quot; size=&quot;2&quot;&gt;////&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;virtual&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;IEnumerable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;lt;T&amp;gt; All&amp;lt;T&amp;gt;()        &lt;br /&gt;{         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Data.Linq.&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;DataLoadOptions&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; dlo = &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; System.Data.Linq.&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;DataLoadOptions&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;();        &lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; GetTable&amp;lt;T&amp;gt;();        &lt;br /&gt;}&lt;/font&gt;&lt;/font&gt;     &lt;p&gt;&lt;font size=&quot;2&quot;&gt;And this in turn is called like this:&lt;/font&gt;&lt;/p&gt;   &lt;font size=&quot;2&quot;&gt;&lt;font size=&quot;2&quot;&gt;       &lt;p&gt;&lt;/p&gt;       &lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;IEnumerable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;Employee&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;gt; GetEmployees()          &lt;br /&gt;{           &lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IEnumerable&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;Employee&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;gt; employees = &lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;this&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;.dbProvider.All&amp;lt;&lt;/font&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#2b91af&quot; size=&quot;2&quot;&gt;Employee&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&amp;gt;();          &lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&lt;font color=&quot;#0000ff&quot; size=&quot;2&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt; employees;          &lt;br /&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;-----------------------------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Now if you see, we have one function retrieve all types of entity objects. Now let&#39;s get to the actual topic in hand. Eager loading and lazy loading. I cannot opt for any of the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd196179.aspx&quot;&gt;mentioned&lt;/a&gt; patterns, because I do not have the type of the pattern that I am going to return at design time. I have already postponed that by using Generics. Just last night I learnt from &lt;a href=&quot;http://blogs.msdn.com/dsimmons&quot;&gt;Daniel Simmons&lt;/a&gt; that Framework 4.0 they are planning to add a property to Context object in order to opt in implicit lazy loading. &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;While I am still trying to figure out a good way of working around eager loading and lazy loading, as of now (before 4.0 arrives) I am firing separate queries to get all types of related objects. And interestingly, once I fire the queries for the related objects and enumerate them, the principal object at hand gets populated with related objects. So next time you want to reference the related objects, just go ahead and use the beautiful sentence completion features such as this: &amp;quot;txtAddressLine1.Text = employee.EmployeeAddress.First().Address.AddressLine1;&amp;quot;&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/8159687870184859229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/8159687870184859229'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/01/are-you-eager-or-are-you-lazy-or-are.html' title='Are you Eager? Or are you Lazy? Or are you both on a case to case basis...??'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDvvZR8hjDssAnWZdvHDZvEBqDgHpiXbKHCkzD9772bfuZcupEGlw1r5PuvLynMLbQDICoOrcLmIw2-7MlJnwZJzFGvVMdHVHMdjKCGado8UOxbkGa9mSe6A4A__R6cxKxBIUU/s72-c" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-3934515279177576888</id><published>2009-01-15T06:56:00.001-08:00</published><updated>2009-01-15T06:56:01.186-08:00</updated><title type='text'>StyleCop and Good Code</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;So you are serious about your code quality huh... well StyleCop is a fantastic tool to ensure that. The best part is, it integrates with Studio 2008. It is simple.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Go to &lt;a href=&quot;http://code.msdn.microsoft.com/sourceanalysis&quot;&gt;This Location&lt;/a&gt;, click on downloads and download the latest version of StyleCop. As of now it is the version 4.3&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Install StyleCop. It asks you information about integration. Let it integrate with Studio for the moment.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Fire up Visual Studio&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;Click on Tools and say Run StyleCop and look at the 1001 warnings that StyleCop gives.&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Now when you use StyleCop, most of the warnings are not what you really want to work upon. Like Documentation, for instance, &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqOH7R8-DGSbZ8uP5N3mJtn7Xza1IOEa9W5I-J3dXPEXNZGk6znS88TQkdXa99w-6KN_krxrxEWAUjKR7RxK8bNHajL70sysUCV5wTMQbvHhyBJhUSaSxhuxxajaw1aQMDYVGY/&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; margin: 10px; border-left: 0px; border-bottom: 0px&quot; height=&quot;251&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijIEXcGz24rsp2ubEU1zrmbrs7ufj9TeEYF5TV5oh1F58DQEtTzQYagry7oIDDutCDqb1_JvraDEWNlKDMq8KWDtlVVojpn8lnttE9mIaFV_yC0IUi87i3QM0l6hNiU3hoWLCN/&quot; width=&quot;275&quot; align=&quot;right&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;who cares whether there is a blank space line above a comment or not...? So you can go to Solutions Explorer and click on Style Cop Settings. This will bring up the &amp;quot;Microsoft Style&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNr_FRrVQmjRvGporJhGaoVtFBeJU0HbdhwbFHWg9TEZJnfpTsYPTOIOm5WGeXAb1SWke3TlSlL_HoUuwAPxr4i7YUDjTbbLnQkiBulscWfngxxLhlZrQzAQQgSLuAbDJPMl5e/&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;337&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvZazG0GTH7n7NgcyunQRCEZuD6lQtR0OIrEXEVuQktc2p-qT5eIXTnTJggiWpOdn-f91lUEqcUqf21I9jM1BN449Jk2FYPn8eZ1gkykeRNXUf0F1DJhPflj7f-5WxkkaWWpm/&quot; width=&quot;365&quot; align=&quot;left&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Cop Project Settings&amp;quot; Dialogue box which will allow you to customize your rules set. Allow you to enable / disable rules as per your own special requirements / whims / fancies / moods... :)&lt;/p&gt;  &lt;p&gt;It is a fun little tool and I could have written more about it but then I decided that I won&#39;t spoil the fun. You guys go ahead and explore.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/3934515279177576888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/3934515279177576888'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/01/stylecop-and-good-code.html' title='StyleCop and Good Code'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijIEXcGz24rsp2ubEU1zrmbrs7ufj9TeEYF5TV5oh1F58DQEtTzQYagry7oIDDutCDqb1_JvraDEWNlKDMq8KWDtlVVojpn8lnttE9mIaFV_yC0IUi87i3QM0l6hNiU3hoWLCN/s72-c" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-953209782411550209</id><published>2009-01-08T23:15:00.001-08:00</published><updated>2009-01-08T23:15:05.631-08:00</updated><title type='text'>Entity Framework FAQ</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;Lately everyone in my team and around my bay have been talking about Entity Framework. Well since I have been an early adopter, writing my small apps using Entity Framework and fighting for it on my project, people have been coming to me to ask questions. I have been taking pride in answering them (happy to help), most of the times... until lately... since I have been working on too many things...&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;I just came across an &lt;a href=&quot;http://blogs.msdn.com/dsimmons/pages/entity-framework-faq.aspx&quot;&gt;FAQ which pretty much covers it all&lt;/a&gt; (thanks Daniel...!). I thought I will add it to my browser favourites. But then I thought that would just help me and not everyone. &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Happy to help... :)&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/953209782411550209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/953209782411550209'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/01/entity-framework-faq.html' title='Entity Framework FAQ'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-6321158596206426790</id><published>2009-01-04T02:29:00.001-08:00</published><updated>2009-01-04T02:29:40.115-08:00</updated><title type='text'>New year resolutions</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Move to domain: Focus more on domain knowledge than on Technicalities. My blog will be filled more with how a technology applies in solving a business problem rather than how to solve a technical problem. &lt;/li&gt;    &lt;li&gt;I will track my investments: All these years I have been only investing to save tax. It is mandatory to invest in Insurance linked funds and so I invested. It increased my salary a little bit. I didn&#39;t look at it from a returns perspective. After I got married October last year, I was made to realize by my investment savvy wife that saving tax is just not enough. There is potential to make our lives better and that I should. That&#39;s another reason why I love my wife so much. She brings out the best in me and makes me want to get better every day &lt;/li&gt;    &lt;li&gt;I will cut costs: Yes I have lived a lavish life. Beyond my means, beyond what a sane person should do. This year I will not put money into things that I do not have to. Every extra penny that I have after spending the constant costs, I will save. &lt;/li&gt;    &lt;li&gt;I will Make a savings Plan: Every month after I get my salary, approximately 60% of my salary goes directly into Infrastructure costs (big word...!!) Rent, Maid Salaries, car EMI, House hold expenses for mom and dad and household expenses for us are infrastructure costs. The rest of the money is slowly spent over the month on small things such as eating out and such. Since I am not keeping track of where the money is going, I end up spending more. Up-front investment is required. A savings plan is required which gets implemented as soon as I get the salary. &lt;/li&gt;    &lt;li&gt;Insurance Policies: Re-activate the LIC policy that became dormant last year. Save for the new annual tax benefit investments on a monthly basis rather than on an annual basis. It is always a fight around December when I have to make the savings towards the end of the financial year. &lt;/li&gt;    &lt;li&gt;Gym: Last entire year I was extremely irregular in gym. I need to get back into discipline &lt;/li&gt;    &lt;li&gt;Guitar: At least 5 hours of cumulative practice over a week should be good. &lt;/li&gt; &lt;/ol&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/6321158596206426790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/6321158596206426790'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2009/01/new-year-resolutions.html' title='New year resolutions'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-5202946933227773929</id><published>2008-12-17T20:21:00.001-08:00</published><updated>2008-12-17T20:21:53.798-08:00</updated><title type='text'>It&amp;#39;s all there in the cloud...!!</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;So what&#39;s this new buzz word... everyone has been talking about it... &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Essentially what we are doing is taking our applications and putting them in a cloud. Cloud meaning highly available servers which are provided by huge service providers such as Microsoft, Amazon, etc. Now since I strongly believe that it is business that drives technology, it is the business side that we need to understand first. why do we need it. I have my servers in house, I deploy my apps on my servers, I control and maintain them then why would I want it to be on servers that others control? It is like the analogy that my valuables are in my house, how can it be a better idea to go and put them somewhere else. Well the answer to that question is another question. Do you put all your money under your mattress in your house? Or is it a better idea to go and put them in the bank?&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;There are many benefits in building the applications from the cloud. Let&#39;s take cost for example. The cost of hosting an application on the cloud is just a fraction of what you will have to incur in deploying the application on one of your in-house servers. Along with it comes the maintenance cost. Employing people to maintain the Servers, business continuity planning, and so on and so forth. The list goes on. The Cloud providers on the other hand can provide you all the same services at a fraction of the cost. They work on much much larger scales. So it makes sense for them too.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Another interesting perspective is that, let&#39;s say you are an application vendor. You go and talk to a customer to sell your app. Let&#39;s say you convince the customer in buying the app. That means you have convinced one person. The person who takes the decisions. Let&#39;s say he consults a team before he takes the decision. Even in that case you have convinced that team. And most usually, the people who make the decisions are not the people who end up using your app. And there is no way for them, yet, to find out whether or not the app is good enough for them in their context. So then you go ahead and deploy the app and then start using it. Then the users, find out how much the application was worth in their context and they may or may not like it. Although this is the model we have been working on all these years, it doesn&#39;t look like a very effective model does it? &lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Let&#39;s change the scenario. Same application vendor, but this time, he has his application as a software as a service, deployed on the cloud. He just has to go and say, &amp;quot;Well you don&#39;t have to guess, I don&#39;t have to convince you. Why don&#39;t you use the application yourself for a few days and find out?&amp;quot; The users use the app, they like it fine; if they don&#39;t, well they don&#39;t have to buy it. And of course there is the &amp;quot;pay as you go&amp;quot; model in Software as a service. Just stop paying when you stop using the software.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;And the best part is you don&#39;t have to go fight it out with your IT for deployment. It&#39;s all there in the cloud...!!&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/5202946933227773929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/5202946933227773929'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2008/12/it-all-there-in-cloud.html' title='It&amp;#39;s all there in the cloud...!!'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-9025871112993670970</id><published>2008-12-13T21:19:00.001-08:00</published><updated>2008-12-13T21:19:08.058-08:00</updated><title type='text'>Hot fix for the Entity Framework Bug</title><content type='html'>&lt;p&gt;I had recently &lt;a href=&quot;http://techburps.blogspot.com/2008/11/sql-server-compact-edition-entity.html&quot;&gt;posted about a bug on SQL CE Entity Framework&lt;/a&gt;. Please note that the links mentioned in there for the bug and the hot fix are internal to Microsoft. The hot fix shall be released as a KB article in a couple of weeks.&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/9025871112993670970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/9025871112993670970'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2008/12/hot-fix-for-entity-framework-bug.html' title='Hot fix for the Entity Framework Bug'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-6169624301956401247</id><published>2008-11-26T06:14:00.001-08:00</published><updated>2008-11-26T20:43:39.675-08:00</updated><title type='text'>SQL Server Compact Edition / Entity Framework bug</title><content type='html'>&lt;p&gt;I am working on this really smart, smart client application installer. Which smartly installs other pieces of another smart client application as and when required.&lt;/p&gt;&lt;p&gt;It makes sure that only those bits are downloaded that are not already installed. So it takes care of upgrades on its own. So basically we are writing our own &quot;ClickOnce&quot; functionality.&lt;br /&gt;Why are we not using ClickOnce out of the box? Well that would require another post, but let&#39;s say we require much more granularity than what &quot;ClickOnce&quot; provides us, on this &quot;Installation Manager&quot;, and put it at that.&lt;/p&gt;&lt;p&gt;Anyways, I am doing some book keeping using SQL Server CE on the client machine to maintain account of upgrades and installations. For this I am querying the SQL Server CE database and in the process and I encounter an error that says: &lt;/p&gt;&lt;p&gt;&quot;The ntext and image data types cannot be used in WHERE, HAVING, GROUP BY, ON, or IN clauses, except when these data types are used with the LIKE or IS NULL predicates.&quot; &lt;/p&gt;&lt;p&gt;I am not even working on ntext data type. The select query goes something like this:&lt;/p&gt;&lt;p&gt;IQueryable &lt;fileinfo&gt; files = entities.FileInfo.Where(fileInfo =&gt; fileInfo.FileName.Equals(fileName)); &lt;/p&gt;&lt;p&gt;And &quot;FileName&quot; is not an ntext datatype in the entity &quot;fileInfo&quot;. It is an nvarchar.&lt;br /&gt;Interestingly, if you fire the same query on the Management Studio (SQL Version of the query of course), it works fine. It only breaks when you use LINQ to SQL or EF.&lt;/p&gt;&lt;p&gt;After a little research I find out that there is a &lt;a href=&quot;http://bugcheck/Bugs/SQLHotfix/50003448.asp&quot; mce_href=&quot;http://bugcheck/Bugs/SQLHotfix/50003448.asp&quot;&gt;bug in SQL Server 3.5 RTM&lt;/a&gt; which was incidentally not resolved even in the &quot;SQL Server Compact 3.5 SP1 English&quot;. And later there was an out of the bag release that was made to resolve this issue. So the &lt;a href=&quot;http://hotfix/search.aspx?search=958478&quot; mce_href=&quot;http://hotfix/search.aspx?search=958478&quot;&gt;Hotfix&lt;/a&gt;, cannot be installed directly. You need to uninstall &quot;Microsoft SQL Server Compact 3.5 SP1 English&quot; from Add Remove Programs before you install this hotfix.&lt;/p&gt;&lt;p&gt;Once the Hotfix is installed, your query will just work...!&lt;/p&gt;&lt;p&gt;In case if you are wondering whether you need to re-install &quot;Microsoft SQL Server Compact 3.5 SP1 English&quot;? Well, installing it back will remove the hotfix. So DO NOT DO THAT.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/6169624301956401247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/6169624301956401247'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2008/11/sql-server-compact-edition-entity.html' title='SQL Server Compact Edition / Entity Framework bug'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-25756307.post-3007928843208265336</id><published>2008-11-23T23:20:00.001-08:00</published><updated>2008-11-23T23:20:28.415-08:00</updated><title type='text'>Best RSS Feed Reader</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;My wife is a writer, and a pretty good one for that matter. Recently she went for a job interview, where she was asked a lot of questions about current affairs, and she doesn&#39;t exactly read the news regularly. So I told her she should. But she doesn&#39;t like reading the news paper, and I told her about online news. About RSS Feeds and Feed Readers.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;So which feed reader do you use. Of course every developer uses one. So what else does a developer use? Internet Explorer and Microsoft Outlook. Post Internet Explorer 7, you can subscribe to RSS Feeds using IE. you can read the posts online on IE. But the beautiful thing is every time you subscribe to a feed on IE, it nicely goes and adds itself on the RSS Feeds folder in Microsoft Outlook. This gives you the offline reading facility of course it also depends on what you are subscribing to. Some of the stuff is just not available offline. Like MSDN Magazine, which just has a one liner and a link to the actual article.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Speaking of which, &lt;a href=&quot;http://blogs.msdn.com/msdnmagazine/archive/2008/01/17/7120990.aspx&quot;&gt;MSDN Magazine is available online since January 2008&lt;/a&gt;. The MSDN Magazine is a fantastic read and is on top of my reading list every month. Some of the articles are just too good. Like for instance, this month my favorites are: &lt;a href=&quot;http://msdn.microsoft.com/en-in/magazine/dd252939(en-us).aspx&quot;&gt;The editor&#39;s note&lt;/a&gt; (which is always a pleasure to read), &lt;a href=&quot;http://msdn.microsoft.com/en-in/magazine/dd252943(en-us).aspx&quot;&gt;Thread Management in the CLR&lt;/a&gt;, &lt;a href=&quot;http://msdn.microsoft.com/en-in/magazine/dd263069(en-us).aspx&quot;&gt;Design for testability&lt;/a&gt;, &lt;a href=&quot;http://msdn.microsoft.com/en-in/magazine/dd263071(en-us).aspx&quot;&gt;Static Analysis tools for .Net&lt;/a&gt;.&lt;/p&gt;  &lt;p align=&quot;justify&quot;&gt;Other favorites on my feed reader are:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;       &lt;div align=&quot;justify&quot;&gt;&lt;a href=&quot;http://grey-orgasms.blogspot.com/&quot;&gt;Ann-Dee&#39;s Tic-Tacs&lt;/a&gt; (My wife&#39;s weblog)&lt;/div&gt;     &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align=&quot;justify&quot;&gt;       &lt;div align=&quot;justify&quot;&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/&quot;&gt;Coding Horror&lt;/a&gt;&lt;/div&gt;     &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blog.stackoverflow.com/&quot;&gt;Stack Overflow&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://channel9.msdn.com/shows/&quot;&gt;Threads watched by Channel 9 Team&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.businessweek.com/the_thread/techbeat/&quot;&gt;Business Week Online - Tech Beat&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/3007928843208265336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25756307/posts/default/3007928843208265336'/><link rel='alternate' type='text/html' href='http://techburps.blogspot.com/2008/11/best-rss-feed-reader.html' title='Best RSS Feed Reader'/><author><name>Don</name><uri>http://www.blogger.com/profile/04437435568600310421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggvdoVV_-0fc1VATz8G8Yrv3uUHoV6clOaplTcD2vag23MIQbEGPxUnb_NcEu9nCzPPhuDPGfPT2j3LYaV_rxgXZyxF09iZTYHt39uiby7UjWUtNODQ-n9LMmGzC2By8w/s220/IMG_5961.JPG'/></author></entry></feed>