Задать вопрос
  • Реально ли запустить c# приложение на Ubuntu?

    Если оно написано под .NET Framework и использует Winforms - можно запустить на mono.
    Если оно написано под .NET Framework и оно консольное - можно запустить на mono или мигрировать на .NET Core одной консольной командой.
    Если оно написано под .NET Framework и использует WPF, то можно переписать на Avalonia и запускать под .NET Core.

    Все три способа будут работать только в том случае, если вы жёстко не привязались к технологиям винды.
    Лично я рекомендую перейти на .NET Core и делать кроссплатформенное приложение.

    PS: dotnet try-convert
    Ответ написан
    1 комментарий
  • Велика ли разница между asp.net и asp.net core?

    Принципиально разницы нет - если вы хорошо разбираетесь в ASP NET, то легко перейдёте на ASP NET Core.
    Может я зря разделяю технологии и игнорирую проекты на Asp.Net Core?

    Зря. Core работает быстрее и имеет больше разных возможностей. Framework не актуален сейчас и все с него массово уходят. (От части из-за того что даже MS перевела его только на security-обновления, тоесть никаких новых фич там уже не будет)
    По крайней мере все проекты на Framework, где я был - либо уже находились в состоянии перехода, либо имели переход в планах.

    UPD: В .net 6 ещё и новый API для описания ендпоинтов появился:
    (вот буквально весь hello world с ним)
    using Microsoft.AspNetCore.Builder;
    
    var builder = WebApplication.CreateBuilder(args);
    var app = builder.Build();
    
    app.MapGet("/hello", () => "Hello, World!");
    
    app.Run();
    Ответ написан
    Комментировать
  • Почему не работает данный код?

    Nipheris
    @Nipheris Куратор тега C#
    ListAdvertismentsByWord очевидно не возращает таск
    Ответ написан
    Комментировать
  • Как импортировать таблицу Excel в C#?

    FoggyFinder
    @FoggyFinder
    Существует множество библиотек для работы с Excel. Что из них выбрать зависит от задачи (например, нужно только читать данные или нужно формировать полноценный отчет, со стилями и так далее).

    Судя по описанию, здесь вам нужно только чтение, причем с поддержкой устаревшего формата xls, поэтому рекомендую библиотеку ExcelDataReader

    Если у вас .Net Core приложение не забудьте добавить строку

    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);


    А теперь пример.

    1. В C# не принято для классов использовать публичные поля, поэтому перепишем их на свойства

    public class Questions
    {
        public string Question { get; set; }
        public string Theme { get; set; }
        public string Description { get; set; }
        public string QuestionEn { get; set; }
        public string DescrEn { get; set; }
    }


    2. Само чтение

    const string FilePath = "sample.xls";
    var qs = new List<Questions>();
    
    using var stream = File.Open(FilePath, FileMode.Open, FileAccess.Read);
    using var reader = ExcelReaderFactory.CreateReader(stream);
    do
    {
        while (reader.Read())
        {
            var question = reader.GetString(0);
            var theme = reader.GetString(1);
            var description = reader.GetString(2);
    
            qs.Add(new Questions()
            {
                Question = question,
                Theme = theme,
                Description = description
            });
        }
    } while (reader.NextResult());


    3. Выводим результат

    foreach(var q in qs)
    {
        Console.WriteLine($"{q.Question}");
        Console.WriteLine($"{q.Theme}");
        Console.WriteLine($"{q.Description}");
        Console.WriteLine(new string('-', Console.WindowWidth));
    }


    4. Запускаем, проверяем

    Индейцы в знак примирения хлопали в ладоши
    history
    Они закапывали топор войны
    ----------------------------------------------------------------------------------------------------
    Моряки пропитывали свою одежду смолой, чтобы она не рвалась
    history
    Чтобы она не пропускала воду
    ----------------------------------------------------------------------------------------------------
    Ответ написан
    1 комментарий
  • Актуальна ли книга С# 6.0 если уже есть 9.0?

    Griboks
    @Griboks Куратор тега C#
    Пффф... Продолжение фразы "покупать справочник" в принципе не имеет смысла. Вот ваш справочник навсегда. Вот расширенная версия, если вам что-то будет непонятно.
    Ответ написан
    Комментировать
  • Есть ли перспектива у WPF в обозримом будущем?

    DevMan
    @DevMan
    за три года спокойно может появиться совершенно новая платформа. вам дело делать или в гадалки играть?

    даже сейчас на "давно похороненном делфи" люди рубят отличное бабло.
    ибо решают проблемы заказчика, а не гонятся за трендами.
    Ответ написан
    Комментировать
  • C# как прочитать настройки appsettings.json из любого класса?

    @OwDafuq
    Может всё-таки попробовать DI? Зачем именно "читать", когда он уже прочтен.
    Запросите в конструкторе произвольного класса IConfiguration и создавайте инстанс этого класса только через контейнер
    Ответ написан
    Комментировать
  • Не могу понять, как работает async?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Асинхронный метод ждёт, когда кто-то внутри метода скажет - ВСЁ готово. Ни про какие общие ресурсы и прочее речи не идёт.
    Ответ написан
    1 комментарий
  • Как сделать правильный вывод в файле?

    @d-stream
    Готовые решения - не подаю, но...
    Изучить что такое xml и узнать о работе с ним.
    Ответ написан
    Комментировать
  • C# - как добраться до поля с помощью Reflection?

    var int1Type = int1.GetType();
    var fieldAccessor = int1Type.GetField("hiddenClass2", BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic);
    var hiddenClass2Value = fieldAccessor.GetValue(int1);

    И так далее, пока не дойдёте до secretImportantVariable, который уже можно скастить к bool
    Ответ написан
    4 комментария
  • Как использовать сокращённый адрес к БД?

    1. Не адрес, а путь.
    2. Это относительный путь и он указывается относительно исполняемого файла.
    при использовании пути .\MainInfa.db - файл бд должен находится рядом с исполняемым файлом.
    3. После сборки исполняемый файл будет лежать где-то внутри папки bin вашего проекта
    4. Чтобы скопировать файл бд в папку с исполняемым файлом при сборке, нужно ему это указать в свойствах.
    Ответ написан
    Комментировать
  • Почему js скрипт не выполняется если он описан в отдельном файле, а не в разметке?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    А Вы можете открыть этот файл, напрямую обратившись в адресной строке браузера к его предполагаемому месторасположению?

    Обычно, в таких случаях проблема всегда в одном и том же. В вашем случае, она делится на 2 вида.
    1) Вы не верно указываете путь относительно конечного файла. Забыли слэш, забыли подняться на уровень выше и тд. (Судя по скринам он грузится, значит ок)

    2) Вам нужно использовать специальные функции для резолва путей и\или регистрации скрипта. (скрипт загрузился, но где-нибудь там не зарегистрировался и поэтому не исполняется

    2.1) И бывает ещё особый случай, когда не правильно подключенный\зарегистрированный скрипт просто вычищается из кода(но судя по скринам это не Ваш случай точно).

    А, забыл. Есть ещё вариант, который заставляет переодически страдать всех и каждого.
    КЭШ.
    Попробуйте в инкогнито режиме.
    Ответ написан
    1 комментарий
  • Какие могут быть альтернативы Visual Studio?

    С конструктором/превьюером - нет.
    Если устроит чисто текстом - можно попробовать vs code.
    Если у вас очень слабый компьютер - берите VS Community без решарпера, ей в принципе около гигабайта ОЗУ должно хватить.
    Но лучше потратьте пару тысяч на оперативку
    Ответ написан
    2 комментария
  • Не хочет работать сайт, в чём дело?

    по урокам Гошы Дудоря

    Сжечь.

    Операратор foreach не работаеь с переменными типа CarsListViewModel , так как CarsListViewModel не содержит открытое определение экзепляра или расширение для getenumerator....

    Лучше приводите оригинальный текст ошибки.

    Ошибка говорит о том, что тип у CarsListViewModel не реализует IEnumerable
    Ответ написан
    Комментировать
  • У меня проблема с foreach?

    FindObjectOfType<Activator> возвращает единственный экземпляр, так что в вашем случае цикл не нужен.
    Если хотите получить все экземпляры типа Activator, то надо использовать FindObjectsOfType - тогда получите список, по которому можно пройтись при помощи foreach

    UPD: Метод FindObjectsOfType не рекомендуется использовать и он даже помечен как устаревший. Сейчас следует использовать метод FindObjectsByType
    Ответ написан
    2 комментария
  • Как удалить все символы кроме точек в строке?

    @OwDafuq
    Ну... Как вариант:
    string a = "a..b.a.c.a..f...fq.......f.adsf....";
    var count = a.Count(x => x == '.');
    Console.WriteLine(new string('.', count));
    Ответ написан
    Комментировать
  • Что выбрать для REST API сервиса: .NET Core или .NET 4.5?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Берите net 5. Выбор net 4.8 обоснован только в случае жуткого легаси кода завязанного на windows. Если что напишите мне в личку сделаю консультацию
    Ответ написан
    9 комментариев
  • Как использовать переменную типа void?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Я бы рекомендовал так. Просто посмотрите и подумайте почему

    using System;
    using System.Linq;
    
    namespace ConsoleApp99
    {
        internal class Program
        {
            private static void Main()
            {
                const int size = 5;
                var data = new double[size];
                var i = 0;
                Console.WriteLine("Enter float or double");
                do
                {
                    var parsed = double.TryParse(Console.ReadLine(), out var dp);
                    if (!parsed) continue;
                    data[i] = dp;
                    i++;
                } while (i < size);
    
                var x = data.Min();
                Console.WriteLine($"min: {x}");
                var y = data.Max();
                Console.WriteLine($"max: {y}");
                Console.WriteLine($"sum  x + y: {x + y}");
            }
        }
    }
    Ответ написан
    Комментировать
  • Про оператор new в с#?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    В идеале нужно вообще не пользоваться new, да?

    В идеале, нужно пользоваться головой.

    Оператор new создает экземпляр класса. Иначе, объекта класса и не будет вовсе.

    P.S. вы полностью оправдываете свой никнейм.
    Ответ написан
  • Разработка на ASP.NET Core для Linux возможна с применением MS SQL Server?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Как SQL Server работает в Linux? Есть отличия от виндового?

    Ставите и работает. Это конечно с точки зрения прикладника. Под капотом подозреваю что хуже. Но большой уверенности нет.

    Удобно использовать .Net Core в Linux?

    Скопировали и все. Сеть и дисковые операции работают отлично, разрабатывать только на Windows.
    Есть большие проблемы с графикой, это связано с историей GDI, но все решаемо
    Ответ написан
    6 комментариев