It's never told to distribute complete implementation at client, due to following shown reasons:-
1) Anyone can use ILDASM and decrypt your logic.
2) It is a bad architecture move to have full implementation as client side as any changes in implementation on server side you have to redistribute it again. So the best way is to have a interface or SOAPSUDS created meta-data DLL at client side rather than having full implementation