In .NET, enums are a heavily used component of the framework. I personally love the use of enums because it is a strictly typed datatype and increases code readability significantly. Since it is also supported in the Entity Framework, I find myself dealing with a lot of entities that contain enum-based properties. Consequently, this bleeds into the design of my view models, which will often “inherit” the properties’ datatypes of the entities they are based on. This is in particular true for view models that are part of an HTML form and will therefore be sent back to a controller method.