Какие программы можно написать на C#?

Да. Например вот:
https://en.gritgene.com/gritgene-showcase-videos/
Написано на C# с использованием Avalonia

- Вконтакте



- Вконтакте

- Вконтакте

- Вконтакте






- Вконтакте
Мое мнение, написать можно но пользы как разработчику так и пользователям это не принесет.
Названы проекты, у которых очень высокие требования к ресурсам компьютера, причем на столько что если задачи не решаются так быстро как это хочется, то это генерирует сильный дискомфорт пользователям.
Скорость выполнения программ у .net сравнима с java, поэтому можете сравнить visual studio (написано похоже на си и c#) и к примеру eclipse (полностью на java), на последний я одно время слышал жалобы, типа кушает память, кушает проц как не в себя (я то как раз считаю eclipse лучшим проектом для подражания).
Я к тому что рано или поздно придется критичные и важные вещи оптимизировать и уходить от managed кода в быстрый c/c++/компилируемый в нативный бинарник код
- Вконтакте

Ну вот не надо, C# будет быстрее Java и в некоторых тестах с отрывом. Jit компилятор компилит код в машинный код, скорость практически как у С++. Зависит от того как его написать на том и другом языке и скорость в каком-нибудь .NET 5 будет быстрее, чем в .NET Framework 4.5 хотя бы.
Не сомневаюсь, современные технологии jit компиляции вытворяют чудеса, пишут что даже llvm код иногда работает быстрее того же собранного на c++ нативно.
Но как бы вам донести мои ощущения (к сожалению только так, так как иначе все упирается в конкретные решения и задачи) — когда обычный разработчик пишет для .net решения получаются (особенно отзывчивость и интерфейс) не быстрыми.
Я прекрасно помню, как работает .net на старых слабых машинах, как буквально видно процесс перерисовки интерфейса, что заставляет вспомнить что то же самое было наверное в 90-ых с нативным кодом но уже чисто по техническим причинам, а не из-за странно кривой реализации (когда как рядом запущенный qt-интерфейс летает и издевательски рисует кнопками пикселы изображения). Мы всего этого сейчас не видим, только потому что вся неэффективность работы базовых/системных вещей в большинстве задач не заметна из-за невероятно высокой скорости современных процессоров и графический акселераторов (а они реально используются иногда на всю катушку).
Я знаю что изучив невероятно красивый и удобный, ну к примеру какой-нибудь linq, программист начнет его использовать даже там где казалось не надо, где то ради синтаксического сахара и упрощения читабельности закроет глаза на возникшую квадратичную трудоемкость, вместо логарифмической. кому какое дело, работает ведь и укладывается в казалось бы норму отзывчивости (а у многих ли в ТЗ прописаны лимиты на отзывчивость интерфейса?).. но все в конечном счете начинает тормозить на конкретных задачах пользователя, а рефакторить и оптимизировать проект уровня фотошопа или блендера у разработчиков нет никаких сил и денег.
Да это не проблема из-за языка или фреймворка, в конечном счете всему виной разработчик, но может он может так делать потому что это ему предложили так делать?
p.s. мое мнение выбор .net это не про эффективность использования ресурсов машины — а про скорость разработки

- Вконтакте


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














однако, в серьёзном проде я такого не встречал.

- Вконтакте






- Вконтакте
В порядке бреда.
Могу на C# раскорячиться и написать быстрый код.
Производительность съедает :
1) вызов функций (если написать одним моноблоком то быстрее)
2) Отсутствие оптимизации вообще, хотя-бы на уровне циклов.
Про системные библиотеки вообще молчу.
Там после реверс инжиниринга в c# исходном коде небоскреб из GoTo, прыжки туда и обратно много раз. В общем полный Биг Мак.
3) Говорят в C# можно писать в не безопасном коде (Unsafe code) через указатели. Это правда.
4) Говорят в C# есть аппаратное (моментальное) сложение массивов одинаковой длинны, через специализированны тип данных (по моему это вектор) и mmx мультимедийные регистры (либо видеокарта, либо графический сопроцессор — это догадки). В c# также при пошаговом исполнении можно перейти к дизассемблеру, как и в с++. В общем экспериментируйте сами.
Подтвердить самому не удалось, не хватило времени.
В c# ассемблерных вставок нет .
5) универсальный или абстрактный инструментарий.
На рефлексии алгоритм глубокого копирования (если сумеете написать), работает допустим 18 секунд.
Если написать подхват-интерфейс для глубокого копирования и реализовывать его в каждом частном случае, то работает примерно 5 секунд.
Ситуацию может исправить сильная 64 битная машина с грамотной реализацией многопоточности или многозадачности в самом программном коде, но это не панацея.
Ситуацию может исправить туча микросервисов (TCP, UDP, HTTP), распределенная по сети слабых машин, как на крупных торговых площадках типа Ozon или Ali. говорят так было лет 10 что ли назад. Не хотелось бы майнить.
(на изыскания ушел месяц или два в фоновом режиме)
Быстрый код — в промышленных масштабах это свойство теряется — там до неприличия: «Чих пых, тыры пыры, носки в уши, ноги в продакшен» (дословная цитата). Видел корпоративное приложение на C#, что загружается 5 минут. — Это диагноз невменяемости. И не пытайтесь не перепрете.
Нарочно постараются и сделают 10 минут.
Все надоело — учу FlatAssembler.
- Вконтакте

