Pull to refresh

Comments 201

Звучит неплохо
важное и вдохновляющее новое направление
станет использоваться шире, обретёт более широкие возможности
Впереди у нас светлое будущее
но вот это пугает.
А что с .NET Framework? После релиза .NET 5 он будет как-то развиваться или только поддерживаться какое-то время?

Поддерживаться какое-то время будет, но развиваться не будет. Именно поэтому у .NET Core отбрасывают приставку "Core" — теперь это будет единственный актуальный фреймворк.

Ну тогда это очень правильное решение. Я так понимаю, что обычный ASP.NET и ASP.NET Core тоже сольют в один веб-фреймворк?

Сомневаюсь. ASP.NET Core и EF Core, скорее всего, останутся со своими именами — как минимум потому, что ASP.NET 5 уже был :)

Уже и ASP.NET 6 есть. Но само наименование не так уж важно. Если .NET Framework перестанет развиваться, то он потянет за собой и обычный ASP.NET. А значит оба ASP.NET должны слить в один веб-фреймворка и развивать его в рамках .NET 5 и всех последующих версий.
Но само наименование не так уж важно.
Ну как посмотреть. После .NET Core 3 будет идти не 4, а сразу 5 — именно для того, чтобы не было путаницы в названии с .NET Framework 4.x.
оба ASP.NET должны слить в один
Не вполне понимаю, что вы вкладываете в понятие «слить».

С технической точки зрения .NET 5 не является «объединением» Core и классического фреймворка. Это просто следующая .NET Core под новым названием. Он не будет обратно совместим с .NET Framework 4.x: AppDomains, .NET Remoting и прочие пережитки туда портировать не будут.

Аналогично и с ASP.NET: его поддерживают, но развиваться будет именно Core версия.
Под понятие «слить» я подразумевал, что взять все лучшее из .NET Framework, чего еще нету в .NET Core, и по-возможности добавить это в .NET 5. Понятно, что в угоду кроссплатформености придется от чего-то отказаться. Я просто, сначала представил .NET 5, как какой-то merge .NET Framework и .NET Core.

Ремоутинг и домены вполне себе работают под моно, если что. Так что должны завестись при выборе оного в качестве рантайма

Насколько я понял, Mono тоже вольется в .Net 5 и больше не будет развиваться как отдельный проект, так что про AppDomain-ы пока не понятно.

Там сейчас отдельно CoreCLR (рантайм), CoreFX (BCL), Mono (рантайм, куски своего BCL + взятые из CoreFX), CoreRT (рантайм).


Будет общий на всех CoreFX и два рантайма — CoreCLR и Mono. CoreRT продолжает жить как жило (куски CoreCLR + свой AOT-генератор + CoreFX).

Нужен ли нам .NET Standard?

Вот хороший вопрос! Так и хочется вставить картинку про 15 конкурирующих стандартов…
Судя по обилию минусов, то ли я не понял что-то, то ли не поняли меня.
В будущем останется только один .NET, и вы сможете использовать его для разработки под Windows, Linux, macOS, iOS, Android, tvOS, watchOS, WebAssembly и другие платформы.

Насколько я понял, будет один набор API для всех платформ, но .Net Standard как раз и решал проблему, что разные фреймворки (Core, Mono и т.д.) не были полностью совместимы на уровне API.
Если будет один .Net на всех, то зачем тогда .Net Standard?
Новость хорошая, но перевод не очень — даже Google Translate точнее перевел этот текст.
Например
.NET Core 3.0 с помощью .NET Framework 4.8 дополняется большинством недостающих возможностей,
— это .NET Core 3.0 дополнил Core почти до .NF4.8, и.т.д.
UFO just landed and posted this here
«будущее .NET смотрится ещё более безоблачным, чем казалось ранее»
Надеюсь что это тонкий троллинг. Это превращение заняло 15 лет и растеряло по дороге весь кредит доверия. Как бы хорошо не стало, «лучше с умным потерять чем с дураком найти».

theproverbs.info/rossijjskie-poslovicy/luchshe-s-umnym-poteryat-chem-s-durakom
«ищите счастья с умным: даже если вы ничего не найдете, то и мало потеряете.»
Нишу Java там сейчас, судя по статистике, забирает Kotlin. Google вообще совсем недавно его объявил как предпочитаемый язык для разработки под Android (до этого объявляли как один из поддерживаемых) Нашему шарпу от этого не тепло не холодно.
UFO just landed and posted this here
  1. Изначально так надо было делать. Но нет майки решили провести альфу на энтузиастах. Еще кто-то рассказывал, что коре это стабильно и надолго.
  2. Кто-то будет юзать коре3, если будет ясно, что через год выйдет мажорная версия, которая все изменит?
  3. Виндоус сервера? Что будет с ними?
2. Все, кто юзает сейчас вторую корку.
3. А что с ними должно случиться? То, что полный фреймворк — легаси, стало понятно с анонсом корки.
А с виндой что будет? Нормально с ней будет. Через 3-5 лет оно придет к linux-like варианту, где будет ядро на минималках, а дальше во время установки будешь выбирать фичи которые будут ставиться плагинами.
Благо репы свои они уже замутили =)
Вы хоть прокомментируйте за что минусуете. Если проследите последние тенденции то увидите что мс реально идет к этому:
— они сделали nano server и развивают это направление
— всячески рекомендуют использовать core вариант
— сделали встроенный ssh в 2019 сервере
— репы тоже сделали
UFO just landed and posted this here
нет, начиная с 2016 сервера пакеты можно ставить через powershell аналогично как через apt или yum. Ссылкой не поделюсь — но гуглится легко.
Самые известные репы — это nuget и chocolade, так же у nexux есть поддержка локальных реп для этого дела.
Мне на самом деле странно что МС так мало про это упоминает
UFO just landed and posted this here
> Еще кто-то рассказывал, что коре это стабильно и надолго.

Вас так смущает переименование .net core в .net?

> через год выйдет мажорная версия, которая все изменит?

Какое именно «все» она изменит?
UFO just landed and posted this here

Похоже, вы невнимательно читали статью. .NET Core никуда не девается. Наоборот — это классический .NET Framework девается, а то, что раньше должно было называться .NET Core 4, теперь переименовывают в .NET 5.


Соответственно, и Windows Server никуда не денется. На нем можно будет по-прежнему запускать проект под любую версию .NET (классический Framework, Core и .NET 5), и еще много других штук, которые доступны только под Windows.

А меня наоборот пугают такие веяния. Сейчас .NET Core кажется более независимым от LTS цикла и развивается настолько быстро насколько вообще может. А так получается что новые фишки будут приходить только раз в год. Я больше за то, чтобы .NET Framework 5 был более стабильным подмножеством .NET Core с LTS.
> А так получается что новые фишки будут приходить только раз в год.

Странно, с .net 4.7+ сейчас такого не происходит, так почему с .net 5 должно?
С .net 4.7 новых фишек вообще не было последние 2 года, а с выходом 4.8 особо ничего не изменилось.
Ну да, конечно, execution steps в ASP.NET 4.7.1, поддержка DI в Web Forms и same site cookies в 4.7.2, новый JIT и mixed-mode DPI scaling в 4.8 — это «никаких новых фишек», да.
А вы не могли бы рассказать в двух словах для чего execution steps нужно использовать? searchcode никаких примеров применения OnExecuteRequestStep и ExecutionStepInvoker не приводит… github приводит OnExecuteRequestStep в каких-то вызовах телеметрии, что уж очень специфично, т.е. выглядит как «ну дополнительный каунтер» а не «фишка».
Есть достаточно много кода, которые опирается на execution context (чаще всего это, действительно, всякое логирование, но иногда еще и безопасность, DI и так далее; короче, все, что использует паттерн ambient context). Раньше приходилось писать две версии: одну, которая работала с HttpContext, который есть везде, где мы еще в ASP.NET, а вторую — которая работала с call context, который есть вообще везде, но в разных этапах обработки одного и того же запроса в ASP.NET — разный. А теперь можно везде использовать call context, куда перекладывать данные из HttpContext на входе в этап — и всё.
Спасибо. Если не тяжело, поделитесь примером того чем можно интересоваться (писать в лог) когда HTTPContextа нету? Сходу не приходит в голову… А HTTPContext действительно такой дорогой что безопасность есть смысл проверять до его создания? Про ситуацию «уже нету» догадываюсь, — можно трейсить утечки — но опять же утечки по разному можно трейсить. А еще лучше «подарите удочку» — порекомендуйте статью что в каком порядке создается и уничтожается.

Судя по вопросам, вы немного не с той стороны смотрите.


чем можно интересоваться (писать в лог) когда HTTPContextа нету? Сходу не приходит в голову…

Представьте себе библиотечный код, который ничего о HttpContext не знает (особенно если это .NET Standard). И вот ему нужен ambient context, скажем, для проверки безопасности:


//...
AssertPrivilege(AmbientContext.GetUserId(), Privileges.RestartService);
//...

Раньше нужно было бы внутри AmbientContext проверять, где мы находимся — если есть HttpContext, брать из него, если нет — брать из ThreadContext (ну или разруливать это через разные вброшенные зависимости, что одно и то же с точки зрения количества кода). А теперь — не нужно. Можно написать один код, который будет одинаково работать вне зависимости от среды (а среды с HttpContext все больше и больше отмирают).

Правильно ли я понял, что WinForms приложения можно будет собрать и под Линукс?

Нет. WinForms и WPF останутся только для Windows. Однако их можно будет портировать с .NET Framework на .NET Core 3.x.

Собрать (скомпилировать), кстати, может и можно будет, но запустить — не выйдет.

запускается и работает.
А что там в качестве GUI библиотеки будет использоваться то?
Или переписать весь GUI на Avalonia/GTK# вы и назвали портированием?
WinForms и WPF на 3-ей корке работают нативно под Windows (only).

