• Как использовать ресурсные win dll без WinAPI на C#?

    Я тоже думаю, что на других платформах нет понятия DLL и всякие DllImport для них не будут поддерживаться. Лучше воспользоваться неким ResourceExtractor для того, чтобы вытащить ресурсы и использовать уже Managed Resources.
  • Чем плох enum в C#?

    Умею. Про это я знаю и сам так делал не раз. Это наверное единственное, что можно сделать, и то это "полу"-решение, хотя используется часто. Можно конечно понавешать ещё атрибутов, но опять-таки - нужно использовать вспомогательные классы и обработки, которые будут учитывать эти атрибуты.

    Я лишь писал, что смысл критики в ограниченности семантики обычных enum.

    Вот нашёл пару ссылок:
    lostechies.com/jimmybogard/2008/08/12/enumeration-...
    www.c-sharpcorner.com/uploadfile/b942f9/creating-g...
  • Как правильно использовать N-Layer архитектуру?

    Антон, сама N-layered архитектура уже давно известна (есть даже книжка от MS - прямую ссылку дать не могу, но можно спросить у гугла "n-layered domain-oriented architecture guide with .net pdf").
    Единственно верного решения, наверное, на данный момент не существует. Проблемы с паттерном "Репозиторий" я вам описал - есть лучше разделить на CUD-объекты (ваш репозиторий) и Query-объекты - для более сложных выборок.
    Методы (SetUserValid, SetUserInvalid, SetUserFail) я думаю плодить не стоит. Ведь скорее всего у вас состояние пользователя выражено в каком-то enum, которое действительно лучше проставить в доменном объекте, на основе логики приложения.