Любой язык становится лапшой из гото после компиляции. А насчет оптимизации смотрите исходники, там много интересного.
Вставить ассемблер тоже просто. Компилируете dll и вызываете этот метод с помощью PInvoke
За PInvoke — спасибо, при случае посмотрю.
Ошибся в том что ранее говорил про С++VS19/VS13.
Теперь же предлагаю публике скромное развлечение С#VS19.
***Пример первый.
Теперь обоснование.
Цикл с пост условием это одын CMP(сравнение) и одын J**(JE,JNE,JZ,JNZ И ТАК ДАЛЕЕ). Это эталон, без спорно. Минимализм всегда рулит.
Цикл с пред условием (Как в BrainFack) одын CMP(сравнение) и одын J** и один безусловный переход JMP.
Теперь посмотрите на примеры. С# VS 2019. Пошаговое исполнение, затем правая кнопка мыши и перейти к деассемблеру.
Считаем количество CMP, J** и JMP. Думаю каждому будет интересно.
Обратите внимание что CALL, J**, JPM, CMP — это ассемблерно долгие операции, по этому их стараются либо избегать , либо минимизировать.
Предполагаю что все везде где J**, JPM, CMP больше чем по одной штуке — должно настораживать.
Обратите внимание что CMP — операция не всегда обязательная, так как арифметические операции тоже меняют состояние флагов, а значит по ним можно ветвить.
Теперь вопрос на засыпку, можно ли на ASM написать (оптимизировать) ветвления и циклы компактнее.
Актуальность C# и выбор его как первого языка программирования
Первая версия язык программирования C# была выпущена в январе 2002 года вместе с Visual Studio .NET 2002. Это объектно-ориентированный язык программирования общего назначения разработанный в компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота.
Язык относится к C-подобным языкам и больше всего близок к С++ и Java. Название языка было позаимствовано из музыкальной нотации, где символ # (диез) означает повышение стоящих справа от него нот на один хроматический полутон. Это означало то, что язык является инкрементальным продолжение языка C++, в то время как C++ был последователем C.
За более чем 20-ти летнюю историю язык пережил большое количество ревизий, а так же путь от технологии строго привязанной к платформе Windows, до кроссплатформенного языка программирования работающего на многочисленных операционных системах.
Первая версия C# была разработана как простой многоцелевой язык общего назначения, и по сравнению с ней, сегодня C# это современный и мощный язык программирования.
Какие проекты пишут на C#
Когда речь идет о языке программирования C#, нельзя забывать о платформе .NET, которая дает большой спектр технологий основанных на C#. Как уже было сказано ранее, C# является языком программирования общего назначения, а значит покрывает большое количество задач и областей, а именно:
- Web — разработка web-приложений и сервисов для платформ macOS, Windows, Linux и Docker.
- Mobile — разработка единой кодовой базы для построения нативных приложения для iOS и Android.
- Desktop — разработка нативных приложения под Windows и macOS.
- Microservices — разработка независимых компонентов запускаемы в Docker контейнерах.
- Cloud — использование существующих облачных решений или создание собственных. C# поддерживается большинством облачных платформ, такими как Azure и AWS.
- Machine learning — разработка приложений искусственного интеллекта и машинного обучения, решающие проблемы машинного зрения, обработки речи, моделей предсказания, и тд.
- Game development — разработка 2D и 3D игра для самых популярных десктопных и мобильных платформ.
- Internet of Things (IoT) — разработка приложений для интернета вещей, имеющие поддержку Rasbery Pi и других одноплатных компьютеров.
Исходя из вышеперечисленных областей применения видно, что платформа .NET и язык программирования C# покрывают большой спектр проектов на рынке. Это говорит нам о том, что изучив язык программирования C# с легкостью можно найти проект на любой вкус.
Рейтинг языка C#
Популярность языка программирования C# была разной на протяжении всего существования языка. От снижения интереса к языку привязанного к Windows платформе примерно в 2013-2015 годах, до возрождения после появления кроссплатформенного .NET Core.
На данный момент язык занимает твердое пятое место в рейтинге языков по версиям TIOBE и Github. Именно релиз кроссплатформенной среды .NET Core с открытым исходным кодом в июне 2016 года дал новый толчок развития языка программирования C# и вернул Майкрософт прежние позиции на рынке.
Перспективы развития языка C#
Компания Mайкрософт после объединения старой версии .NET Framework поддерживаемого платформой Windows и нового кроссплатформенного .NET Core в единую платформу .NET, объявила о ежегодном обновлении языка. Данная динамика отслеживается на протяжении последних нескольких лет.
Так же в связи с тем, что исходных код .NET Core стал публично доступен, вокруг этой платформы вновь стали собираться энтузиасты и большое сообщество, что позитивно отражается на динамике развития языка C#. Компания Майкрософт старается занять как можно больше ниш рынка, поэтому активно развивает свою платформу .NET.
Как же меняется язык ежегодно? Конечно же не вносятся какие-то кардинальные изменения в язык программирования C#, к примеру как это было в первых версиях, появления встроенного LINQ или переходом от классической много поточности к асинхронному программированию и Task-ам. В языке появляются новые операторы, конструкции, типы данных. Кто-то может сказать, что это синтаксический сахар и язык не меняется кардинальные, но суть в том, что C# развивается в соответствии с потребностями рынка и сообщества, которым им пользуется.
Изучение C# и платформы .NET как первого языка
Ни для кого не секрет, что IT-индустрия очень быстро развивается и меняется. Следует заметить, что за последние 20 лет произошло много изменений. Это касается как ролей на проектах и состава команд, так и технологий и подходов в программировании. Переход от низкоуровневых и сложных языков программирования, где необходимо большое количество фундаментальных знаний и навыков, к платформенным и управляемым языкам, которые ускоряют разработку и упрощают жизнь программистам.
Язык программирования C# идеально подходит для изучения для студентов вузов и людей, у которых есть фундаментальные знания в области IT. Для тех, кто только хочет попробовать свои силы в IT-индустрии и не знаком с основами программирования, C# может быть сложным для изучения. C# строгий и систематичный язык, поэтому с помощью его вы сможете четко понять и изучить все тонкости программирования.
Преимущества использования и изучения C#
C# является управляемым языком программирования, что позволяет разработчику не следить за выделением и использованием памяти. Для этого существует CLR (Common Language Runtime) — виртуальная машина, которая занимается запуском приложения, а также управлением памятью.
Также C# является строго типизированным и объектно ориентированным языком, что позволяет использовать ООП в его классическом виде. Здесь нет множественного наследования классов, что упрощает понимание ООП, но есть множественная реализация интерфейсов, что дает большую гибкость для разработчиков.
Большое сообщество и универсальность языка дают большое поле для деятельности. Как уже было указано ранее, вы можете разрабатывать веб-приложения, сложные микросервисные платформы, игры, а так же мобильные приложения. Здесь действительно серьезный инструментарий для разработки, такие IDE как Visual Studio или JetBrains Rider. Наличие огромнейшего разнообразия библиотек на все случаи жизни, от обратки изображений и видео, до нейросетей. А кроссплатформенность дает возможность писать код как на Windows, так и на macOS и Linux.
Недостатки языка C#
Недостатки следуют из преимуществ. Как уже было упомянуто ранее на языке С# можно разрабатывать множество различных приложений. Это делает язык достаточно емким и обширным в плане подходов и конструкций. На собеседовании скорее всего вас будут спрашивать все глубины .NET платформы и языка C#. Но на практике не всегда приходится всем этим пользоваться.
Из-за того, что C# используется в интерпрайз сегменте, есть вероятность попасть на «старый» проект или задержаться на одном проекте очень долго. Так же обычно такого рода проекты имеют сложную доменную область, которую волей не волей необходимо изучить в ходе выполнения проекта.
Заключение
Язык программирования C# зрелый и достаточно современный. Большинство последних подходов добавлены в язык или планируются в ближайших версиях. Основная территория платформы .NET и языка C# это энтерпрайз, а это возможность работать над большими и сложными проектами в различных доменных областях, а относить это к преимуществам или недостаткам, это решать вам. Возможна мобильная разработка и разработка игр. Огромное сообщество разработчиков, множество литературы и ресурсов для изучения, большое количество открытых вакансий на рынке, говорит о стабильности и крепких позициях C# на рынке.
Язык программирования C#: краткая история, возможности и перспективы

