Meet speakers from Tinder, IBM, Siemens, Indeed and other QA Rockstar’s on …Testing Stage, Save $30 till 28/02
×Закрыть

Примеры решений, которые можно реализовать на платформе .NET

Привет! буду благодарна за помощь. Интересуют примеры решений, которые можно реализовать на платформе .NET. Не конкретные приложения типа Protrader Multi-Connect, NinjaTrader (о чем уже есть топик), а именно направление проекта, к примеру .Net можно использовать при создании антивируса. Какие еще продукты можно создавать, какие решения?
Надеюсь меня поймете, т.к. я не технарь. но имею огромное желание немножечко разобраться лучше...

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
Привет! буду благодарна за помощь. Интересуют примеры решений, которые можно реализовать на платформе .NET. Не конкретные приложения типа Protrader Multi-Connect, NinjaTrader (о чем уже есть топик), а именно направление проекта, к примеру .Net можно использовать при создании антивируса. Какие еще продукты можно создавать, какие решения?

Да легко, например автономный модуль управления для автомобиля, в народе называемый автопилот. Берете Accord.NET...
accord-framework.net

Платформа .net суть среда для выполнения Il-кода. Il-код — Тьюнинг-полный язык. То есть, на платформе .net можно реализовать что угодно.

«Платформа ... ЕСТЬ среда ...»

суть форма 3л мн.ч.

ты СОВЕРШЕННО не понимаешь в чем суть!

Напишешь на .NET драйвер устройства под Windows? :)

Лично — нет. А вообще это возможно.

Если только для user-mode drivers. Драйвер уровня ядра написать на .NET невозможно, поскольку сам CLR не может работать в kernel space.

Драйвер уровня ядра написать на .NET невозможно

Можно писать гибридный драйвер, где kernel на с++ и является только маршрутизатором пакетов, а вся обработка идет в сервисе на .NET. Самый быстрый метод обмена здесь через калбеки драйверу. Сам писал такой вот драйвер веб-камеры с захватом видео и обработкой в сервисе (требование заказчика) на .NET

Да, так, конечно, можно. Есть проект для создания userspace драйверов для файловых систем наподобие линуксового FUSE, где используется аналогичный подход.

Крайне любопытно, какие именно механизмы использовались для обмена данными между kernel space и user space?

IOCTL или что-то другое?

Использовались named pipes, но это не самый эффективный подход, хотя клиента устроило.

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

Речь про .NET как про среду исполнения, а не про средства разработки.

написать можно, запустить драйвер под дотнетом нельзя, но это даже как-то странно даже звучит, драйвер же не для дотнета

Ага, а рация на бронепоезде, а не на транзисторах :)

Коду на дотнете для выполнения нужен CLR. А CLR может работать только в юзерспейсе. На уровне ядра CLR работать не может, и, соответственно, любой код, который зависит от CLR — тоже.

User-space драйвера теоретически писать на дотнете можно, но всё равно понадобится unmanaged обёртка в виде реализации DllGetClassObject.

en.wikipedia.org/...​wiki/.NET_Micro_Framework не совсем так, под винду драйвер нельзя написать, но драйвер под embeded можно

в условиях задачи было «под Windows» :)

если бы завтра оказалось что писать драйвера выгодно и круто, то в след версии дотнета бы все добавили и цлр провалили бы до ядра

Ну так в Micro Framework так и сделали, там урезанная версия CLR работоспособна прямо на «голом» железе. В Windows это просто, видимо, нецелесообразно было делать — а так бы, да, запилили какой-нибудь kernel CLR :)

Речь про .NET как среду выполнения, а не про средства разработки.

Напишешь на .NET драйвер устройства под Windows? :)

Ви таки не поверите...

User-Mode Driver Framework
en.wikipedia.org/...​ser-Mode_Driver_Framework

Почему же не поверю — я её сам упоминал в дискуссии :)

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

В .Net Core 3.0 додали фронтенд фреймворк Blazor. Так що тепер на .Net можна і фронт писати.

