LINUX.ORG.RU

Разработка на .NET под FreeBSD

 ,


2

3

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

В этот раз про разработку.

Да, глаза вас не подводят — на скриншоте самый настоящий нативный .NET 7 на FreeBSD. Проект — самый жирный boilerplate из найденных: SPA на ангуляре, JWT-авторизация, REST, multi-tenancy, база данных с EF и миграцией.

Как все это завести традиционно в статье.

P.S. Полагаю, 14я фря с кастомным ядром вряд ли кого-то тут впечатлит.

>>> Просмотр (1920x1080, 368 Kb)

★★★

Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 1)

Сам пишу

SPA на ангуляре, JWT-авторизация, REST, multi-tenancy, база данных с EF и миграцией.

Радует, что dotnet 7 таки впихнул. Я «за» dotnet-bin на BSD, а если полноценно SDK, то вобще супер. Сам пока на Gentoo.

Nirdeks
()
Ответ на: комментарий от Nirdeks

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

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Это же хорошо! Пока не оформится в основную ветку… Мы подождём. Интересно бы глянуть на выхлоп CLR, нет ли ругани?

Nirdeks
()
Ответ на: комментарий от Nirdeks

Почитал «Зелёного»…

Есть альтернативные решения, например Avalonia, но на FreeBSD оно не собирается.

Ага. Ну так не SDK, а куски ASP.NET.

Конечно же это VSCode, который достаточно давно есть в портах и успешно работает.

Emacs/NVim/Vim. Debug пока кривоват, но явно интереснее, чем VSCode, во всяком случае не в Windows. Что убило, в VS нельзя курсор сделать ‘Solid Block’. Отсюда и пошло выделение строки цветом, а то не увидишь курсора.

А в целом всё замечательно (если вернуть мне глаза с такой темой в VSCode).

Nirdeks
()
Ответ на: комментарий от Nirdeks

Ага. Ну так не SDK, а куски ASP.NET.

Avalonia это вот.

Это UI-фреймворк на XAML, чтобы без WPF можно было жить.

Emacs/NVim/Vim. Debug пока кривоват, но явно интереснее, чем VSCode, во всяком случае не в Windows.

В VSCode (в том числе линуксовом) как раз есть отладчик для дотнета. Официальный, работающий и поддерживаемый - от Microsoft. Разве что только еще не открытый.

Но поскольку у меня и VSCode и сам дотнет собраны на неподдерживаемой платформе - отлаживать пока нормально нельзя.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Статью не читал, но у меня такой вопрос: там же наверное компилятор C# устанавливается бинарником, чтобы скомпилировать свою новую версию из исходников, верно? А как мы знаем, таким компиляторам доверять нельзя. Шах и мат!

Shushundr ★★★★
()
Ответ на: комментарий от Shushundr

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

Нет, не верно.

Сначала собирается crossbuild из исходников на линуксе, затем он используется на фре для сборки нативного SDK. При желании собранный нативный SDK можно еще раз использовать для сборки SDK - двойная перегонка.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Ну а на линуксе он как возникает?

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

Shushundr ★★★★
()
Ответ на: комментарий от Shushundr

Прямой сборкой runtime из исходников.

Но вообще если говорить о врагах то сейчас это скорее товарищи вроде Intel и Dell - которые даже свои официальные сайты позакрывали для российских IP, уж молчу про остальное.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Как раз Avalonia даёт тем, кто умеет в WPF, возможность не переучиваться. Такое ощущение, что ты с даунами переписываешься. Не ссы, пишем и кроссплатформенные интерфейсы. Писали и в VS, Rider, VSCode, Omnisharp прикручивали ко всему, куда дотягивались рученьки.

Но поскольку у меня и VSCode и сам дотнет собраны на неподдерживаемой платформе - отлаживать пока нормально нельзя.

Надеюсь, что в дальнейшем это внесут в основу. Чтобы после патчей нормально заводилось, штатно. Alpine с Musl поддерживает, Arm поддерживает, вот и BSD будет, заживём.

Nirdeks
()
Ответ на: комментарий от Nirdeks

Как раз Avalonia даёт тем, кто умеет в WPF, возможность не переучиваться

Очень врядли, кроме самой XAML разметки ничего общего нет. WPF это WPF.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от Nirdeks

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

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Клоун довольно весёлый ;)

Как Вы к нам, так и мы к Вам.

Пробовал что-то консольное завести? Интересно, как работает в BSD? Кроме Kestrel? Может есть затыки какие?

Nirdeks
()
Ответ на: комментарий от Nirdeks

Пробовал что-то консольное завести? Интересно, как работает в BSD?

Ага это уже видимо следующий уровень: мало того что текст не читаем так еще и на статичные картинки не смотрим, так получается?

alex0x08 ★★★
() автор топика
Ответ на: комментарий от Nirdeks

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

alex0x08 ★★★
() автор топика
Ответ на: комментарий от Partisan

И хорошо, а то кому-нибудь вздумалось бы этим пользоваться.

На линуксе все работает как надо. И это меньшее из зол, по сравнению с саппортом решения на каком-нибудь Windows 2003 и старом дотнете.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Не собирается рантайм без sdk. При его отсутствии сборочный скрипт скачивает бинарники с MS ресурсов.

undef ★★
()
Ответ на: комментарий от undef

Вот отсюда:

