Ответы пользователя по тегу C#
  • Стоит ли C# внимания для веб-разработчика?

    Jeer
    @Jeer
    уверенный пользователь
    Заголовок не очень соотносится с описанием самого вопроса. Расшифруйте подробнее.
    К примеру, в веб разработке при примерно равном скилле c# разработчик получает больше денег, чем php разработчик. Зачем делать то же самое за меньшие деньги?
    В таком ключе c# определённо заслуживает внимания. Но, повторюсь, вопрос не очень понятен
    Ответ написан
  • Стоит ли сейчас использовать Blazor в прадакшене?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, когда я смотрел Blazor (год назад), там даже не могли прикрутить никакую отладку. Там что-то сильно изменилось?
    Резолюция одна - проект крайне сырой и не самодостаточный. Для пет проектов just for fun можно попробовать. Ни о каком продакшене речи быть не может пока. Лично моё мнение.
    Ответ написан
  • Как функционально программировать для параллельных вычислений на C#?

    Jeer
    @Jeer
    уверенный пользователь
    Привет!
    Первое, .net языки транслируются в промежуточный язык (IL) при компиляции. То, что можно написать на F#, можно так же написать на C#, разницы не будет никакой. F# выбирают лишь из-за синтаксиса (кому он нравится).
    То есть на F# вы будете писать в функциональном стиле, но это не даст никаких преимуществ перед c#. Lisp и F# так же некорректно сравнивать, у них разные компиляторы и разные механизмы обработки. Если есть желание, попробуйте функциональные языки, вроде lisp. Утверждение, что за ним будущее, спорное. В энтерпрайзе применяют c# и java. И будут применять в будущем.
    Второе. Для параллельных вычислений не обязательно писать на функциональных языках. Параллельные вычисления не сложно делать и на c#, но, как уже сказали, далеко не все операции можно распараллелить, это не зависит от языка. А иногда этим и не нужно заниматься. Например, веб программирование. Сервер имеет свои механизмы распараллеливания, он обрабатывает одновременно много различных запросов от пользователей. При этом со стороны программиста не нужно писать что-либо, касаемое параллельности.
    Запрос от пользователя - валидация данных - запрос в базу - упаковка ответа - возврат ответа. Чисто теоретически можно распараллелить отдельно взятый шаг, но зачем? Не факт, что это прибавит производительности.

    Для информации, вы спрашивали, посмотрите лямда-вычисления на c#
    Ответ написан
  • Какие преимущества у C# и недостатки перед JS (Electron, NW.JS) для дескстопных приложений?

    Jeer
    @Jeer
    уверенный пользователь
    JS код всегда запускается в какой-то обёртке, которая позволяет выполняться этому коду на платформе. По сути, этот код может работать только с теми методами, которые отдаёт обёртка, то есть, с каким-то функционалом js код в принципе не сможет работать. Второе, так как вызовы идут через эту прослойку, всё работает медленнее. И может выдавать иногда неожиданные результаты.
    Когда вы пишете на компилируемых языках (например, c#), то вы обращаетесь напрямую к используемой системе, можете работать без ограничений и без неожиданных результатов (и быстрее)
    Ответ написан
  • Как в Entity framework динамически изменять критерий для выборки?

    Jeer
    @Jeer
    уверенный пользователь
    Вы немношк запутались )
    Когда вы выполняете строку
    var loadDb = db.Events.Where(l => l.cabinet == targetId.ToString());

    У вас нет запроса к базе. В этой строке создается лишь сам запрос, то есть формируется sql код на основе вашего запроса. Он никуда в базу не отправляется. И присваивается в переменную loadDb
    Далее, когда вы делаете, например,
    case "G": loadDb = db.Events.Where(l => l.group == targetId.ToString()); break;

    Вы в переменную loadDb записываете другой сформированный запрос. Вы просто перезаписываете переменную. Запросов к базе в таком случае так же не поступает.
    Отвечая на ваш вопрос, скорее всего, вы хотите на один запрос наложить дополнительное условие. В вашем коде это будет выглядеть примерно так:
    var loadDb = db.Events.Where(l => l.cabinet == targetId.ToString());
                switch (targetType)
                {
                    case "G": loadDb = loadDb.Where(l => l.group == targetId.ToString()); break;
    ...


    А само выполнение запроса к базе происходит, когда вы вызываете методы, отдающие результат, например
    var res = loadDb.ToList()
    Ответ написан
  • Почему не работает AddTransient() в ASP.NET CORE 2.0?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, разобрались? На взгляд всё должно работать, где была ошибка?
    Ответ написан
  • Доступен ли c# на Raspberry Pi и Orange Pi?

    Jeer
    @Jeer
    уверенный пользователь
    Пару лет прошло, как успехи? ) .net core шагнул вперёд, на нём можно под линукс писать (теоретически)
    Ответ написан
  • Жив ли еще wcf?

    Jeer
    @Jeer
    уверенный пользователь
    Меня вообще напугал этот вопрос. Самая отличная архитектура для веб приложения - soa (сервис ориентированная), строилась именно с использованием wcf. Использовать web api для этих целей мне жутко не понравилось, может быть, я как-то не правильно его готовлю, но, лично мне не удобно.
    Когда стал писать под .net core, то выяснилось, что для того, чтобы подключить wcf, необходимо установить стороннее расширение для visual studio. Но вот недавно переустанавливал систему, выкачал последние версии всего, что только можно, и я больше не нашел это расширение. Теперь я просто не знаю, как подключить wcf в .net core проектах :)
    SignalR тут советуют, пойду почитаю
    Ответ написан
  • Как прочитать участок текста из файла?

    Jeer
    @Jeer
    уверенный пользователь
    Для начала считайте файл в тектовую переменную.
    Затем, из этой переменной можете отрезать лишнее, пользуясь методами
    Substring и IndexOf
    Ответ написан
  • Преобразование string в int с игонорированием символов без лишних телодвижений?

    Jeer
    @Jeer
    уверенный пользователь
    Могу предложить методы расширения )
    https://metanit.com/sharp/tutorial/3.18.php

    public static class StringExtension
    {
        public static int atoi(this string str)
        {
            return int.Parse(str.Substring(1));
        }
    }


    Вызывать в любом месте,
    var C_formula = "C10";
    var res = C_formula.atoi();
    Ответ написан
  • Как использовать мой язык из c#?

    Jeer
    @Jeer
    уверенный пользователь
    есть книга, "выразительный яваскрипт", кажется. Там описывается как сделать свой интерпретатор, но. Это для яваскрипта. Как такое провернуть на c#, я не знаю.
    Ответ написан
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    Jeer
    @Jeer
    уверенный пользователь
    Возвращать кастомные номера ошибок в принципе плохая практика.
    Если у вас большой список параметров, то оборачивайте их в класс данных, dto.
    Далее, вам нужна валидация. Из коробки доступна схема работы с ModelState - это когда в декларативном стиле описываются правила и на выходе есть метод isValid - валидна ли модель и весь список ошибок, если не валидна. Для зависимых полей приходится писать кастомные классы-валидаторы, это не всегда удобно, но можно писать правила любой сложности.
    Второй вариант, это вы подключаете fluent validation, и во внешних классах описываете все правила. Как по мне, у них сложноватый синтаксис, поначалу немного пугающий, но в целом всё отлично работает.
    Ответ написан
  • Верхний левый угол изображения c#?

    Jeer
    @Jeer
    уверенный пользователь
    Ноль ноль вроде, чего их получать
    Ответ написан
  • Как посчитать количество дочерних объектов?

    Jeer
    @Jeer
    уверенный пользователь
    Привет, можешь показать код?
    Если у тебя объект класса и тебе нужно посчитать количество полей, то необходимо использовать рефлексию (но что-то в голову не приходит, зачем это нужно)
    Если у тебя массивы или списки, то существуют методы работы с ними, либо можно использовать linq.
    Ответ написан
  • Как стать .net middle, с уклоном в веб?

    Jeer
    @Jeer
    уверенный пользователь
    Рост в проф. плане очень зависит от окружения. Банальная смена работы даст вам новых задач, с которыми вы ранее не сталкивались. При устройстве на работу обращайте внимание (задавайте вопросы на собеседовании) в первую очередь какой размер команды и внедрена ли практика код ревью. Внедрен ли code style. Возможность смотреть за работой более опытных разработчиков и возможность им указывать вам на ваши ошибки даёт просто гипер прирост профессионального опыта.
    Ответ написан
  • Как передать значение последнего добавленного id в другую таблицу?

    Jeer
    @Jeer
    уверенный пользователь
    Если ты работаешь через Entity Framework, то вначале добавляешь первую сущность в базу, жмешь сохранить изменения и у тебя в этой сущности изменяется айдишник на созданный в базе, который далее используешь. Это самый топорный вариант. Так же работает, если ты добавляешь вторую сущность в связь с первой, должно корректно создаться.

    Если тебя интересует именно sql код, который ты вызываешь из ADO (когда отправляешь команду типа string из кода c#), либо пишешь хранимую процедуру в sql с кодом и вызываешь хранимку так же через ADO.net, то тебе нужно что-то типа такого:

    string queryString =
                            String.Format(@"
                            insert into UserProfile (vk_id, DialogQuestId, UserName,Race, access_token) values ({0}, 1 ,N'{1}',{2}, '{3}') 
                            SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]"
                            , vk_id, name, race, access_token);
    
                var dt = await GetDataAsync(queryString);
                if (dt == null || dt.Rows.Count == 0) return 0;
                int id = int.Parse(dt.Rows[0]["SCOPE_IDENTITY"].ToString());
                await SetDataAsync($"insert into UserMoney (UserId, Cr) values ({id},50)");


    GetDataAsync и SetDataAsync - работа через ADO.net, вынесенная в отдельные функции
    var result = new DataTable();
    using (var connection = new SqlConnection(myConnString))
                    using (var command = new SqlCommand(query, connection))
                    {
                        await command.Connection.OpenAsync().ConfigureAwait(false);
                        var da = new SqlDataAdapter(command);
                        da.Fill(result);
                    }
    return result;


    Код немного корявый, но, думаю, выдернешь что тебе нужно
    Ответ написан
  • Как подружить C# и Java?

    Jeer
    @Jeer
    уверенный пользователь
    Поднимаете на c# wcf сервис, на java вызываете нужные методы сервиса и вуаля
    Ответ написан
  • Как развиваться .NET разработчику?

    Jeer
    @Jeer
    уверенный пользователь
    Для фулл стека в принципе должно хватать и разнообразия и чего читать/учить обычно вопросов не встаёт, всегда есть белые пятна. Как по мне, смена работы даёт максимальный прирост профессионального развития. Перейдите в другой проект и сразу найдутся ваши пробелы и закроется вопрос что читать и что учить.
    Ответ написан
  • Порядок изучения C#?

    Jeer
    @Jeer
    уверенный пользователь
    Чтобы научиться программировать - нужно программировать :) Одними книгами сыт не будешь. Если у вас получается читать справочник Шилдта - это замечательно. Но обязательно при этом что-то делать своими руками. Например, есть пошаговые краткие руководства на метаните. Там пошагово представлены все требуемые темы, помимо самого шарпа у вас возникнет много непонятных областей, например про асинхронность или linq или про базу (база может быть написана на c#, либо созданные таблицы должны быть замапплены в c# классы, собственно, есть подход code first или db first). По таким небольшим вопросам обычно не здоровенные справочники, а мягкая обложка на 200-300 страниц, которые вполне проясняют многие непонятные моменты. Конечно, по базам и какому-нибудь wcf существуют тяжелые трактаты, но можно начать и без этого
    Ответ написан
  • Erp система для начинающего разработчика?

    Jeer
    @Jeer
    уверенный пользователь
    В этой стране сложилась примерно такая ситуация - 95% ERP систем 1С, 3% SAP, 2% остальное. 1С прост, урезанная версия может работать с флешки, что прекрасно для околонулевой отчётности, есть море (недорогих) специалистов. Sap германская разработка, дорогущая, громоздкая. Но она может держать большие нагрузки, поэтому её берут кто может себе позволить (нефтянники), либо другие огромные конторы, обладающие ресурсами (ржд). Так же после импортозамещений в том же ржд велись разговоры о переходе на erp систему Галактика (или что-то вроде того), то есть другие системы как бы существуют, но заниматься этим лично я бы не стал. В сапе денег платят больше, но и попасть туда с улицы я не знаю как. То есть, ну можно достать какие-то саповские курсы, но дома ты систему посмотреть не сможешь, поэтому не понятно как учиться, если не сталкивался ранее.
    Насчет зацикленности на внутреннем языке, ну это у всех так, в Sap'e так же свой внутренний язык.
    Если смотреть в сторону c#, то нужно смотреть именно в сторону Майкрософта, про Microsoft Dynamics я ранее не слышал. Знаю, что в своё время Майкрософт прикупил Axapta, там внутренний язык x++ (си-подобный), но они планировали перевести её на платформу .net (что означало бы поддержку всех .net языков, в том числе c#). К сожалению, не знаю, чем у них это закончилось и закончилось ли вообще.
    Ответ написан