Задать вопрос
  • Не пройдена проверка DFSREvent, как убрать ошибку?

    @mvv-rus
    Данное событие связано с наличием события ошибки (или предупреждения) в жрнале событий DFSR.
    В случае перезагрузки другого КД ожидаемое событие - сообщение о потери связи с ним в момент перезагрузки. Если событие у вас - такое (смотрите текст и код события), то все нормально. А для прохождения успешной проверки после него подождите сутки.
    PS Обращайтесь, пожалуйста, ко мне на "вы".
  • Можно ли заменить private метод на делегат + лямбду?

    @mvv-rus
    Dyikot, я опять не вижу всей картины: где вы избегаете дублирования? Куда вы ещё эту лямбду передаете или намереваетесь передавать? И почему бы вам не передать вместо лямбды делегат для вашего private метода. Сделайте так
    Func<ContextMenu> NewColumnContextMenuDelegate = NewColumnContextMenu;

    и передавайте NewColumnContextMenuDelegate вместо лямбды, куда ее вам там нужно передавать. В этом случае производительность на однократном создании делегата вы вряд ли потряете. И имейте в виду, что лямбда, если она не статическая - это тоже не бесплатно: нужно к ней создавать объект замыкания.
    Даже можно, если вызов редкий, передавать просто NewColumnContextMenu - будут накладные затраты на создание объекта делегата каждый раз (в реальности, скорее - на сборку ненужных объектов делегатов как мусора, само создание обычно выполняется быстро), но, для редкого вызова они малы.
    А если лямбду предавать как аргумент больше никуда не нужно - не занимайтесь ерундой: создание делегата, не говоря уж о создании объекта замыкания для нестатической лямбды - это не бесплатно, просто вызов метода без всех этих допрасходов происходит быстрее (не говоря уж о том, что компилятор может вообще код этого метода вставить в код вызывающего метода ("заинлайнить").
    PS А вообще, производительность лучше все-таки мерять, если она важна.
  • Можно ли заменить private метод на делегат + лямбду?

    @mvv-rus
    (если я вас правильно понял)Можно, наоборот, если вам нужно передать ссылку на код, эквивалентный этому private методу, то передаваемому делегату можно присвоить этот private метод. Наоборот = как вы предлагаете - тоже можно, конечно, но надо смотреть на накладные расходы: делегат - это объект, и если его создавать при каждом вызове, то они могут быть существенными.
    Конечно, это годится, только если передаваемая лямбда - это действительно делегат. Может быть иначе: в форме лямбды может передаваться ещё и Expression: это надо смотреть на парметры конкретной функции, в которую вы лямбду передаете. В таком случае делегат, содержащий обычный метод передавать, очевидно, нельзя. И переменную типа delegate AFAIK - тоже. Правда, в этом случае переменная, содержащая лямбду и передаваемая в параметр, должна иметь тип Expression, a делегату нужно присваивать скомпилированное из этой переменной выражение, но так дублирования избежать таки можно (правда, несколько громоздко, и добавляется немного накладных расходов на вызов делегата).
    PS Теперь вы понимаете, почему я писал про разные варианты? Если бы вы привели свой код - можно было бы понять, какой из них у вас.
  • Почему условие в setInterval не всегда срабатывает?

    @mvv-rus
    MVV, Да, через console.log() наблюдал за $('#date').html() отрабатывает как положено

    Артем Гартунг, так это не отловишь: console.log() может внести задержку, досточную для того, чтобы document.body прогрузилось с гарантией.
    Для уверенности, что document.body прогрузилось в реальном коде, лучше запускать setInterval уже из его события окончания загрузки: в голом HTML оно называется load, наследуется от HTMLElement, и примеры работы с ним можно посмотреть на соответствующей страничке MDN. Как это делать через jquery, которым вы пользуетесь - не знаю.
  • Можно ли заменить private метод на делегат + лямбду?

    @mvv-rus
    Ответ на вопрос зависит от того, как именно у вас используется этот private метод (я вижу не менее двух вариантов).
  • Почему условие в setInterval не всегда срабатывает?

    @mvv-rus
    Вопрос первый: есть ли гарантия, что в момент срабатывания события истечения интервала элемент с id=date уже загружен?
  • Сервер аутентификации ldap+openid+ad?

    @mvv-rus
    Раз уж используете AD, то Active Directory Federation Services не рассматривали? Он, начиная с WinSrv 2016 в OpenID умеет.
  • Реализовать ajax в asp dot net core 6?

    @mvv-rus
    Сергей, это только будет (или не будет), а .NET 6 есть уже сейчас.
  • Реализовать ajax в asp dot net core 6?

    @mvv-rus
    Сергей, вопрос был конкретно про NET 6 и конкретно сейчас. А что там (и как) будет в будущем, для ответа на него никакого значения не имеет.
    PS Кстати FYI, поддержка .NET 6 заканчивается позже, чем .NET 7 (потому что это LTS), так что есть основание предпочесть именно его даже сейчас для нового продукта.
  • Реализовать ajax в asp dot net core 6?

    @mvv-rus
    делаешь запрос к api-ручке на бэке

    Offtopic. Интересно, откуда пошла мода обзывать "handler" по-русски "ручкой"? По словарю ведь "ручка" - это "handle", а "handler" - это обработчик.
  • Реализовать ajax в asp dot net core 6?

    @mvv-rus
    Это HTMX, и я не слышал, чтобы его одобрял Google.
    Стоит ли на это завязываться?
  • Как адаптировать MapPost в метод ControllerBase?

    @mvv-rus
    Если бы я был контроллером API на MVC, я бы тоже так же ответил: "что за фигню вы мне прислали?" (в протоколе HTTP это обозначается кодом статуса 400).
    Контроллер API ждет, что вы ему пришлете, нечто, содержащее значение для параметра message вашего метода действия. Если вы посылаете в формате JSON, то - объект с полем message: тогда он привяжет значение этого поля входному параметру метода действия, который имеет то же имя message, как у вас.
    Потому в запросе POST надо слать объект с этим полем. Например - в уже сериализованном (строковом) формате:
    string content = "TestContent";
    Но можно в качестве content использовать и объект с полем message, например - анонимного типа:
    var content = new { message = "TestContent" };
    - PostAsJsonAsync сумеет превратить это в JSON.

    И да, к контроллеру на Minimal API из вашего первого комментария все это точно так же относится.
  • В чем различие между делегатоми и событиями?

    @mvv-rus
    Зачем вы вводите в заблуждение новичка?
    Делегаты и сами по себе дают возможность вызывать несколько методов при вызове одного делегата. Для объединения вызова нескольких методов в одном делегате в базовом типе всех делегатов Delegate определен метод Combine (статический), а для удаления конкретного метода из списка вызываемых - Remove (тоже статический).
    Пример, как этим пользоваться, есть в справке по классу MuticastDelegate (это - потомок класса Delegate, обеспечивающий описанную выше функциональность.
    А событие (event) - это старый синтаксический сахар, которым посыпан вышепреведенный механизм на основе Delegate и MulticastDelegate. Компилятор встретив ключевое слово event создает переменную-делегат указанного типа с тем же именем (далее ИмяСобытия), доступную только внутри класса (т.е. private) и два метода: add_ИмяСобытия и remove_ИмяСобытия. А встретив операторы += и -= для подписки/отписки вызывает соответсвующий метод. Подробнее можно посмотреть в главе 11 книги Джеффри Рихтера "CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
  • Как работать с двумя ветками на одном ПК?

    @mvv-rus
    Я прочитал внимательно, просто не стал разъяснять общеизвестные вещи. В полученном репозитории хранятся обе ветки (вы их видите на рисунке, кстати). В копии тоже будут обе. После копирования просто делаете checkout другой ветки и работаете уже с ней.
  • Почему не подключаются сетевые диски через групповую политику?

    @mvv-rus
    Сбросьте пароль учетной записи szp22$ и попробутйте добавить в домен заново. Хуже уже не будет.
    Но учетную запись лучше пока не удалять.
  • Почему не подключаются сетевые диски через групповую политику?

    @mvv-rus
    Есть ощущение, что возникли ошибки аутентификации Kerberos
    Это более чем вероятно, т.к. Microsoft в последнее время сделала ее более строгой, а на вашем NAS соответствующие могли быть изменения не внедрены.
    Есть такое руководство по поиску ошибок аутентификации Kerberos, попробуйте воспользоваться им.

    И вообще, посмотрите, что пишется в журналах событий Безопасность и Служба каталога.
    PS В частности, проблема с вводом в домен могла быть вызвана вот этим обновлением
    Другое известное изменение, ужесточившее доступ - вот это
  • Почему не подключаются сетевые диски через групповую политику?

    @mvv-rus
    Для начала проверьте работает ли синхронизация AD между КД, командой на обоих КД:
    repadmin /showrepl