Обзорная статья на тему С#. Кратко рассказываем о том, зачем этот язык нужен, где его учить и как им пользоваться.
С# («Си Шарп») – один из наиболее быстро растущих, востребованных и при этом «удобных» языков программирования. Это модификация фундаментального языка С от компании Microsoft, призванная создать наиболее универсальное средство для разработки программного обеспечения для большого количества устройств и операционных систем.
Краткая история C# и его характеристики
С# – это объектно-ориентированный язык программирования. Он был создан в период с 1998 по 2002 год командой инженеров Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота.
Язык входит в семью С-подобных языков. Синтаксис приближен к Java и C++. Его особенности:
поддерживается перегрузка операторов,
доступна делегация, атрибуты, события, обобщенные типы и анонимные функции.
Разработка Microsoft много особенностей унаследовала у Delphi, Smalltalk и Java. При этом создатели нового языка исключили из своего детища многие практики и спецификации, считающиеся «проблемными».
Основные преимущества языка
С# популярен за счет своей «простоты». Простоты для современных программистов и больших команд разработчиков, чтобы те могли в сжатые сроки создавать функциональные и производительные приложения. Этому способствуют нетипичные конструкции языка и специфичный синтаксис, помогающий максимально органично реализовать намеченные функции.
Популярность языка – еще одно значимое преимущество. Большое количество поклонников C# способствуют его развитию. Также это благоприятно влияет на рост числа вакансий, связанных с разработкой на языке Microsoft. Программисты, хорошо знакомые с С#, востребованы в индустрии, несмотря на их большое и постоянно увеличивающееся количество.

