Ваше мнение по ASP.NET vNext

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Скоро выйдет новая версия ASP.NET. Сейчас заканчиваю универ и стою перед выбором: JEE или ASP.NET. Уже давно читаю форум dou и вижу определенный перевес в сторону Java. Какие плюсы у этих технологий по отношению друг к другу (Говорят, например, что C# сложнее Java). Есть ли реальные отличия в зарплате Java Web и .NET Web у junior и middle. Интересует ситуация в Харькове.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

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

C# легче намного, java платят больше (+25%) но мест в мире где нужны меньше,

Говорят, например, что C# сложнее Java

«Говорят», а ты к концу универа в глаза их не видел, а только слышал от бабок у подьезда?))

Питання

JEE или ASP.NET
звучить трохи дивно. Вас цікавить який стек вибрати для серверної розробки? .net чи java?
Я не думаю, що тоді вам допоможуть коментарі на ДОУ, найкраще спробувати самому — напишіть простий сайт на кожній із технологій, спробуйте які для них середовища розробки. Який сенс працювати на технології, що вам не подобається, якщо за неї дають на 5% більшу зарплату. Взагалі зарплата це поганий показник — в програміста вона може вирости в 2 рази просто від того, що він в потрібному місці в потрібний час.
Я останні 8 років працював з .NET, на мою суб’єктивну думку платформа значно швидше розвивається ніж Java і в .NETа активніша спільнота (можливо за рахунок того, що її дуже сильно розвиває Microsoft). З іншого боку Java значно старша і фактично перші версії дотНету були з неї скопійовані. За той час поки не було дотНету написали мільйони програм на Java, тому теоретично сотфу на ній значно більше. В той же час .NET як молодша платформа теоретично мала б бути цікавішою в плані новіших проектів і відсутності проектів, яким вже 20 років і які потрібно підтримувати.
Не знаю як може викликати ASP.NET vNext сумні емоції, лише вчора написав про нього статтю — habrahabr.ru/post/242243. Мені здається це одне з найкрутіших оновлень платформи за весь її час.

Равноценно, можешь пальцем в небо) И ЗП похожи судя по опросникам. Тут ругают старые технологии у мелкософта, типа Webforms, ASP. Когда работал в аутсерсинге наши джависты тоже GWT использовали, я так понимаю это похожая на Webforms штука. Да и друг в крутейшей укр конторе работает, новый проэкт тоже на GWT стартуют. Так что разница между Java и .NET минимальна в реальности. Все-равно прийдется работать со всеми старыми и новыми технологиями. Ибо проэкты энтерпрайз уровня долгожители обычно.

Вопрос про ASP.NET vNext или про Java vs .NET?

Если про ASP.NET vNext, то последнее, что я видел — вызывает очень грустные эмоции.

Было очень наивное ожидание, что создавать веб-приложения станет так же просто как и в nodejs. Увы, вместо этого сделали еще более запутанную архитектуру, чем была в старом ASP.NET, плюс просто упоротый бутстрапинг. Нужно сделать кучу нелогичных действий, добавлять классы, с непонятным назначением, непонятно куда, пляски с бубнами, делать выставление пермишенов в ОС (whut??). В итоге, перелопатив все доступные туториалы, я так и не смог заставить hello world приложение работать так, как мне надо, и вернулся на ноду.

Единственное, что его может спасти — это если оно реально начнет работать на линупсах.

реально начнет работать
Если добьются такой же кросс платформенности как скажем c Java, php, python — то всё будет ок. Если же привязка будет опять к какой нибудь Windows Server 2051 c обязательным .Net 6 и IIS 8- то переходить на это «счастье» будут компании медленно и мучительно( дотягивая до окончания поддержки предыдущих версий IIS, серверов и тд).
Что это значит для разработчиков .Net? — Прийдется досконально изучать еще один фреймворк, и обновлять резюме новыми модными словами.
Для джунов .Net скоро будет чем то похожим на C++. Огромное количество технологий- все они еще используются в множестве компании. А значит- всё это надо знать и уметь поддерживать. Знаю компанию довольно известную, у которой- всё еще ASP классический крутится в проде в параллель с WebForms, MVC и кучей другого зоопарка.
И всё это приходиться кому-то поддерживать.

