Subscribe: Ideas and Coffee at 3.47 AM
Added By: Feedage Forager Feedage Grade B rated
Language: English
blog  context  data  database  entities  entity framework  entity  framework  love  microsoft  might  new  objects  static  time 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Ideas and Coffee at 3.47 AM

Ideas and Coffee at 3.47 AM

Some half baked beans... Tao, Zen and the art of converting coffee into ideas...


A call to all who love Microsoft

Wed, 15 Sep 2010 15:58:36 GMT

I listen to podcasts. I have been listening to them for about 5 years or so now. Perhaps a little over. My first few were podcasts were HanselMinutes by Scott Hanselmann and DotnetRocks by Carl Franklin and Richard Campbell. Throughout these 2 have been my favorite. And the single reason is that they enjoy their conversations the most. It shows that they love technology, they love the products and the enthusiasm is all over the show. I love these shows because I share the enthusiasm with them.

Microsoft has taken geekhood to a different level. I love playing with gadgets and Microsoft with its big 2004 / 4.0 releases gave me so many gadgets to play with. And it is coming up with more. Very soon you will be able to game at home… on the way to work… and then on your work PC starting exactly where you left off

I am an architect. I wear formals and go to work every day. I have nicely done short hair and wear those sophisticated horn rimmed glasses. I am a Commerce Graduate with Accountancy as major. And it took me 10 years to realize that even I might be a geek. So how do you know you are a geek? When a new windows comes out, the first thing you check out is the perfmon? When the new Windows Phone 7 looks sexier than Halle Berry? When the new version control system looks more enticing than pornography? I don’t know, to every geek his own.

I love the Hanselminutes and DotnetRocks because I share the enthusiasm with them. The problem is we rarely find people in real life to share our enthusiasm. Probably I am hanging out in all the wrong places.

Even the Microsoft User Group Hyderabad has become just a website. I remember back in the day, when I worked for Wipro Technologies, the community was so active, they had to form a core group of people to administer the administration. All I see now is announcements every now and then. I don’t see any activity and I sure as hell can’t talk to anyone.

So I have formed a linked in group. The intention is to provide people who share the passion for Microsoft Technologies and live in the Hyderabad Area, with a platform to meet up. Linked in just acts as a platform to bring people together. So although everyone is welcome, the real discussions would be happening in bars, coffee shops and house parties and not on the discussion forum.

If you feel how I feel and live in Hyderabad, perhaps you should click here and hang out with the homies.

Episode 0: Shabby’s Nightmare

Thu, 05 Aug 2010 09:53:54 GMT

There was a time when I used to hate reading. I still do. But not everything. And thankfully what I like reading, I made a career out of… More here…

The Underscore Naming Convention for Private Variables in C#

Wed, 04 Aug 2010 06:40:17 GMT

Many a time you must have come across the underscore naming convention while reading books or articles on any C# based Microsoft technology. Although as per the standard naming convention private variables should be camel case. But you still see they start with an underscore. Such as “_categoryManager”. Have you ever wondered why?

The secret lies in the intellisense… More here…

Technorati Tags: ,,,

Outlook and live messenger stop working simultaneously

Mon, 02 Aug 2010 17:12:34 GMT

Error Message: “There was an error synchronizing your folder hierarchy. Error: 80041004”.

I don’t write such blog posts too much these days. I used to write these “type” of posts till a few months back. By these “type” I mean stuff that we go bump in the dark of the night and can’t figure out a solution over the internet. Silly stuff... I used to post these after I solved them back then. I don’t any more to keep my posts interesting. But this is an interesting discovery and I can’t and mustn’t resist. So I will try to keep it succinct. More here…

Talking to Master Yoda… or Master Oogway…

Fri, 30 Jul 2010 12:03:54 GMT

“Why do you always start off a project with a database design?”, Vivek asked. It was around(image) 10.30 PM Monday. Vivek had come on Google chat, first time ever. His girlfriend, apparently, wanted him to talk to me. I don’t remember talking to Vivek on any IM before that day. I was telling him about a personal project I was working on. I had told him about 2 more projects that I had started in the past, which are on the verge of completion. And every time he had heard me saying I am working on the database. More here…

Visual (pronounced as ‘versatile’) Studio 2010 Productivity Power Tools

Fri, 30 Jul 2010 12:02:21 GMT

“Only the naive use no tools. The enlightened one knows exactly which tool is to be used”. And behold…!!! the tools just got smarter, more intuitive with the Visual Studio 2010 productivity power tools. I am not going to… More here…

