metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2015-04-19 11:59 am

Ад дотнета

Тут недавно выпустили akka.net, которая, по идее, сможет решить большую часть проблем с асинхронным обменом сообщениями для моего софта.
Сижу читаю всякое по теме, набрел на такую ссылку: http://www.aaronstannard.com/the-profound-weakness-of-the-net-oss-ecosystem/ - это один из разработчиков akka.net, занимавшийся ее remoting-кишками.

Вкратце: "если на дотнете делать что-то сложное и осмысленное - садись и пиши фреймворки с нуля, потому что индусам и микрософту ничего этого не надо".

Еще одна забавная хрень оттуда же: они подумали и вместо переезда своего приложения с дотнета на jvm, решили спортировать акку с jvm на дотнет. Это только с первого взгляда выглядит странным в рамках религии "мы не занимаемся изготовлением инструментов", но если сравнить приложение со сложной бизнес-логикой, разрабатываемое 2-3-5 лет и фреймворки - может оказаться, что портировать вторые потребует гораздо меньше времени.
gemelen: (Liquid Sphere)

[personal profile] gemelen 2015-04-19 10:08 am (UTC)(link)
Вкратце это должно звучать "если на дотнете делать что-то сложное и осмысленное - выкинь дотнет и возьми Java/Erlang/whatever".
Потому что пример вот этих вот ребят как раз. Я пробежался по остальным постам в этом же блоге и ситуация складывается весьма забавная: с начала используя линукс как платформу запуска и Hadoop+Hive для map/reduce, они занимались прикладным дрочерством и писали аналоги уже существующих вещей или всё-таки брали уже существующее (как Cassandra против первоначального RavenDB). И после всех этих радостей оказалось, что их стартап не успевает делать бабло и софт под запросы рынка.
Также, в камментах к этой записи виден denisio, чей дотнет головного мозга говорит сам за себя не первый год.

[identity profile] jakobz.livejournal.com 2015-04-19 02:54 pm (UTC)(link)
Ну, в серверном дотнете даже не с акторов начинается. Там же негде хостить серверные приложения по-человечески.

Есть типа IIS, который сложно заставить просто не выключаться. Т.е. какие-нибудь фоновые процессы там нельзя хостить. Не говоря уже о том, .NET туда воткнут откровенными хаками.

Есть windows services, которые надо руками каждый раз прикручивать, придумывать как их деплоить, как мониторить.

Т.е., грубо говоря, в дотнете нет Application Server-а. Какие там в жопу асинхронные агенты?

[identity profile] anonim-legion.livejournal.com 2015-04-19 04:17 pm (UTC)(link)
>Есть типа IIS, который сложно заставить просто не выключаться

Можете подробнее?

capcha: no-brainer

[identity profile] metaclass.livejournal.com 2015-04-19 04:31 pm (UTC)(link)
Веб-сервисы в IIS живут в отдельном процессе w3wp, который рециклируется (т.е. один воркер процесс закрывается, второй создается по мере надобности).
Вне обработки запроса считается что сервисы никак не существуют, т.к. никакого состояния у них нет.
В приложении, где хостятся сервисы, состояние может быть, но при рестарте воркеров оно теряется, его надо где-то отдельно хранить.

А вещи вроде "раз в 10 минут выполнять какую-нибудь обработку" в таком варианте вообще поместить некуда.

[identity profile] enternet.livejournal.com 2015-04-20 12:45 pm (UTC)(link)
Сгущает он без меры. Необходимость Application Server вообще надумана. Длинные процессы всё равно живут на других машинах, на вебсервере им не место. Но если очень хочется, есть параметры, их можно подкрутить и IIS не будет засыпать.

[identity profile] metaclass.livejournal.com 2015-04-20 01:18 pm (UTC)(link)
А почему бы все в одном процессе не держать? Тем более, что "другие машины" - это уже какой-то энтерпрайз на тыщи человек, на 10-100 хватает одного сервера.

[identity profile] binf.livejournal.com 2015-04-20 06:29 pm (UTC)(link)
не, ну так для маленьких надо делать self-hosted. OWIN например, очень гут

[identity profile] enternet.livejournal.com 2015-04-20 07:15 pm (UTC)(link)
Да ради бога. Только не надо этой фиксации на IIS. Можно уже закопать стюардессу. Пишите под катану (последний MVC) это и майкрософт рекомендует и будет там один негасимый процесс.
gemelen: (Liquid Sphere)

[personal profile] gemelen 2015-04-19 07:29 pm (UTC)(link)
К этому есть две хорошие цитаты автора по ссылке в посте:
The paramount technical challenge facing the majority of .NET developers today looks like building Web APIs that serve JSON over HTTP, judging from the BUILD 2014 sessions. Distributed computing, consistent hashing, high availability, data visualization, and reactive computing are concepts that a virtually absent from the any conversation around .NET.
...
Compare this to the Java ecosystem: virtually every major .NET project is a port of something originally evented for the JVM. I’m looking at you, NAnt, NUnit, NuGet (Maven), NHibernate, Lucene.NET, Helios, Akka.NET, and so on
:)
PS: капча внезапно доставляет

[identity profile] binf.livejournal.com 2015-04-20 06:33 pm (UTC)(link)
Для больших приложений - azure, меньше тыщи человек - self hosted

[identity profile] binf.livejournal.com 2015-04-23 01:38 pm (UTC)(link)
пойду расскажу кастомеру, что он должен дождаться UI библиотки на erlang для winRT или похоронить свою винду с Metro и перейти на бубунту, потому что инструменты в java круче аналогов дотнэта. Больше эрлэнга, больше хардкора!





gemelen: (Liquid Sphere)

[personal profile] gemelen 2015-04-23 05:33 pm (UTC)(link)
Да это ваше и их право дрочить вприсядку и понимать слова так как вам удобно.

[identity profile] binf.livejournal.com 2015-04-23 06:58 pm (UTC)(link)
Жабоебизм мешает вам нормально соображать. Удобство здесь не при чём, это прямое следствие из "выкинь дотнет и возьми Java".
gemelen: (Liquid Sphere)

[personal profile] gemelen 2015-04-23 07:22 pm (UTC)(link)
До чего же вы тупы. Подите нахуй.

[identity profile] binf.livejournal.com 2015-04-23 08:03 pm (UTC)(link)
Ты поц и даун. Сдохни