Если совсем грубо, то WPF состоит из двух частей — "верхний" слой, написанный на .NET, и "нижний" — нативные библиотеки и части стека Windows (DirectX для отрисовки и т.д.). Нижний слой не входит в .NET и никто не планирует делать его открытым и кроссплатформенным, портировать будут только верхний. Поэтому если вы запускаете приложение на Windows — то ему будут доступны биндинги к ОС и все заработает с минимальными модификациями.

Так про то и вопрос, как переписать с WinForms на .NET Core 3 таким образом, что бы это было кроссплатформенно из коробки.
Никак. .NET Core Windows != .NET Core Linux.

Как уже выше сказали, ответ — никак. Это не то, что вам обещали. Сами по себе WinForms / WPF не становятся кроссплатформенными, просто версия .NET Core 3 для Windows будет содержать биндинги для них.

Ок, а на чем десктопные приложения писать тогда под Linux?

Если вам именно на .NET — есть Avalonia или GTK#, однако я бы скорее смотрел в сторону Electron.

Знаю и про Моно и Коре 3. Я хочу чтобы как QT.

Нарисовал схемку для тех, кто запутался :)


Спасибо за схему! Только .Net Core не был ответвлением от .Net Framework, он был создан фактически с нуля.
.Net Core 2 и .Net Framework 4.7.2 стали совместимы через .Net Standard (можно нарисовать как мостик между двумя независимыми ветками)

Я бы точно не называл это "с нуля". С нуля можно назвать только поддержку *nix платформ, а так весь код бцл, много кода рантайма, RyJit всё форк дотнета.

«с нуля» это возможно слишком сильное определение, но я бы не назвал это «форком» в классическом понимании- все же в .Net Core 1 не было многих API из Framework, которые позже были добавлены в Core 2-3

Может просто брали куски, черри-пик типа, а не форкали?

Жаль, что WCF не попадет туда. Очень хотел бы его увидеть в будущем, пусть даже и в урезанном виде. Например, net.tcp чертовски удобен для внутреннего межсерверного взаимодействия.
Как хорошо что он туда не попадет. Проприетарная, тяжеловесная, с изотерическими конфигами, толи Фреймворк, толи библиотека. Да, для своего времени это было круто, но теперь есть grpc, да и то, если сможете обосновать почему не использовать http
Проприетарная

Исходники лежат на гит хабе под MIT лицензией.

Вообще совершенно не обязательно тащить WCF как есть – можно адаптировать его для ASP.Net core. Я в свое время, забавы ради, написал свой Middleware который симулировал WCF сервис с net.tpc binding-ом и какие-то простые сценарии заработали.
Даже такая адаптация помогла бы перевести существующие WCF проекты на .Net 5, но Майкрософт, как всегда, забила на поддержку своих решений, которые в свое время преподносились как “Универсальное решение на все века, которое надо срочно начать всем использовать”.
Проприетарная


То, что их недавно выложили де Юро — не сделало WCF стандартом де факто, сколь угодно интересным комьюнити или другим компаниям.

Я в свое время, забавы ради, написал свой Middleware который симулировал WCF сервис с net.tpc binding-ом


Вероятно я вам не понял — вы имеете ввиду middleware asp.net core?
WCF это не протокол и не стандарт. Это фреймворк позволяющий организовать коммуникацию между различными модулями одной системы или разными системами, и при этом эта коммуникация не зависит от какого-то одного протокола, и может подстраиваться под конкретные нужды так, например, если модули находятся на одной машине, то они могут общаться, используя named pipes и бинарный формат сообщений (очень быстрая сериализация).
Если надо разнести их по разным серверам, то заменяем в конфигурационном файле named pipes на tcp/ip и все работает.
Если нужен доступ извне, то добавляем новую точку доступа, работающую по SOAP over HTTP.
Поддержку gRPC тоже можно добавить в теории, и все это без необходимости менять код приложений.

вы имеете ввиду middleware asp.net core?

Да. +Еще создал свою реализацию IServer, которая собственно и слушала TCP порты.
Теперь я мечтаю, чтобы MS купила UniTech, пересадила Юньку с — прости господи — 3.5 на .Net 5, и наступило счастье.
Можно ещё редактор прямо в VS встроить для полного отвала башки.

Думаю вам стоит немного освежить свои знания про Unity ;-)

Т.е. Вы всерьёз считаете, что человек, которому не всё равно на Юнити в достаточной для того, чтобы мечтать о её покупке Майками, степени, может иметь «знания», нуждающиеся в освежении?
Я в курсе про поддержку 4.х и про возможность дебага в Студии.

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

Вы написали .net 3.5 — это к чему было? Только лишь к малой осведомленности о юнити. Причем тут дебаг в студии — я хз. Какие "кардинальные изменения" вы ждали? Юнити поддерживает последний C#.

Если я не ошибаюсь, то уже сейчас имеются плагины для VS, которые позволяют разрабатывать под юнити.
Unity сейчас вообще при сборке транслирует C# в C++ и это продвигается как основной рантайм, а Mono уже считай deprecated

Ни разу не депрекейтед, говорю как человек хорошо знающий команду Unity Runtime ;-) с IL2CPP наступили на огромное кол-во граблей, думаю, про депрекейтеды вы судите только из-за armv8 64 на il2cpp only. Моно без проблем поддерживает эту архитектуру уже очень давно, просто у ребят как я понял не хватает рук.

.net core (и самих майкрософтов) — критиковали за то, что они вроде бы шли в сторону Линукса, но при этом создали какую-то дефрагментацию решений (голый стандарт, под винду онли, под линукс). В итоге, как бы решение под линукс появилось, но все равно у менеджеров было ощущение вторичности. Плюс изначальная позиция, что в .net Framework пойдут лучшие решения, а .net core фактически будет полигоном для экспериментов.

Сейчас они исправляются. Действительно будет интересно посмотреть, подвинет ли это рынок энтерпрайза и новых проектов в сторону .net или нет. .Net Core фактически провалился в плане захвата новых рынков (наоборот за это время доля net решений стала меньше).
.Net Core фактически провалился в плане захвата новых рынков (наоборот за это время доля net решений стала меньше).

Да ему всего только 3 года, примерно 1 год в статусе зрелой платформы на которой можно что-то пилить. Сложно было ожидать захвата новых рынков так быстро. Да и не скоро это будет ведь кросплатформенность это не главное. Нужны тулзы, библиотеки, success stories.
Мои коллеги из США — главной причиной отказа от .Net — называли непредсказуемо дорогой хостинг на виндоус машинах. Собствевнно .net Core был создан для того, чтобы компании хостили .net приложения на linux системах, и это им не вставало так дорого. А зачем это нужно майкам? Для продвижения своей azure. Мне если не имзеняет память, амазон на своем aws чуть ли не больше зарабатывает, чем от своего основного бизнеса уже.

Поэтому драйвер перехода людей с .net на .net core — > понятен. Экономия средств на хостинге. Но за счет всей это неразберихи, новые компании выбирают более понятную и стабильную Java. Если это слияние .net даст стабильность и предсказуемость, то у .net появится больше поклонников.
Лолчто? Провалилась .Net Core?

Все компании, в которых у меня есть знакомые, активно переводят свои проекты под .Net Core. Кто-то пишет про это, кто-то делает в рабочем порядке. Да и как им не переводить, когда .Net Core в разы быстрее, да еще и дешевле, так как можно использовать Linux хостинг?

«Падение популярности» C# можно связать лишь с хайпом смузиподобных языков. Весь энтерпрайз как писался на Java и .Net, так и пишется. Причем, мое имхо, с появлением .Net Core 2.0 началась миграция с Java в сторону C#.

Уже сейчас по факту Asp .Net Core №1 фреймворк общего назначения по перформансу. Причем это все работает фактически из коробки.

Лично я очень сильно надеюсь на Blazor. Попробовал, и очень не хочется мне возвращаться к тайпскрипту :)
«Причем, мое имхо, с появлением .Net Core 2.0 началась миграция с Java в сторону C#» — статистика говорит об обратном. В здравом уме никто не будет переводить проекты на Java на «полигонный .net core» Точнее, может быть кто-то и начал, но тогда его нужно уволить за решение, которое ведет к необоснованым тратам и дополнительным рискам.
Он уже не «полигонный». Дополнительной тенденцией к переводу является мини и микросервисность современных решений. Стоит один раз человеку написать модельку с 20ю свойствами на C# (после джава) и решение писать новый сервис на коре начинает вызывать теплые, интригующие и по детскому чистые эмоции.
По этой причине очень хорошо, что тот, кто принимает решение о инфраструктуре и архитектуре проекта, уже давно лично не пишет код. Ибо ставить стабильность системы против удобного кодинга (причем именно удобного, а не эффективного) — весьма опрометчиво.
Мне, как человеку который начал использовать .Net Core еще с RC, очень бы хотелось узнать что там нестабильного и что там полигонного?

То, что вы говорите выглядит как «я посмотрел, ничего не понял, значит полигонный».

Кроме того, что писать на C# быстрее и код лаконичнее (а время разработки и поддержки это деньги), так еще и перформанс выше какого-нибудь Spring MVC в несколько раз (что тоже деньги).

Так что те кто счтиает деньги, переходит. Конечно есть группа людей, которые просто просиживают штаны а-ля «никто еще не был уволен за покупку IBM» и которые противятся изменениям так-как надо что-то делать и нести ответственность. Но не надо лень и инертность обосновывать сыростью продукта.
Итак. Условия задачи

Стабильность нет кора — не ниже джава стека.
Стабильность мини и микросервисной архитектуры — не зависит от того что сервисы на разных платформах
Стоимость разрабов джава — неоправданно выше.
Стоимость разработки на джава — немного выше
Скорость работы стека кора — выше

