• Как проапгрейдить существующий проект с ASP.NET MVC на ASP.NET Core. Практическое руководство

    • Tutorial
    Этот пост родился из нашего опыта переноса существующего проекта с ASP.NET MVC на ASP.NET Core. Мы постарались собрать в одно целое весь процесс миграции в структурированном виде и описать различные узкие места, чтобы разработчики в дальнейшем могли опираться на этот материал и следовать дорожной карте при решении подобных задач.

    Пара слов о нашем проекте. Мы open-source eCommerce платформа на ASP.NET, которая к моменту переноса успешно существовала уже 9 лет. Мы делали миграцию 2 года назад — но руки дошли написать об этом только сейчас. На тот момент мы были одним из первых крупных проектов, кто решился на подобный шаг.

    Почему стоит перейти на ASP.NET Core


    Прежде чем приступить к разбору шагов по переходу с ASP.NET MVC на ASP.NET Core, несколько слов о преимуществах этой платформы.


    Читать дальше →
  • Древности: современный компьютер из старых запчастей

      В какой момент электроника становится винтажной? Когда в ней пропадает всякий практический смысл, как например сейчас нет смысла в карманном компьютере начала двухтысячных? Когда популярная в свое время железка становится редкостью? Когда большинство людей забыло, как это настраивается и работает, как произошло с модемами?


      В моем случае ответ простой: ничто в этом мире не вечно. Собрать информацию об умеренно старой компьютерной технике в тот момент, когда данные легко доступны, и сам еще многое помнишь, проще, чем лет через двадцать копаться в веб-архиве, пытаясь хоть что-то найти. В 2009 году в честь очередного переезда я продал свой последний настольный компьютер, и с тех пор пользовался только ноутбуками. В 2019 году я вновь построил домашний ПК, загрузив сейв десятилетней давности. Старые комплектующие достаточно подешевели, чтобы можно было поэкспериментировать без серьезного финансового риска. Но они еще не до конца устарели, и кажется первый и последний раз я собираю относительно старое железо для повседневных задач. Есть ли в этом смысл? Сейчас расскажу.
      Читать дальше →
    • SQL ключи во всех подробностях

      • Translation
      В Интернете полно догматических заповедей о том, как нужно выбирать и использовать ключи в реляционных базах данных. Иногда споры даже переходят в холивары: использовать естественные или искусственные ключи? Автоинкрементные целые или UUID?

      Прочитав шестьдесят четыре статьи, пролистав разделы пяти книг и задав кучу вопросов в IRC и StackOverflow, я (автор оригинальной статьи Joe «begriffs» Nelson), как мне кажется, собрал куски паззла воедино и теперь смогу примирить противников. Многие споры относительно ключей возникают, на самом деле, из-за неправильного понимания чужой точки зрения.

      Содержание



      Давайте разделим проблему на части, а в конце соберём её снова. Для начала зададим вопрос – что же такое «ключ»?
      Читать дальше →
    • Центр сертификации Let's Encrypt выдал миллион бесплатных сертификатов



        8 марта 2016 года в 9:04 GMT центр сертификации Let's Encrypt выдал миллионный TLS-сертификат.

        Let's Encrypt – некоммерческая инициатива организации Mozilla и Фонда электронных рубежей (EFF), созданная на благо сообщества. Владелец любого домена может получить здесь сертификат TLS совершенно бесплатно и очень просто его установить (пошаговая инструкция на Хабре). Закрытое бета-тестирование началось 12 сентября 2015 года, а с 3 декабря сертификаты выдают всем желающим без предварительной регистрации и инвайтов.

        Это потрясающий успех проекта: для выдачи миллиона сертификатов понадобилось всего 3 месяца и 5 дней.
        Читать дальше →
      • Entity Framework Code First в командной работе

        От переводчика: Прекрасная статья на понимание механизма миграций в Entity Framework 6 и путей решения конфликтов миграций при работе в команде. Оригинал статьи: Code First Migrations in Team Environments.

        Эта статья предполагает, что вы знакомы с Entity Framework и с основами работы с ним. Иначе сначала вам нужно прочитать Code First Migrations, прежде чем продолжить.

        Налейте чашечку кофе, вам нужно прочитать всю статью


        В командной работе проблемы в основном связаны со слиянием миграций, созданных двумя разработчиками в их локальных базах данных. В то время как шаги, для решения этих проблем довольно просты, они требуют, четкого представления о том, как работают миграции. Пожалуйста, не торопясь, прочитайте внимательно всю статью.
        Читать дальше →
        • +9
        • 26.8k
        • 3
      • Быстрое возведение чисел от 1 до 100 в квадрат

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


        *квадраты до сотни

        Для того, чтобы бездумно не возводить в квадрат по формуле все числа, нужно максимально упростить себе задачу следующими правилами.
        Читать дальше →
      • Pop-up авторизации ВКонтакте для протокола OAuth 2.0

          На данный момент существует 2 возможности авторизации в социальной сети «В Контакте»:
          • Open API
          • OAuth 2.0

          Первый устаревший, а второй — модный, прогрессивный и стандартизированный.

          Но, однако, переходя на новый способ, я заметил, что нигде в документации «В Контакте» не говорится, как сделать авторизационное окошко небольшим попапом.

          На странице "Авторизация сайтов" сказано: «Для начала процесса авторизации необходимо создать окно браузера и открыть в нём диалог авторизации». Но ни слова не сказано о том, как создать такое окно.

          У Facebook есть свой метод JavaScript FB.login для этой цели. У OpenAPI «В Контакте» есть VK.Auth.login. А для OAuth 2 «В Контакте» нет ничего.

          «Ну что же, challenge accepted», — сказал я себе. И решил написать свой метод.
          Читать дальше →
        • Учите японские азбуки

            Если вам необходимо или интересно учить японский язык, то, вы вероятно, начнете с изучения слоговых азбук, хираганы и катаканы. Для этого я с удовольствием пользовался программой iKana, но многие мои знакомые не могут сделать того же, потому что разработчик пишет софт только для Mac OS X (да ещё и берет за это 12 €).

            Я всегда считал, что изучение слов незнакомого языка «по карточкам», да ещё в виде интерактивного теста — самый эффективный и гиковский способ.

            Поэтому я набросал небольшой сайтик, http://tr.im/learnkana, где можно потренироваться в изучении символов каны. Поначалу вы не будете иметь ни малейшего понятия, какой знак перед вами. Просто выбирайте тот вариант, который вам кажется верным, а через некоторое время вы начнете запоминать их, и правильных ответов станет больше. Когда вы сможете легко проходить первый тест, переходите ко второму, а потом к третьему, и так далее.
            Читать дальше →
          • Защита прав потребителей в России: Мы далеко не последние

              Устал я слушать от знакомых причитания по качеству защиты прав покупателей в России и завистливые возгласы: «Вот на западе....».
              Нет, я не хочу сказать что я негативно отношусь к западу, просто хочу показать, что и у наших граждан, есть защита. И закон о защите прав потребителей далеко не такой, каким многие его представляют.
              Что же даёт нам закон?
            • Очередной пожиратель времени

                Выбираете себе комнату, в которой максимум по 10 человек. Компьютер выбирает человека и загадывает слово, от простого до не самых легких. Суть игры: тот, кому загадали слово, пытается загаданное слово нарисовать.
                Участники игры пытаются угадать, какое–же слово было загадано, высказывая свои предположения. На рисование\угадывание дается минута, потом ведущий меняется.
                Image #614112, 59.3 KB
                http://www.postitgame.co.uk/
              • Установка Windows 7 на USB storage и/или виртуальный диск VHD

                В данной статье хочу рассмотреть вопросы по установке на внешний USB-накопитель не обычного набора инструментов реанимации, а полноценной рабочей ОС, которую можно носить с собой. И если Linux ставится из коробки на любое устройство и без проблем работает, то Windows и не ставится, и не работает.
                Также раздел этой статьи может быть полезен при загрузке Windows на новом оборудовании (при обновлении материнской платы и т.д.).
                Поехали!
              • Установка Windows 8 Developer Preview для ленивых

                  Задача: поставить Windows 8 Developer Preview поиграться.

                  Условия: старая винда должна выжить, привода DVD нет, большой флешки на десять гигов тоже.

                  Классические решения:

                  1. Поставить в виртуалку. Это медленно, нужен дополнительный софт и без хардварной виртуализации ничего не заработает.
                  2. Поставить на другой жёсткий диск. Увы, в ноутбук второй винт не вставишь, да и нету его у меня.
                  3. Выделить отдельный раздел на винте. А это ставить лишний софт, танцевать с бубнами вокруг разделов… Лениво!

                  К тому же последние два варианта обычно требуют физический DVD, которого нет. Выход? VHD!

                  Кроме ISO образа Windows 8 нам также понадобится установленная Windows 7 — более ранние версии не умеют работать с VHD. А из под Linux мы не сможем так просто запустить инсталлятор.

                  Читать дальше →
                • Пишем простой плеер под Windows Phone

                  Данная статья демонстрирует, как написать простейший музыкальный плеер под Windows Phone.

                  Основные возможности: плеер работает с плейлистом, можно управлять музыкой (переключать мелодии), плеер может играть в фоне.

                  Автор в первую очередь руководствовался статьей, в которой не были освещены некоторые элементарные, но не всегда очевидные, аспекты написания плеера. Они и разобраны в данной статье.
                  Читать дальше →
                • Создание приложения в стиле Android

                  Часто, интерфейс даже очень популярных Android-приложений спроектирован кое-как и складывается впечатление, что большинство разработчиков даже не слышало о User Interface Guidelines. Но следование рекомендациям не очень сложно, а иногда даже позволяет экономить время на разработку. Для того, чтобы показать, что это действительно так, я предлагаю пройтись по нескольким ключевым элементам проектирования интерфейса приложения на примере слегка продвинутого «Hello World».
                  Статья расчитана на начинающих Android-разработчиков. Исходный код можно скачать по ссылке в конце, а пояснения будут касаться:
                  • Создания всплывающего меню
                  • Проектирования окна настроек
                  • Работы с Nine-patch graphics

                  Читать дальше →
                • Упаковка булевых переменных для хранения и поиска в базе

                    Столкнулся с необходимостью хранить в базе формы, большая часть из которых являлась «галочками», то есть, по сути булевыми переменными. Создавать под тридцать галочек тридцать полей INT 1 не хотелось стал искать другой метод.

                    И нашел — битовый массив.
                    Читать дальше →
                  • Темная сторона мобильного трафика

                      Специально для Хабра мы взяли интервью с представителем “темной стороны” рынка мобильного трафика.
                      “Вы считаете, что работая с CPA агентствами вы приобретаете хоть сколько нибудь живой трафик? Вы верите в модель CPI? Угадаете долю живого трафика в подобных сетях? На самом деле, доля “серого” трафика намного больше, чем Вы могли подумать."
                      Интересно?
                      image
                      Перейти на темную сторону
                    • Ловля интернетов в глухой деревне с помощью 3G антенны

                      Привет всем!

                      Не так давно я задался целью обеспечить интернетом жену, отдыхающую все лето с ребенком в деревне. Даже ответственно озаботился покупкой сим-карты для ее любимого айпадика (раньше как-то обходились wi-fi). Каково же было мое разочарование, когда по приезду в деревню я обнаружил почти полное отсутствие сигнала сотовой сети что на планшете, что на мобильных телефонах… Понятно — зря выкинул деньги на симку. Неделя моего пребывания в деревне ознаменовалась лазаньем по чердакам, крышам, просто по участку, уткнувшись в смартфон в надежде увидеть хотя бы GPRS. Все тщетно… Отбыл в Москву, мои остались в этой глухомани отдыхать от радиоволн.

                      По дороге домой обдумывал план решения проблемы. Необходимость в интернете у жены диктовалась даже не сколько развлекательными целями, сколько возможностью бесплатно переписываться по Viber и регулярно снабжать меня фотками дочурки (надо сказать, писать sms и mms из Тверской области в Москву недешево). Так же давало надежду знание того, что в другой деревне, в паре километров, интернет работал, причем довольно устойчиво и с почти полным индикатором сигнала. Значит где-то рядом с этой деревней есть базовая станция, снабжающая деревню устойчивым 3G сигналом. Судя по всему, складки местности или иные преграды мешают сигналу достигать нашего участка.

                      Решение придумалось конечно не новое и не оригинальное — и ежу понятно, что нужно вооружаться направленной 3G антенной. Тем более, у меня уже имелся некоторый опыт эксплуатации направленных антенн для ловли 4G в Москве. В голове, где-то на пыльных задворках, лежали воспоминания о курсе антенно-фидерных устройств, который нам целый семестр читали в институте. И благодаря этим знаниям я прекрасно понимал, что собирать такую антенну самостоятельно будет довольно трудозатратно и долго, решил покупать готовую.
                      Читать дальше →
                    • Визуализация списков в отладчике Visual Studio или новое слово от «BugAid For Visual Studio»

                        Когда приходится просматривать элементы списка (массива) в отладчике Visual Studio, например, в окне QuickWatch часто сталкивашься с не удобством просмотра сложного (или длинного) списка данных. Тяжело увидеть, например, значения поля всех элементов списка.
                        Данный пост показывает несколько «встроенных» способов решения этой проблемы и возможности расширения BugAid.
                        мало букв, но достаточно картинок.

                        Читать дальше →
                      • Хорошая беседа о борьбе с прокрастинацией

                        • Tutorial
                        Давно знаком и являюсь поклонником Яны Франк (ака Миумау в ЖЖ — www.miumau.lj.ru). Был на ее встрече позавчера, записал всю встречу на видео. Что мне понравилось: много дельных советов о борьбе с творческим кризисом, прокрастинацией в личном развитии и астенизацией. Все эти подходы применимы не только среди «художников», или тех чьи профессии считаются «творческими», но и вообще среди людей, которые хотят получать удовольствие от работы.

                        Вначале пару минут вступления-хождения.