Ответы пользователя по тегу .NET
  • Как реализовать смену цвета кнопки в разных файлах (c# winforms)?

    @rPman
    Так и говори, как из одной формы обращаться к контролам другой (утт форма - это окно, в твоем вопросе это 'файл' Tema1.cs и t1q1.cs).

    Тебе нужно передать ссылку на форму, в которой что то хочешь изменить на форму, которая хочет изменить. Сделать это можно либо в тот момент, когда вторая форма создается, либо (если экземпляр у формы один) разместить эту ссылку как статичный мембер какого либо класса (пусть и самой формы) в которую конструктор будет иницилизировать эту ссылку, типа так
    public static tema1_form;
    ...
    // конструктор Tema1
    Tema1()
    {
    ...
    Tema1::tema1_form=this;
    ...
    }

    // в другом файле
    Tema1::tema1_form.button1.BackColor=Color.LightBlue;
    формально способов тьма, тебе тут могут еще накидать, а то народ 'почему то' не любит в конкретных задачах такие простые способы.
    Ответ написан
    Комментировать
  • Как в линукс проверить, запущено ли net приложение?

    @rPman
    Нет нужды создавать mutex или semaphore, исторически, хоть в windows хоть в linux для этого открывают файл (пустой, их называют .lock) в режиме SharedAccess NONE
    https://learn.microsoft.com/ru-ru/dotnet/api/syste...
    https://learn.microsoft.com/ru-ru/dotnet/api/syste...
    FileMode = Create тогда файл будет автоматически создан если отсутствует и не выдаст ошибки если уже есть
    FileAccess = Write чтобы файл можно было создать (если создать его заранее то хватит Read)
    SharedAccess = None запрет на повторное открытие хоть на чтение хоть на запись


    При попытке открыть такой файл повторно, будет выдана ошибка, при этом при закрытии процесса, операционная система следит за закрытием файлов автоматически.
    Ответ написан
    Комментировать
  • Должны ли все асинхронные методы вызываться с ключом async?

    @rPman
    Асинхронность - это механизм многозадачности в пределах одного потока (.net умеет это делать и в пределах нескольких потоков), когда существует некий цикл, в пределах которого код (пользовательские функции) выполняются по очереди.

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

    async/await это синитаксический сахар, позволяющий красиво использовать асинхронный код в обычном стиле программирования. Когда компилятор видит async он сохраняет состояние (стек) и передает выполнение к очереди для других кусков кода (помеченный async)
    Ответ написан
  • Какой есть аналог Microsoft.Office.Interop.Word для .Net Core?

    @rPman
    Когда то с меньшими версиями студии и офиса) я просто добавлял dll файлы к проекту, в виде компонент, они так и назывались, необходимые зависимости студия пишет в ошибке при запуске или компиляции, уже не помню точно

    nuget пакет тут явно не поможет

    еще в интернетах пишут что нужно выбирать правильный тип проекта
    Ответ написан
  • Что делать, если не открывается приложения Windows Form?

    @rPman
    я тут вижу два разных языка - c++ и manged c (на нем написано приложение win form)

    выбор языка определяется в момент создания проекта, именно это определяет как это будет запускаться

    если же у тебя два проекта в solution то там же есть настройка, какой запускать

    p.s. чтобы из одного проекта вызывать код другого, этот другой должен быть библиотекой dll (повторяю, отдельный проект в солюшне), там и точка входа называется по другому

    пример доки, как вызывать из managed кода unmanaged (тот что ты на c++ хочешь)
    Ответ написан
    6 комментариев
  • Как изменить DLL?

    @rPman
    Декомпилируешь чем то типа этого, получаешь заметно искаженные исходные коды приложения, с синтетическими именами переменных и функций, но в принципе данные исходники уже можно изучать и править. Затем можно попытаться их компилировать обратно (если нужно править константы, то собирать полностью обратно может и не понадобится, так как исходнки дадут примерное понимание где искать нужные константы в бинарном файле, их уже можно будет подправить hex редактором).

    Если разработчик не делал попыток этому помешать то может получиться
    Ответ написан
    5 комментариев
  • Как исправить ошибку "To run this application, you must install .NET Core"?

    @rPman
    Разрабатывать приложение с более старой версией .net
    Например 3яя есть даже на win7 по умолчанию, а в 10-ке - 4.6 версия, вот список ревизий ос и версий встроенных в них .net

    p.s. машины, на которых почему то не установлен последний .net это что то странное, сейчас некоторые даже инсталяторы пишут на .net, т.е. на такой машине без .net тупо ничего не запустится

    Машины должен кто то администрировать, пусть он и настраивает как надо
    а если там linux будет стоять, будете прикладывать к своему exe-шнику инсталятор windows?
    Ответ написан
  • Невозможно найти исполняемый файл компилятора csc.exe?

    @rPman
    Только что в MVS Community 2017 ваш код собрался без ошибок, ничего не менял и не настраивал.

    Попробовать переустановить .net framework точнее обновить до последней, или в установщике указать repair
    Ответ написан
    Комментировать
  • Как оптимизировать рисование линий в WPF?

    @rPman
    Тормозит наверное потому что на on paint перерисовываете все объекты (как минимум при добавлении новой?) Рисуйте линии в битмап однократно и уже его на on paint отрисовывайте.
    Ответ написан
  • Как создать инсталятор программы на C# с интерпретатором Python?

    @rPman
    Вы точно хорошо подумали, прежде чем выбрать такую странную смесь архитектур?
    p.s. правда я и сам бы мог так сделать, если бы потребовалось писать сложный интерфейс, а вычислительная логика уже была бы на python, так как в visual studio на .net писать сложные формочки удобнее всего (имхо).

    Если вас не интересует полноценная поддержка обновлений а так же вас не волнует что архив установки будет толстым (особенно это замечают когда будете делать частые обновления), тупо складывайте заранее установленный каталог python в отдельный каталог и пользуйтесь (максимум перед запуском переменные окружения прописывайте), в этом случае за обновление будете отвечать сами. Но даже в этом случае хорошим жестом будет являться предложение установки приложения без питона, ожидая его уже установленным на машине пользователя. Почему вариант таскать питон с собой плохой? - поддержка, через три десять лет, чтобы запустить ваше приложение с поддержкой современного оборудования, понадобится пуд соли и ершик для чистки унитаза (особенно это актуально для gpgpu/opencv подсистем).

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

    Если у вас linux с нормальными пакетными менеджерами, пользуйтесь ими, и программными пакетами в их формате (apt/rpm/ebuild/..), и они сделают все необходимое за вас в лучшем виде! Если же windows...

    В не кастрированных (не домашние) версиях windows10 можно попытаться запустить бинарники ubuntu/debian, если не требуется gui, это почти наверняка будет работать, т.е. вы можете использовать штатный пакетный менеджер apt, ив пару команд установить/обновить все все необходимое

    Можете так же устанавливать python в тихом режиме, скачав установщик с сайта https://www.python.org/downloads/, это будет занимать меньше места, но в случае если вам нужны необычные модули, то вам может не повезти найти собранные под windows, да и те что есть, обычно требуют ручную установку.. в общем не все там легко автоматизируется, пути загрузок внезапно могут через год другой исчезнуть и пользователи получат проблему.

    Универсально, можете воспользоваться готовой linux подсистемой для windows - cygwin (на столько долгой и качественной поддержки почти всего из мира windows в linux вы не найдете), и таскайте в своем установщике их setup.exe (кстати он всегда доступен для загрузки с сайта по одному и тому же url) в режиме Unattended setup mode (--quiet-mode), вместе с питоном вы получите базовый набор утилит командной строки и кучу еще чего теоретически лишнего, но поверьте, оно не помешает, особенно если вам нужна автоматизация процессов управления установкой на машине клиента.
    Ответ написан
    Комментировать
  • Быстрый способ авторизации на предприятии

    @rPman
    Мобильное приложение, которое по кнопке выдает доступ к указанной в этом приложении панели (а судя по вашей задачи такая панель одна). доступ выдается на короткий промежуток времени, все.
    Ответ написан
    Комментировать
  • Ваши мнения про C#(.NET) и Java в целом и по отдельности

    @rPman
    Опыт программирования на java вам подойдет в гораздо большем количестве мест, чем знание c# (и точнее .net framework, так как обычно говоря c# подразумевают сразу и язык, и среду разработки и библиотеки от майкрософта).

    Как я зык, java — это и веб, и все mobile (как старое так и новое — android), и desktop, и игры и самое главное — кроссплатформенность.

    В минусах — грустная политика oracle, владельца java как технологии так и пула патентов. И как результат, смутное далекое будуще. Но c# 'держит за горло' еще более худший монстр — microsoft…
    Ответ написан
    3 комментария