Вопрос: при выборе какой технологии для нового сервиса (Java или Net) у вас появятся основания для увольнения?
UFO just landed and posted this here
Не понимаю почему вас заминусовали. Да, такие решения должен принимать Архитектор и да архитектор не должен сам писать части проекта чтобы быть объективным без приверженность какой то технологии и языку при этом одновременно он должен разбираться во всех необходимых технологиях и постоянно учиться. Изучать новые фреймворки и языки. Базы данных. Понимать их достоинства и недостатки чтобы делать правильный выбор.
архитектор не должен сам писать части проекта чтобы быть объективным без приверженность какой то технологии и языку при этом одновременно он должен разбираться во всех необходимых технологиях и постоянно учиться.

Это невыполнимое требование.


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

Для каких разработчиков? Если будет принято решение делать на Java то там будут конечно же Java разработчики которые к этой Java давно привыкли и им норм. Удобно не удобно это вещь субъективная. При принятии Архитектурных решений нужна объективность.
Для каких разработчиков?

Для тех, которые будут работать над кодом.


При принятии Архитектурных решений нужна объективность.

Муа-ха-ха. Это какая, например?


Я так понимаю, вас не смущает невыполнимость предлагаемого вами требования "неприверженности технологии"?

Почему по вашему они невыполнимы? И не надо путать Шеф повара и того кто пишет кулинарную книгу. Это разные люди и задачи у них разные.
Почему по вашему они невыполнимы?

Потому что нельзя разбираться в языках и технологиях, не применяя их на практике.


И не надо путать Шеф повара и того кто пишет кулинарную книгу. Это разные люди и задачи у них разные.

Очень интересно, не могли бы вы рассказать поподробнее? До сих пор все рецепты, с которыми я имел дело, были написаны поварами (или другими людьми, которые сами готовят по этим рецептам). Вот возьмем, скажем, Стеллу Паркс — она кто?

Потому что нельзя разбираться в языках и технологиях, не применяя их на практике.

На примере:
Как бе да. У тети Гали выделенное время есть на работе для изучения технологий. Она в это время например Котлин изучила и написала пару тестовых проектов на нем.
Очень интересно, не могли бы вы рассказать поподробнее? До сих пор все рецепты, с которыми я имел дело, были написаны поварами (или другими людьми, которые сами готовят по этим рецептам). Вот возьмем, скажем, Стеллу Паркс — она кто?

Ну да, тетя Галя почти лет 25 вроде программирует. Из них большую часть как Ведущий программист. Сейчас толко она работает Архитектором а не Ведущим программистов. У iOS приложения свой ведущий. У Андроид свой. У шарповых серверов свой. У Ангуляр фронт эндшиков свой. У С++ тоже свой ведущий. А Архитектор она одна на всех. Такие дела. + Еще и DevOps тоже один на всех. Он вообще там, насколько я знаю, на Go свое что-то мутит.
У тети Гали выделенное время есть на работе для изучения технологий. Она в это время например Котлин изучила и написала пару тестовых проектов на нем.

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


Ну да, тетя Галя почти лет 25 вроде программирует.

Нет, стоп. Вы сказали про шеф-поваров и кулинарные книги, я ровно про это и спрашиваю.

Кстати да. Всего два слова «инфраструктура и архитектура проекта».
и другие два «писать на C# быстрее и код лаконичнее».
И в принципе мой когнитивный диссонанс вылечен. Все встает на свои места.

Если верить статистике, то появление. Net Core коррелирует с увеличением доли Java, что может объясняться её выбором для, как минимум, новых проектов из-за неразберихи с. Net * — выбираем. Net а какой из них?

UFO just landed and posted this here

Хм… ни слова об эвтаназии VB.NET и о более широкой поддержке F#, печально.

.NET Core 3.0 с помощью .NET Framework 4.8 дополняется большинством недостающих возможностей

Мне кажется,
.NET Core 3.0 closes much of the remaining capability gap with .NET Framework 4.8

это скорее ".NET Core 3.0 по возможностям вплотную подошел к .NET Framework 4.8"
Вы правы. Спасибо за замечание.
UFO just landed and posted this here
Немного странно гоняться за языком, который позиционирует себя как язык для толпы неоперившихся джунов, которые просто должны писать код, не находите?
UFO just landed and posted this here
просто странно когда люди минусуют всего лишь за вопрос

Не могу не согласиться.

с чем будет конкурировать C# в ближайшие годы

О чём я и говорю: GoLang был нацелен на определённую нишу, он в ней хорошо себя чувствует. Если будет конкуренция, то за нишу, но никак не конкуренция языков (тут по-хорошему ещё бы определить, что такое конкуренция языков)
Подобное позиционирование, с точки зрения заказчика, можно рассматривать как рекламу решения на GO, который занял свою нишу (веб-сервисы, dev-ops утилиты) и смотрится в ней очень привлекательно:
1. Низкий порог вхождения
2. Высокая производительность
3. Простота внедрения (один исполняемый файл, который работает практически везде)
Пример из жизни: захотел я для своего новенького домашнего роутера (ARM64) сделать небольшое веб приложение. Первым делом подумал поставить туда .Net core, но промучившись несколько дней, бросил это занятие – существующие сборки под ARM64 работать отказывались, оставалось только самому собирать .Net Core из исходников под операционную систему роутера. Я на это плюнул и решил искать альтернативы. PHP, NodeJS… и тут я вспомнил про GO, который без проблем (к моему удивлению) заработал на роутере, и вместо танцев с бубном я сразу начал писать свое приложение (попутно изучая новый для себя язык).
Теперь (хоть душою я за .Net) думаю, что в этой нише .Net вряд ли удастся сильно потеснить GO.

В списке новых фич будущих версий .NET MS как раз говорила о расширении количества поддерживаемых платформ.

чуть ли не центральной фичей корки были self-contained приложения, предполагающие отсутствие .net-рантайма на целевой машине. Вы изначально пошли не в ту сторону.

Более того в .NET Core 3.0 будет Single binary (+ ужимка линкером). Т.е можно одной командой сгенерить один исполняемый файл под любую поддерживаемую платформу аля


dotnet publish -c Release -r osx-x64 /p:PublishSingleFile=true /p:PublishTrimmed=true

(или все это настроить в csproj)

Я пробовал создавать self-contained приложение:
dotnet publish -c release -r linux-arm64
Падало оно с теми же ошибками, что и рантайм. Собственно, почему должно быть иначе? Self-Contained просто тащит с собой рантайм, который не работает на целевой платформе.

Заводите баг в coreclr, вам помогут. У меня нет под рукой арм не-андроид железяк

UFO just landed and posted this here

В идеальном мире .Net Framework изначально должен был быть как .Net Core 3.0. MS очень затянула с кроссплатформенностью и открытостью. Балмер был слишком упорот чтобы поменять курс. Хорошо что понял в конечном счёте, что пора уйти. Сейчас забавно за ним наблюдать, как он болеет за Клипперс, являясь владельцем и по совместительству маскотом команды.

В будущем останется только один .NET, и вы сможете использовать его для разработки под Windows, Linux, macOS, iOS, Android, tvOS, watchOS, WebAssembly и другие платформы.

Я помню начало этого века когда был .NET один и себя, одного из первых в мире MCSD.NET. На .NET один вы сможете программировать на любом языке говорили они.

Сейчас они говорят о том что наконец таки .NET будет точно как Java. А мне интересно есть ли среди лояльных к .NET не вчерашние студенты, а таки съевшие пуд соли. И интересно обоснование выбора .NET стэка для новых проектов. В идеальном мире .NET быть не должно, он просто лишний.

А мне интересно есть ли среди лояльных к .NET не вчерашние студенты, а таки съевшие пуд соли.

Есть.


И интересно обоснование выбора .NET стэка для новых проектов.

"Есть опыт, есть нужная функциональность".

А мне интересно есть ли среди лояльных к .NET не вчерашние студенты, а таки съевшие пуд соли.

Есть.
В идеальном мире .NET быть не должно, он просто лишний.

Попахивает фанатизмом.
И интересно обоснование выбора .NET стэка для новых проектов.

.Net 4.x выбирать для веба, и прочих микросервисов, да несколько бессмысленно, и не потому что есть go или java, а потому что есть .net core.
Вы знаете, я минут 5 думал о обосновании выбора, пока не понял, что сейчас нет причин не выбирать .net core, для веба и прочих микросервисов.

Попахивает фанатизмом.

В альтернативном мире где .NET не появилось жилось бы таки легче. Это прагматичный взгляд.
сейчас нет причин не выбирать .net core, для веба и прочих микросервисов.

Хороший пойнт. Но и причин выбирать тоже нет. Это лишь вопрос предпочтений и наличия программистов-тупоконечников. А бизнесу надо просто варить и разбивать яйца.

При этом обычно не стоит вопрос выбора синтаксиса языка или студии, типичное программирование это прежде всего использование зрелых и надежных фреймворков. Что предлагает .NET 5? MVC? Ok. Революция.
Что предлагает .NET 5

Blazor. Да. Революция.
Blazor это модернизированный Razor. «Wasm», «WebAssembly» это общая тема и я не вижу предпосылок чтобы Blazor был лидером в этой нише.
В альтернативном мире где .NET не появилось жилось бы таки легче. Это прагматичный взгляд.

Я боюсь, что это утверждение равно недоказуемо и неопровержимо.


типичное программирование это прежде всего использование зрелых и надежных фреймворков. Что предлагает .NET 5? MVC? Ok. Революция.

Подождите-подождите. Если вам надо "зрелые и надежные фреймворки", то все революционное вам противопоказано.

MVC революция это сарказм конечно. Пойнт в том что основной скилл программиста на рынке труда это конкретный фреймворк. Стабильность бизнеса это долгая жизнь такого фреймворка и наличие специалистов с таким опытом на рынке.

В этом смысле .NET он вечно молодой. И 16 лет назад и сейчас.
Пойнт в том что основной скилл программиста на рынке труда это конкретный фреймворк.

Вы под фреймворком понимаете платформу, навроде .NET, или конкретный фреймворк внутри платформы, навроде ASP.NET MVC?

