es un lenguaje muy facil de aplicarle ingeniería, de hecho lo odio porque se supone de pago y es facil de robar los códigos.
El acceso al desarrollo en lenguajes soportados por la plataforma .NET es completamente gratuito, sin ir más lejos puedes usar hasta PowerShell, herramienta que ya viene integrado en el sistema operativo para desarrollar códigos simples y hasta aplicaciones completas de WinForms y WPF/Xaml. Lo único de pago es la edición de la IDE Visual Studio que incluye características profesionales, pero Microsoft también distribuye una edición totalmente gratuita (Community Edition) y completamente válida para satisfacer las necesidades de la gran mayoría de programadores que no desarrollen en un grupo de trabajo de forma profesional.
Con respecto a descompilar un ensamblado .NET, todo depende, en realidad no tiene por que ser tan facil si usas un buen ofuscador para .NET y que esté actualizado a su última versión. Cierto es que cualquier usuario sin ningún tipo de conocimientos de ing. inversa puede usar de4dot (lo menciono por que debe ser la herramienta más usada para desofuscar), pero esta no soporta todos los ofuscadores ni las variantes de ofuscación de las versiones más recientes de dichos programas, así que al final si uno se protege bien, estando actualizado, el "atacante" necesitará tener un mínimo de conocimientos de ing. inversa, y eso ya estrecha bastante el círculo para que "roben" o no tus códigos.
Saludos!