Во второй половине «девяностых» индустрия «сайтостроения» переживала расцвет. Каждая компания стремилась заявить о себе в интернете, каждый пользователь мечтал завести личную «домашнюю страничку». На помощь веб-мастерам приходили всевозможные программы вроде FrontPage и Dreamweaver, но большинство сайтов все еще представляли собой набор статических HTML-страниц, иногда — с вкраплением CSS. Чуть позже появилась технология Server Side Includes, позволявшая динамически собирать сайт на сервере из стандартных блоков: «шапки», панели меню, «подвала» и, собственно, полезного содержимого. После этого оставался только один шаг до внедрения баз данных и систем управления контентом, значительно упростивших жизнь как разработчикам, так и владельцам ресурсов.
Читать полностью »
Рубрика «ASP»
Три кита. Краткая история трех популярных CMS и попытка заглянуть в будущее
2023-06-01 в 10:27, admin, рубрики: API-First, ASP, CDA, CMA, cms, dom, dreamweaver, drupal, FrontPage, javascript, Joomla, JSP, mariadb, mysql, percona server, php, posgresql, sqlite, wordpress, Блог компании Serverspace, Читальный залЗапуск фоновых задач в asp.net core
2022-04-03 в 15:50, admin, рубрики: .net, .net 6.0, ASP, asp.net core, background jobs, C#, ПрограммированиеНебольшой обзор стандартных средств запуска бэкграунд-задач в аспнет приложениях — что есть, чем отличается, как пользоваться. Встроенный механизм запуска таких задач строится вокруг интерфейса IHostedService и метода-расширения для IServiceCollection — AddHostedService. Но есть несколько способов реализовать фоновые задачи через этот механизм (и ещё несколько неочевидных моментов поведения этого механизма).
Ускоряем pow
2021-10-20 в 22:15, admin, рубрики: ASP, C#, c++, java, Алгоритмы, высокая производительность, оптимизация кода, оптимизация программ, приближëнные алгоритмы, приближенное решение, приближённые вычисления, ускорение кодаВ этой статье я хочу поделиться несколькими нестандартными алгоритмами для быстрого возведения числа в степень, а также продемонстрировать их реализацию и сравнить их быстродействие в C++, C# и Java.
Сравнить точность алгоритмов можно прямо сейчас на этой странице.
Сравнение производительности ASP.NET Core-проектов на Linux и Windows в службе приложений Azure. Продолжение
2021-05-09 в 10:02, admin, рубрики: ASP, azure, linux, Microsoft Azure, ruvds_перевод, windows, Блог компании RUVDS.com, Серверная оптимизация, Серверное администрированиеВ моём предыдущем материале речь шла о сравнении производительности ASP.NET Core-приложений, запускаемых в Windows и в среде Linux + Docker, работающих в службе приложений Azure. Эта тема интересна многим — поэтому я решил написать продолжение.
Я снова провёл испытания, используя подход, отличающийся от прежнего лучшей воспроизводимостью, такой, который даёт более надёжные результаты. Теперь я генерирую веб-нагрузку на серверы с помощью облачных инструментов Azure Cloud Agents, применяя Visual Studio и VSTS. И, более того, в то время как ранее я выполнял тесты с использованием HTTP, теперь тестирование проводилось с применением HTTPS.
Читать полностью »
Сравнение производительности ASP.NET Core-проектов на Linux и Windows в службе приложений Azure
2021-05-08 в 9:46, admin, рубрики: ASP, azure, linux, Microsoft Azure, ruvds_перевод, windows, Блог компании RUVDS.com, Серверная оптимизация, Серверное администрированиеЧто быстрее — ASP.NET Core-приложение, развёрнутое в Docker-контейнере на Linux, или такая же программа, но запущенная на Windows-сервере, учитывая то, что всё это работает в службе приложений Azure? Какая из этих конфигураций предлагает более высокий уровень производительности, и о каком «уровне производительности» можно говорить?
Я 20 лет наслаждаюсь разнообразием архитектур и хочу поделиться мыслями
2020-09-09 в 7:07, admin, рубрики: .net, ASP, C#, orm, архитектура приложений, базы данных, Программирование, Тестирование IT-систем
Сначала хотел написать комментарий к статье "Я десять лет страдал от ужасных архитектур в C#...", но понял две вещи:
- Слишком много мыслей, которыми хочется поделиться.
- Для такого объёма формат комментария неудобен ни для написания, ни для прочтения.
- Давно читаю Хабр, иногда комментирую, но ни разу не писал статей.
- Я не силён в нумерованных списках.
Disclaimer: я не критикую @pnovikov или его задумку в целом. Текст качественный (чувствуется опытный редактор), часть мыслей разделяю. Архитектур много, но это нормально (да, звучит как название корейского фильма).
Однако давайте по порядку. Сначала моё мнение о том, что влияет на архитектуру, потом про спорные моменты в статье об «исправлении архитектур». Ещё расскажу о том, что у нас хорошо работает — может, пригодится кому-нибудь.
Читать полностью »
Я десять лет страдал от ужасных архитектур в C# приложениях — и вот нашел, как их исправить
2020-09-01 в 14:01, admin, рубрики: .net, .net core, ASP, C#, reinforced, архитектура приложений, базы данных, Программирование, Тестирование IT-систем
Я второй десяток лет участвую в разработке приложений для бизнеса на .NET и каждый раз вижу одни и те же проблемы — быдлокод и беспорядок. Месиво из сервисов, UoW, DTO-шек, классов-хелперов. В иных местах и прямой доступ в базу данных руками, логика в статических классах, километровые портянки конфигурации IoC.
Когда я был молодым и резвым мидлом — я тоже так писал. Потом бил кулаком в стену с криками: "Хватит! В следующий раз сделаю по-другому". Следующий раз действительно начинался "по-другому" — с холодной головой и строгим подходом к архитектуре — а на выходе все равно получалась та же субстанция, лучше на пару миллиметров.
Однако, эволюция — беспощадная штука: моя последняя система показалась мне более-менее близкой к идеалу. Сложность не сильно росла, скорость разработки не падала довольно долго, в систему худо-бедно въезжают новые сотрудники. Эти результаты я взял за основу, улучшил и теперь анонсирую вам свою новую разработку: Reinforced.Tecture.
А почему мы не пишем код в контроллерах?
2020-06-07 в 15:13, admin, рубрики: .net, ASP, ASP.NET, C#, code, Совершенный кодЯ думаю, многие из Вас слышали мнение о том что кода в контроллерах быть не должно, и потому контроллер с методами в одну строку считаются «Best Practice».Я в свою очередь сомневаюсь в том, что польза от этого так уж велика. Если у Вас возникали похожие мысли, прошу под кат.
Асинхронный код в Startup ASP.NET Core: 4 способа обхода GetAwaiter().GetResult()
2020-04-09 в 13:43, admin, рубрики: .net, andrewlock, ASP, asp.net core, C#, GetAwaiter, GetResult, health check, jwt, kubernetes, Startup ASP.NET, Блог компании Dodo Pizza Engineering, Программирование, Эндрю ЛокС тех пор, как в C# 5.0 завезли механизм async/await, нас постоянно во всех статьях и доках учат, что использовать асинхронный код в синхронном очень плохо. И призывают бояться как огня конструкции GetAwaiter().GetResult(). Однако есть один случай, когда сами программисты Microsoft не гнушаются этой конструкцией.
.Net Core Api: получение данных в запросе из разных источников
2020-03-17 в 19:17, admin, рубрики: .net, .net core, api, ASP, web apiВ .Net Core есть встроенный механизм Model Binding, позволяющий не просто принимать входные параметры в контроллерах, а получать сразу объекты с заполненными полями. Это позволяет встроить в такой объект все нужные проверки с помощью Model Validation.
Вот только данные, нужные для работы API, приходят нам не только из Query или Body. Какие-то данные нужно получить из Headers (в моем случае там был json в base64), какие-то — из внешних сервисов или ActionRoute, если вы используете REST. Для получения данных оттуда можно использовать свой Binding. Правда и тут есть проблема: если вы решили не нарушать инкапсуляцию и инициализировать модель через конструктор, то придется пошаманить.
Для себя и для будущих поколений я решил написать что-то вроде инструкции по использованию Binding и шаманство с ним.
Читать полностью »