Blazor вообще-то на Mono основан, а не на .NET Core. Хотя при этом он и зависит от тулинга .NET Core SDK.

К черту подробности про решения, монолит или микросервисы?

именно направление проекта

Думаю проще найти то, что нельзя реализовать на .NETе, ибо можно:
— сайты и прочий веб (ASP.NET, ASP.NET Core),
— игры (SFML .NET www.sfml-dev.org/download/sfml.net , Monogame, Duality и прочие Xenko, не говоря уже о Unity),
— приложения и игры под смартфоны на Xamarin,
— всякие десктопные приложения под винду (и даже под макось с линуксом),
— всякие облачные сервисы с помощью Azure
— и прочее, и прочее....

к примеру .Net можно использовать при создании антивируса.

думаю 100% можно)

Антивирус сложновато будет, потому, что это штука специфическая и встраивается довольно глубоко в недра операционной системы. Наверное, если очень поизвращаться с P/Invoke и принудительным освобождением памяти и ресурсов везде, где только возможно — то можно и на .NET. Но, тащить CLR в адресное пространство каждого процесса, куда предполагаемый антивирус будет внедрять свои динамически подключаемые библиотеки — это будет форменное издевательство.

Следующий левел — антивирус на java script!

это изи, а вот прпобоуй попрограммировать фронтэнд на asm, Чак Норис жаждет чэлленджа

а вот прпобоуй попрограммировать фронтэнд на asm

wasm?

Ну так да — берешь ноду и вперед))) Причем его можно не только консольным сделать, но и наваять какой-нить гуй на реакте и запихнуть в электрон) Правда такой антивирь будет жрать еще больше ресурсов компа, чем антивирь на дотнете, и это будет еще бОльший изврат. :-)))

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

Real-time антивирусную защиту — сильно сомневаюсь, так как она очень глубоко интегрируется в систему; и если на .NET ещё хоть теоретически можно поизвращаться с P/Invoke, то нода в принципе не даст так глубоко лезть в системные API.

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

Можно — все, перечисленное комментом выше, + расширения для офисных (и не только) приложений.

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

CLR прожорлив до оперативной памяти + динамическое выделение + фоновая сборка мусора. Есть опасения, что всё это окажется несовместимым с преимущественно статическим и очень экономным выделением памяти на уровне ядра.

User-mode driver framework — вот там, да, наверное, как-то возможно прикостылять CLR через Managed C++. «Но зачем?» ©

Почему это движок антивируса нельзя?) Другое дело, что такой движок скорее всего будет жутко неэффективный (много ресурсов компа будет жрать и всякое такое).

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

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

т.е. конкретно почему нет таки нет ))

уже написали ж, что не можешь, clr не живет в ring 0
Так что максимум что можешь сделать — движок антивируса написать на C/asm и общаться с ним посредством P/invoke из User Mode приложения на .net

Для некоторых задач из категории встраиваемого (embedded) ПО вполне можно применять. Всякое там АСУТП, терминалы операторов, интерфейсные панели и прочее. Там конечно специализированных решений тоже хватает, но когда надо быстро и дешево, почему нет.

на дотнете можно написать всё кроме самого дотнета

Я думал на bat-никах :-) венда же! :-)

венда же ж теперь имеет power shell )) active perl опять же ж никто не отменял ))

или вы не любите perl?

perl??? Этот типа диды написали? Нет, не слышал ))))

в букинг.ком не возьмут)

Так вроде же переписывают не?

Древние перловые куски? Да фиг там

CLR — это COM+, на сколько я помню. Так что C++.

практически любое ПО можно написать на .NET

Вспомнился детский анекдот:

Нашел Чебурашка копейку. Прибежал к Гене.
— Гена, что можно купить за копейку?
— Отстань, Чебурашка, я занят!
— Ген, а Ген, ну много можно купить за копейку?!
— Все, ВСЕ можно купить — отвали!
Пошел Чебурашка в магазин, нагреб всего, на кассе дает копейку. Кассир на него круглыми глазами смотрит. Чебурашка говорит:
— Что глаза таращишь? Никогда столько денег не видела? Сдачу давай!

