Saturday, August 29, 2009

Facebook or Twitter

Facebook along with MySpace have been the leaders in social networking portals. Facebook however is trying hard to bridge the gap between them and fame of twitter.

Recent developments in Facebook were paradigm shift to their original approach, they revamped their presentation and this time they concentrated more on status messages just like twitter but little more powerful. Twitter, however has been a micro-messaging tool which became popular cuz of its simplicity and yet being powerful. This internet evolution has become one of the most significant modern trends since it has affected the way in which we do business and communicate with peers.

In last week news Facebook has launched a twitter-app, where in Facebook user can automatically syndicate their posts to Twitter, read more here. When Facebook made an attempt to acquire Twitter, and failed there was a rumor in market that Facebook will take different route to go the Tweet Way. Let’s see how much they will succeed.

Wednesday, August 19, 2009

Power of WCF

WCF (Windows Communication Foundation) is Microsoft's unified programming model for building service-oriented applications that communicate across the web and the enterprise. WCF clearly demarcates development and implementation. There are various Hosting options available and is independent of the run-time environment in which the service is deployed, they are:-
  • Self-Hosting in a Managed Application
  • Managed Windows Services
  • Internet Information Services (IIS)
  • Windows Process Activation Service (WAS)
All the development part lies in the code while the implementation like the binding can be handled in the config file as Microsoft has abstracted a lot of plumbing work reducing the implementation time. By this way developer can concentrate on core logic and WCF takes care of data delivery in the most reliable, secure and high performance fashion depending on situation.

WCF has an integrated Logging mechanism that helps you log traces. In other technologies developer has to write custom solution but in WCF, all that you need to do is to enable trace by changing the config file.

To achieve security mechanism in WCF you have 3 implementation choices:

  1. Transport: Transport security depends on the mechanism that the binding you've selected uses.
  2. Message: Message security means that every message includes the necessary headers and data to keep the message secure.
  3. TransportWithMessageCredential : This choice uses the transport layer to secure the message transfer, while every message includes the rich credentials other services need.
After the launch of modeling edition I feel it gets easy to delegate work in a team. An architect can create a Data Contracts/Relationships, Message Contracts and Service Contracts. After that only the facade layer has to be made with some tweaks here 'n' there. In this way lot of architecture intricacies can be hidden from developer.

WCF does not replace MSMQ, COM+ or Web Services, it provides a declarative infrastructure for all forms of communication to and from the Windows platform. Using WCF, communications happen at designated service endpoints, and an endpoint can implement different protocols (such as Web Service, WS-* SOAP style services), encodings (such as Text, Binary & MTOM), and transports (such as MSMQ, Http, etc.).

With .net 3.5, it becomes even easier to provide RESTful endpoints (JSON, POX, RSS and ATOM). So the real powerful leverage shall be building services that can be consumed by a ASP.net web client as JSON while simultaneously being accessed by a business partner through a php web client using the SOAP protocol (with its full complement of WS-* implementations such as WS-Security, WS-ReliableMessaging, etc.)

Thursday, August 13, 2009

Burden translating Entities to DTO

Well we finished a major sprint 2 months back and we were on a consolidation phase this sprint, solving browser issues, redesigning some pages, working on performance and also looking for some customer centric use-cases.

Ours is a n-tier Architected Enterprise Product which deals with wcf along with nHibernate. At that juncture I did give a lot of thought with one my junior that we end up wasting a lot of time translating Service Entities to our DTO.

I thought of writing a utility with the help of reflection which shall copy the members from one type to another. But then we dint took it up due to various reasons. Both the types should have same property name and type. In our scenario there are plenty of cases where in property names are similar but there are lot of properties which we made nullable in DTO's.

Last week Rick Strahl also wrote about it and it was good to read that there are more people who face similar problems. 3 years back we wrote a utility that shall browse 2 different entities and after maping properties manually used to generate the translaters that was the closest we got to solve the menace.

Am still in thinking mode...

Wednesday, August 12, 2009

Combo of Linked-In and Facebook! You game?

Almost 2 years back when we were about to make first implementation of our recruitment based product we heard networking sites picking up. We at that time did had a LAMP based online community product Campus-Connect, which dealt with campus crowd. Our new product primarily focussed on Recruitment Management for Corporates and Consultants.

Our role models were Maxhire and Taleo, which captured majority of the online recruitment market in US. When facebook became so popular, Taleo aired that they will combine with facebook and give some kind of service. The idea attracted me a lot and i did write a spec of a feature for our product, which never got implemented for some silly reasons.

In recruitment world, Head-hunting is supposed to be the toughest job and getting leads is very costly and hit-ratios are not that exaggerating. So I thought of mining and churn out the leads for each candidate along with some tips to talk depending on the type of lead.

I am still bullish in making something like it... perhaps this is the time I should start working on it.