Профилирование приложений

В Microsoft Visual Studio есть встроенный Profiler, который позволяет определить функцию, занимающую большую часть ресурсов. Использовать следующим образом: В основном меню Debug -> Perfomance and diagnostic Выбрать, использование какого ресурса […]

Использование профайлера памяти

Профайлер – это программа, которая может работать в двух режимах: Поиск функций, выполнение которых занимает большое количество времени Поиск функций, создающей большие объекты или большое количество объектов, занимающих большой объем […]

IndexedDB для хранения больших структурированных данных на клиенте

IndexedDB — стандарт хранения больших структурированных данных на клиенте. Это объектная база данных, которая намного мощнее, эффективнее и надежней, чем веб-хранилище пар ключ/значение, доступное посредством прикладного интерфейса Web Storage. Является […]

Как правильно писать заявки на фриланс-биржах?

Если вы хотите работать фрилансером, без фриланс бирж сложно обойтись. Поэтому вам в любом случае нужно научиться писать правильно заявки на проекты, которые выкладывают заказчики. Самая раздражающая штука на фриланс […]

Обработка исключения для Html.AntiForgeryToken()

Если для страницы авторизации используется хелпер Html.AntiForgeryToken(), то существует вероятность получить исключение в случае, когда пользователь войдет в систему через другую вкладку. Чтобы не лишать пользователя уверенности в стабильной работе […]

Двухфакторная аутентификация при помощи Google AUTHENTICATOR

Во-первых, необходимо установить open source package под названием OTP Sharp для валидации TOTP кода. Далее следует создать метод для вывода QR-кода на страницу: [HttpGet] public async Task EnableGoogleAuthenticator() { byte[] […]

Посмотреть размер всех таблиц в базе данных SQL SERVER

Существует несколько вариантов, чтобы получить количество строк для всех таблиц в БД: sys.partitions Catalog View SELECT QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + ‘.’ + QUOTENAME(sOBJ.name) AS [TableName] , SUM(sPTN.Rows) AS [RowCount] FROM sys.objects AS […]