Talking the old fashioned way

Fri, 12 Feb 2010 10:58:00 GMT

The internet has given mankind something that could make him an equivalent to the Gods. The easily accessible knowledge repository that it is, is just the tip of the iceberg. There was some research somewhere that the mental development of apes and humans is equal until the human child learns to talk. Internet is perhaps in the communication world what the nuke is in the weapons world.

Read More…

Knowledge truly is the ultimate power…

Tue, 05 Jan 2010 17:55:35 GMT

They say that knowledge never goes a waste. Although sometimes you might feel a little “not so fruitful” about certain things that you might have done in the past or things that you are doing currently, but trust me, if you are willing to wait a while, you will realize that it will come handy.

Read More…

Security Essenitials and Defender

Sun, 03 Jan 2010 16:23:19 GMT

Note: I am slowly moving my blog to Please check my blogs there and update your RSS feeds. Thanks.

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.

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.

The 32 bit is downloadable here and the 64 bit here.

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…

My new machine... Beginning of my command stations...

Sat, 02 Jan 2010 19:30:00 GMT

Note: I have a new blog and I am posting more frequently there than I am here.

I remember I had just started working for Microsoft. One day I was going out to help my good friend David. He happens to be working for Microsoft and he is into technical documentation. One thing led to another and I was telling him that some day I would like to write a book and build a "command station" - a room full of computers.

A year or so passed by and there was still no computer. Well a no. of things happened in the meantime. I met the love of my life and just when I was about to buy my computer, she badly needed a laptop for her job. I bought her the Dell Inspiron. My savings for my first computer went out of the windows. Then I started saving for host of other things and later I got married and went for a fairly expensive life long vacation. Yes, as a wedding gift I gave her a holiday package that would allow us to go for a honeymoon every year.

Today I bought that computer that I have been planning for a year and a half. Nothing too jazzy I would say, but its the beginning. Here are the specs.

Processor: Intel Pentium Core 2 Quad 2.66 ghz
Motherboard: Intel G45 SG
Graphics Card: ATU Radeon HD 4350 1 GB DDR II RAM, DirectX 10.1 support
Keyboard: Natural Ergonomic Keyboard 4000
Monitor: 18.5" wide screen from ACER.

Rest of the specification is nothing to be mentioned. The usual standard mouse and a dual fan cabinet, UPS. I could have gone for a better monitor too, but I guess I didn't care too much about the monitor either. I am planning to buy a monitor or 2 more. So I guess I will buy better ones then.

On this box goes my Window 7 Ultimate, signature edition. I have been waiting to install this for quite some time. I have just test driven it (on my new box) for a couple of hours and I already like it. Although I was running windows 7 on my official Microsoft Laptop, so its not that I am new to it completely. Check out the search feature. The damn thing is quite intuitive.

And what do you know, this blog comes from my new machine. I will be posting photographs soon.

Wordpress is amazing… Blogger might be overrated…

Thu, 31 Dec 2009 05:16:16 GMT

You are new to blogging… You are planning to start a blog… There is a very good chance that you might end up having a blog on blogger… Or you could have a blog on geekswithblogs or if you are doing something in .Net Technologies, the probability of which is quite high since you are reading this blog (me being on .Net) then you might have a blog on

But if you are looking for some serious options… I would suggest you guys try out wordpress. It is as easy to create a weblog and there is barely anything that you won’t find here. It really is an ocean and it might take a couple of weeks for you to explore everything.

I just created mine. And I have to tell you, I am quite blown away.

Persistence Ignorance… Why…?

Thu, 31 Dec 2009 05:11:12 GMT

How do you plan your architecture when you are using entity framework? Do you write a data access layer? Or do you just go ahead and start writing queries on the object context. What happens if you want to use stored procedures? Why stored procedures you ask? well a no. of reasons. Some performance, others just a plain ol’ legacy database with existing stored procedures. But that’s a little out of context at the moment.

You may go ahead and start using your entities as business objects. But there’s a catch. Let me take a step back. Entity Framework entities are just plain ol’ classes with a special interface implementation, which maps the properties of these classes with the database tables and columns. So essentially, there’s a direct mapping of these classes with the database.

Now let’s add a few parameters and make the situation a little more complex. Let’s add a WCF layer to the design.  As far as the WCF Service is concerned, it should not care about who’s accessing it, because it is the Service. It exposes a few contracts and doesn’t care who uses them. It receives the requests and services them.

