Задать вопрос
  • Опыт перехода из энтерпрайза в ...?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Либо синдром профессионального выгорания, либо Вы просто с жиру беситесь, батенька... Рынок труда в ж... - Вы всерьез хотите поменять работу с зарплатой выше рынка на нечто неведомое? Дерзайте. Но сначала неплохо было бы определиться - что все-таки не устраивает? Что хотелось бы?
    - Коллектив единомышленников-фанатов? Идите в стартап, но будьте готовы взять на себя риски стартапа - он не взлетает, денег нет, всем спасибо, все свободны.
    - Свободу творчества? Идите во фриланс, но будьет готовы взять на себя риски фриланса (куда большие, чем в пункте выше) - ты сам себе СIO, сам себе сеньор и сам себе продвиженец. И если денег нет - обвинять будет некого

    Может просто надоело тратить время на дорогу? Снимите жилье поблизости или найдите работу ближе к дому... То, как "долгая дорога к дому" может надоесть, знаю вовсе не понаслышке...
    Ответ написан
    4 комментария
  • Как избежать множественного создания классов в c# web api?

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

    Если у Вас проект небольшой, то можно было обойтись и одним слоем для работы с ORM и не усложнять код.
    Ответ написан
    4 комментария
  • Как смержить две удаленные ветки?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    перейти в N, выполнить merge develop, и запушить N
    Ответ написан
    Комментировать
  • Какой язык подойдет для запуска и закрытия exe приложений?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Любой язык на это способен :-)

    В C# работа с процессами может быть примерно такой:
    // запускаем процесс
    var process = System.Diagnostics.Process.Start(@"C:\windows\system32\calc.exe");
    // убиваем процесс
    process.Kill();
    // или отправляем команду на закрытие главного окна
    // process.CloseMainWindow();
    
    // запуск можно выполнить через ProcessStartInfo,
    // это может быть более удобней и больше возможностей
    var processStartInfo = new System.Diagnostics.ProcessStartInfo();
    // путь к файлу программы
    processStartInfo.FileName = @"C:\windows\system32\notepad.exe";
    // передаем аргументы (в данном случае путь файла для открытия)
    processStartInfo.Arguments = @"C:\Windows\System32\drivers\etc\hosts";
    
    // запускаем процесс
    var process2 = System.Diagnostics.Process.Start(processStartInfo);
    
    // если необходимо, можем получить список всех процессов
    var processes = System.Diagnostics.Process.GetProcesses();
    
    // для примера, выводим в консоль
    foreach(var p in processes)
    {
      Console.WriteLine("PID#{0}, {1}", p.Id, p.ProcessName);
      // можем поубивать все блокноты
      // if (p.ProcessName == "notepad")
      // {
      //   p.Kill();
      // }
    }

    При запуске процессов, вы можете просто запомнить их идентификаторы (например в коллекцию, типа List<int> или же использовать свой тип, и/или запоминать экземпляры Process) и в последующем завершить работу этих процессов.

    Информацию о запущенных процессах можно получать с помощью методов: System.Diagnostics.Process.GetProcessById() - по идентификатору процесса, System.Diagnostics.Process.GetProcessByName() - по имени процесса.

    Если необходимо, к каждому создаваемому процессу можно подключить обработчик завершения работы процесса:
    // создаем параметры запуска процесса
    var processStartInfo = new System.Diagnostics.ProcessStartInfo();
    processStartInfo.FileName = @"C:\windows\system32\notepad.exe";
    processStartInfo.Arguments = @"C:\Windows\System32\drivers\etc\hosts";
          
    // создаем экземпляр процесса
    var process = new System.Diagnostics.Process();
    // передаем параметры
    process.StartInfo = processStartInfo;
    // разрешаем использование обработчиков событий
    process.EnableRaisingEvents = true; // <-- требуется для работы обработчика завершения процесса
    
    // цепляем обработчик завершения работы процесса 
    // (лучше сделать нормальную функцию, а не анонимную, как показано в примере)
    process.Exited += (object sender, EventArgs e) =>
    {
      // этот блок будет выполнен, когда работа процесса будет завершена
      // экземпляр процесса можно найти в sender: строгий тип - ((System.Diagnostics.Process)sender)
      // (хотя в данном примере без проблем можно использовать process, это будет даже удобней)
    
      // для примера, выводим в консоль идентификатор завершенного процесса
      Console.WriteLine("PID#{0} завершил работу", ((System.Diagnostics.Process)sender).Id);
    };
    
    // запускаем процесс
    process.Start();
    Ответ написан
    3 комментария
  • Как объеденить массив int в 1 строку C#?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    // входящие данные
    var arr = new int[] { 5, 10, 7, 123, 0 };
    
    // Console.WriteLine(String.Join("+", arr.OrderBy(n => n).Select(n => n.ToString())));
    
    // сортируем
    var sorted = arr.OrderBy(n => n);
    
    // склеиваем
    Console.WriteLine(String.Join("+", sorted.Select(n => n.ToString())));
    
    // или без вызова ToString(), если используемая версия .NET позволит:
    // Console.WriteLine(String.Join("+", sorted));
    
    // или с вызовом ToArray() для ранних версий .NET:
    // String.Join("+", sorted.Select(n => n.ToString()).ToArray())
    Ответ написан
    4 комментария
  • Дружба C# и Linux, как?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Можно запускать обычные сборки через Mono или .NET Core. Последнее предпочтительней.

    Программа уровня «Hello world» будет просто запускаться через выше указанные решения, например:

    mono helloworld.exe
    dotnet helloworld.exe
    # выполнение из исходного кода в текущем каталоге:
    dotnet run

    Для более сложных решений может потребоваться дополнительная адаптация кода. Под .NET Core это сделать удобней и проще. Писать и собирать код вполне можно в Visual Studio под Windows.
    Ответ написан
    4 комментария
  • Как узнать какие есть git репозитории на устройстве?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Никак.
    репозитории не устанавливаются в какой-то спец список, так что только поиск.
    Но для поиска не нужно ставить какойто everything, просто встроенный поиск подойдет не хуже
    Ответ написан
    2 комментария
  • Это разрабы Git Extensions забыли убрать или прикололись?

    Скорее всего это gravatar.
    Ответ написан
    Комментировать
  • Почему говорят, что C# не подходит для WEB?

    zorca
    @zorca
    C# не подходит для БЫСТРОЙ РАЗРАБОТКИ под WEB
    Ответ написан
    10 комментариев
  • Как сменить формат даты в C#?

    @kttotto
    пофиг на чем писать
    var date = DateTime.Now;
    Console.WriteLine(date.ToString("yyyy-MM-dd"));

    Подробно о форматировании даты
    Но s у Вас типа string, поэтому его надо сначала привести к DateTime:
    DateTime.Parse(s);
    или надежнее
    DateTime date;
    var result = DateTime.TryParse(s, out date);
    if(result)
    {
        var dateFormat = date.ToString("нужный формат");
    }
    Ответ написан
    Комментировать
  • Оператор || и == не может применятся к операндам типа стринг и инт?

    Начните с прочтения книги или сайта по С#.
    https://metanit.com/sharp/
    Ответ написан
    Комментировать
  • Какие технологии .NET стоит изучать сейчас?

    WPF нисколько не умирает. Это какие-то странные слухи. Например, в последней версии .NET Framework 4.7 включили обновления для WPF, и он достаточно внушительный. И он будет развиваться и дальше. UWP (у него такой же язык, что и у WPF: XAML) обычно завязан на магазине Microsoft и требует только последние версии Windows, насколько я помню. Ещё до сих пор существует WinForm, и он не собирается пока сдавать свои позиции. Если вам нравится этот язык, то работайте с ними, осваивайте новое. Изучать всё сразу не получится, слишком большой охват. Лучше изучать по ходу дела. Я именно так поступаю. Когда нужно новое или оптимальное решение, то ищу его. Главное, тут набить руку в программировании. WPF и ASP.NET MVC - разные направления. Первые нацелены на настольные решения, а вторые - уже веб-решения. А уж дальше уже зависит от поставленных задач.
    Ответ написан
    2 комментария
  • Как использовать progress bar если много файлов на загрузку?

    petermzg
    @petermzg
    Самый лучший программист
    (скачал) / (нужно скачать) * 100%
    Ответ написан
    Комментировать
  • Как сделать доступным открытый COM порт внутри всего проекта wpf C#?

    Kubatai
    @Kubatai
    Техник-программист
    Самый простой способ в лоб - сделать статический публичный класс с COM-портом и обернуть в методы основные инструменты работы с ним(по желанию).
    public static class COM
    {
    	public static SerialPort CurrentSerial {get; private set; }
    
    	public static InitSerialPort(string text, int baudRate)
    	{
    		CurrentSerial = new SerialPort();
    		CurrentSerial.PortName = text;
    		CurrentSerial.BaudRate = baudRate;
    		CurrentSerial.Open(); 
    	}
    }


    Если у вас много портов, то используйте IList;
    Ответ написан
    Комментировать
  • Как сильно влияет длина имени переменной на скорость работы программы?

    Griboks
    @Griboks Куратор тега C#
    Где то читал что длина имен переменных вообще не влияет на производительность приложения.

    Так и есть. Длина имён никак не влияет на производительность программы. Дело в том, что все имена преобразуются и оптимизируются компилятором.
    Ответ написан
    3 комментария
  • Возможно ли все dll библиотеки в проекте "сложить" в один исполняемый файл?

    arxont
    @arxont
    C# программист
    К способам указанных в других ответах ещё бы добавил - https://github.com/Fody/Costura/
    Ответ написан
    Комментировать
  • Не запускается приложение на widows xp, что еще попробовать сделать?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    Смотреть системные логи
    Ответ написан
    Комментировать
  • Можно ли открыть свой сервер управления версиями с функцией Pull Request?

    @buzina_v_ogorode
    Gogs, Gitlab
    Ответ написан
    Комментировать
  • Какой оптимальный размер буфера?

    @4ainik
    начинал с бейсика на 286 в 1994
    ну раз это нужно для диплома, то будет вполне уместно провести анализ: ряд тестов на чтений/запись больших файлов скажем размером в 10ГБ.
    Читать/писать разными блоками начиная от 512 байт, далее степень двойки (1024,2048,4096,8192,...) замеряя при этом скорость... программа простецкая, за вечер думаю управитесь... построите график зависимости производительности от размера буфера... будет шикарный раздел диплома...
    Ответ написан
    1 комментарий
  • Как из domain группы ВК получить id?

    Ahen
    @Ahen
    Универсальный дилетант
    Ответ написан
    Комментировать