• Нужен ли метод OPTIONS в REST-сервисах?

      Согласно стандарту HTTP/1.1 метод OPTIONS может быть использован клиентом для определения параметров или требований, связанных с ресурсом. Сервер также может отправлять документацию в удобочитаемом формате. Ответ на запрос OPTIONS может содержать список допустимых методов для данного ресурса в хедере Allow.

      То есть этот метод мог бы стать отличным средством для документирования наших REST-сервисов с одной стороны, и быть существенным дополнением к архитектурному ограничению HATEOAS с другой.

      А теперь давайте отвлечёмся от страшных слов типа “HATEOAS” и зададимся вопросом: а есть ли какая-нибудь практическая польза от использования метода OPTIONS в веб-приложениях?
      Читать дальше →
    • Авторизуем ресурсы в REST-сервисе

      В мире ASP.NET существуют мощные и гибкие механизмы авторизации. Например, ASP.NET Core 2.0 предоставляет разработчику возможность использования политик авторизации, обработчиков и т.д.

      Но как реализовать метод GET, возвращающий список ресурсов? А если этот метод к тому же должен возвращать не все ресурсы, а лишь специфицированную страницу? Каждый пользователь должен видеть только те ресурсы, к которым у него есть доступ. Можно получать из базы каждый раз полный список и затем фильтровать его на основе прав текущего пользователя, но это будет слишком неэффективно – количество ресурсов может быть очень велико. Предпочтительно решать вопросы авторизации и разбиения на страницы на уровне запроса к базе данных.

      В этой статье описывается подход к решению проблемы авторизации в REST сервисе на базе ASP.NET Web API 2 с использованием Entity Framework.
      Читать дальше →
    • Sharing общих сборок между процессами и доменами в IIS

      В микросервисном мире добавление новой функциональности осуществляется путем написания нового сервиса. При этом стоимость добавления новой единицы составляет минимум 150 Мб оперативной памяти, хотя нашего кода в нем достаточно мало и используются, как правило, одни и те же сборки с небольшими отличиями в версиях.


      В этой статье будут показаны пути оптимизации исключительно за счет настроек сервера, таким образом переписывание и перекомпиляция приложений не потребуется. Будет достигнут результат 25 Мб в среднем на один микросервис.

      Читать дальше →
      • +21
      • 2,8k
      • 9
    • Реализация мультизагрузки файлов с индикаторами выполнения на ASP.NET

      • Перевод
      В этой статье Марк Салливан рассказывает, как с помощью ASP.NET и библиотек Uploadify реализовать мультизагрузку файлов с динамическими индикаторами выполнения. Созданный в процессе класс Http-обработчика, наряду с классом элемента управления, подойдет для любого другого приложения на ASP.NET, что делает этот код, с одной стороны, полезным plug-in-play решением, а с другой – наглядной демонстрацией работы с Http-обработчиком. Он также добавил ряд дополнительных функций на уровень ASP.NET, таких как фильтрация по расширению файла, обратная передача по завершении и безопасность на основе сеансов.


      Читать дальше →
    • Переход с ASP.NET к ASP.NET Core 2.0

      • Tutorial

      Эта статья является переводом справочного руководства по переносу приложений из ASP.NET в ASP.NET Core 2.0. Ссылка на оригинал
      В силу некоторых причин, у нас возникла необходимость перейти с ASP.NET в ASP.NET Core 1.1., о том, как это у нас получилось, читайте тут.


      Содержание


      1. Требования
      2. Выбор Фреймворка
      3. Различия в структуре проекта
      4. Замена Global.asax
      5. Хранение конфигураций
      6. Встроенный механизм Dependency Injection
      7. Работа со статическими файлами

      Требования


      • .NET Core 2.0.0 SDK или более поздняя версия.


      Выбор фреймворка


      Для работы с ASP.NET Core 2.0 проектом, разработчику предстоит сделать выбор – использовать .NET Core, .NET Framework или использовать сразу оба варианта. В качестве дополнительной информации можно использовать руководство Choosing between .NET Core and .NET Framework for server apps (вкратце можно сказать что .NET core является кроссплатформенной библиотекой, в отличие от .NET Framework) для того чтобы понять, какой Фреймворк для вас окажется наиболее предпочтительным.
      После выбора нужного Фреймворка в проекте необходимо указать ссылки на пакеты NuGet.
      Использование .NET Core позволяет устранить многочисленные явные ссылки на пакеты, благодаря объединенному пакету (мета пакету) ASP.NET Core 2.0. Так выглядит установка мета пакета Microsoft.AspNetCore.All в проект:

      Читать дальше →
    • Параллелизм против многопоточности против асинхронного программирования: разъяснение

      Хочу представить вашему вниманию перевод статьи Concurrency vs Multi-threading vs Asynchronous Programming: Explained.

      В последние время, я выступал на мероприятиях и отвечал на вопрос аудитории между моими выступлениями о Асинхронном программировании, я обнаружил что некоторые люди путали многопоточное и асинхронное программирование, а некоторые говорили, что это одно и тоже. Итак, я решил разъяснить эти термины и добавить еще одно понятие Параллелизм. Здесь есть две концепции и обе они совершенно разные, первая синхронное и асинхронное программирование и вторая – однопоточные и многопоточные приложения. Каждая программная модель (синхронная или асинхронная) может работать в однопоточной и многопоточной среде. Давайте обсудим их подробно.
      Читать дальше →
    • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

      Подробнее
      Реклама
    • Логическая игра с нуля на ASP.NET Core 2, поиграем?

      • Tutorial
      Современные веб-фреймворки в основном используются для написания корпоративных приложений, но они давно уже достаточно гибки и функциональны и для других областей. Попробуем написать логическую казуальную игру на ASP.NET Core 2. Рассмотрим процесс создания игрового проекта, а так же новшества фреймворка и сопутствующих инструментов.

      ДЕМО
      Исходники
      Читать дальше →
    • JetBrains Rider 2017.1 — первый релиз новой кроссплатформенной .NET IDE

        Несколько дней назад мы выпустили первую версию JetBrains Rider — новой кроссплатформенной IDE для .NET-разработки на базе IntelliJ-платформы и ReSharper. Rider теперь можно не только загрузить, но и купить. Rider входит в подписку All Products Pack, так что если она у вас есть — загружайте и пользуйтесь, ничего не доплачивая.

        Rider 2017.1 - кроссплатформенная среда .NET-разработки

        Что еще за Rider?


        Rider — это IDE для .NET-разработки, которой можно пользоваться на Windows, Mac и Linux. Rider подходит для многих видов .NET-приложений, в том числе ASP.NET, .NET Core, .NET Framework, Xamarin и Unity.
        Читать дальше →
      • Переход с ASP.NET на Angular2 с особенностями (личный опыт)

        Развернутая тема: разделение ASP.NET на Front-End (Angular) и Back-End (WebApi)

        Особенности: корпоративная разработка (следовательно основной браузер — IE, веб сервер — IIS, среда — Windows); это частичный рефакторинг, а скорее редизайн веб части (имеется legacy код, ориентация на имеющийся UX);

        Причины и цели: Цель — редизайн архитектуры веб составляющей (в текущей версии ASP.NET Forms + WCF), по причине невозможности/сложности решения возникших проблем и новых требований (полное обновление страниц после постбэка, повторная отправка формы, сложная навигация и связанные с этим проблемы с данными в формах).
        image

        Все описанное базируется на личном опыте (или, соответственно, его отсутствии — еще месяц назад о Node.js и Angular я не знал ничего кроме названия). Если краткое описание статьи заинтересовало — начнем.
        Читать дальше →
      • Открытая трансляция DotNext 2017 Piter: Jon Skeet, Sasha Goldshtein и Андрей Акиньшин в прямом эфире

          Мы продолжаем наш цикл открытых трансляций для всех желающих проводить субботы с пользой! До этого мы делали вещание с Mobius 2017 и JPoint 2017 (доступ к ней уже закрыли вроде) В этот раз у нас есть кое-что интересное для .NET-разработчиков.

          Сегодня в 10 утра начнется бесплатная YouTube-трансляция первого трека DotNext 2017 Piter!



          Первый трек – самый большой и популярный среди наших участников, а значит спикеры и темы соответствующие. Оцените сами:

          • Sasha goldshtn Goldshtein – The Performance Investigator's Field Guide
          • Jon Skeet – The changing state of immutability C#
          • Tomas Herceg – Entity Framework Core: Is It Ready Yet?
          • Андрей DreamWalker Акиньшин – Поговорим про память
          • Игорь Лабутин – Межпроцессные разговоры: причины и способы
          • Алексей Савватеев – Задача о коллективной ответственности

          Кроме того, утром в 10:10 вы сможете посмотреть live-интервью с Джоном Скитом, а также еще пяток интервью с другими нашими спикерами. Будет круто!

          Ссылка на YouTube-трансляцию под катом.
          Читать дальше →
        Самое читаемое