A resposta à sua pergunta será decidida principalmente nos pontos abaixo.
-
O seu aplicativo WPF será limitado a esses ~ 50 usuários ou haverá um escopo de aumentar a base de usuários ...
-
Que tipo de operações de gravação de leitura o usuário está fazendo. (Você realmente precisa de segurança)
-
O seu aplicativo WPF será o único cliente para esses dados (existe alguma possibilidade de o aplicativo ser portado para dispositivos móveis como o Android)
A razão por trás das perguntas é 1. se o seu aplicativo está sendo limitado a apenas ~ 50 usuários e você sabe que os usuários não são técnicos (Eles não tentarão quebrar o sistema usando entradas erradas ou tentando chamar a camada do banco de dados, por exemplo, com ataque de injeção sql) nesse caso você pode usar a chamada SP direta do seu aplicativo.
2. se os dados que seus usuários estão postando no banco de dados ou recuperando do banco de dados forem muito confidenciais e não devem estar visíveis para ninguém que esteja obstruindo o tráfego. então, nesse caso, você deve tentar ter um meio de transporte mais seguro. Uma maneira pode ser implementar o certificado SSL para acessar os dados de e para o serviço da web.
3.Se os dados precisarem ser acessados por clientes diferentes (incluindo dispositivos móveis, aplicativos da Web, etc. Nesse caso, a implementação dos serviços é sempre uma opção melhor, pois você tem a camada de acesso a dados completa separada com a segurança adequada implementada)
Espero que isso responda à sua pergunta.