In .NET si può fare tranquillamente, come più o meno in qualunque linguaggio general-purpose.