They are: (1) in-process server (DLL). (2) out-of-process server (EXE). The difference between them is a rather big topic (though well documented, for instance: http://msdn2.microsoft.com/en-us/library/ms683835%28VS.85%29.aspx[^], http://www.amazon.com/Inside-Microsoft-Programming-Dale-Rogerson/dp/1572313498/ref=pd_sim_b_title_2[^], http://www.amazon.com/Essential-COM-DevelopMentor-Don-Box/dp/0201634465[^]) Roughly speaking you have (on the same local machine) a performance gain whenever you use in-process servers (DLL), while you gain reliability (client crashes doesn't make the server too and viceversa). :)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
[my articles]