Ответы пользователя по тегу .NET
  • На сколько сильно программирование .ASP NET MVC зависит от C#?

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

    - язык один C# (хотя можно использовать любые языки реализованные в .NET, но все остальное, кроме vb.Net будет уже муками творчества)

    - ASP.NET MVC это шаблон проектирования и набор библиотек для его реализации

    - ASP.NET MVC Core тоже самое, только кросс платформенное, тут скоре надо просто понять разницу между ветками .Net
    Ответ написан
    Комментировать
  • Что нужно из Xamarin-ов на компьютере (Win.), чтобы начать разрабатывать простые моб. приложения?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    ставите Visual Studio, при выборе компонентов, старайтесь исходить из принципа "откинуть все что не понятно" - доустановить проще чем вычистить
    Ответ написан
    Комментировать
  • Math.Abs от строки как это работает?

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

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    а что? гугл уже тоже заблокировали? стек на C#

    ps вспомнил, был тут вопрос об оптимизации стека, где то в январе 2017, чел там на классах все расписал, но в приоритете была именно скорость )).. но еще и было требование функций модифкации стека.. оказалось у меня сохранился проект. вот код (System.Diagnostics необходим для замеров времени исполнения)

    using System;
    using System.Diagnostics;
    
    namespace stack
    {
        public class Program
        {
            static private int max = 100_000_000;
    
            class Stack
            {
                private int[] sd = new int[max];
                private int sp = -1;
    
                public void Push(int data)        => sd[++sp] = data; 
                public int  Pop()                 => sd[sp--];
    
                public void Rep(int sp, int data) => sd[sp] = data; 
                public void Inc(int sp, int data) => sd[sp] += data; 
                public void Dec(int sp, int data) => sd[sp] -= data; 
                public void Xor(int sp, int data) => sd[sp] %= data; 
            }
    
            public static void StackTest()
            {
                var watch = new Stopwatch();
                var stack = new Stack();
    
                var count = max;
    
                watch.Start();
                for (int i = 0; i < count; i++)
                    stack.Push(i);
                watch.Stop();
                Console.WriteLine(watch.Elapsed);
    
                watch.Restart();
                for (int i = 0; i < count; i++)
                    stack.Xor(i, 2);
                watch.Stop();
                Console.WriteLine(watch.Elapsed);
    
                watch.Restart();
                for (int i = 0; i < count; i++)
                    stack.Pop();
                watch.Stop();
                Console.WriteLine(watch.Elapsed);
    
                Console.ReadKey();
            }
    
            public static void Main() => StackTest();
        }
    }


    ! данный прототип действительно не содержит ни каких обработчиков возможного переполнения ;))
    ну и кусок кода https://i.imgur.com/AejLUcX.png для классического стека, скорее всего совсем не нужен ))

    всяческие bool empty() ... это bool empty() => sp < 0; .. ну в смысле для данного прототипа ))
    Ответ написан
    Комментировать
  • Что изучать .NET программисту?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    или продвинутый десктоп:
    - (в корпоратив) WPF&MVVM&SQL(при чем желательно еще и опыт разных ;)
    - или эксклюзив типа https://ru.wikipedia.org/wiki/OpenCV upd есть отличные обертки
    - или нейросети/(бигдата? но с реальным пониманием) upd имеется в виду добавить в копилку F#, а там связи станут более очевидными ;))
    - или криптография upd блокчейны?
    ... иначе - "заурядные" вебсервисы ))

    .. возможно это вечная проблема - есть люди, которые пытаются учить много, но всега попадают не туда, где это уже нужно.. и есть люди, которые много двигаются, и все время куда то попадают.. и на ходу, доучивают что то еще... (ну и какой то середнячек, со средней степенью везения... к примеру 1С... практически гарантия трудоустройства.. + тошноты от работы ))
    Ответ написан
  • Windows 7 после установки .NET Framework 4.5.1, свободная RAM уменьшится?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    по идее - нет. все дотнетовское, должно запускаться по запросу (хотя потом может сидеть фоном, но должно вытесняться конкурирующими процессами)

    но я не МС, не дам гарантии за ответ. за гарантийным ответом, вам, скорее всего придется обращаться именно в МС
    Ответ написан
    Комментировать
  • Как работать с MetroFramework?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    1 - поиск
    2 - демо

    ps кстати, на нугетовых страничках опенсорсных либ, как правило есть ссылка на джитхаб (или где там еще автор публикуется)
    Ответ написан
    Комментировать
  • Разумен ли self-hosting ASP.NET Web API приложения в службе Windows? Кто-нибудь использовал такое в проде?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Есть мысли перейти на селфхостинг, однако есть опасения, что мировой опыт отвергает такой подход


    мопед не мой
    но:

    Сначала мы пошли по простому пути: прикрутили IIS, создали ASP.NET-приложение с фреймворком ASP.NET Web API и начали пилить бизнес-логику. Быстро стало понятно, что вся эта конструкция не держит больше 500-700 запросов в секунду. Как бы мы ни заклинали IIS, ни подкручивали 100500 параметров, проблема не решалась. И совсем доставало, что залезть внутрь IIS нет возможности, а значит полного контроля над ситуацией нам не добиться. IIS — пресловутый черный ящик, в котором тяжело что-то кардинально изменить.

    Тогда мы попробовали сервер проекта Katana (реализация OWIN-инфраструктуры от Microsoft). Katana — проект с открытым исходным кодом, поэтому можно было увидеть внутренности. К тому же, у Web API есть поддержка OWIN, а значит, сильно менять код не придется. Katana предоставляет возможность работать как с IIS, так и с их простым сервером, написанным на основе .NET-овского HttpListener. Именно его мы и взяли. Результат порадовал: теперь сервер держал около 2000 запросов в секунду, а ASP.NET приложение трансформировалось в Windows-сервис.

    Однако нагрузка на сервера увеличивалась, пилились новые фичи. Становилось понятно, что и этот вариант нас тоже не устраивает. Тогда мы пошли на кардинальные меры: от всей Катаны остался только HttpListener с небольшой обвязкой для асинхронности, от Web API не осталось ничего, то есть приложение стало полностью заточено под HTTP-запросы для биддера. В результате сервер стал способен обрабатывать до 9000 запросов в секунду. Вывод прост: вся OWIN- и Web API-обвязка оказывает критическое влияние на высокопроизводительные приложения. Хотите быстрее — пишите проще и неуниверсально. (Это не говорит о том, что внутри приложения должен быть ядерный говнокод. У нас всё модульно, вполне расширяемо: DI, паттерны и всё такое)


    источник - https://habr.com/company/targetix/blog/261745/
    Ответ написан
    1 комментарий
  • Как создать браузер на C# или C++?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    смотрите и подглядывайте на том же джите 1,048 repository results
    Ответ написан
    Комментировать
  • Можно ли посмотреть исходные коды стандартных библиотек в Visual Studio?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    мм.. с ходу не получается, но точно есть варианты*.. к примеру, если установить redgate reflector

    ps * - просто помню что это работало.. в какой то из "прошлых жизней" ))

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

    dsUYasT.png
    Ответ написан
    Комментировать
  • Где найти код, наглядно показывающий полезность сборки мусора с C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - такого кода нет (см п3)

    2 - в книгах/сети не особенно то и грешат, скорее вам пока не понятны пояснения что и когда стоит делать

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

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

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

    ps
    Например:
    Кусок кода 1. Мусор не собираем. Время выполнения 3 минуты.
    Кусок кода 2 (переписанный кусок кода 1). Собираем мусор. Время выполнения стало 10 секунд.
    если у вас комп с 4/8/16 Гб ОЗУ, а задача расходует 10-100.. 200-300 Мб - сборщик мусора вообще не будет вмешиваться (если конечно память не забита и так под завязку).. и за какие то 10 микросекунд очистит мусор, пока вы смотрите на слово типа Finished и осознаете его значение .. как то так
    Ответ написан
    Комментировать
  • Есть ли ORM с поддержкой партиционирования?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    вообще то это фича БД а не ORM

    определитесь с БД и любите гугл:
    - запрос MS SQL партиционирование позволяет довольно быстро понять что в MS SQL, данная фича называется секционированием
    - и примерно в таком же духе, шаг за шагом, уточняйте запросы к поисковикам, по мере роста понимания, возможно это где то и пересечется с Entity Framework (а может и нет)
    Ответ написан
    9 комментариев
  • Как сделать, чтобы картинки для сайта подгружались с компа пользователя (скачивающиеся ему при первом посещении стр. сайта)?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    вариант 2, но:

    - в формах и wpf - встроенный движек это IE, и достоверно есть сайты которые уже на него кладут в плане поддержки - недавно тут пролетал вопрос по встроенному браузеру в C# и сайт... (bmw в РФ что ли?) в общем 100% сайт работал в хроме, фоксе, эйдже, но не в IE!

    - в UWP встроеный webview это уже Ейдж, со всеми вытекающими приятностями

    что в итоге? если вам нужно классическое десктопное приложение под винду на C#, с встроенным современным браузером, и UWP не подходит (хотите захватить вин 7 тоже) - ваш выбор это или CEF# или GeckoFx (встраиваемый фокс, но либа обновляется гораздо реже, увы)

    ps ах да.. чет успел забыть - говорите свой сайт делаете? тогда вам просто придется точить его под совместимость с IE тоже, ну тогда и руки совсем развязаны.. на клиенте.. на сайте возможно как раз наоборот - будет замороченнее

    pps а студию лучше поднять до 2017, если нет каких то особых ограничений

    ppps если сделаете ставку на встроенные IE - напишите, там есть еще коварная тема - по дефолту встариваемый IE на 2 версии ниже чем просто IE запущенный ручками - заморочки "кровавовго энтерпрайза".. пороюсь в закромах и кину ветку реестра где это можно корректировать.. по существу, для каждого экзешника со встроенным IE, не зависимо от технологии (это всегда по факту ActiveX компонент) что бы поднять его до последней версии, надо делать запись в реестре.. вот такая фигня...
    Ответ написан
    7 комментариев
  • Стек технологий для разработки корпоративного приложения с desktop клиентом?

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

    2 - если сервер внутрикорпоративный - можно и на прямую с БД работать, опять же от сложности бизнес-логики все зависит, возможно стоит посмотреть на SignalR есть кейсы/демки прямо вот под десктоп клиента

    однозначый совет невозможен - у любой задачи/команды есть особенности, есть различия и в навыках и в ресурсах, как требуемых, так и наличиствующих

    если речь о небольшой конторе, где все уже на вин10 - почему не рассматривать сразу UWP?
    если вдруг УЖЕ есть лицензия на MS SQL - довесить SSRS и возможно 90% нужд покроет готовый бесплатный UWP клиент?
    Ответ написан
    4 комментария
  • Сочетание трех клавиш не работает?

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

    но вообще не стоит слишком мудрить в этой области - в VS ctrl+k затем +c - это комментирование выделенного блока, но это последовательность, а не одновременная комбинация

    ваша задумка может оказаться не устойчивой в реализации, и противоречить общим стереотипам поведения..

    иногда ломать стереотипы полезно, а иногда нет

    ps

    для компонентов форм, в окне "свойства" студии, есть вкладка "события".. там же легко и обработчики создавать (кликом) и отменять их, и кнопкой F1 вызывать MSDN, для русской студии, существенная часть на русском (в отличии от поисковиков)
    Ответ написан
    Комментировать
  • C# Обработка события?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    попробуете изменить тут
    str1 += tbArray[i, j].Text

    ps строка 78 исходника.. а вообще сам подход.. по меньшей мере странен.. TexBox это отображаемый контрол, но 100 текстбоксов - это откровенная несуразица... такой UI не жизнеспособен.. ну а если не нужны визуальные контролы - используйте строки.. или StrinBuilder, в зависимости от задачи

    pps у всех потомков obj, есть метод ToString() .. но он возвращает тип объекта.. далеко не все потомки obj имеют поле Text, по этому, разработчики, вполне логично, не переопреоделяют данный метод, без явной необходимости

    ppps наиболее очевидные поводы, переопределять ToString() у типов вроде Int32, Int64, Float, Double, в общем у value-типов.. но TextBox (повторюсь) визуальный контрол, если вы не планируете насиловать внимание пользователя, просмотром 100 (или более?) текстов.. то, тем не менеее, вы будете насиловать ресурсы компа )).. и ЦПУ, и ГПУ, на их отображение, или по меньшей мере, готовность к отображению... я думаю, вам стоит пересмотреть архитектуру своего приложения

    pppps если вы используете заготовки чужего кода, обратите внимание, что TextBox.Text это: - во первых реальное хранилище текста, во вторых это банальный string... надеюсь эта подсказка поможет

    ppppps дружите с MSDN.. благо кнопка F1, в абсолютно бесплатной студии VS 2017 Community очень в этом помогает
    Ответ написан
    2 комментария
  • Как десериализовать JSON в объект класса C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - https://github.com/JamesNK/Newtonsoft.Json стандарт дефакто для .Net

    2 - есть родной сериализатор/десериализатор, но менее удобный

    ps самое смешное, как раз на встроенном, пару лет назад, десериализовал довольно простой json в анонимный класс, то есть без предварительного описания структуры, без контрактов и тд... совсем недавно вспомнил об этом... и не смог найти тот код )) ... таки пошел смотреть Newtonsoft ... и в итоге доволен как слон, всем рекомендую, доки простые, много примеров, почти не надо читать на английском, много простого кода примеров
    Ответ написан
    Комментировать
  • Нужны ли разработчики .Net?

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

    2 - смотрите статистику вакансий по языка/платформам. .Net разработчики нужны точно. мало того, конкурирует обычно только java. но вроде, недавно, на хабре, пролетал обзор, что в США, спрос на .Net/C# уже начал перевешивать
    Ответ написан
    Комментировать