Ответы пользователя по тегу .NET
  • Помогите определиться с архитектурой библиотеки управления цветом на C#

    @lair
    Стандартное решение проблемы «Для одних задач будет оптимальнее использовать в качестве основного представления цвета RGB, в других LAB, в третьих LCh » — это три различных набора классов (с общими базовыми интерфейсами), по одному на цветовую модель. По аналогии с тем, как в ado.net сделан доступ к различным СУБД.
    Ответ написан
    Комментировать
  • На сколько «дружат» Java и C#?

    @lair
    Вообще не дружат. Надо отдавать себе отчет, что dll, создаваемая C# — это не dll в прямом смысле слова, это сборка, она не экспортирует функций.

    stackoverflow.com/questions/10977200/calling-c-sharp-dll-from-java
    Ответ написан
    9 комментариев
  • Как переделать аутентификацию в asp.net mvc3?

    @lair
    Формировать контекст безопасности при каждом http запросе мне кажется неразумным с точки зрения производительности.

    Зато разумно с точки зрения безопасности. Можно кэшировать.

    Альтернативный вариант — использовать Session_Start в Global.asax. Если ли в этом случае противопоказания?

    Да. в какой-то момент получите устаревшие данные.
    Ответ написан
    4 комментария
  • Как переделать аутентификацию в asp.net mvc3?

    @lair
    Идем в исходники.

        public IPrincipal User
        {
          get
          {
            if (this.HttpContext != null)
              return this.HttpContext.User;
            else
              return (IPrincipal) null;
          }
        }
    


    Здесь, в общем-то ответ сразу на оба вопроса. Вот типичный пример того, что с этим делают.

    Другое дело, что я вам искренне не советую так делать, а советую пользоваться сразу Windows Identity Foundation, в которой любая необходимая вам вещь хранится в так называемых claim, привязанных к текущему принципалу.
    Ответ написан
    Комментировать
  • Нужна ли прослойка между Entity Framework и сайтом?

    @lair
    Пункт 0: используйте EF CodeFirst или POCO templates, тогда у вас будут «чистые классы» in the first place.
    Пункт 1: все нижесказанное верно до тех пор, пока у вас контроллер работает напрямую с DAL, а не со слоем бизнес-логики или сервисов.

    Есть таблица dbUsers в базе. В EF создаются классы dbUsers. Неким образом создается класс User. Слой данных работает с объектами EF а пользователю (контроллеру) отдает красивые чистые объекты класса User без лишней информации.

    Это лишняя прослойка.

    Есть таблица dbUsers в базе. В EF создаются классы dbUsers. Слой данных напрямую работает с этими объектам и передает их в контроллер. Т.е. контроллер работает с объектами типа dbUsers…

    Это вполне нормально.
    Ответ написан
    Комментировать
  • Отчеты об ошибках в .NET-приложении?

    @lair
    Ну вообще, у MS есть штатное решение под общим названием Dr.Watson. Видели когда-нибудь стандартное окно «Отправить сообщение об ошибке»? Вот это оно. Можно зарегистрироваться в Microsoft и получать эти сообщения, анализировать их, и выпускать патчи.

    Но вообще, я хочу сказать, что «не требуя подтверждения от пользователя», вместе со всем вами перечисленным — это нарушение privacy. Даже MS спрашивает, отправлять ли такие отчеты.
    Ответ написан
    2 комментария
  • Как разделить веб-сервис на классы?

    @lair
    Хочется отделить мух от котлет и не сваливать все в один класс, но не хочется публиковать отдельные сервисы для каждого плагина.

    Вот эта посылка — неверна. Если уж вы хотите разделить ответственность между классами, то и между сервисами ее неплохо бы разделить. Low-cohesion-сервис — не меньшее зло, чем low-cohesion-класс.

    На клиенте такой способ позволяет добиться желаемого — там автоматически генерируется несколько клиентов для одного сервиса, но на сервере все равно все сваливается в один класс т.к. он реализует все интерфейсы.

    Ну вообще (если отвлечься от SRP), имеем дело со стандартным шаблоном facade. Ваш «один класс на сервере» — это фасад, он ничего не делает, а просто перенаправляет вызовы в соответствующие конкретные классы.

    Но, повторюсь, это не ваш случай.
    Ответ написан