When to write a custom BCS connector?

I have been asked this question several times during the last month and I have tried to shed some light on that during my session at OpenDoor Egypt. Today, I stumbled upon a good MSDN article that concisely answers this question :

Differences Between Using the .NET Assembly Connector and Writing a Custom Connector

Happy Coding :)