Какие компании? Давайте начнем с того, что на разработку решения на java тратиться в сотни-тысячи раз больше денег чем на самый крутой виндовый сервер/клауд. Если мы говорим о вебе, то клиенту как правило все равно где это сервер и на какой платформе. Разве что если мы говорим о очень суровом энтерпрайз.
Когда начинают экономить на спичках это смешно.

Давайте начнем с того, что на разработку решения на java тратиться в сотни-тысячи раз больше
Не везде нужен оракл и веблоджик

Речь шла о том, что когда на разработку тратят 200 тыс баксов и экономят на виндовом сервере 1-2к тыс. баксов в год, это немного смешно.

У Микрософта есть как и других компаний период платной поддержки платформы- после чего- надо новое покупать или крутитесь как хотите- обычно это 5 лет.
Так вот какдую пятилетку- приходится мимикрировать страе проекты — которые компания не видит смысла переписывать на новые сервера. И поверьте, не так всё сладко у Микрософта с обратной совместимостью.
А насчет хайлода на .Нет стеке- это то еще приключение. Насмотревшись рекламных микрософт видео (привет Channel 9) о том как круто работает асинхронный сборщик мусора в серверном .Net, как он отлично оптимизирован, и кучу других плюшек- решили попробовать его в песочнице.
В песочнице- всё работает как сказка, и под нагрузкой отлично себя чуствует. А вот в проде, ~ раз в день наш сервис уходил в анабиоз. После долгих безсонных ночей отладки — было обнаруженно что при очередном старте GC — наступал stop-the-world — как в старых версиях жавы. Вот похожие симптомы описаныПосле отключение хвалёного GС- сервис исцелился и больше обещал не болеть.
Такие монстры инвест банкинга на Доеч банк, Юбс, сребит сусе да и многие другие используют в большинстве своём жаву. Т.е. Если интересуют финансы, телеком, медиа- (см. высокооплачиваемые на западе компании)- то Java.
Если интересно клепать на просторах снг — CRM-ки, сайтики, магазины, сервисы- то .Net
Зп. в среднем почти одинаковые с небольшим перевесом в жаву.
На западе больше требуется жавистов, прсто потому- что .Туе более молод- и местные сами с удовольствием на нем работают, а жавистов- нехватает- потому как старая, топорная и тд. А проектом на ней написано много и новых на ней стартует еще больше.

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

Если интересно клепать на просторах снг — CRM-ки, сайтики, магазины, сервисы- то .Net

За 10 лет клепал 18 проектов на .NET, одна канадская онлайн игра HTML5, сейчас для Самсунга делаем внутреннюю систему, собеседовался в Форекс проект помню. Вообщем это совсем не СНГ, и вообщем-то что угодно.

Давайте начнем с того, что на разработку решения на java тратиться в сотни-тысячи раз больше денег чем на самый крутой виндовый сервер/клауд
Ээээ, гмм...
«На разработку супертанкера тратится в сотни-тысячи раз больше денег, чем на самую крутую весельную шлюпку/моторку».
Пока весь ваш «энтерпрайз» имеет масштаб одного рэка на 16 ядер — таки на МС дешевле и быстрее, чем на оракле, скажем. Но как только туда придет хотя бы пара тысяч одновременных сессий — наступит прозрение.
На эти грабли уже лет 15 наступают с неизменным результатом. Начиная с американского крейсера в далекие 90-е и заканчивая лондонской биржей и банками.
Единственное известное мне исключение — стэковерфлоу. Ему удается держаться в рамках одного сервера до сих пор, что мегаудивительно (думаю что для самого МС тоже).
Единственное известное мне исключение — стэковерфлоу. Ему удается держаться в рамках одного сервера до сих пор, что мегаудивительно (думаю что для самого МС тоже).
Вот что крест животворящий руки прямые делают! :)
P.S. А что, лондонская биржа перешла с .NET стека на джаву?
перешла с .NET стека на джаву?