ASP.NET Web Forms, ASP.NET MVC. То есть есть прикладные фреймворки как скелет продукта.

В самом вопросе вся боль .NET. Унификация. «Ваше счастье что вам теперь не надо выбирать». Само название платформы как ".NET framework" уже о многом говорит.

Возьмем два корпоративных продукта 2004 года, один написанный на .NET и другой написанный на Spring (https://ru.wikipedia.org/wiki/Spring_Framework). И оценим судьбу этих продуктов и инвестиций спустя 15 лет.

И что собственно изменилось в карме .NET если брать его в 2019 году.
ASP.NET Web Forms, ASP.NET MVC. То есть есть прикладные фреймворки как скелет продукта.

Ну тогда я не согласен с вашим утверждением "основной скилл программиста на рынке труда это конкретный фреймворк" — потому что в моем опыте как нанимателя, так и нанимаемого в .NET-мире смотрели на языки и направления разработки, а не на конкретные фреймворки типа MVC или WCF.


Само название платформы как ".NET framework" уже о многом говорит.

Не знаю, о чем оно вам говорит.


Возьмем два корпоративных продукта 2004 года, один написанный на .NET и другой написанный на Spring (https://ru.wikipedia.org/wiki/Spring_Framework). И оценим судьбу этих продуктов и инвестиций спустя 15 лет.

Я вот знаю "корпоративный продукт" с десятилетней историей, написанный на .NET, и даже не один, пожалуй.


И что собственно изменилось в карме .NET если брать его в 2019 году.

Добавился открытый код, например.

При недостатке специалистов по конкретному фреймворку понятно что требования менее строгие. Но в целом что-то типа «опыт работы с ASP.NET MVC от 5 лет» (https://hh.ru/vacancy/31336439?query=ASP.NET) оно более натурально для рынка IT когда чек-боксы на уровне фреймворков.

".NET framework" это было название платформы которая состоит из рантайма и библиотек классов. При этом были еще типы приложения, к примеру ASP.NET. Еще раз, этот «фреймворк» содержит рантайм. Надо полагать это было для мощности замаха чтобы победить все фреймворки в мире.

Понятно что есть корпоративные продукты с десятилетней историей написанные на .NET. Вопрос в том не пожалели ли о таком выборе. И потом если это десктопное приложение под Win то конечно такое решение было логичным.

Что примечательно на картинке концепции .NET 5 выше центральное место занимают Visual Studio как Tools. И прикладные направления.

C чего начинается выбор технологии для продукта? С фреймворка однако.
А что у нас с выбором проверенных и зарекомендовавших себя фреймворков на платформе .Net Core/.NET 5?

Я читаю .NET энтузиастов которые пишут ".NET Core 2 is now the top performing framework on Linux among all frameworks that are widely used."
И понимаю что понятие framework оно убито в головах с того самого названия «NET Framework».
При недостатке специалистов по конкретному фреймворку понятно что требования менее строгие.

Значит, это не основной скилл. А основной — это платформа, язык и направление.


Еще раз, этот «фреймворк» содержит рантайм.

Ну содержит, и что теперь?


Понятно что есть корпоративные продукты с десятилетней историей написанные на .NET. Вопрос в том не пожалели ли о таком выборе.

За все не скажу, но как минимум в одном случае — нет, не пожалели.


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


C чего начинается выбор технологии для продукта? С фреймворка однако.

Совершенно не обязательно. У меня вот тут под боком есть "продукт", в котором вообще нет фреймворка. Правда, странно?


И понимаю что понятие framework оно убито в головах с того самого названия «NET Framework».

А вы, я так понимаю, считаете, что единственно правильное знание о сути понятия framework — оно то, которое известно вам, а все другие — неправильные?


Да даже если вдруг и так, даже если ваше определение фреймворка единственно верное — что с того? Это как-то меняет ценность .NET для разработчика?

рано или поздно все жалеют о каком-нибудь технологическом выборе

Согласен. Философская жалость это в точку.

Ценность .NET для разработчика это возможно его зона комфорта C# и VS как удобного инструмента, ценность на рынке и прочие персональные вещи. Но если посмотреть с позиции проекта и бизнеса?

Для стартапа выбор .NET сомнителен.
Legacy? То 10 летнее решение на .NET к примеру на 2.0 — 4.0 очень вряд ли будет переписываться на .Core или .NET 5.

Web? А смысл? Крайне неудачный выбор.
Кровавый корпоративный MS enterprise на Win? Так он уходит в облака по воле их божьей.

Не в термине фреймворка дело, а в экосистеме частью которой являются фреймворки. .NET отрываясь от сисек Windows (которая сама себе экосистема) выглядит вчерашним молокососом.

DB как точка опоры вместо Win? MS SQL Server хороший продукт но тоже теряет позиции.
www.datanyze.com/market-share/databases/microsoft-sql-server-vs-postgresql

Дешевизна .NET разработчиков по сравнению с Java разработчиками?
Миф, не технологией измеряется, а прикладными проектными рисками.

При этом я вижу что есть другие мнения. Язык это сила конечно. Особенно когда без костей.
«Через год-два .NET Core потеснит Java на рынке enterprise решений», — Интервью с Jon Skeet, Google
habr.com/en/company/jugru/blog/327492
.NET определённо может конкурировать с Java, и если быть честным, я лично всегда предпочту разрабатывать на C#. Просто потому что сам язык намного лучше.
Ценность .NET для разработчика это возможно его зона комфорта C# и VS как удобного инструмента, ценность на рынке и прочие персональные вещи. Но если посмотреть с позиции проекта и бизнеса?

А вы совершенно зря противопоставляете "с позиции бизнеса" и "с позиции разработчика". Инструменты, удобные для разработчика, повышают шансы проекта у бизнеса.


Для стартапа выбор .NET сомнителен.
Web? А смысл? Крайне неудачный выбор.

Это эмоциональные, но ничем не подтвержденные высказывания.


Legacy? То 10 летнее решение на .NET к примеру на 2.0 — 4.0 очень вряд ли будет переписываться на .Core или .NET 5.

Ну не знаю, я за одним таким переписыванием наблюдаю вполне себе.


Кровавый корпоративный MS enterprise на Win? Так он уходит в облака по воле их божьей.

Ну уходит он в облака, он от этого менее кровавым, менее энтерпрайзным или менее виндовым не становится.


Не в термине фреймворка дело, а в экосистеме частью которой являются фреймворки.

И что не так с экосистемой .NET? IDE есть, тулинг есть, инфраструктура есть (вон даже в AWS можно запихнуть лямбду на .net core), сколько в нюгете пакетов — не пересчесть, типовые задачи уж точно покрыты.

Инструменты, удобные для разработчика, повышают шансы проекта у бизнеса.

Удобство в данном контексте это опыт работы с данным инструментом и личные предпочтения. Но вы заставили меня задуматься. Спасибо.

Ну уходит он в облака

Тут интересный нюанс есть. C облачными подписками немалая доля программирования на .NET (вне стен MS) сходит на нет. Просто уничтожается как класс.

И что не так с экосистемой .NET? IDE есть, тулинг есть, инфраструктура есть

Это прежде всего массив приросших и уже затвердевших продуктов. Их выбор и разнообразие. Требует времени.

Проблема принца в том король еще на троне со своим верным окружением и помирать не собирается. То есть с .NET все хорошо но в пределах родового имения размером в пятую часть королевства. В принципе там живет, будет жить, там и останется.
Удобство в данном контексте это опыт работы с данным инструментом и личные предпочтения.

И это в том числе.


C облачными подписками немалая доля программирования на .NET (вне стен MS) сходит на нет. Просто уничтожается как класс.

Например?


Это прежде всего массив приросших и уже затвердевших продуктов.

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


Требует времени.

Назовите мне достаточно давнюю (10+ лет) экосистему, в которой нет проблемы разнообразия и времени на выбор.


То есть с .NET все хорошо

Ну вот видите.

Например?

То что было on-premise NAV, AX, GP, а это 200.000 компаний и грубо миллион программистов работающих в этих компаниях для которых .NET рабочий инструмент.

Сейчас это облачное Microsoft Dynamics 365 (NAV + AX).
За GP точно не скажу но уверен что ситуация слонов за уши в облака такая же. Любой ценой.

Облака это не просто способ развертывания, а идеология полного контроля над продуктом со стороны MS через One version, Continuous updates когда тот самый миллион вполне себе .NET программистов становится ненужен. Нет они пока еще живы на старых версиях, да и у клиентов потребности кастомизировать не исчезли, но новая игрушка это Azure которая как ни странно убивает .NET программирование на корню.

У .NET все хорошо, а у как минимум миллиона .NET программистов все не очень. В результате ситуации которая немыслима в мире JVM. Vendor-lock он как был так и остался фактором.

экосистему

Чисто логически когда система стабильна без заносов на поворотах то она гораздо успешнее обрастает всем необходимым. В PHP таких железнодорожный состав. В Java это конечно J2EE, Spring.
Но возможно вы и правы и этой необходимости — просто нет. Действительно почему .NET должен быть похожим, у него свой путь. Но тогда возникает вопрос для чего и для кого предназначен .NET.
Опять таки если бы была своя ниша и свой путь то не появлялось бы в .NET привнесенное из других систем как тот же MVC, Spring и прочее.
Единственная естественная ниша это desktop Win которую
убивает Azure. Во всех остальных нишах и без .NET все хорошо.
А без ниши как естественной среды обитания ни программисту ни платформе не выжить. Закон природы.
То что было on-premise NAV, AX, GP, а это 200.000 компаний и грубо миллион программистов работающих в этих компаниях для которых .NET рабочий инструмент.

Я что-то не понимаю. Вот была у вас AX on-premise. Вы ее не разрабатывали, вы ее внедрили. Что конкретно у вас делали ваши 5 (в среднем) .net-разработчиков?


идеология полного контроля над продуктом со стороны MS через One version, Continuous updates

Вы никогда не пробовали-таки устроить эту one version для продукта, который активно используется бизнесом, и этим бизнесом под себя настраивается?


новая игрушка это Azure которая как ни странно убивает .NET программирование на корню.

Что-то я не вижу этого во-об-ще. Как раз наоборот, Azure дает мне возможность выкатить .NET-решение быстрее и проще, чем упрощает мою (и моего клиента) жизнь.


В результате ситуации которая немыслима в мире JVM.

В мире JVM немыслима ситуация с SaaS? Правда?


Чисто логически когда система стабильна без заносов на поворотах то она гораздо успешнее обрастает всем необходимым.

Ну так .NET и оброс совершенно прекрасно.


Единственная естественная ниша это desktop Win

… вы это рассказываете человеку, который 16 лет разрабатывает под .NET для Web, ага.

Крупным клиентам балахоны одного размера никогда не подходят. По сути старые on-premise ERP системы всегда служили платформами для разработки. Что интересно насыщенность функционалом здесь не играет роли. Внедрение это процесс запуска в воздух не более того, а бизнес это постоянно живой организм в полете, сегодня купили еще одну компанию, появился новый партнер со свой системой, открыли новое направление, захотелось хитростей лояльности, решили сократить персонал, поменять роли и т.д. — у каждой крупной компании своя специфика бизнес-процессов о которой вендор не имеет малейшего представления и которые невозможно сделать одним размером. То есть программисты на клиенте/партнере удовлетворяют все эти потребности программируя и так или иначе используя .NET.

С Azure и непониманием потребностей сектора, что демонстрируете и вы, .NET идет в топку в этом секторе вместе с программистами. Именно в секторе ERP Azure убивает .NET.

В мире JVM есть и SaaS и PaaS, но нет такой ситуации когда все настолько зависит от прихотей вендора. Захочу закрою на замок, захочу на небеса всех отправлю. А .NET это Microsoft.NET всегда было есть и будет. Не выбирают .NET, выбирают Microsoft. Все меньше и меньше.

Хороший пойнт что .NET в Web прекрасно себя чувствует.
Не знал, спасибо. Действительно не так важно что за 8 лет доля в web упала в два раза, c 24% до 12%, а важно быть в топ 10 на рынке труда даже если проектов десяток в мире останется. То есть я не в коем случае не посягаю на личный комфорт и чувство безопасности, гордости там.
Я за реальность.
w3techs.com/technologies/history_overview/programming_language/ms/y
То есть программисты на клиенте/партнере удовлетворяют все эти потребности программируя и так или иначе используя .NET.

Прекрасно. А теперь эта ERP переехала с on-premise в облако. Облачная ERP стала каким-то чудом удовлетворять всем нуждам бизнеса? Или потребность в кастомизации так и осталась?


непониманием потребностей сектора, что демонстрируете и вы

Мне кажется, вы путаете "я демонстрирую" и "вы видите".


Именно в секторе ERP Azure убивает .NET.

… или не убивает, потому что есть как минимум одна облачная .NET-based ERP, которая никак не мешает .NET-программистам ее кастомизировать.


В мире JVM есть и SaaS и PaaS, но нет такой ситуации когда все настолько зависит от прихотей вендора. Захочу закрою на замок, захочу на небеса всех отправлю.

… и как же Microsoft может "закрыть" уже открытый код или принудительно перевести всех в облако?


Я за реальность.

Это та же реальность, где доля Java в Web составляет 4%?

Мне кажется, вы путаете «я демонстрирую» и «вы видите».

Справедливо:)

Потребность в кастомизации у крупных клиентов остается.

Если продукт принадлежит Microsoft то он может в новых версиях закрыть что угодно что собственно и делает и технически и организационно.

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

Что приводит к тому что даже крупнейшие партнеры начинают бояться и начинают предлагать системы типа Infor что есть Java. А другие начинают петь Power BI, что безусловно вершина квалификации .NET.

То есть есть таки условный миллион .NET программистов и есть 200.000 компаний работающих в пределах .NET поля. Как минимум половина этого миллиона уйдет в Java мир вместе с клиентами и оглядываться не будет. Не в J2EE конечно но SAP, Infor, Oracle.

Реальность еще не плохо бы подкрасить размером бюджета этих 4%.
И что интересно Java в 2014-2015 году сьехала до 2.6%-2.8% но вернулась до 4%. При этом тренд ASP.NET неизменен. Уходят и не возвращаются.

Но бог с ними с процентами. Можно и с 1% на Scalа прекрасно себя чувствовать.

Если речь об open-source облачной .NET-based ERP то вряд-ли это то что нужно крупному бизнесу.
Потребность в кастомизации у крупных клиентов остается.

Если останется, значит, они будут пользоваться тем продуктом, в котором кастомизация есть. Есть кастомизация — есть потребности в программистах. Нет кастомизации — продукт выкидывается на свалку.


Поэтому никакого "продукт переехал в облако и программисты стали не нужны" нету.


Если продукт принадлежит Microsoft то он может в новых версиях закрыть что угодно что собственно и делает и технически и организационно.

Что, внезапно, никак не связано ни с .NET, ни с облаком, а только со стратегией владельца продукта. Никто не мешает SAP сделать то же самое (собственно, мне казалось, я даже что-то слышал про EoL для R/3), или Infor (у которого тоже облачные решения, кстати), или Oracle. Просто MS вы не любите, а этих — любите, и ничего больше. Технологически никакой разницы нет.


Как минимум половина этого миллиона уйдет в Java мир вместе с клиентами и оглядываться не будет.

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


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


Если речь об open-source облачной .NET-based ERP то вряд-ли это то что нужно крупному бизнесу.

Да нет.

Поэтому никакого «продукт переехал в облако и программисты стали не нужны» нету.

Кроме application есть еще и бинарный движок, есть Win OS и MS DB, бинарные обновления ко всему этому. Компонентов системы много и все они принадлежат одному вендору. Поэтому вполне обоснованно желание работать только на версии которая официально поддерживается этим вендором. А срок поддержки он всегда с расчетом мотивировать переход.

Стоять на месте с конкретной версией ERP крупный бизнес может но не сильно долго. При этом потребности кастомизаций есть, для облаков же они слишком тяжелы да и просто невыгодно. Останутся ли они в экосистеме .NET? Крайне сомнительно, нет никаких предпосылок.

Насчет открытой .NET-based ERP это интересно, я согласен. Но много но. Это в принципе то что обещал MS в проекте Green, бизнес-компоненты на .NET. Берешь кирпичики и строишь. Не наврал. Просто не уточнил что в эту игру он будет играть один. One Microsoft.

.NET не заметит потери ERP рынка? В принципе да, он же памятник. Но к карме .NET привязана репутация Microsoft как надежного партнера. О репутации думает бизнес, а не о лямбдах.

P.S.
Технологически никакой разницы нет.

У SAP нет аналога Azure на котором держаться его акции. Ему просто не нужно отстреливать себе ноги чтобы быть легче. В этом есть разница.
Кроме application есть еще и бинарный движок, есть Win OS и MS DB, бинарные обновления ко всему этому.

… и все это снова никак не связано с .NET, и не влияет на .NET-программистов.


Кастомизации — они либо есть, либо нет.


Стоять на месте с конкретной версией ERP крупный бизнес может но не сильно долго.

Почему же?


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

Ну то есть получается, что ERP в облаке… невозможна. Безотносительно технологии, опять же.


Это, конечно, неправда, но все равно — это не зависит от технологии.


Останутся ли они в экосистеме .NET? Крайне сомнительно, нет никаких предпосылок.

Если вы чего-то не знаете, то это не повод считать это несуществующим. Я уже писал, и повторюсь: есть как минимум одна облачная ERP на .NET с кастомизациями. А вы говорите — "нет предпосылок".


Насчет открытой .NET-based ERP это интересно, я согласен.

Занятно, что вы согласны с тем, чего я не говорил.


.NET не заметит потери ERP рынка?

А почему он должен его потерять-то?


У SAP нет аналога Azure на котором держаться его акции.

Это не технологическая разница.

Ну то есть получается, что ERP в облаке… невозможна.

Невозможно нахождение в облаке для значительного количества крупных компаний. По целому ряду причин.
Это и стоимость, и контроль, и кастомизации.

Почему .NET должен потерять ERP рынок?
Модель бизнеса Microsoft изменилась.
Azure их бизнес. Не ERP и не .NET и даже не MS Office.

Полагаю что единственный драйвер .NET это программистский зуд команды разработчиков MS. Который позволяется в рамках стратегии постоянного хайпа.

А если говорить о сообществе .NET которое независимо от Microsoft идет в светлое будущее создавая .NET продукты, фрэймворки на любимых лямбдах. То тут стоит подумать.
Тот же Eric Damgaard делает ERP на .NET www.uniconta.com
Действительно примеры всегда есть.
Но насколько выбор .NET добавляет в карму продукта это большой вопрос.
Невозможно нахождение в облаке для значительного количества крупных компаний. По целому ряду причин.

Я даже не буду перечислять, сколько облачных вендоров предоставляет HANA.


Но не суть, это опять не про .NET, это про стратегию ERP-вендора.


Почему .NET должен потерять ERP рынок?
Модель бизнеса Microsoft изменилась.

Вот поэтому Microsoft может потерять ERP-рынок, но не .NET. Потому что модель бизнеса .NET не поменялась в сторону, мешающую ERP.


А если говорить о сообществе .NET которое независимо от Microsoft идет в светлое будущее создавая .NET продукты

… то это именно те люди, о которых я и говорю всю дорогу. Что там MS внутри себя делает на .NET — это их дело, а мне интересно, что я, как разработчик, могу принести своим клиентам, пользуясь .NET. И это — много. И Azure мне тут никак не мешает, а только помогает.

.Core отдельно, MS отдельно?
Судьба .Core в руках разработчиков .Core?
Сила коммюнити?

В том что вы несете клиентам нет ".NET". Вы несете хлеб, а в какой печке клиенту все равно. С изначальным же .NET для Win Desktop клиенту было не все равно.

Не все равно только вам как .NET специалисту, единственный фактор судьбы .Core. При том что большому количеству программистов все равно и тут действительно .Core должен быть не просто лучше, а на голову и лучше и выгоднее и практичнее. Не на больную конечно:)

Заметьте что про .NET говорить это смешивать разные платформы.
В том что вы несете клиентам нет ".NET".

Это не совсем так, но мой пойнт как раз про это: я использую .NET, который удобен мне, чтобы принести пользу клиенту.


С изначальным же .NET для Win Desktop клиенту было не все равно.

Это почему это?


(не говоря о том, что я за все время свой работы с .NET ровно два раза писал что-то для Win Desktop, оба раза очень мало, и больше не хочу)

Проходил мимо, решил отметиться.
1. В мире сильно больше миллиона .net-программистов.
2. .NET не ограничивается вебом и энтерпрайзом (тем более на NAV, AX, GP).
3. 12% в вебе сейчас, это в абсолютном исчислении сильно больше, чем 24% 8 лет назад. Веба за 8 лет стало сильно больше.
4. «топ 10 на рынке труда» для программиста почти никак не связан со знанием языков и тем более фреймворков.
Действительно количество сайтов увеличилось раз в 5 за 8 лет. То есть говорить о том что уходят с ASP.NET — да, некорректно. Спасибо.
www.internetlivestats.com/total-number-of-websites
А почему вендорлок только для майкрософт? Да почти все технологии кому-то принадлежат, по факту все равно зависишь от многих и никак не соскочешь. Ну Java opensource, только язык почему-то не очень развивается (по сравнению например с c# или kotlin). KOtlin по сути принадлежит jetbrains и по факту кто им пользуются платят за Idea. Можно перечислять целый день наверное — Apple, Sap, Oracle, IBM, VMWare, Intel и т.д.

Знаете, я вот недавно разворачивал код на .NET в AWS Lambda, а разговаривал он и вовсе с GCP. Вендор-лок, говорите?

Ваша правда, Вендор-лок это обычно про совместимость.
Использовал термин не по назначению.
Перед глазами был минимально добрый циклоп с ключом в руках.
Недавно пилил проект на java который замечательно разговаривал через jdbc с ms sql server развернутым в докере под линуксом. Мне кажется, что в 2019 можно уже не бояться вендорлока.
Java принадлежит Oracle (и Oracle вполне себе этим пользуется — en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.).
Kotlin замечательно работает с Community-версией идеи и его поддержка там ничем не отличается от Ultimate.
Простите, а как связана поддержка котлина с поддержкой спринга?

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

Я откуда знаю

На Kotlin нормально разрабатывать можно только с помощью Idea. Community имеет ограничения, причем на интерпрайзные технологии. Вот кстати вспомнил, вначале OSGI была доступна в коммунити, потом перестала. Я честно не слежу что-то там со временем перестало быть бесплатным, и нет нигде гарантии что еще что-то не станет платным. Вот только почему-то вендорлок относится только к майкрософту, хотя все по большому счету пытаются подсадить на свою иглу.
Ну вот и разберитесь для начала.
Вы меня конечно простите, но я работал в компании с 50 тыс. сотрудниками и имею код в продакшене на Spring.MVC.

Имея перед этим 10 лет в разработке на С# я был до крайней степени поражен насколько стар Java как язык (тогда лямбды только-только появились), насколько стремный Spring сам по себе, насколько медлено это все работает.

Да что говорить, до недавнего времени работы с календарем в стандарте нормальной не было, нужно было Joda ставить.

Так что пару плюсов для новых проектов по сравнению со спрингом я вижу — я напишу более читаемый и поддерживаемый код быстрее, и работать он будет в пару раз шустрее.
Я правильно понимаю что ваша карьера держится на Spring.MVC и ваш проект обслуживает 50 тыс. сотрудников?
Респект!

Без лямбд это конечно позор. И аргумент что код в разы быстрее действительно важен. Только опять меня несет на фреймворки. Действительно Spring.MVC быстрее оригинала? А за счет чего?
Речь не идет про то, что Spring.MVC в несколько раз медленее .Net Core. И это одна из причин почему в 2019 я бы не стал использовать это в продакшене.

www.techempower.com/benchmarks/#section=data-r17&hw=ph&test=query

Самый стандартный Asp.Net Core MVC + EF 11746/сек
Spring 6238/сек
Плюсую. Аргумент скорости языка или платформы — это ни о чем.
Есть смысл сравнивать только фрэймворки в связке с конкретной базой данных. И то бессмысленно так как bottleneck это база данных да и само исполнение кода можно всегда ускорить если сильно хочется за счет систем кэширования, компиляции или наоборот JIT.
Вы знаете, я минут 5 думал о обосновании выбора, пока не понял, что сейчас нет причин не выбирать .net core, для веба и прочих микросервисов.

Очень шаткое обоснование. Напомнило "нет повода не выпить" :) Вот реально какие причины могут быть что бы выбрать его для следующего проекта в компании, у которой Windows разве что у секретарей, а разработчики в лучшем случае только Java хорошо знают. Подводные камни, навскидку: переобучение команды (возможно кто-то уйдёт, унеся с собой экспертные знания существующих проектов и предметной области в целом), переобучение админов-девопсов (аналогично), скорее всего переход на новую ОС и IDE для, как минимум, разработчиков и т. п.

Вы знаете, я не заметил особой сложности в программировании на Java после C#. Да, как в 2005 попал, да, не совсем удобно, но жить можно. Обратно куда проще.
Более того, с каким нибудь Azure, C# выглядит в разы приятнее для девопсов, в том числе.
переобучение команды

Обычно если команда есть, то стек выбирают с учетом ее способностей. Если команда знает Java, скакать на .net core, действительно не оправдано, только если в качестве эксперимента. А если команды нет, то в выборе руки развязаны. О выборе ниже.
переобучение админов-девопсов

Не потребуется, так как .net core упаковывается в docker, и девопсам, все равно что внутри. И да, под линухом работает.
скорее всего переход на новую ОС и IDE для, как минимум, разработчиков

Новая ОС не обязательна, так как .net core работает под linux. IDE да может быть стопором, если переучиваться лень, но есть visual studio code, есть rider от jetbrains. Сейчас писать на c# можно хоть на mac, хоть на linux.

О выборе, смотря из чего выбирать и для чего. Для веба и микросервисов, выбор из php, go, nodejs, .net core, java.
php vs .net core => .net core из коробки быстрее, так как компилируется, да можно прикрутить jit как сделали vk, но это не из коробки)
go vs .net core => go побыстрее, но язык более куцый(нет тех же generic), нет ORM, такой же зрелой как тот же EF или Hibernate, вроде нет вменяемого web framework'а, уровня asp.net mvc или spring mvc. В общем и целом сфера применения go значительно уже.
nodejs vs .net core => ну если вы любите динамическую боль=) а так помесь худших сторон php и go.
java vs .net core => Вот тут выбор конечно не очевиден. Работал и с тем и с другим, c# реально, как глоток свежего воздуха. Был 4 года назад. Но как сейчас дела обстоят уже не вкурсе, мб java догнала c# по удобству. Asp.net mvc и entity framework, ну просто в разы проще было понять и начать работать, чем со spring mvc/hibernate или spring data, мб ситуация изменилась, но возвращаться и проверять просто нет желания. С точки зрения производительности .net core шустрее и меньше ест памяти, майки реально неплохо его оптимизировали.
*** Update ***
RubyOnRails забыл и python, но тут не хватает кругозора для шапочного сравнения. Предположу, что их интерпритируемая природа, делает их более медленными, нишевыми решениями, где производительность не так важна.
***
В общем и целом .net core может и проигрывает некоторым нишевым решениям(go), по некоторым метрикам(скорость), но как претендент на «платформу всего и вся», в .net core побольше серебра.
как претендент на «платформу всего и вся», в .net core побольше серебра.

