Pros:
- same memory space
- calls to the methods are faster. This is only significant if you are making more than hundreds of calls to the server.
Cons:
- serious errors in the .dll will take the client down since the client and COM server share the same process address space.
- cannot be deployed remotely.