Понятный синтаксис C# заметно упрощает не только разработку как таковую, но и другие важные аспекты совместной работы, например, чтение чужого кода. Это упрощает процесс рефакторинга и исправления ошибок при работе над приложениями в больших командах.
Также нельзя не упомянуть низкий порог вхождения. С# – популярная и достаточно простая в освоении технология. Уже через полгода можно поднатореть в разработке и начать делать полноценные программы.
Что разрабатывают с помощью С#
Язык C# практически универсален. Можно использовать его для создания любого ПО: продвинутых бизнес-приложений, видеоигр, функциональных веб-приложений, приложений для Windows, macOS, мобильных программ для iOS и Android.
Видеоигры
C# без преувеличения крайне популярен среди создателей видеоигр. Язык используется для разработки игр под Windows, macOS, Android и iOS. Все дело в Unity – платформе для работы с 3D-графикой. С# лучше остальных языков адаптирован под работу с этим движком. Поэтому программисты обычно не выбирают, а сразу используют связку Unity + C#.

Из популярных проектов стоит выделить такие хиты игровой индустрии, как Bastion (кросплатформенная РПГ-адвенчура с изометрическим видом), Wasteland (популярный шутер в пост-апокалиптической вселенной), знаменитый Doom 3 и Hearthstone (карточная игра во вселенной World of Warcraft, созданная силами Blizzard).
ПО для защиты систем
Безопасность ваших программ и операционных систем обеспечивается благодаря мощным утилитам на базе C#. Колоссальное количество вирусов, на ежедневной основе атакующих компьютеры пользователей, блокируется инструментами, созданными с помощью языка Microsoft. Аналогичная ситуация наблюдается в крупном бизнесе – мировые корпорации защищаются от хакерских атак с помощью ПО, написанного на С#.
Приложения для Windows
Практически вся операционная система Microsoft существует благодаря С#. Привычные вам утилиты и приложения созданы с использованием этого языка и фреймворков, разработанных для него.
В эту категорию попадает мессенджер Skype, браузер Internet Explorer, среда для разработки Visual Studio 2012, Microsoft Office (все его составляющие, включая Word, PowerPoint, Excel, Outlook и так далее).
Сюда же можно отнести продукты компании Adobe (Photoshop, Lightroom), браузер Mozilla Firefox и Winamp.
Мобильные приложения
В некоторых кругах программистов С# считается чуть ли не лучшим языком для проектирования мобильных приложений. Все благодаря возможности создавать с помощью этого языка нативные программы для любых платформ (iOS, Android). Для создания приложений, которые идеально работают на Айфоне и на Андроид-смартфонах, используется IDE Xamarin.
Из известных программ, написанных на С#, стоит отметить Slack, Pinterest, Tableau, The World Bank и другие. «Плиточные» программы, появившиеся в Windows 8, практически все построены на базе C# и XAML.
Как стать C#-разработчиком?
Перед началом необходимо ознакомиться с основами языка, синтаксисом и т.п. Для этого стоит прочитать один из актуальных учебников по разработке на С#. Опытные программисты рекомендуют руководство по созданию программ с использованием платформы .net, размещенное на сайте metanit.com.