А разве если заменить ".net core" на ".net framework" и переместиться на машине времени к примеру в 2003-2004 год. Добавилось по сути только в «сейчас писать на c# можно хоть на mac, хоть на linux.». Убавилось что теперь программировать в web могут и VB программисты. А про удобство, скорость, производительность, библиотеки я тогда уже читал.
Мне все-таки кажется, что вы шутите.

1) В 2003 году был .Net Framework 1.1, на которм страшно было писать не то что сайт, а калькулятор.
2) Хоть на линукс — это прежде всего относится к развертыванию. И это килинг фича, именно из-за ее отсутствия дотнет и не убил Джаву.
3) Если верить команде VB, то он должен найтись в версии 3.0 Пока можно писать сайты на полном фреймворке. Хотя, не больно то и хотелось, если честно.
1) В 2003 году был .Net Framework 1.1, на которм страшно было писать не то что сайт, а калькулятор.

А спустя 15 лет появился .NET Core на котором тоже было страшно.

И это килинг фича, именно из-за ее отсутствия дотнет и не убил Джаву.

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

Тот самый настоящий имперский дотнет (.Net Framework) по сути тихо и заживо похоронили. А новая платформа (общего только C#) она мирная и неагрессивная. Хочешь используй, хочешь — не используй.

Тогда MS хотела подвинуть Джаву, а сейчас она хочет подвинуть AWS.
То есть будущее и светлое оно есть но без завоеваний. Так как война на другом фронте.

VB

Не про язык упоминание, а про непонимание нюансов и трендов. Имперские генералы считали что web должен быть на серверных контролах и событийной серверной обработке. Эдакий VB desktop подход. Получилось ровно наоборот. Хотя звучало и хорошо и логично. Сейчас тоже все звучит и хорошо и логично.

Добавилось по сути только в «сейчас писать на c# можно хоть на mac, хоть на linux.».

Вы так говорите, как будто это мелочь
а еще запускать под Linux и mac
а еще писать под ios и android
а еще .net core open source и это радует
а еще .net core распилили на кучу компонентов, сделав его модульным
а еще запили kestrel для self-hosted приложений(без iis)
а еще пилят blazor, который вы несколько недооцениваете.

Про blazor. В этом проекте делают webassemply таргетом для запуска c# приложений. Пока только mono, но раз моно вольют в .net core, то значит и .net core приложения можно будет запускать в браузере.
Что это меняет? Многое.
Можно дурно пахнущий javascript взять и выкинуть. А также закопать тормозной electron.
Можно будет запустить c# приложение в браузере, причем в любом, который умеет в wasm, не устанавливая ни .net runtime, ни плагина в браузер(привет silverlight), ни само приложение на машину.
Аналог из мира java — TeaVM. Только, на сколько понимаю, TeaVM — пилят энтузиасты за свое время и в свободное время, а Blazor — и энтузиасты и профессионалы fulltime. По сути Blazor на два корпуса впереди.

PS. У меня складывается впечатление, что вы не особо то и разбираетесь, и не хотите разбираться, в происходящем с .net core, но хейтите просто по инерции.
Не, не хейт. Просто непонимание причин восторгов и желание понять что в голове у типичного .NET разработчика. Скорее, «ну, OK. И что? А смысл?».
А не «вот наконец-то, весь мир вздрогнет», «мы круче, мы можем».

Не так давно полемизировал с дурно-пахнущим Node.JS программистом который уверен в том что именно там и мэйнстрим, и будущее, и иcскуство. Его кстати в Amazon в Канаду уже приглашают. Думаю что хайп на пару лет, но пойнт в том крутость определяет конечный бизнес.

И этот тупой бизнес предпочитает сраное PHP, неподьемную Java, стыдный WordPress, отсталое 1С, SAP и прочее техническое гавно. Все никак не могу понять почему поэтому собственно и заинтересовался светлым будущим.
Просто непонимание причин восторгов

То есть вы серьезно не понимаете, почему люди радуются чему-то, что делает их жизнь и работу немного приятнее?

Наоборот, я не понимаю, зачем так мучаться. И поэтому интересен индекс лояльности как к .NET так и к Micrоsoft применительно к опыту работы.
Я действительно удивлен что есть маленькие радости и много позитива.
Наоборот, я не понимаю, зачем так мучаться.

Я тоже не понимаю, зачем мучаться, вот и не мучаюсь.

Я, на всякий случай, уточню: я пишу на .NET и не мучаюсь.

«ну, OK. И что? А смысл?»

Я вам привел 6 самоценных поинтов. Вы их проигнорили, что лишь подтверждает:
не хотите разбираться, в происходящем с .net core


И этот тупой бизнес предпочитает сраное PHP, неподьемную Java, стыдный WordPress, отсталое 1С, SAP и прочее техническое гавно.

Хорошая цитата. В мемориз.
Все никак не могу понять почему поэтому собственно и заинтересовался светлым будущим.

Причины, очевидно, вне технических рамок. Где-то политика(SAP), где-то откат, где-то монополия(1с), где-то тупой бизнес верит эффективным программистам, которые обещают бороздить просторы большого амазон на космических драндулетах собранных из говна и палок в node.js.
И что самое удивительное, что действительно бороздят. Что может говорить о уровне задач, крутости программиста, технической слабости конкурентов, и еще кучи разных вещей, но не о том что выбранный инструмент лучше других.
Вы привели технические пойнты адресованные программистам. А интересен успех на рынке где факторы чаще всего выше нашего понимания. Поэтому когда говорят о .Core c технической стороны это не так интересно как переход флагманов бизнеса с Java на .Core, стоимость хостинга и стоимость разработки на .Core, обратная совместимость, наличие прикладных фреймворков и их популярность. То есть не профит для программиста смотрящего на лямбды в редакторе VS, а профит и риски для конечного бизнеса. То есть некий forecast анализ который сам по себе интересный интеллектуальный челлендж.
Вы привели технические пойнты адресованные программистам. А интересен успех на рынке где факторы чаще всего выше нашего понимания.

А что такое "успех на рынке" для технологии? Это количество сделанных на ней продуктов. А количество сделанных продуктов определяется количеством заинтересовавшихся программистов.


профит и риски для конечного бизнеса.

А бизнесу-то какое дело, на каком фреймворке написано? Ему важно, сколько стоит разработка, поддержка и развертывание.

1 и 2 связано. Верхи хотят, низы могут.
Кстати получается что самый успешный технологический продукт это wordpress.
1 и 2 связано.

Конечно, связано. Но второго без первого не будет.

Не просто сделанных, а сделанных за приемлемое для бизнеса время и бюджеты.


Бизнесу ещё важны, как минимум, риски, связанные с языком и фреймворком, например лицензионные.

Не просто сделанных, а сделанных за приемлемое для бизнеса время и бюджеты.

Это ничего не меняет.


"количество сделанных за приемлемое для бизнеса время и бюджеты продуктов определяется в том числе количеством заинтересовавшихся программистов"


(второе уточнение просто занудства ради)


Бизнесу ещё важны, как минимум, риски, связанные с языком и фреймворком, например лицензионные.

Я это включаю в стоимость поддержки и развертывания.

— стоимость хостинга теперь одинакова т.к. Core поддерживает Linux
— стоимость разработки ниже по ЗП. Фреймворки логичнее и проще на Core
— обратная совместимость на Core 3.0 обещают чуть ли не 99% работоспособность старых пакетов
— Наличие прикладных фреймворков у Core почти что в базе. Причем быстрых и удобных
— Популярность. Тысячи пулреквестов на Core не могут ошибаться.
Тут получается такой «super .NET 2.0». Ранее концепция была что каждый программирует в привычном синтаксисе и все это кладется в сборку (.NET assembly). Язык не важен.
Спустя 15 лет каждый программирует в привычном синтаксисе и все это кладется в контейнер (Docker). Язык не важен.

Я так понимаю что есть равный и трудный выбор между Golang and Core в одной и той же нише.

По взгляду со стороны, выбор между Go и Core очевиден в прикладных приложениях — core.

неподьемную Java

В каком месте неподъемную?

отсталое 1С

В каком месте отсталое?
Так .Core быстрее на переборе чего-то там. А в 1С лямбд нет.

А серьезно все то что нельзя поднять двумя руками — неподьемное.
То что не просто доступно — непопулярно.
Более или менее сложные вещи в .NET постоянно требуют хитрого доступа.
Bizspark ужесточили так что мышь не проскочит, 365Talent portal какие хитрые многоступенчатые проверки кто ты есть. CustomerSource, PartnerSource. Лицензии здесь и там. Какая тут популяризация.
Клепать что-то простое, так для этого более простое и дружелюбное есть.
Более или менее сложные вещи в .NET постоянно требуют хитрого доступа.

Это какие, простите?


(ну то есть как, если разрабатывать для Windows, то без лицензии на Windows сложно, да)


Лицензии здесь и там.

Дадада, и VS Community Edition не выпустили.

Dynamics 365. Без партнерского доступа сложно. Но вроде дали таки мне его. Плюс в карму MS. Для D365FO минимум Professional edition нужен и без MSDN подписки жизни нет. Более того каждому разработчику нужна своя отдельная VM не меньше 20GB RAM. То бишь гроб с 32RAM. Такие вот облака.

Вот только Dynamics 365 — это не "вещь в .NET". Да, я догадываюсь, что под него пишут на .NET, но это не делает его частью платформы .NET. Я даже специально пошел на стартовую страницу — там про .NET ни слова. Это просто продукт такой, сам по себе.

Это ряд продуктов. И это .NET. Не Core конечно.
Тот же X++ это сейчас полноценный .NET язык и в облачной версии единственный способ работы это Visual Studio. Оно и раньше все было наполовину .NET.
O MS CRM тут и говорить нечего, изначально ASP.NET.

Да, не сама платформа, но на платформе. Но мы же говорим что реальный мир интересуют прикладные приложения и фрэймворки. Самое что ни на есть боевое применение .NET где кстати и лицензии MS SQL Server и Windows Servers, Sharepoint, MSDN etc целая экосистема кровавого энтерпрайза с использованием платформы .NET. Это далеко не сектор смартфонов, вошли и вышли. Это земля MS и овцы за заборами .NET. Шерсти побольше чем с тех кто сайты клепает :)