Несколько лет назад были новости о переходе биржы с .Net +Windows на Linux + С++
пруф 1
пруф 2
Помню в то время линукс сообщество ликовало.
Но счастье продолжалось не долго: linux если падает- то поднять его оказывается намного сложнее, в итоге- торги в тот день пришлось полностью остановить на весь день
Позже, windows платформу пытались протолнуть еще раз на фоне сбоя linux решения- но похоже всё спустили на тормозах, и насколько я знаю- биржа и по сей день работает на линухе.
Основное преимущество линукс С++ решения:
1. Повысили скорость обработки до 125 мкс использую С++ линукс, вместо over 2000 мксекунд которые биржа имела при .Net Windows
2. На несколько порядков понизили стоимость обновлений софта. За обновление windows решения требовали $64M, в то время как полный переход на линукс обошелся около $40M

Вот и я о том же — джавой тут и не пахло. А C++ рулит.

ASP последний раз встречал в 2005 году в конторе.

В Java до сих пор пишут на 1.6, а когда говоришь про лямбды уходят в размышления, а нужны ли они, а вдруг джун их забоиться, когда в .NET без Linq как без рук.

Java много раз пытался перейти, но вход был тяжёл после .NET. Пока не появился Play Framework, было очень сложно заставить себя с ней работать. Книги целыми главами обьясняли что такое beans и get/set префикс, и весь JSP так крут что преобразует свойства в эти методы. Тегов JSP было огромное количество и все они почемуто ничего толком не делали. Так выходило что за 10 лет, я так и не увидел хороших скринкастов, как быстро разрабатывать на Java/JSP/JSF. Tomcat в котором надо прописывать ужасно длинно каждый сервлет и перезапускать на каждый чих и как мне показалось debug намного шустрее и стабильней в Visual Studio.

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

Сам делал несколько попыток пощупать Java EE.
После .Net- java выглядит топорной, угловатой. Очень нехватает linq, делегатов, событий, зымыканий, структур, возможности по человечески работать с нативным кодом.
Структура java core выглядит несколько не логично по сравнению с .Net
Язык очень многословен.
Море фреймворков разной степени пёстрости.
Очень не привычно было работать в еклипс после студии.

Но есть и плюсы которые могут всё это перевесить:
1. настоящая кросплатформенность. Линукс, виндовс, андроид, мак- всё отлично работает.
2. спрос на жаву превышает спрос на С#
3. зп — выше( в большинстве случаев)
4. Применяется в отраслях, где .Нет еще не скоро появится:
В штатах это оборонка, промпроизводство, bigData/облака и тд

Хочу лишь добавить:
— зп выше — если не Андройд
— оборонка наверное не аутсорситься практически, да и что за радость, закопают после проекта). Пром — а платят ли там выше? bigData — всмысле Hadoop на Java написан, возможно да. Windows конечно как платформа для Cloud менее удобная. PS слишком сложен.

В итоге, перелопатив все доступные туториалы, я так и не смог заставить hello world приложение работать так, как мне надо
а можна дізнатись деталі, як саме вам потрібно, щоб воно працювало?