Тем, кто вообще не разбирается в программировании и только начинает его изучать, следует разыскать книгу Чарльза Петцольда «Код» и запастись всеми любимыми руководствами в духе «Грокаем алгоритмы». Этого должно быть достаточно на ранних этапах знакомства с языком.
Какие программы и технологии изучать?
Есть шесть ключевых программных продуктов, на изучении которых стоит сосредоточиться в первую очередь:
Windows Presentation Foundation – фреймворк для быстрого создания интерфейсов.
Xamarin – фреймворк, добавляющий C# функции компилирования кода с адаптацией под различные платформы, включая Windows, Android и iOS. Проще говоря, он делает ПО универсальным.
ASP.NET – технология для создания «мостов» между серверным кодом и клиентской частью программ.
Entity – фреймворк для взаимодействия с базами данных как с объектами.
Language Integrated Query – технология с собственным синтаксисом для фильтрации данных. Под данными подразумевается любой тип, включая массивы, структуры, отдельные файлы и целые БД.
Visual Studio – основная среда для разработки программ на языке С#.
По ходу изучения и с появлением опыта этот список увеличится. Появятся новые фреймворки, возможно, изменится IDE, появятся дополнительные технологии, необходимые для реализации некоторых функций и т.п.
Где можно научиться программированию на С#?
В сети хватает школ, где учат разработке приложений на различных языках. Например, Яндекс.Практикум. Там есть довольные дорогие, но эффективные курсы по созданию программ на базе C#.
Есть Coursera, где учат вообще всему на этой планете, в том числе и программированию. Стоимость курсов на этой площадке варьируется, но при желании всегда можно выбить хорошую скидку, если сослаться на плохое финансовое положение.