Насколько этот сектор влияет на успех .NET? В значительной степени так как именно этот сектор поднял Java туда где он/она есть.
Да, не сама платформа, но на платформе.

Ну и какие тогда претензии к платформе?


Но мы же говорим что реальный мир интересуют прикладные приложения и фрэймворки.

Ну и прекрасно. Бесплатные фреймворки есть? Дофига. Можно ли написать прикладное приложение, не тратя денег на лицензии? Да (с уже сделанной оговоркой про Windows). Насколько сложное приложение можно написать? Да какое угодно. Так что тезис "более или менее сложные вещи в .NET постоянно требуют хитрого доступа" — нифига не подтверждается.


Шерсти побольше чем с тех кто сайты клепает

Для кого побольше? Для MS? Да пожалуйста, это их дело. Для меня, как разработчика? Что-то я не верю (правильно не верю: на hh и вакансий не миллион, и деньги там не больше, чем без оного).


Насколько этот сектор влияет на успех .NET?

Какой сектор-то? ERP или Dynamics? Если второе, то не поверю я вам, не влияет успех Dynamics на успех .NET.

+2. Разумные в целом доводы. Интересный POV. Про доступ я неудачно сформулировал, боли то есть но описал я их некорректно.

Забавный момент что раньше .NET двигался за счет отсутствия выбора. А сейчас он должен двигаться за счет наличия выбора.

