• Как реализовать аутентификацию с помощью внешнего провайдера (ВКонтакте) в ASP.NET Core?

    Дмитрий Быченко добрый день! Решаю такую же задачу - авторизация через ВК в приложении ASP.NET Core. Сначала смотрел в сторону Middleware (есть отдельный пакет на гитхабе Duke.Owin.VkontakteMiddleware, но он для ASP.NET MVC 5). Пытался реализовать что-то аналогичное самостоятельно, смотря исходники для метода UseFacebookMiddleware() и некоторые реализации для Facebook/Google в сети. В результате получился middleware, он даже работает (формирует запрос), но каким образом он подставляет строку для первичной авторизации - я пока так и не понял. Поэтому прихожу к выводу, что для ВК лучше использовать обычный обмен по http (на сервере формировать запрос вручную, подставлять нужные параметры и взаимодействовать с VK API) - таким образом можно лучше контролировать процесс обмена данными (особенно параметры запроса).
  • Как использовать динамичный DbSet в Entity Framework?

    Smilleey добрый день! Почему для каждой валюты используется отдельная таблица (сущность)? Всего валют 200 с чем-то... Через год Вам понадобится поддержка еще 50 валют - что будете делать? Добавлять 50 одинаковых таблиц?
  • Как вызвать api контроллер из mvc контроллера?

    Андрей - поддерживаю. Alina Barkova, из метода действия одного контроллера вызывать метод действия другого контроллера = bad practice. Потому что код становится трудно сопровождаемым, легко ломаемым и, соответственно, дорогим в обслуживании (с точки зрения ресурсов). К тому же такой код очень трудно покрывать юнит-тестами.
  • Как тестировать DAL слой с помощью Unit тестов?

    Дмитрий по идее, юнит-тестирование какого-либо модуля должно происходить в изоляции от других компонентов, чтобы юнит-тест мог нам подсказать, что "функциональность этого модуля работает корректно, независимо от окружения". Если изолировать компоненты друг от друга нельзя, значит, компоненты сильно связаны друг с другом, что влечет за собой увеличение стоимости проекта из-за увеличения трудоемкости сопровождения проекта, т.к. изменения в сильно связанных компонентах очень дорогие по ресурсам. Соответственно, решение проблемы лежит в абстрагировании компонентов друг от друга. А если компоненты абстрагированы, то их легче сопровождать, вносить в них изменения, а значит, легче формировать изолированные юнит-тесты. Тест, который проверяет какую-то функциональность не в изоляции от каких-либо компонентов (т.е. такой тест зависит от конкретного окружения), становится интеграционным тестом. А это, обычно, уже более сложные тесты, которые проверяют взаимодействие нескольких функций, нескольких компонентов.
  • Как работать с Excel из-под .NET Core?

    Valeriy1991
    @Valeriy1991 Автор вопроса
    Иван Филатов, ок, попробую ExcelDataReader, но в сети пишут, что он вроде как тоже под .NET Core не работает. У меня есть подозрения, что под linux можно что-то написать такое, что будет являться отдельной компонентой и работать с Excel (и скорее всего, не на C#)... Но это же такой геморрой. У этой компоненты должен быть свой API (создать новый Excel, открыть существующий и др.)... В итоге получится "изобретение велосипеда"...
  • Как работать с Excel из-под .NET Core?

    Valeriy1991
    @Valeriy1991 Автор вопроса
    Иван Филатов, забыл Вас упомянуть в своем комментарии выше.
  • Как работать с Excel из-под .NET Core?

    Valeriy1991
    @Valeriy1991 Автор вопроса
    А где, например? Интересует именно Linux (и ему подобные), но увы, я только-только начинаю изучение этой ОС и ее специфики... В любом случае, это должна быть серверная компонента, развернутая (как мне кажется) там же,где и основное .NETCore-приложение (в частности, ASP.NET Core web app) ..
  • Как работать с Excel из-под .NET Core?

    Valeriy1991
    @Valeriy1991 Автор вопроса
    Иван Филатов спасибо, но меня интересует именно .NET Core. Насколько я понял, DocumentFormat.OpenXML официально не поддерживает .NET Core, но есть репозиторий-клон одного умельца (https://github.com/xrkolovos/Open-XML-SDK-for-NET-..., который "вроде как" может работать в .NET Core (я пока не пробовал). Epplus тоже официально не поддерживает .NET Core (во всяком случае, я никакого подтверждения этому не нашел). Есть какой-то хак, который "якобы" включает поддержку NPOI в проекте с .NET Core, но меня смущает то, что из project.json автор ответа (stackoverflow.com/questions/39041097/how-do-i-add-... удаляет всю информацию о .NET Core, т.е. проект становится "как бы" не .NET Core.
  • Как тестировать DAL слой с помощью Unit тестов?

    Добрый день! Если честно, не вижу особых причин для юнит-тестировагия слоя DAL. Что Вы будете юнит-тестировать в слое DAL? EntityFramework? Зачем, его уже до Вас несколько раз протестировали. Юнит-тестами в первую очередь нужно покрывать бизнес-логику, ну и кдассы доменной модели заодно. А если Вы хотите тестировать репозитории из DAL, то конечно же, это нужно делать без какой-либо привязки к EF (Moq в помощь).
  • Как подключить .NET API в Visual C#?

    vovaduba ну там же на главной странице в самом верху написано - "Установка через Nuget" :) Если Вы хотите просто подключить этот пакет к себе в проект, то исходники Вам вряд ли понадобятся...
  • Как возвращать ошибки из сервисов?

    Александр Евсеев - соглашусь с Вами, недавно тоже стали использовать похожий механизм. Удобен тем, что этот класс (или набор расширяющих классов) очень легко можно покрыть юнит-тестами (и тем самым защитить себя от регресса), и вытащить в отдельный nuget-пакет для повторного использования. Когда изучал исходники ASP.NET Identity (версии 2 для .NET Full, версию 3 для .NET Core еще не смотрел), то обнаружил, что они тоже в очень многих местах используют аналогичный класс - IdentityResult. Плюс этого подхода также в том, что не замедляется выполнение кода, в отличие от выброса исключений (т.к. наличие множества выбросов исключений значительно замедляет выполнение кода - у нас коллега на тестовом наборе данных в цикле с несколькими миллионами итераций пришел к выводу, что код, который в своей логике выбрасывал исключения, выполнялся в несколько раз (или даже десятков раз - уже плохо помню) медленнее, чем тот же самый код, но без генерации исключений).
  • Как динамично добавлять HubProxy в SignalR?

    Добрый день! Давно не работал с SignalR, но меня немного смущает тот факт, что запуск соединения у Вас происходит 2 раза (connection.start()). Пробовали ли Вы осуществлять запуск соединения 1 раз в самом конце (т.е. если брать пример выше - то после инициализации UserLocationHub)?
  • Что использовать для быстрой генерации Excel файла?

    Станислав Макаров да там требование определенное было - перенос ряда строк в Excel при определенных условиях. И по результатам изысканий, пришел к выводу, что проще всего реализовать задачу было через макросы в Excel. Но возникли трудности при вставке макроса программно, через Epplus (через Interop не вариант - и так уже он для конвертации используется, не хочу через него еще и макросы вставлять). Поэтому я создал пустой файл Excel с поддержкой макросов, добавил в эту книгу все макросы, которые мне нужны, и в дальнейшем использую эту пустую книгу как шаблон. Всё нужное формирование Excel идет через EPPlus (на выходе - путь к временному файлу, который передавался в метод конвертации в PDF через MS Office Interop). И чтобы не переписывать формирование Excel-документа с EPPlus на что-то другое, я просто: 1) формирую excel-документ через Epplus; 2) открываю шаблон пустой книги с написанными макросами в OpenXML; 3) открываю сформированный в п.1 excel-документ; 4) получаю из шаблона байты, в которых лежат макросы; 5) вставляю эти байты в полученный из Epplus excel-файл; 6) меняю у этого excel-файла внутренний тип документа на "документ с поддержкой макросов" и сохраняю. После этого этот файл уже спокойно конвертируется в PDF, и на PDF четко видно, что макрос отработал. Путь непростой, но рабочий.
  • Что использовать для быстрой генерации Excel файла?

    Поддерживаю EPPlus - мы на работе тоже на него перешли. Но он не работает с макросами. Была задача сделать конвертацию PDF из Excel с макросами. Пришлось использовать обычный OpenXML, чтобы открыть документ с поддержкой макросов, а затем передать эти байты в Interop Excel (да-да, это всё еще самый простой и рабочий бесплатный способ конвертации Excel в PDF :)). NPOI мне не очень нравится. Тем более, что он портирован с Java, и как-то не очень часто обновляется. Но зато он нормально конвертирует Excel в HTML.
  • Как правильно реализовать связывание Date в ASP.NET MVC?

    Добрый день! Особо не вникал, но может быть, поможет кастомный DateTimeBinder?
  • Почему не работает Base Controller?

    Андрей Малиновский тут у Дмитрий Куликов всё в порядке. Дело в чем-то другом... Самому постоянно приходится хранить CurrentUser в Session, и никаких проблем не было.
    Дмитрий Куликов - если поставить break-point внутри метода действия UserStream на самой первой строке "if (User.Identity.IsAuthenticated)", то что происходит дальше?
  • Где допущена ошибка в контроллере?

    Добрый день! Если проблема еще актуальна, то копайте в сторону настройки маршрутов (RouteConfig.cs).
  • Как перейти к якорю из одного представления в другое?

    Пытаюсь сделать так, чтобы возвратиться к той новости, от которой пришёл.

    А эти 2 представления вложены в 1 представление (т.е. блок новостей и конкретная новость находятся на 1 странице)?
  • Как перейти к якорю из одного представления в другое?

    Что Вы имеете в виду под "якорем"? И приведите, пожалуйста, примеры кода.