But to service requests it has to pass data around. Now if the data is of primitive types, it’s fine, but if it is not, if it is of complex serializable type, then we would have proxies running back and forth across the wire.

This proxy types, while being independent of the clients, should also, ideally be, free from any other independencies on the back end. If you are using EF entities, then your data entities are dependant on the database. So if you change your database schema, you would have to re-publish your proxies. Break the data contract and you have to recompile your clients. That, is not a very pleasant thing to do.

I am not sure how I would get around this problem myself. As of now what I can think of is to create my Business Objects / proxy data classes with behavior and everything and map them with the entities. These business objects should not be heavy, should be serializable, should be free from dependencies from either side and should be capable to consume any changes in the database schema. We call them business objects because business should be the only thing it should depend on. If there is a database change, the mapping layer should be able to consume these changes so we don’t have to re-publish our proxies. The data contract should not break.

So then, the question arises, whey use entity framework at all. One of the big benefits that I get out of Entity Framework is that I don’t have to hand code my entities. Well that’s a question I cannot answer at this level. It has to be answered on a case to case basis. Entity Framework gives you some amazing features besides the code gen and if they matter, by all means go for it.

However, Microsoft, I believe has recognized this “problem”, and is working on the solution. .Net Framework 4.0 would come with Persistent Ignorant entities. They introduce the capability to interact with the database without having a dependency on the schema and also without losing any entity framework capabilities. In fact they are introducing a couple of other capabilities like change tracking in POCOs and lazy loading.

Exciting times lie ahead…

Joomla… or should it be Zoomla…

Tue, 29 Dec 2009 15:13:00 GMT

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.

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.

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.

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 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.

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.

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.

I have mine ready in 1 day. It is called 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.


Tue, 29 Dec 2009 04:15:00 GMT

Never thought I would feel so helpless without a machine. I do have a machine at work, but can’t do much there. It is a work machine after all. Got addicted to the Lenovo T60, the Iron Box (we used to affectionately call it) so much, suddenly I miss it.

The most difficult is to pacify the whims of prototyping something or churning out some whiz bang code quickly. It is when you can’t do it, that you realize how often you used to do it.

Guess I will have to get my hands on a new machine quickly.

Visual Studio 2008 Unit tests… Error loading *.vsmdi: *.vsmdi

Tue, 22 Sep 2009 13:01:38 GMT

I got this error. I got no information on the internet as to how to get around it…

3 hours earlier:

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.

30 minutes earlier:

My test cases won’t run. the error I get is  “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.

10 minutes earlier:

I built the test project. I got an error. “Project file contains ToolsVersion="4.0", which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion="3.5".”

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.

After this all I had to do was close the project and open it and then run all my tests in the solution.

They were all still green. Love it when that happens…!!

UML 101

Wed, 09 Sep 2009 03:13:31 GMT

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.   Aggregation and composition: Generalization: Kinds of dependencies: Use case diagram: Kinds of Use Case relationships: Activity Diagram: Sequence diagrams and Activation: Component Diagram: Deployment Diagram: Packages and relationships: [...]

Dots instead of spaces in Studio 2008 while running test cases…

Sat, 22 Aug 2009 09:51:16 GMT

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.

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.

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.

Discovery: Ctrl + E + S

Left outer join in Entity Framework

Tue, 18 Aug 2009 20:04:46 GMT

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.

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.

  1. Left Outer Join in LINQ
  2. Left Outer Join using Inverse Navigation Property
  3. DefiningQuery Element
  4. Left Outer Join in LINQ to SQL
  5. LINQ to Entities with Multiple Left Outer Joins

I am sure these should resolve all questions related to Left Outer Joins.

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.

Hope this helps.

Singleton Vs. Static Class

Thu, 30 Jul 2009 04:40:01 GMT

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?”

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.

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 (image) 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.

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?

I wonder.

To query the local object context

Tue, 28 Jul 2009 05:48:53 GMT

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? Well generally we write a generic method that gets all the records for a generic object. it looks like this: IQueryable result = null; string type = typeof(T).Name; //ObjectQuery query = entities.CreateQuery(type); ObjectQuery query = Context.CreateQuery(type); result = ( IQueryable)query; return result; This will only query into the database. So if you have just recently inserted some records, but haven't yet committed them, they won’t appear in the results. 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: IQueryable result = null; string type = typeof(T).Name; return from stateEntry in context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Unchanged) where stateEntry.Entity != null && stateEntry.EntitySet.Name == type select stateEntry.Entity as T; 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.[...]