Есть школы в духе Skillbox и GeekBrains. На них тоже есть соответствующие курсы, причем со льготной оплатой (сначала вас учат и стажируют, а потом просят оплатить обучение) и изначально невысокими ценами.
Вместо заключения делаем простейшую программу на С#
Итак, быстро приступаем к разработке своей первой программы на языке C#. Будем делать простейший калькулятор.
Загружаем программу Visual Studio.
В окне приветствия выбираем пункт Create a new project.
Указываем язык C#, систему – Windows, а тип – Console.
Потом даем имя созданной программе и выбираем место на диске, куда она будет сохранена.
Перед вами появится код базовой программы, выводящий в консоль фразу «Hello World». Стираем его.
Затем добавляем переменные с помощью встроенного типа int. Например, int a = 10, int b = 20.
Создаем переменную resultSum для сложения, введя код int result = a + b.
А затем вписываем Console.WriteLine(resultSum) и Console.ReadKey().

Ваша программа выведет в консоль результат вычисления (в нашем случае 30). Можно заменить переменные, добавить результат деления, умножения и т.п. В общем, усложнить код как вздумается.
На этом все. Базовое знакомство с C# завершено. Теперь вы знаете, где учить язык, для чего он нужен и как сделать хотя бы маленькую, но рабочую программу. Дальше дело за опытом и упорным обучением.
dotnet_am
Если вы только начинаете изучать .NET, то вас, несомненно, интересует вопрос — на что она способна? Какие возможности вы получите изучив ее? Здесь я коротко расскажу, что можно сделать используя .NET. По секрету сообщу, что многие разработчики .NET тоже не в курсе некоторых ее возможностей, так что и я могу чего-то не знать. Расскажу то, что мне известно, а вы дополните.
Microsoft .NET Framework — платформа универсальная, и может решать множество задач и их число растет с каждой новой версией. Microsoft вкладывает огромные усилия в развитие .NET, справедливо считая его своей флагманской технологией.
Программирование для Windows.
По этой части .NET уже несколько лет стала технологией номер один и реальных конкурентов по скорости и удобству разработки у нее нет. Используя .NET можно писать WinForm (GUI) приложения, консольные приложения, dll файлы, сервисы Windows, графические приложения нового типа (WPF) и многое другое. В настоящее время имеются некоторые непокрытые области, например, написание драйверов устройств — одна из тех немногих областей где C/C++ упорно не сдают свои позиции. По скорости работы .NET практически не уступает коду написанному на C++, а в следующей версии (4.0) может и превзойти, благодаря технологии Parallel Extensions которая позволит с легкостью, без написания сложного многопоточного кода, использовать преимущества многоядерных процессоров .
Программирование для Web.
Технология, позволяющая разрабатывать Web-решения на .NET, называется ASP.NET. ASP.NET заточена для создания Web-приложений с богатой функциональностью. В отличии от Windows-приложений, здесь у нее много достойных и сильных конкурентов: PHP, Python, Ruby on Rails, Perl. Есть интересные решения, позволяющие сильно облегчить и ускорить разработку, например ASP.NET MVC Framework или Web Client Software Factory. Очень интересная технология Silverlight. Используя ее можно делать интерактивные, богатые графикой Web-приложения. Фактически Silverlight / C# , конкурент Adobe Flash / ActionScript. По моим субъективным ощущениям у Silverlight больше возможностей по сравнению с Flash.
Разработка распределенных корпоративный приложений.
И здесь у .NET тоже все путем. Web-сервисы, службы уровня предприятия, Remoting — все это делается легко и оптимально. Технология доступа к данным (ADO.NET), которая так важна для корпоративных решений, после версии Microsoft .NET Framework 2.0 стала почти идеальной. Единственный достойный конкурент для .NET в этой области — Java/J2EE.
Кросс-платформенное программирование.
Самой известной кросс-платформенной реализацией .NET является Mono. Это open-source проект спонсируемый фирмой Novell. Приложения написанные под Mono работают в Linux, FreeBSD , MacOS и Windows. В настоящее время Mono портируется под мобильные платформы Android и iPhone. К большому сожалению Microsoft не проявляет интереса к переносу .NET на другие платформы. Когда .NET только появлялась, они на всех углах кричали о том, что кроссплатформенность — ее второе имя. А потом заперлись в пределах Windows. Благодаря открытым спецификациям .NET open-source сообщества получили возможность реализовывать .NET технологии на других платформах, чем успешно и занимаются. Недавно в интернете прошли жаркие споры о том, стоит ли разрабатывать open-source используя Mono и включать ее в Linux дистрибутивы по умолчанию. Против этой идеи высказался сам папа open-source — Ричард Столлман, аргументировав это тем, что Microsoft в любое время может заявить свои права на технологию, поэтому open-source программы должны разрабатывается с использованием open-source технологий. Спустя некоторое время Microsoft заявила, что .NET открытая платформа с открытыми спецификации и свои права на сторонние ее реализации он не будет предъявлять.
Разработка для мобильных устройств
Версия .NET Framework для мобильных устройств работающих под Windows Mobile называется. .NET Compact Framework. Многие возможности обычной framework в ней отсутствуют за ненадобностью, вместо этого добавлены специальные наборы библиотек для мобильных устройств. Программы для мобильных устройств пишутся в обычной Visual Studio 2005/2008 после компиляции запускаются на эмуляторе, который так же входит в Visual Studio.
Для других мобильных платформ (Android, iPhone) делаются первые шаги и делает их, к сожалению, не Microsoft, а open-source сообщество Mono, о котором написано в предыдущем абзаце.
Программирование микроконтроллеров
Очень актуальная задача. Микроконтроллеров в десятки раз больше чем обычных процессоров. Они повсюду: в сотовых и обычных телефонах, телевизорах, мониторах, микроволновках, кондиционерах , стиральных машинах, холодильниках, MP3-плеерах, автомобилях, фотоаппаратах. И всех их надо запрограммировать. Представили какой объем и охват? Долгое время программирование микроконтроллеров было прерогативой C и Assembler-а, позже появилась возможность писать на некоторых языках высокого уровня. C# в их числе. Знакомтесь — .NET Micro Framework установив которую можете программировать 32-разрядные микроконтроллеры серии ARM7, ARM9 и Blackfin прямо в Visual Studio 2008. А здесь находится официальная страница Micro Framework .
Создание игр.
На заре .NET много говорилось о том, что он слишком медлителен и неповоротлив для написания тяжелых графических приложений. Оказалось, что это не так. В настоящее время .NET дружит с DirectX, а главное — появилась технология
Microsoft XNA — позволяет разрабатывать игры с использованием интенсивной 3D графики не только для Windows, но и для игровой консоли Xbox 360.
Программирование на системном уровне
Я уже писал, что на C# можно программировать микроконтроллеры. Если сильно захотеть, то можно даже левым способом сделать вставку машинного кода в C# (когда-нибудь расскажу об этом).
А можно ли на нем написать целую операционную систему? Оказывается — можно. Когда я впервые об этом прочитал — у меня глаза на лоб полезли. Операционная система на управляемом коде! И все-так, хотя и экспериментальная, она есть. Это Microsoft Singularity.
Вот, пожалуй и все. Если есть что спросить, добавить или исправить — пишите в комменты.