Complaints Against Microsoft

Let us all admit Microsoft’s goals for the .NET framework. They want to go for the enterprise market. They target high end systems. This is the same market that Java is going after. Some people are not happy with how Microsoft has been proceeding with expanding the .NET framework.

On a positive note, .NET provides you with great plumbing. But it seems as if Microsoft is not collecting feedback from users and developers when deciding the new things they are adding to the framework. There are also complaints that .NET is becoming very bloated.

Take the ADO.NET Entity Framework for example. This is an object relational mapping. It is now Microsoft’s recommended data access solution. People think the database layer is big, maybe too big. What happened to support for LINQ to SQL? Developers want to spend time learning and using technologies that will stick around. Microsoft needs to keep an ear on the developer community.

MEF

I want to talk about this new Managed Extensibility Framework (MEF) idea. It is a library that ships with the .NET Framework 4, as well as Silverlight 4. It allows third parties to extend systems after they are deployed.

There are other technologies which implement the same thing. These include Enterprise Java Beans, Corba, Spring, and the Component Object Model. However some of these competing or legacy technologies are heavyweight. The competitors may also require a lot of developer work.

Let us discuss some of the MEF terminology. A part provides services to other parts. An export is another name for a service. An import is the service that you part uses. And a contract is an identifier.

MEF comes with an attribute programming model. You can achieve the import using constructors. That is called constructor injection. All part instances are currently implemented as singletons. Finally there is a “lazy” framework where instantiation is delayed until the value of the object Is accessed.