Out of the 3 links that you have provided, one contains the best approach.
this - CRM SDK says to use this approach when you want to connect with CRM from some other application like Winform app, WPF app, website. In summary, you provide connection values through configuration and then use dlls provided by CRM to access data.
this - This is a special case in CRM. So here you are accessing some data from CRM, processing it in a service and then using that service to access processed data.
this - This document itself says that you should not use this approach. Problem with this approach is about hard coded service references.
You can find plenty of examples to start up with from CRM SDK.