Важность реального интерпрайз сектора, она таки есть. Банки, заводы, ритэйл. Это деньги и та же Java выросла за счет слоновьих денежных масс прежде всего. Fortune 500 companies и все такое.

Тут вопрос что понимать под успехом .NET. То что можно сесть на солнышке и тебя не прогонят — тоже успех.

Мне много надо писать прикладного для своих бизнес-проектов и я пока не готов делать это на .NET и рекомендовать это своим клиентам. При наличии выбора.
Важность реального интерпрайз сектора, она таки есть. Банки, заводы, ритэйл.

Ну и на .NET там вполне себе пишут.


Тут вопрос что понимать под успехом .NET

Для меня, как для разработчика — возможность разрабатывать системы, которые либо решают мои задачи, либо решают задачи кого-то, для кого я их пишу.

Подписывают скорее, под готовые продукты .NET экосистемы. Хотя что в трейдинге, что в банках действительно есть чистые и цельные .NET системы.
Но при этом есть впечатление что если не готовые MS продукты, а «самописная» интерпрайз система то это Java как стандарт не как язык, а как организм.

Вот к примеру top 25 fortune-500-companies, выглядит так что C# довеском.
insights.dice.com/2018/01/10/dev-skills-fortune-500-companies

Для меня, как для разработчика — возможность разрабатывать системы, которые либо решают мои задачи, либо решают задачи кого-то, для кого я их пишу.

