• Это можно считать микросервисной архитектурой?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Это не микросервисы. Это всего лишь динамическая загрузка кода в контекст одного-единственного приложения. Если в подгруженной библиотеке случится какая-то фатальная ошибка (типа разыменовывания нулевого указателя), то вся программа благополучно помрёт. А в микросервисах падение одного микросервиса не мешает другим продолжить работать (и их специально пишут и организовывают так, чтобы подобное падение не приводило к остановке всего сервиса).

    Микросервисы - это не про распилить приложение хоть как-нибудь на несколько файлов. Это про разделение функций, резервирование, масштабирование и отказоустойчивость. А также про непрерывную разработку и раскатку.
    Ответ написан
    4 комментария
  • Как организовать изолированную среду выполнения собранного dotnet приложения?

    vabka
    @vabka Куратор тега .NET
    Токсичный шарпист
    Кажется, что прощё сделать софт как SaaS, а хостинг на серверах заказчика сделать только для тех ситуаций, когда это заказчику действительно необходимо и за индивидуальный прайс.
    Даже в случае утечки будет сразу ясно, кто это сделал и набутылить.

    А полностью защищённый контейнер - это физический сервер, к содержимому файловой системы которого человек со стороны не будет иметь доступ совсем.

    Никакие софтовые решения (обфускация, контейнеры, шифрованные виртуалки, передача критичного исполняемого кода по сети) не спасут от тех людей, которые хотят с вами конкурировать или осознанно хотят нарушить соглашения.
    Ответ написан
    4 комментария
  • Чем C# .net mvc лучше чем любой ЦМС типа Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    1. MVC можно реализовать и на c# и на php. Это просто архитектурный паттерн.
    2. Сравнивать язык и CMS некорректно. Используя язык, Вы сами разрабатываете инфраструктуру своего приложения, а используя CMS — Вы принимаете её такой, какая она есть. Грубо говоря, если Вам нужно поклеить обои в квадратном доме, Вы клеите и сдаете заказчику готовый дом. Быстрее? Определенно. А если заказчик захотел треугольный дом? Придется ломать стены и строить заново. Быстрее это чем построить дом самостоятельно с нуля? Уже вопрос.
    Ответ написан
    Комментировать
  • Стоит ли использовать Blazor?

    profesor08
    @profesor08
    Неужели единственный плюс Blazor это c#?

    В точку.

    Далее по старой информации(если не ошибаюсь технология Wasm тогда толко развивалось) производительность blazor может быть лучше чем в React.js только в Firefox.

    Срочным делом надо разобраться и понять что такое WebAssembly и какие там ограничения. Приготовься в большому огорчению.
    Ответ написан
    Комментировать
  • Стоит ли использовать Blazor?

    @caballero
    Программист
    Blazor позволяет не разделять сайт на две части фронтенд и бекенд чтобы потом соединять это через API - то есть выполнять лишнюю дурную работу

    сайт пишется как класческий сайт но работает как SPA
    с учетом что core.net ща кросплатформенный - у остальных технологий преимуществ немного.
    просто blazor еще новая необкатаная технология но перспективы неплохие
    Ответ написан
    2 комментария
  • Какие есть атрибуты и теги в html, что могут исполнить js?

    @zkrvndm
    Софт для автоматизации
    Если атрибут у элемента начинается с букв on... то там может быть JavaScript.

    Например:
    https://spravka.seodon.ru/html/sobytiya/onload.php

    Но это не обязательно onload, может быть и onhover или любое другое событие.
    Ответ написан
    Комментировать
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Я в общем-то спорить не хочу, вы скорее всего LinkedList просто «алгоритмически» не взлюбили и троллите его :)

    Да, применений у него мало, конкретно так мало. В основном кто-нибудь всунет куда не надо по незнанию и потом сиди разгребай в чем проблема.

    Но все же, для списка слушателей я использую именно LinkedList т.к. все что я перечислил выше + он ожидаемо ведет себя во всех ситуациях при данном использовании и не создаст мне неожиданных проседаний производительности (маааленьких, но все же), как тот же ArrayList если я просто хочу добавить/удалить слушателя не парясь заранее об их количестве.

    Вам понравится подход к отделению LinkedList в C# от просто списков, там он не реализует IList и случайно применить его не выйдет, только если как коллекцию и то вряд ли, там ArrayList называется List и большинство даже не в курсе про LinkedList.

    В статье снизу список с результатами среднего времени по операциям:
    (наносекунды, меньше лучше)

    ArrayList add:    13265642
    LinkedList add:    9550057
    
    ArrayList get:       1543352
    LinkedList get:     85085551
    
    ArrayList remove:    199961301
    LinkedList remove:    85768810
    


    Вот. Просто такое ощущение, что вы задали вопрос чтобы убедится в правоте своего мнения и других слушать не хотите :)
    Ответ написан
    7 комментариев
  • Как вырезать область изображения под контуром, Алгоритм?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    FillPolygon работает через обход в ширину.

    Сначала одним циклом покрасьте все точки контура.
    Потом берите любую точку внутри полигона, красьте ее и кладите в очередь. Пока очередь не пуста берете точку оттуда, берете 4 или 8 ее соседей и если они не покрашены еще - красите их и кладете в очередь.

    Может быть сложность с выбором самой первой точки внутри полигона. Но тут можно аккуратно пройтись вдоль полигона против часовой стрелки и взять первую непокрашенную точку слева относительно обхода. Тут можно для каждой точки найти вектора на двух соседей по контуру, потом перебрать 4-8 соседних пиксилей и взять тот непокрашенный, вектор на который лежит между двумя векторами вдоль контура.
    Ответ написан
    Комментировать
  • Разумно ли использовать DependencyInjection в JavaFX?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Да, разумно.
    Я даже скажу так, есть готовая либа на Spring со всеми возможностями спринга для JavaFX.
    https://habr.com/ru/post/478402/
    сама либа - https://github.com/rgielen/javafx-weaver
    Ответ написан
    1 комментарий
  • Vue.js router Как настроить маршрутизатор на asp.net 6?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    сравните со своим файлом.
    https://github.com/SoftwareAteliers/asp-net-core-v...

    плюс еще одно соображение, на проде веб мордой будет nginx, вы пробовали такой режим?
    Ответ написан
    8 комментариев
  • Как в laravel выбрать базу?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Единственный вариант, как я вижу — менять на лету ключ database в конфиге подключения. Пахнет костылями.
    Ответ написан
    1 комментарий
  • Как указать виртуальной среде свой интерпретатор?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Вы, похоже, не понимаете принципа и назначения виртуального окружения.
    Оно нужно для изолированной работы с набором библиотек. То есть - проект запущенный в ВО не может работать с библиотеками извне, а проекты запущенные без него или в другом ВО не имеют доступа к либам в текущем ВО
    Ответ написан
    Комментировать
  • Как указать виртуальной среде свой интерпретатор?

    iggor-markin
    @iggor-markin
    Python Developer
    Виртуальное окружение для того и нужно, чтобы не засорять системный питон. Зайди в стандартный интерпретатор, сделай файл зависимостей:
    pip freeze > requirements.txt

    Потом перенеси его в виртуальное окружение и установи там все свои библиотеки:
    pip install -r requirements.txt
    Ответ написан
    1 комментарий
  • Как хранить строку в виде байтов?

    @Akela_wolf
    Extreme Programmer
    Что-то я не понимаю чего вы хотите добиться. То что вы говорить - низкоуровневое программирование, для этого вам не нужен C#. Берите C/C++ и наслаждайтесь прямой работой с памятью.

    Вообще со строками есть два подхода. Первый использовал Pascal: в нулевом байте строки хранится её длина. Так как паскаль использовал однобайтную кодировку (ANSI), то этого было достаточно для хранения строк длиной до 255 байт. Вы, в принципе, можете использовать и 2 и 4 байта. И это неплохо работало.
    Второй подход - это подход из C++, когда строка заканчивается символом '\0' (zero-terminated string). Тут тоже есть свои тонкости, в основном связанные с тем, что при определении длины строки нужно помнить что '\0' не входит в её длину. Еще есть потенциальная ошибка, связанная с выходом за пределы строки и повреждением следующих за ней блоков памяти.

    Выбирайте - какой подход вам больше нравится.
    Ответ написан
    2 комментария
  • Как можно вызвать метод, если он отличается от предыдущего на 1 цифру?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Да у вас фигня какая-то. Должно быть
    void Round(int roundIndex)
    Ответ написан
    3 комментария
  • .Net 7, добавят ли что нибудь значительное?

    vabka
    @vabka Куратор тега .NET
    Токсичный шарпист
    и кроме как слов об оптимизаций я ничего особо не заметил....

    Так и есть. В основном стабилизация и расширение уже внесённых API с повышением производительности
    Возможно, в следующем превью покажут больше.
    Как минимум, ожидается C# 11 с новыми фичами, например "raw string literal" и required при объявлении свойств.
    Ещё ожидается стабилизация generic math и abstract static в интерфейсах.

    Ну и кстати вот цитата:
    Major areas of focus for .NET 7 include improved support for cloud native scenarios, tools to make it easier to upgrade legacy projects, and simplifying the developer experience by making it easier to work with containers.

    Вроде как ещё на Orleans больше внимания обращают - мб в него больше фичей привнесут (ну и с Azure его интегрируют)

    у .NET сейчас такой этап, что надо как-то его окупать - значит будут чуть больше внимания обращать на Azure, чем на сам .NET
    Ответ написан
    2 комментария
  • Работает ли Asp.Net всегда?

    @Arlekcangp
    Разработчик, Лид, Архитектор ПО
    Он не только работает "всегда", но имеет несколько режимов работы. Можно деплоить приложение как модуль IIS, так и сделать его stand alone. Первый вариант в свою очередь разделяется на два: "классический" и "интегрированный".

    1. Классический подразумевает что IIS загружает DLL модуль ISAPI который в свою очередь запускает NET-среду в отдельном потоке. Так что даже в этом случае ASP NET CORE (или более ранний ASP NET ) работает "всегда". (В отличие от просто ASP который был до NET). Не смотря на то, что на картинках в документации обработка начинается только с приходом запроса, там всё равно присутствует процесс и поток отвечающий за работу ASP NET. В нём запускается global.asax. Но этот процесс может быть в любое время перезапущен IIS, если хоть что то ему "не понравится" (включая, например что процесс был запущен слишком давно. Часть этих параметров доступна для изменения в пуле приложений IIS)

    2. В интегрированном режиме примерно всё тоже самое, за тем исключением, что там NET-среда уже является частью пайплайна IIS и приложению доступна возможность обрабатывать больше событий. Т к теперь это часть IIS, то штатным завершением будет выгрузка домена приложения из памяти. Но т к это может быть не возможно по разным причинам, IIS всё равно может перезапустить процесс вместе со всем пулом приложений. В штатном режиме обычно этого не происходит. Однако тут нужно сделать ремарку:
    Если под понятием "работает всегда" понимать запуск какой-то своей бэкграунд-задачи в отдельном потоке, то есть нюансы. Для старого ASP NET это описано в этом блоге haacked.com/archive/2011/10/16/the-dangers-of-impl... Для ASP NET CORE Микросософт сделал усилие и расширил как саму возможность правильного запуска фоновых задач, так и документацию: https://docs.microsoft.com/ru-ru/aspnet/core/funda...
    И здесь нужно заметить, что никто не мешает просто запустить новый поток самостоятельно, но это не штатная работа и чревата всё теми же последствиями какие описаны в том блоге.
    3. Режим stand alon более простой. Это отдельное консольное NET-приложение, в котором внутри работает HTTP-сервер Kestrel. Но в сравнении с IIS я бы назвал его "недосервер", т к у него мало того что нет большей части функций IIS, так ещё и хромает документация. Но всё равно, даже несмотря на это он во многом лучше IIS по причине своей простоты. Кроме того он является безальтернативным решением, если ваше приложение должно работать в docker-контейнере или на ОС отличной от Windows, где IIS не завезли пока. Т к это отдельное приложение, там можно запустить сколько угодно потоков и это не должно привести к описанным проблемам. Но всё равно лучше использовать штатные средства. Хотя бы в целях переносимости приложения между IIS и stand alone режимами.
    Ответ написан
    1 комментарий
  • Оператор станков с ЧПУ хочет в IT. А есть ли смысл? И куда податься с имеющимися навыками?

    @pavelsha
    Автор, как советует куратор, разберись в себе. Тогда и без нас будешь знать, куда идти.

    А ближе к теме...
    Записывай слова для гугления:
    АСУ ТП, SCADA, ПЛК, автоматизация производства, учёт электроэнергии, телеметрия, промышленная автоматизация.

    Если говорить о деньгах, то там тоже очень неплохо могут платить.
    Английский язык есть? Если нет , то добавь его изучение в свои планы.

    Используй базу, которая у тебя есть, с умом.
    Моё мнение, "уеб-программисты" в большинстве случаев - это путь для тех, кто никакой базы не имеет. Не ведитесь на рекламу курсов и предметные статьи/ролики блогеров и ютуберов.

    И учти главное: у работодателей голод на хороших технарей в автоматизации производств последние лет 30. А джунов веб-мастеров переизбыток уже 15 лет минимум.
    Ответ написан
    6 комментариев
  • Как долго проходит модерацию пост на Хабре?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Цитирую правила:
    Модерация может длиться от 1 минуты до бесконечности — наберитесь терпения
    Ответ написан
    1 комментарий
  • Генетический Алгоритм, Как правильно написать фитнес функцию?

    LaRN
    @LaRN
    Senior Developer
    У вас все параметры описаны так, что приидиальном варианте значение каждого из них будет равно 1.
    Например:
    Конфликтные пары для учителей = [0..1] (КоличествоПарКоторыеОниПреподают - КоличествоКонфликтныхПар )/КоличествоПарКоторыеОниПреподают

    КоличествоКонфликтныхПар = 0, значение параметра =1.

    В итоге вам нужно исками максимум а не минимум от вашей функции.
    Может переделать описание параметров наоборот, чтобы целевое значение стремились к 0?
    Например:
    Конфликтные пары для учителей = [0..1] КоличествоКонфликтныхПар/КоличествоПарКоторыеОниПреподают
    Ответ написан
    Комментировать