Ответы пользователя по тегу .NET
  • Можно ли посмотреть исходные коды стандартных библиотек в Visual Studio?

    mindtester
    @mindtester
    делаю странные вещи..чаще на C#.. иногда за деньги
    мм.. с ходу не получается, но точно есть варианты*.. к примеру, если установить redgate reflector

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

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

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

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    1 - такого кода нет (см п3)

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

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

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

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

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

    mindtester
    @mindtester
    делаю странные вещи..чаще на C#.. иногда за деньги
    вообще то это фича БД а не ORM

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

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    вариант 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 компонент) что бы поднять его до последней версии, надо делать запись в реестре.. вот такая фигня...
    Ответ написан
  • Стек технологий для разработки корпоративного приложения с desktop клиентом?

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

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

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

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

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

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

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

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

    ps

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

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    попробуете изменить тут
    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 очень в этом помогает
    Ответ написан
  • Как десериализовать JSON в объект класса C#?

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    1 - https://github.com/JamesNK/Newtonsoft.Json стандарт дефакто для .Net

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

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

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

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

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    вообще то практиковать на компе дома/на работе..

    .. или вам додзё надо? тоже есть https://www.codewars.com/
    Ответ написан
  • Какую версию windows сервера нужно выбирать для asp.net core?

    mindtester
    @mindtester
    делаю странные вещи..чаще на C#.. иногда за деньги
    1 - VPS под .Net Core веселее всего брать на linux

    2 - 2003 R2 SE будете в дырах с ног до головы, и, честно говоря, не уверен что все просто будет с установкой .Net Core

    3 - я конечно догадываюсь что перспектива админить linux пугает.. в подобной ситуации, я бы все таки поднял сначала у себя дома VirtualBox (хотя для виртуальных серваков под современной виндой от 8 и выше - лучше сразу родной Hyper-V) и опробовал бы ВСЕХ.. до того как покупать VPS

    linux не так страшен, а инфы по публикации кросс платформенных решений .Net Core, сейчас ну просто море

    ps

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

    .Net Core это шикарное решение, когда надо вырваться из лицензионных тисков винды, именно на более дешевые пастбища линуксовых серверов.. особенно когда их надо много - для hi-load проектов

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

    если цели - набить руку, начните с домашних макетов, в тч на 2003 R2 SE можно вполне себе поднять традиционный .Net 4.0.. а когда вам будет что показать миру - вы уже сами будете на много лучше знать, какой хостинг для этого нужен

    ... на той же азури можно поднять до 10 сайтов бесплатно, и одну базу sql до 20 Мб бесплатно, на поиграть этого хватит, а api там все новейшие

    есть еще один интересный вариант для бесплатного старта - https://appharbor.com/ при чем там на каждое приложение, можно завести отдельную 20 Мб базу ms sql, а еще 20 Мб MySql и/или добавить в компот 500 Мб MongoDB ;))
    Ответ написан
  • Какие есть инструменты для автоматического улучшения/рефакторинга кода в .NET приложениях?

    mindtester
    @mindtester
    делаю странные вещи..чаще на C#.. иногда за деньги
    кхм...

    притча во языцех - JetBrains Resharper (гугл в помощь пиратству..)

    а из бесплатных - MS VS Community вообще то бесплатна с ног до головы.. а версия 2017 дает уже офигеть на сколько продвинутые возможности рефакторинга... копайте и обрящете...

    ps

    а вообще их настолько мало (тулов рефактоинга C# (надо сказать что для других языков тулов такого уровня нет вообще)) ... что и погуглить не грех...

    кроме студии и решарпера, есть еще Telerik JustCode... если не ошибаюсь тоже платный, и вроде как посередке будет по фичам... если он еще не исчез с рынка, после того как студия сама продвинулась в рефакторинге
    Ответ написан
  • Как правильно собирать временные метрики?

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    наброски к теме - https://i.imgur.com/xo1QmBg.png

    ps .. в смысле фрагмент из продакшена ;)) .. ~90% функций во фрагменте собственные расширения, так что не ищите прямых аналогов (той же .log() - это тоже собственное расширение для string), просто общая суть ))

    pps .. вариант реализации .log()

    internal static void log(this string txt) => tbLog.AppendText(txt + Environment.NewLine);

    ;))
    Ответ написан
  • Как развиваться .NET разработчику?

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    1 - на самом деле, как раз в своем стеке, можно расти и расти... (ну или пока стек не выйдет из моды)

    2 - все просто - если готовы и/или хотите начать ломать свои стереотипы - осваивайте прямого конкурента - java.. ну или kotlin для модности...

    рекомендовать вам node.js большого смысла нет, если все так как вы описываете - js уже должен быть знаком.. но нода это тоже вариант

    ломка стереотипов чертовски полезная штука.. но не менее чертовски сложная

    ps

    просто выйдите за рамки .NET... c++ попробуйте.. а потом D-lang... ;))

    это не значит что надо бросать .NET. я сам полностью поглощен C#... но... быть больше своей страсти .. полезно )))
    Ответ написан
  • Дает ли .net/java преимущества для небольших веб-сервисов?

    mindtester
    @mindtester
    делаю странные вещи..чаще на C#.. иногда за деньги
    ну вопрос явно сырой... типа 5-в-1

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

    2 - подсказка по пункту "1" - что любите? на чем умеете? вы? (или команда?) ... а в сравнении с перечисленным "венигретом" - тем более, смысл ответа тот же самый )))

    ... возможно вам поможет набраться больше личной силы выбора, к примеру такая статья "джедайской силы пост" - люди делают HI-LOAD на не совсем типичном стеке )))

    бакенд на крутом AeroSpike, но "мидл" на дотнете (да да C#).. и довольны результатами ))

    ps

    не ищите "преимуществ" в скорости бинарного кода, для взлетного проекта, преимущества в эффективности кодинга перевесят в разы потребность вложиться в железо

    ... а "не-взлетный" ... да ни че не поднимет ))

    pps дело не в "размере сервиса" в скорости и качестве разработки
    ppps качество == легкость сопровождения/модификации
    Ответ написан
  • Можете подсказать современные библиотеки визуализации 2D/3D данных для desktop'a (на .NET)?

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    раз уж тишина..

    1 - недавно человек делился обзором поиска инструмента для графиков - https://habrahabr.ru/post/204308/

    от себя добавлю что в данной теме нет какого то буйного творчества, думаю по тому что в целом она покрыта продуктами лидеров фреймворкотворения - DevExpress, Telerik, ComponentOne и тд. рекомендую посмотреть на:

    2 - Syncfusion ... упс... у них точно была комунити лицензия, но только что сайт сообщил что они нас посылают согласно законам USA 8(((

    3 - https://www.nevron.com/ - больше специализируются на визуализации, точно были урезанные комплекты фри компонентов

    4 - ну и напомню про мега 2D/3D на c# - Unity ;))) .. это совсем не обязательно только для игр - https://habrahabr.ru/post/243749/ и точно есть бесплатные варианты для не коммерческого использования

    PS

    5 - при наличии навыков js нет ни каких проблем использовать webview, тогда уже будет действительно огромный выбор средств визуализации (сам уже давно поглядываю в эту сторону)
    Ответ написан
  • С чего лучше начинать изучать технологию создания сайтов на c#: ASP.NET или ASP.NET MVC для дальнейшего трудоустройства?

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    "Я слышал, что ASP.NET умер в 2016 году" - я это слышу лет 10...

    для конкретного решения небольших задач, это отличный выбор по сей день. но надо просто разобраться в достоинствах и недостатках

    ASP.NET MVC - это скорее тренд, особенно для трудоустройства

    тем не менее, мой совет - если Вы разберетесь в нюансах сами, и будете уметь применять и то и другое, в зависимости от ситуации, и аргументировать выбор - именно тогда ваша стоимость на рынке труда будет выигрышной
    Ответ написан
  • Вытеснит ли ASP.NET платформу J2EE с ниши enterprise приложений за счет своей кроссплатформенности?

    mindtester
    @mindtester
    делаю странные вещи..чаще на C#.. иногда за деньги
    надо учитывать стоимость разработки, .net разработчики немного дешевле

    так же стоит понять почему - не по тому что хуже, а по тому что их больше. не только самоучек, но и отличных профи

    и этому есть тоже есть объективная причина - вхождения ниже + средства разработки лучше и доступнее

    открытие сорцов и приход *nix - правильно и своевременно (и даже не факт что надо было раньше)

    в связи с этим, я вспоминаю времена, когда все высмеивали windows против os/2 - кто помнит про полуось теперь?

    потом был этап, когда все высмеивали выход windows NT в сектор офисных сетей супротив Novell - что стало с Novell? и в какие сроки? .. (кстати чертовски динамичная и поучительная история, стоит проследить вплоть до Open/Enterprise SUSE - кому тперь принадлежит львиная доля патентов этой linux оси)

    MS наступает по всему фронту - подготовка кадров, инструментария, библиотек, стеков технологий (и ни где не аутсайдер) .... и теперь кроссплатформенность...

    тут все просто - если МС не кончится (распадется из какой то мега ошибки) - то победит
    Ответ написан
  • Какую студию использовать?

    mindtester
    @mindtester Куратор тега C#
    делаю странные вещи..чаще на C#.. иногда за деньги
    основные причины использования старых студий:

    1 - большие проекты - трудно (или все тупо в лом) переделывать, не редко еще и зависимость от сторонних проектов, которые авторы уже не поддерживают - кроме зависимостей от версий фреймворков, если еще зависимости от компиляторов и средств построения. для примера попробуйте познакомиться с проектом mpir.org - крутая математика для .NET, но так как разрабатывается комунити - всегда отстает на одну две версий студии. адаптировать ее самостоятельно под последнюю версию - мягко говоря совсем не тривиально

    2 - проекты, которые трудно вести в экспресс (бесплатный) студиях (на пример требуются продвинутые возможности коллективной работы) + политика фирмы не позволяет использовать пиратское ПО, а на обновления проф/ультимейт студий, деньги не выделяю (на самом деле 2013 уже есть продвинутая комунити студия доступная бесплатно, но это еще не у всех уложилось в головах + глобальные переходы сами по себе, все равно требуют больших усилий)

    3 - просто старое железо и не особо большие проекты - новые студии будут еще ворочаться, а старые летают

    а для дома/для души - каждый решает сам

    естественно для развития полезно работать в последней студии - работа с разными версиями расширяет кругозор

    а брать работу на дом - это само по себе признак низкой эффективности и плохой организации собственного труда

    но в некоторых случаях можно иметь дома разные версии студий - в виртуальных машинах или в разных копиях винды с мультизагрузкой. на пример если для работы надо 2010, для использования проекта типа mpir - 2012, для общего развития - 2015, и тд...

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