Такая формулировка уместна и для PHP программиста которого вдруг обвинили что он не модный, а тот отвечает в терминах практичности и эффективности.

Но мысль понятна, тут кстати не так важно .NET или что.
У вас максимум две недели займет перейти на любой другой web-стэк.
Подписывают скорее, под готовые продукты .NET экосистемы.

А взялись-то эти готовые продукты откуда? Кто их написал?


Ну и да, сам тот факт, что они есть, и означает проникновение .NET в соответствующий сектор.


а «самописная» интерпрайз система то это Java как стандарт

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


Вот к примеру top 25 fortune-500-companies, выглядит так что C# довеском.

Неа, не выглядит.


Такая формулировка уместна и для PHP программиста

Она уместна для любого разработчика.


У вас максимум две недели займет перейти на любой другой web-стэк.

Во-первых, нет, не с сохранением квалификации. А во-вторых, доставит ли мне это удовольствие?

А взялись-то эти готовые продукты откуда? Кто их написал?

Абсолютно все куплены. Даже тот же MS CRM это купленное iCommunicate. При этом все потом тесно интегрировано в .NET или переведено на .NET. Успех ли это .NET? Конечно. Но не как созидателя однако.

больше чем одного энтерпрайзного .NET-продукта

В каких пределах энтерпрайзность? Для меня это проекты c бюджетом выше $1млн. SMB это конечно тоже предприятия.

Во-первых, нет, не с сохранением квалификации. А во-вторых, доставит ли мне это удовольствие?

Странно слышать. Туннельность CV конечно теряется но если речь именно о квалификации как программиста (тем более web и тем более solution developer) то знания IDE и особенностей конструкций языка на мой взгляд на пятом месте.

Удовольствие оно в ощущении своего мастерства. А для этого нужен полный контроль инструментов и понимание средств. Возможность доступа в любой угол.

Не знаю как сейчас с Core, а .NET, уже после множества сертификатов оператора Visual Studio, я начал понимать нормально только через аналоги в Java. Подозреваю что когда квалификация привязана к IDE то ее скорее _.нет чем она есть.
Абсолютно все куплены.

… кем и у кого, простите?


В каких пределах энтерпрайзность?

В разных. Ваш критерий тоже удовлетворялся в некоторых.


речь именно о квалификации как программиста

Речь о качестве получающегося решения.


Удовольствие оно в ощущении своего мастерства. А для этого нужен полный контроль инструментов и понимание средств

Который контроль за две недели не получишь. О чем, собственно, и речь.


.NET, уже после множества сертификатов оператора Visual Studio, я начал понимать нормально только через аналоги в Java

Ну, это ваша проблема, а не моя. У меня сертификатов "оператора VS" нет и никогда не было.

Достаточно бесполезно спорить с гражданином, который не писал на C# (оператор Visual Studio), а тем более продакшн код, но мнение имеет.

Я для себя как человек, который после EntityFramework писал на Spring для себя выводы сделал. А если кто-то хочет продолжать жрать кактус на джава с легаси кодом — дело их.
Оператор Visual Studio высшей категории прошу заметить.

Тут нет спора, судя по всему просто разные сегменты и разные задачи хотя и под вывеской .NET. Cлон со стороны хобота и стороны хвоста это разные змеи. И с обеих сторон вполне себе эксперты по змеям.
… кем и у кого, простите?

Microsoft. У кого не попадя. Что CRM, что ERP.
Список поглощений Microsoft
ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BF%D0%BE%D0%B3%D0%BB%D0%BE%D1%89%D0%B5%D0%BD%D0%B8%D0%B9_Microsoft

Популярных бизнес-решений написанных на изначально .NET я лично не знаю. Но опять таки это моя проблема:)

У других такой проблемы нет, вот вижу есть успешные бизнес-решения на .NET.
Most Popular & Profitable Companies in .NET Development space in 2019
michaelscodingspot.com/most-popular-companies-in-net-development-2019
1. Microsoft
2. JetBrains
3. Telerik
4. DevExpress
5. Redgate

Microsoft. У кого не попадя.

Ну так я вам еще раз скажу: не все .NET-решения на энтерпрайз-рынке принадлежат MS.


Популярных бизнес-решений написанных на изначально .NET я лично не знаю. Но опять таки это моя проблема

Именно так.


Most Popular & Profitable Companies in .NET Development space in 2019

Вас не смущает, что это Development Space?

Смущает поэтому и привел. Они все же «with millions of dollars of revenue». Реально трудно найти примеры.

Вот к примеру Wrike который основал паренек эксперт по .NET. Он даже книжку написал по ASP.NET и в 2004 у него точно была команда ASP.NET в его стартапе в Питере.
Сейчас у него сотни сотрудников и офисы по всему миру.
www.forbes.com/sites/brucerogers/2014/10/15/andrew-filevs-wrike-wants-to-bring-project-management-and-collaboration-to-the-masses

Продукт и концепция у него такие же но вот сюрприз у MCSD.NET 2003 года его текущий сайт и судя по всему и продукт написан на J2EE (2011 — 2018) и PHP (2011-2018)
builtwith.com/detailed/wrike.com
Он как и я были фанатами .NET и вполне себе экспертами. Лямбд тогда конечно еще не было.

… и? Вы, скажем, про StackOverflow не слышали?

Чудо которое умиляет. Сайт программистов для программистов на ASP.NET в топ 50 Alex rank.

Joel всегда читаю с удовольствием. На его wordpress сайте. Статья 2004 года про API у него просто гениальная. Старый баян, но по прежнему актуальный. <www.joelonsoftware.com/2004/06/13/how-microsoft-lost-the-api-war
.NET is a great programming environment that…
And yet, people aren’t really using .NET much.
Oh sure, some of them are.

No developer with a day job has time to keep up with all the new development tools coming out of Redmond, if only because there are too many dang employees at Microsoft making development tools!


Я повторю свой вопрос: и что?

К чему?
В основном конечно к личному сожалению о том что связался с Microsoft. Но это понятно что не по адресу и надо обращаться в Всемирную лигу сексуальных реформ.
«В углу плакал Паниковский.
— Отдайте мне мои деньги, — шепелявил он, — я совсем
бедный! Я год не был в бане. Я старый. Меня девушки не любят.
— Обратитесь во Всемирную лигу сексуальных реформ, — сказал Бендер. — Может быть, там помогут.»


А по теме я не вижу разницы между «представлен .NET 1» и «представлен .NET 5».
Кросс-платформенность? И что?
К чему?

К вашему комментарию.


А по теме я не вижу разницы между «представлен .NET 1» и «представлен .NET 5».

Я бы понял, если бы вы сказали "не вижу разницы между .NET 5 и .NET 2". А вот представление .NET 1 было вполне себе событием.


Ну не видите — и прекрасно.

Следующий шаг — посмотреть что именно делают JetBrains, Telerik, DevExpress и RedGate и прикинуть как их прибыль зависит от популярности дотнета как платформы разработки.
Обычно если команда есть, то стек выбирают с учетом ее способностей.

То есть уже одна причина не выбирать .Net есть — команда его не знает. А может быть и знать особо не хочет, может и выучит под угрозой увольнения, но мотивации ей точно это не добавит. По крайней мере по началу.


так как .net core упаковывается в docker, и девопсам, все равно что внутри.

Не "упаковывается", а как раз девопсы упаковывают, ну или активо в этом участвуют — оптимизируют и тюнят то, что девы сделали.


есть rider от jetbrains

Вот как-то пропустил, если честно. У меня оказывается даже лицензия на неё есть — посмотрю обязательно. В целом для меня лично это может сильно поменять дело из-за DX.


О выборе, смотря из чего выбирать и для чего. Для веба и микросервисов, выбор из php, go, nodejs, .net core, java.
...

В целом с анализом согласен. Разве что jit для PHP обещают из коробки вот-вот, а под nodejs можно писать на TypeScript, если динамика прямо так больно :) Но без нормальной ORM, насколько я знаю. Собственно я их знаю только в .Net, Java и PHP (Doctrine, которую многие считают портом Hibernate).


Но есть ещё один повод не выбирать .Net. Даже TypeScript по этой причине некоторые не выбирают — потенциально очень сильный вендор-лок на MS.

UFO just landed and posted this here
Java это не язык, это мир со своей философией и культурой.
Это и Scala и Kotlin. Все современные паттерны и подходы к программированию.
По сути это и современное PHP.

И .Core лишь претендует на то что быть частью этого мира, не более того.
Завоевать этот мир он уже никак не может, а только отрастить волосы и прикинуться мирным хипстером типа пацаны я нормальный, свой.
UFO just landed and posted this here
> Java это… современные паттерны и подходы к программированию

Воистину!
Sign up to leave a comment.