Для розгортання простого додатку можете спробувати скрипт (фактично те ж саме, що і в Node.js)
@powershell -NoProfile -ExecutionPolicy unrestricted -Command “iex ((new-object net.webclient).DownloadString(’raw.githubusercontent.com/...minstall.ps1’)
kvm upgrade
git clone github.com/...aspnet/Home.git
cd Home\samples\HelloWeb
kpm restore
k web

Так и есть web api в этой версии станет частью MVC.
Всего того стека не будет основанного на HttpMessageHandlers не будет.
Выглядит приблизительно так.
1. HttpListener — собственно сам веб сервер, формирует OWIN application dictionary. («Microsoft.AspNet.Server.WebListener»: «1.0.0-alpha4»)
2. Мост между листенером и средой веб приложения vNext — вызывает цепочку Middleware компонентов, преобразовывает OWIN application dictionary в vNext HttpContext, это и есть то, что пришло на смену Integrated Pipeline. ( «Microsoft.AspNet.Hosting»: «1.0.0-alpha4»)
3. Само веб-приложение — MVC сервисы(фильтры, селекторы, фабрики, контроллеры, форматтеры). ( «Microsoft.AspNet.Mvc»: «6.0.0-alpha4»).

В IIS будет хоститься поверх Helios — который убирает Integrated Pipeline.
Либо поверх Katana, если надо будет использовать vNext с Integrated Pipeline(Web Forms, MVC, Web Api)

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

На самом деле упростили.
Запускается теперь все без студии в пару консольных команд и MVC живет без IIS.
Перезапуск приложения одной консольной командой делается после внесения изменений в код.
github.com/aspnet/Home

В чем именно здесьзаключается «упрощение»?

Уменьшили количество конфигураций в web.config, csproj и packages.config необходимых для компиляции и разворачивания проекта заменив 200 строк xml кода 20-ю в json и поместили их в один файл.

В итоге, перелопатив все доступные туториалы, я так и не смог заставить hello world приложение работать так, как мне надо.

Что не получилось сделать?

vnext перспективная платформа, которую начнут активно использовать в мс веб практически сразу с выходом в релиз , но это всего лишь фреймворк. Полноценная работа с asp.net в любом случае будет требовать знания integrated pipeline(web forms, mvc). К тому же от дотнетчиков обычно требуется более широкая специализация, чем один Asp. Net. Сейчас на рынке все очень поразному , кто-то еще веб формы использует, кто-то уже и про mvc забывает делая подряд одни spa на web api.

а кто-то еще вин формы делает ;)

На сколько отличается порог вхождения в Java и .NET ?

Есть отличная статья на вики
en.wikipedia.org/..._Sharp_and_Java
можно просто пробежаться глазами о возможностях каждой технологии(языке) и понять что лучше и технологичней, а порог вхождения практически одинаковый.
Но как тут уже верно подметили одним .NET и Java тут не ограничится.
Если это веб то JavaScript, JQuery, HTML, — это просто обязательно.

Что касается .NET то WebForms был есть и будет ещё довольно долго, поэтому учить чисто MVC не достаточно. Кроме того Entity Framework + MS SQL тоже знать очень рекомендуется.

NET научится водить машину
JAVA — самолет!

А какой стек технологий учить для server-side Java Web или .NET Web ?

Есть предложение, но там проект на WebForms. Стоит ли брать его во внимание. WebForms вообще жив ?. Не испортит ли он общее представление о вебе ?

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

опыт работы с каким-нить ioc-контейнером
?

Я вот не представляю. Если человек с опытом в районе пол года — год потыкает в Castle Windsor, например, то толку от этого будет немного больше чем ноль. По-моему чтобы вникать в DI надо хотя бы Марка Сеемана почитать.

В Castle Windsor уже давно все через код регистрировать можно. А так все IoC containers на одно лицо.

Видел таких, кому и года не хватало )) Вообще важно что знаешь, а не суммарный стаж!

MSMQ не специфичен разве что для пет-проектов. Пожалуй, соглашусь.
Он имеет место быть в SoA.

Если все-равно что, то учите .Net — меньше красноглазить имхо.

Ну если веб то лучше NET, а если хочется больше логики а не интерфейса то java (сужу по рынку работы в стране)

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Этим комментарием вы сами сделали выбор )

Підписатись на коментарі