Да! Я использую DDD в своих проектах (но я предвзятый !)
Помните, что Domain Driven Design предоставляет рекомендации , а не строгие ответы. Только после экспериментов вы поймете, какие аспекты работают для вашего конкретного проекта.
На ваши вопросы:
1 - Вы можете использовать структуры - но могут быть технические ограничения , которые не позволяют использовать их. Например, у вас могут быть объекты, ссылающиеся на тысячи объектов-значений, которые имеют одинаковые значения. В этом случае может быть лучше использовать объект flyweight , чтобы уменьшить использование памяти .
2 - я бы предложил использовать интерфейсы (например, IEntity , IValueObject , IAggregateRoot , ISpecification ) , Generics и LINQ могут помочь в решении технических проблем, но менее полезны с точки зрения design .
Я создал [бесплатную библиотеку .NET] [2], специально ориентированную на DDD, которая может найти идеи / вдохновение. [Подробнее об этом здесь.] [3] (проект мертв)
Мне искренне интересно: Какие аспекты DDD, на ваш взгляд, принесут вам пользу? «Управляемые доменом» аспекты или аспекты реализации?