Ответы пользователя по тегу .NET
  • Какие можно сделать Пет-Проджекты?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    3 - СУБД
    2 - стоит. и можно )) upd если учебный пример на корке 2.* почему не погрызть его?
    Ответ написан
    3 комментария
  • Нужно ли создавать объекты модели (Entity Framework) из базы данных при старте приложения?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    вся логика приложения должна работать с запросами к БД
    все что до и после, это воображение. практикуйтесь, и все станет понятнее
    Ответ написан
    6 комментариев
  • В какие языки транслируется F#?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    https://fable.io/
    и похоже вполне себе активный
    https://github.com/fable-compiler/Fable

    ps
    И важно чтобы он именно транслировался в натив
    а тут надо как то вернуться к реалиям .Net RunTime

    все .Net компилируется либо в .Net RunTime, а там есть Ngen (хотя если копнуть вариаций гораздо больше, тот же Unity со своим модифицированным Mono и IL2CPP)

    но F# компиленный js, будет работать там, где работает js - бро, или нода
    Ответ написан
    6 комментариев
  • Ресурсы по изучение ASP.NET CORE?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    вы ожидаете книг? продвинутых блогов? по новейшим технологиям?
    - книги всегда будут опаздывать
    - блоги, скорее всего будут на языке большинства разработчиков (речь не о родных, а об английском)

    официальная документация где то тут
    https://docs.microsoft.com/ru-ru/aspnet/core/tutor...
    и найти на русском что то свежее.. ну разве что на хабре? авторские статьи? но они всегда будут находимы по нужным тегам
    Ответ написан
    Комментировать
  • Что должно быть входным параметром метода C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - не видно исходных - это точно C#?
    2 - какой? вдруг Mono?
    3 - если это тест на вакансию - возможно есть проверка на готовность к чужим ошибкам - "1...2..3" к примеру?
    тогда решение простое
    using System;
    using System.Linq;
    
    namespace do_something_I_don_t_know_what
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine(Decode("1...2..3"));
            }
    
            static string Decode(object a)
            {
                return new string (
                    (a as string)
                    .ToCharArray()
                    .Where(c => char.IsDigit(c))
                    .ToArray()
                    );
            }
        }
    }
    можно придумывать что то еще до бесконечности.. но по моему нет смысла
    Ответ написан
  • Как реализовать асинхронный сервер TCP C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    dotnet core rsignal смотрели? если нет, рекомендую
    Ответ написан
    1 комментарий
  • Загрузка файла в .Net Core 2 WebApi (из Postman), у кого есть успешный опыт?

    mindtester
    @mindtester Автор вопроса, куратор тега C#
    http://iczin.su/hexagram_48
    вопрос закрыт. Request.Form.Files найдено тут https://qa-help.ru/questions/aspnet-core-rc2-zagru...

    ps
    код на данный момент (все работат)
    [HttpPost]
            public async Task<IActionResult> PostAttachmentItem()
            {
                var files = Request.Form.Files;
                long size = files.Sum(f => f.Length);
                foreach (var file in files)
                    if (file.Length > 0)
                        using (var stream = new MemoryStream())
                        {
                            await file.CopyToAsync(stream);
                            db.AttachmentItems.Add(new AttachmentItem
                            {
                                FileName = file.FileName,
                                Body = stream.ToArray()
                            });
                        }
                await db.SaveChangesAsync();
                return Ok(new { count = files.Count, size });
            }
    Ответ написан
    Комментировать
  • Как рисовать, создавать анимации и визуализировать данные в wpf/uwp?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Ответ написан
    Комментировать
  • Подвинул ли .net core одеяло новых энтерпрайз проектов на себя?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    можете попробовать анализ тенденций на рынке труда кодеров (вакансии для .Net Core ASP). это будет более адекватная картина, чем любое рассуждение
    Ответ написан
    2 комментария
  • Для кого все же предназначен код, полученный из CIL (байт-кода .net)?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    хорошо сформулированный вопрос, содержит не менее половины ответа (с)
    тут так..
    CIL действительно компилируется в машинный код
    да, действительно
    зачем указывать список целевых операционных систем?
    не поверите, но минимальный ответ примерно таков - правильный формат исполняемого файла
    ps да да, как подмечено Saboteur, и правильные обращения к ОС, тоже.. или даже на первом месте.. .. эмм.. для CIL.. того же Mono, да проверьте сами! ))
    Ответ написан
    Комментировать
  • C# стоимость обработки исключений?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    в общем случае, все сводится к стройности логики обработки ошибок. возможно вам стоит прочитать эту статью
    https://habr.com/ru/post/339606/
    у автора ряд публикаций, в тч он достаточно активно пишет и о C#
    https://habr.com/ru/users/marshinov/posts/
    Ответ написан
    1 комментарий
  • Что означает .Net для Unity разработчика?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    1 - .Net существует не только для Unity. точнее изначально существовал сам по себе. гулить историю/архитектуру Unity (что такое Mono, IL2Cpp и много интересных вещей, не все из которых реально необходимы что бы начать кодить)
    знание .Net для Unity разработчика
    может означать, что
    просто знание .Net
    недостаточно

    2 - в различных версиях, Unity поддерживал не только C#, бывали Js, и даже Boo. в этом контексте
    знание .Net для Unity разработчика
    может означать, что
    надо уметь кодить на C# в Unity, а не на Js или Boo


    3 - .. или и то и другое вместе
    Ответ написан
    4 комментария
  • Перенос клиента в веб. ASP.NET Core MVC или ASP.NET Core Web API + Angular?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    рекомендую к прочтению - https://habr.com/company/epam_systems/blog/429766/

    однако сам бы поддержал совет Роман Мирр - попробовать оба подхода на небольшом макетном приложении. так вы лучше почувствуете и поймете что вам подойдет
    Ответ написан
    Комментировать
  • Переводят ли легаси .net на .net core?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    каждый отдельно взятый
    Интерпрайс
    сам принимает решение, исходя из каких то собственных внутренних причин
    Ответ написан
    Комментировать
  • Как изменить значение переменной в ресурсах?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    использовать БД или конфигурационные файлы (в обоих случаях полезно задумываться о безопасности - использовать шифрование, хотя бы для защиты от прямого чтения)

    а ресурсы изначально задумывались как способ хранения статических вещей, типа параметров по умолчанию, разметки по умолчанию, и тд
    Ответ написан
    Комментировать
  • Как включить отображение XAML Designer Window в Visual Studio 2017?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    создать WPF или UWP приложение, и он сам прекрасно открывается. в иных случаях он не нужен.
    все дизайнеры в студии (в тч WinForms), обрабатывают фалы макета в связке с кодом (хотя у форм это и есть код, только генереный по правилам дизайнера), по этому, вне проекта дизайнеры не доступны

    если у вас WPF или UWP - уточните проблему
    Ответ написан
  • C# vs Php. Что выбрать?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    вы вроде уже расписались в любви к шарпу... (сам буквально вчера поднял Unity и теперь смотрю, с какого боку его грызть начать ;))

    что держит? думы о трудоустройстве? чем дальше от мегаполисов, тем больше шансов быстрее подзаработать на "пыхе", и сложнее найти приличную работу на шарпе. но в столицах, думаю хорошие шансы и шарпистом устроится + шансы, что трудоустройство будет допускать хорошие, даже лучшие чем у пыха, перспективы роста (корпоративный сектор же ;) .. (другой вопрос - иметь шансы и реализовать их - не одно и тоже, это всегда зависит от человека ;))
    Ответ написан
    1 комментарий
  • Лучшие практики. Как закрыть главную форму из дочерней?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - не обязательно делать "логин" главной формой. можно стартовать главную форму скрытой, а форму логина дочерней, но показывать раньше, и дальше действовать в зависимости от успешности логина

    2 - конкретно в WinForms можно отрабатывать вообще разные формы последовательно

    using System;
    using System.Windows.Forms;
    
    namespace X
    {
        internal static partial class Y
        {
            /// <summary>
            /// Главная точка входа для приложения.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(A = new fmA());
                // bla-bla-bla with login
                Application.Run(B = new fmB());
            }
            internal static fmA A;
            internal static fmB B;
        }
    }


    3 - для WPF не подскажу, но наверняка оба подхода можно рассмотреть и пробовать искать аналогии

    ps для WinForms
    Как закрыть главную форму из дочерней?
    буквальный ответ - ни как, закрытие главной формы, это завершение Application.Run(A = new fmXXX()); и если вы не модифицирутете код Main- тогда это завершение программы
    Ответ написан
    2 комментария
  • C# - Как сделать выборку из текста?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    https://www.newtonsoft.com/json

    если вам предложат регулярки, стоит сравнивать производительность (регулярки не блещут скоростью upd все верно, простотой тоже, тривиальные случаи не считаем )))

    сам бы скорее всего сделал в рукопашку, при условии что другие данные точно не нужны. при чем суть вы уже описали ;))) и по производительности, это наверняка самый быстрый вариант (upd )по производительности, а вот по реализации - зависит от навыков, кому то может быть проще newtonsoft (ну и см ленивый вариант, там тоже не производительность (но думаю и далеко не самый тормозной), но легко быстро набросать логику и легко ее оттестировать)

    ps можно еще ленивый вариант - Split по
    {"userId":"
    тогда первый элемент отбрасываем, все остальные начинаются с искомой величины, надо только хвост
    "} bla-bla-bla
    отрубить

    ps держите прототип, содержит все 3 упомянутые подхода, но перфоманс можно сравнить только на реально больших данных )).. (но на больших данных могут и баги полезть ;)

    spoiler

    вопрос понравился, и выдалось время.. хотя и не за 15 минут, врать не буду, часа полтора порядка 45 минут ушло на заковырки )) в основном с json (мало опыта)

    upd и уже исправлено - была заготовка класса для частичной json выборки, но она не нужна

    using Newtonsoft.Json.Linq;
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace parsejson111
    {
        class Program
        {
            const string data = "{\"anchor\":\"aaabbbccc==\",\"members\":[{\"userId\":\"111\"},{\"userId\":\"2222\"},{\"userId\":\"333\"},{\"userId\":\"444\"}],\"has_more\":true}";
            // фишки замера заложены, но разница может проявиться только на больших объемах ))
    
            static void Main(string[] args)
            {
                Console.WriteLine("data:");
                Console.WriteLine(data);
    
                var sw = new Stopwatch();
                sw.Start();
                var ts = sw.Elapsed; // лень объявлять тип
    
                json();
                hand();
                lazy();
    
                sw.Stop();
                Console.WriteLine("press any key to continue...");
                Console.ReadKey();
    
                void json() // возможно существует более элегантный вариант. тут у меня опыта мало ))
                {
                    sw.Reset();
                    Console.WriteLine("... json");
                    var j = JObject.Parse(data);
                    var r = j["members"].Children().ToList();
                    foreach (var u in r)
                    {
                        var uid = JObject.Parse(u.ToString());
                        var id = uid["userId"].Value<string>();
                        Console.WriteLine(id);
                    }
                    ts = sw.Elapsed;
                    Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
                }
    
                void hand() // зато тут гарантирую - оптимизировать лучше не реально, и по перфомансу вряд ли можно лучше ))
                {
                    sw.Reset();
                    Console.WriteLine("... hand");
                    var p = 0;
                    while ((p = data.IndexOf("{\"userId\":\"", p)) > 0)
                    {
                        p += 11; //длина шаблона. заодно избегаем риска зацикливания
                        var f = data.IndexOf("\"}", p);
                        Console.WriteLine(data.Substring(p, f - p));
                    }
                    ts = sw.Elapsed;
                    Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
                }
    
                void lazy()
                {
                    sw.Reset();
                    Console.WriteLine("... lazy");
                    var t = data.Split(new string[] { "{\"userId\":\"" }, StringSplitOptions.RemoveEmptyEntries);
                    for (var i = 1; i < t.Length; i++) // здесь и везде - обработка пустого множества на вашей совести
                    {
                        var id = t[i].Split(new string[] { "\"}" }, StringSplitOptions.RemoveEmptyEntries);
                        Console.WriteLine(id[0]);
                    }
                    ts = sw.Elapsed;
                    Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
                }
            }
        }
    }

    Ответ написан
    Комментировать
  • Верно ли я обращаюсь к файлу по адресу?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    на скрине один "ONU-Manager" через дефис, другой через пробел
    кроме то, используйте синтаксис, который позволит вам скопировать путь из проводника
    StreamReader fr = new StreamReader(@"D:\C# Projects\ONU-Manager\ONU Manager\bin\Debug\check.txt");

    ps используйте как пример к размышлению

    using System;
    using System.IO;
    
    namespace mypath
    {
        class Program
        {
            static void Main(string[] args)
            {
                var p = Environment.CurrentDirectory;
                Console.WriteLine(p);
                Console.ReadKey();
                p += @"\..\..\App.config";
                var appcfg = File.ReadLines(p);
                foreach(var l in appcfg)
                    Console.WriteLine(l);
                Console.ReadKey();
            }
        }
    }
    Ответ написан
    2 комментария