Building a .NET SDK using C++ would let you start at 5.0.100, and >we do support building 5.0.100 -> 5.0.101 -> 5.0.102 using >source-build. But setting up a bootstrap .NET SDK would be a lot >of work. There’s much more than the runtime libraries and Roslyn: >a lot of build tooling is self-hosting, like MSBuild, NuGet, >Arcade, etc. Also, this bootstrap .NET SDK would probably need to >be individually maintained for every version (5.0, 6.0, 7.0, …) >because there’s no nice pathway from one to the next.

Вообщем сделать можно но надо быть в край больным на голову.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Сделать можно, но психа, способного запилить sdk на плюсах, пока не нашлось.

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

undef ★★
()
Ответ на: комментарий от alex0x08

Прямой сборкой runtime из исходников.

Сборкой при помощи чего? При помощи непроверяемых бинарных утилит?

Shushundr ★★★★
()
Ответ на: комментарий от alex0x08

Вообщем сделать можно

По приведённой тобой ссылке написано, что «unfortunately not». У тебя проблемы с пониманием английского.

Shushundr ★★★★
()
Ответ на: комментарий от Shushundr

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

Так вот то о чем ты тут так упорно рассказываешь называется «параноя», психическое заболевание такое. Серьезное, лечить которое можно только медикаментозно и очень долго.

При этом, даже если таким компьютерным параноикам показать код реальной закладки - вы в 99% случаях ничего не заметите и не поймете, даже если умеете в программирование. Со всей вашей параноей и подозрительностью.

Потому что навыков нет.

Если вдруг интересно про техническую сторону дела то вот краткий ликбез:

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

Теперь представь, что на ноутбуке где я все это собирал даже биос сделан на урезанном линуксе: с GUI, окнами и управлением мышкой. И все это обновляется.

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

alex0x08 ★★★
() автор топика

Ждем разработку под Apple M2 на лисп-машине.

untitl3d
()
Ответ на: комментарий от alex0x08

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

То есть, проблему ты признаешь. Это хорошо.

Плохо, что такие как ты разрабатывают софт для иранских атомных станций.

Shushundr ★★★★
()
Ответ на: комментарий от Shushundr

То есть, проблему ты признаешь. Это хорошо.

Это не проблема, это подход.

Безопасность - это процесс, а не шаг или волшебная кнопка.

Страх что кто-то с запада перехватит управление и что-то удаленно уничтожит существует и живет со времен СССР.

Ради того чтобы такого не было и сделали Эльбрус плюс пилят отечественные дистрибьютивы линукса, которые затем еще и сертифицируют по уровням допуска.

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

Если тебя такое волнует - сходи к доктору. Других объективных причин для таких волнений кроме шизы и параноии тут нет.

Плохо, что такие как ты разрабатывают софт для иранских атомных станций.

У меня есть опредленные принципы в жизни, выработанные с годами. Один из таких принципов: я не занимаюсь разработкой софта для самолетов, медицинских приборов и атомных станций.

Поэтому сплю спокойно и крепко.

Лучше навернуть биржу чем летящий самолет.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от Nirdeks

Деньги всегда можно заработать еще а вот вернуть человека с того света еще ни у кого не получалось.

С возрастом придет понимание, может быть.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Я старше тебя ;} Абстрактнее смотреть надо, шире. Но это достигается чтением, изучением и вот этим всем. Замечено, что большинство технарей совершенно, беспросветно унылы. Как и те, которые задают вопросы, зачем ты прикрутил эти хаки а не использовал Linux, Windows etc.

А принципы - это хорошо.

Nirdeks
()
Ответ на: комментарий от Nirdeks

Я старше тебя

«..но временами возраст приходит один» - видимо этот случай, что конечно печально.

Абстрактнее смотреть надо, шире.

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

зачем ты прикрутил эти хаки а не использовал Linux, Windows etc.

В первом же абзаце статьи:

Не надо пытаться заниматься такой разработкой на серьезных щщах, >по моему гайду ниже. Это просто тест для оценки текущего >состояния дел с дотнетом и его реальной (а не декларируемой) >кроссплатформенностью.

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

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Чего ты всё в штыки? Ну, бывает. Твои тараканы. А тему смени. Белый фон - зло. Как специалист советую.

Nirdeks
()

а вирусы под ним работа^Wканпелируются?

Syncro ★★★★★
()
Ответ на: комментарий от kirill_rrr

А в чем извращение то? Это просто технология, очередная. Я же не агитирую за переписывание всего на донет или переезд на фрибзд.

Ну и потом: 4 блин года назад оно жило и работало только под вендой. Это ведь чудовищый прогресс.

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

alex0x08 ★★★
() автор топика

ящитаю что на .net нужно разрабатывать только под NetBSD. Так что низачот.

hateyoufeel ★★★★★
()
Ответ на: комментарий от X512

передача параметров по указателю

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

alex0x08 ★★★
() автор топика
Ответ на: комментарий от X512

Java так и не сделали передачу параметров по ссылке.

Видимо поэтому эксплоитов на джаве на порядок меньше.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от X512

В джаве типы все ссылочные (кроме элементарных) или могут передаваться «фкаропке» (ежели элементарные), которая может работать как ссылка. Из-за этого танцы с дипкопированием еще. В шарпе те же яйца фпрофиль, т.к. вонабе джава после зопрета санок продавшемуся в мастдай Хайлзбергу «расширять и обнимать» джаву в виде j++. Аналогично он мутил в еще в дельфях, где многие в принципе не вкуривали про ссылочность типов.

slackwarrior ★★★★★
()
Ответ на: комментарий от Nirdeks

Эти «азино» для любителей стакана и «профессиональных гуру трейдинга» в принципе надлежит зогкрыть и посыпать солью чтоб ниче обратно не выросло.

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

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

alex0x08 ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.