Вот так и про .Net — ВСЕ можно написать на .Net ! ... Ну или почти все.
devblogs.microsoft.com/...​9/05/dotnet5_platform.png

Эта картинка — сокровище! я ее как-то скринила с видео-презентации ML на майкрософт сайте. Если бы по всем технологиям можно было найти такую инфографику.

Но мне хотелось еще чуток углубиться, какие конкретно решения iOT, AI, про веб и десктоп немного понимания больше, какие можно создавать продукты...

Будь-яке нормальне віндоус класік аплікейшн, навіть не знаю на чому, крім плюсів ще його зараз можна написати.

написать транслятор java байткода в мсил

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

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

Сингулярити вообще то.

Денис, спасибо! Вы меня поняли, я именно это хотела знать.

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

Это зависит от что вы тестируете. Это может быть все начиная от термометр температуры и закончивая, например, МРТ. Дополнительно, нужно знать что вы тестируете конкретно. Можно же разное тестировать. В многих устройствах есть датчики температуры которым нужна каливровка. Есть servo маторы, тоже нужно каливрировать, ведь в мотор МРТ должен вращаться при определенной скорости.

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

Вот я просто как дизайнер МРТ могу сказать программисту (наверно assembler) модуля контроля матора что «мотор должен сделать разгон до 700RPM за 2 минуты, с допуском, скажим ±5RPM и должен поправить скорость за 5 секунд». Это будет написано наверно в assembler а проверка будет где-то дальше. Возможно на .NET перед каждым scan.

Наверно в случае с МРТ. Программа написана в .NET уже сможет анализировать каждый scan, делать validation включая параметры как скорость мотора и давать вывод, принять этот scan или попросить МРТ controller чтобы тот зделал ещё один scan.

ПРЕДУПРЕЖДЕНИЯ/DISCLAIMER... Вы не говорили что конкретно. А я не програмировал МРТ, так что мой ответ ИМПРОВИЗИРОВАННЫЙ.

Русский не мой язык, за ошибки извените.

Есть servo маторы

Кто-кто есть?

тебе жалко штоле ))

Огромное спасибо, Денис! Извините, за нечеткий вопрос.

Stack Overflow на дотнеті написаний.

та ладно, в них ж усе на ms стеку зроблене.

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

фокус RS для реактивного планктона?
Это наверное вообще квантовый компьютер www.youtube.com/watch?v=TP9kokeyxGU

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

Список не повний, але:
Ігри — Unity3D (Mono Framework)
Сайти — ASP.NET
Робота з БД — Entity Framework
Десктоп — WinForms, WPF
Мобайл — Xamarin
Machine Learning — ML.NET

Існує ще .NET Core — орієнтований на кросс-платформ розробку.

P.S. На дотнеті антивіруси не пишуть, хіба може UI, бекенд зазвичай на ASM\C\C++

Кросс-платформенные десктоп приложения, мобильные кросс-платформенные приложения, IoT, mixed reality (HoloLens), whiteboard (Surface Hub).

* Xamarin.Forms exposes a complete cross-platform UI toolkit for .NET developers. Build fully native Android, iOS, and Universal Windows Platform apps using C# in Visual Studio;
docs.microsoft.com/...​us/xamarin/xamarin-forms

UWP Universal Windows Platform (UWP) extends the .NET platform to enable development for any Windows device, including IoT devices running Windows 10 IoT Core;
Build apps that run on Raspberry Pi, MinnowBoard MAX, DragonBoard 410c, and more
(any Windows 10 device — PC, tablet, phone, Xbox, HoloLens, Surface Hub, and Windows 10 IoT Core).
dotnet.microsoft.com/apps/iot
dotnet.microsoft.com/apps/desktop

* Tizen .NET allows you to develop Tizen applications to run on Samsung devices, including TVs, wearables, mobile devices, and other IoT devices.
docs.microsoft.com/...​orms/platform/other/tizen

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

Отдельное спасибо за дополнение: mixed reality и whiteboard

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