Nastavniky.ru

Обучение онлайн
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Язык программирования net

Как работает .NET и зачем он нужен

Чтобы стать хорошим программистом, нужно понимать, как работают инструменты и технологии. Рассказываем, что такое .NET.

.NET — это фреймворк от Microsoft, который позволяет использовать одни и те же пространства имён, библиотеки и API для разных языков. Чаще всего это четыре языка из семейства .NET:

Когда вы создаёте программу на одном из этих языков, в самом начале вы подключаете пространство имён System. Если бы не .NET, то для каждого из этих языков пришлось бы создавать отдельный System. То есть нарушился бы один из главных принципов программирования — DRY (англ. Don’t repeat yourself — не повторяйся).

На момент написания статьи наиболее распространён .NET Framework, меньшей популярностью пользуется .NET Core. Возможно, когда вы будете читать эту статью, уже выйдет .NET 5, который объединит в себе оба фреймворка. Поэтому в статье используется название .NET.

Евгений Кучерявый

Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Для чего нужен .NET

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

Если бы не .NET, пользователям пришлось бы устанавливать среду исполнения для программ на каждом языке. То есть чтобы запустить приложение на Visual Basic, нужно скачать среду выполнения для Visual Basic. Если же программа написана на C#, то придётся скачивать среду и для неё.

Это очень быстро забьёт всё место на компьютере немного отличающимися копиями одних и тех же библиотек.

Для программистов это тоже важно, потому что даёт возможность развивать одну среду, которая используется сразу для четырёх языков. Иначе обычным разработчикам приходилось бы ждать, пока выйдет новая версия библиотек для их языка. Менее популярные языки, вроде F#, получали бы обновление намного позже C#.

Кроме основных языков есть также и другие, которые поддерживаются .NET. Среди них COBOL, Fortran, Haskell и даже Java — вы можете ознакомиться с полным списком.

На этих языках часто написаны старые (legacy) проекты, которые сложно перевести на новую технологию. .NET позволяет переписать часть программы на COBOL под стандарты .NET, а потом просто писать новые части на более современном языке, вроде Visual Basic.

Как это работает

Принцип работы достаточно простой, хотя выглядит запутанным. В основном — из-за схожих названий: CLR, CLI и CIL. Для начала посмотрите на это изображение:

Список .NET-языков

Языки программирования .NET (Языки с поддержкой CLI или CLI-языки) — компьютерные языки программирования, используемые для создания библиотек и программ, удовлетворяющих требованиям Common Language Infrastructure. За исключением некоторых серьёзных оговорок, большинство CLI-языков целиком компилируются в Common Intermediate Language (CIL), промежуточный язык, который может быть оттранслирован непосредственно в машинный код при помощи виртуальной машины Common Language Runtime (CLR), являющуюся частью Microsoft .NET Framework, Mono и Portable.NET.

Во время выполнения программы в среде CLR её CIL-код компилируется и кэшируется на лету в машинный код, соответствующий архитектуре, на которой выполняется программа. Этот последний этап может быть принудительно сокращен, а кэширование может выполняться на предыдущем этапе при помощи «опережающего» (англ. ahead of time ) компилятора, такого как например, ngen.exe от Microsoft или ключа «-aot» в Mono.

Содержание

Список языков

Представленный ниже список языков упорядочен относительно алфавитного написания названий языков в их латинографическом написании.

См. также

  • IKVM.NET: основанный на CLR компилятор байт-кода Java. Может использоваться для запуска Java- и Groovy-программ на CLR.
  • Список JVM-языков

Примечания

  1. Имеется в виду год начала поддержки платформы .NET
  2. Эндрю Троелсен Язык программирования С# 2008 и платформа .NET 3.5 = Pro C# 2008 and the .NET platform / Под редакцией Ю.Н. Артеменко. — 4-е издание. — М .: Вильямс, 2010. — 1344 с. — ISBN 978-5-8459-1589-4
  3. Microsoft готовит язык с ароматом Java (рус.)
  4. Clarion.Net Highlights (англ.)
  5. CSharpenerDotLisp — A Lisp Dialect for .NET (англ.) . weblogs.asp.net (29 сентября 2003 года). Архивировано из первоисточника 2 июля 2012.Проверено 14 декабря 2010.
  6. Introduction (англ.)
  7. Eiffel for .NET: The power of Eiffel for the Microsoft .NET framework
  8. Eiffel for .NET: An Introduction
  9. History (англ.)
  10. Io on .NET? (англ.)
  11. Synrc Io Language CLR. Введение (рус.)
  12. Билл Ивьен, Джейсон Берес Visual Basic .NET. Библия пользователя = Visual Basic .NET. Bible / Под редакцией А. В. Ковалевского. — М .: Вильямс, 2002. — 1024 с. — ISBN 5-8459-0395-5
  13. APLNow LLC and Cognos Announce Asset Purchase (англ.)
  14. What is Visual APL? (англ.)

Ссылки

  • .NET Powered: List of .NET languages (англ.)
  • .NET Language Sites (англ.)
  • Programmiersprachen für das .NET Framework (нем.)
  • Создание компилятора языка для .NET Framework (рус.)

Wikimedia Foundation . 2010 .

Смотреть что такое «Список .NET-языков» в других словарях:

.NET Framework — Для термина «.NET» см. другие значения. .NET Framework Тип Комп … Википедия

Список языков описания пользовательских интерфейсов — Содержание 1 По производителю или платформе 1.1 Flash 1.2 Java 1.3 Microsof … Википедия

Список языков программирования — Списки языков программирования Алфавитный По категориям Хронологический Генеалогический Цель этого алфавитного списка языков программирования состоит в том, чтобы дать полный перечень всех существующих языков программирования, как используемых в… … Википедия

Список версий Ubuntu — Основная статья: Ubuntu Ubuntu свободная операционная система для персональных компьютеров, рабочих станций, нетбуков и серверов, является одним из самых популярных дистрибутивов Linux. Новая версия системы выходит раз в полгода … Википедия

Список дистрибутивов Linux — Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей … Википедия

Список программ, написанных на C Sharp — Язык программирования C# один из наиболее популярных языков программирования на сегодняшний день. Paint.NET открытое программное обеспечение для обработки растровой графики SharpDevelop открытая IDE для языков C#, Visual Basic .NET (VB.NET), Boo … Википедия

Список языков Индии — В Индии говорят более чем на 30 различных языках и 2000 диалектов. В Конституции Индии оговорено, что хинди и английский являются двумя языками работы национального правительства, то есть государственными языками. Кроме того представлен… … Википедия

Читать еще:  Python школа программирования

Список текстовых редакторов — Основная статья: Текстовый редактор Список текстовых редакторов Windows и таблица сравнения. Содержание 1 Таблица сравнения известных текстовых редакторов … Википедия

Список Сводеша для лезгинских языков — Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/17 июля 2012. Пока процесс обсуждения … Википедия

Список встраиваемых дополнений для Microsoft Visual Studio — Ниже представлен список встраиваемых дополнений для Microsoft Visual Studio. Встраиваемые дополнения представляют собой программные продукты, разработанные для использования в составе Microsoft Visual Studio, расширяя и дополняя его возможности.… … Википедия

BestProg

Базовые понятия технологии .NET Framework

Содержание

1. Что являет собой среда .NET Framework ?

.NET Framework служит средой для поддержки, разработки и выполнения распределенных приложений, которые базируются на компонентах (элементах управления).

Приложения (программы) можно разрабатывать на разных языках программирования, которые поддерживают эту технологию.

.NET Framework обеспечивает:

  • совместное использование разных языков программирования;
  • безопасность и переносимость программ;
  • общую модель программирования на базе платформы Windows.
2. Какие основные составляющие .NET Framework ?

С точки зрения программирования, .NET Framework состоит из двух основных составляющих:

  • общеязыковая исполнительная среда CLR ( Common Language Runtime );
  • библиотека базовых классов.

Общеязыковая среда CLR решает задачи автоматического выявления типов .NET , загрузки этих типов и управление ними. Среда CLR осуществляет управление памятью, обслуживание приложения, обработку потоков и реализует многочисленные проверки связанные с безопасностью.

Библиотека базовых классов включает в себя определение разнообразных примитивов, которыми могут быть: потоки, графические API-интерфейсы, реализация баз данных, файловый ввод-вывод и прочее.

3. Какой принцип действия общеязыковой среды выполнения CLR ( Common Language Runtime )?

Общеязыковая среда выполнения CLR управляет выполнением кода .NET .

После компиляции программы на C# (или другом языке) создается файл, который содержит особого рода псевдокод или байт-код (а не исполнительный файл, как было раньше). Этот псевдокод называется Microsoft Intermediate Language ( MSIL ) или Common Intermediate Language ( CIL ). Этот псевдокод есть промежуточным языком Microsoft .

Основное назначение CLR – превратить промежуточный код MSIL в исполнительный код в процессе выполнения программы.

Любая программа, которая скомпилирована в псевдокод MSIL , может быть выполнена в любой среде, которая содержит реализацию CLR . Это обеспечивает переносность программ в среде .NET Framework .

Рис. 1. Процесс преобразования исходного кода в код на языке MSIL ( CIL или IL ) и создание файла сборки ( *.dll или *.exe )

После этого, псевдокод превращается в исполняемый код. Это осуществляет JIT -компилятор. JIT ( Just-in-time ) -компиляция – это компиляция на «лету».

Исполнительная среда CLR отвечает за определение места размещения сборки (assembly).

Запрашиваемый тип, который размещается в сборке (например, класс ArrayList или другой тип), определяется в двоичном файле ( *.dll или *.exe ) с помощью считывания метаданных этого файла.

После этого CLR размещает в памяти считанный из сборки тип.

Затем CLR превращает CIL-код в соответствующие инструкции, которые подстраиваются под конкретную платформу (в зависимости от ПК, операционной системы и т.п.). Кроме того, на этом этапе происходят необходимые проверки на предмет безопасности.

Последним происходит выполнение запрашиваемого программного кода.

4. Что такое промежуточный язык MSIL ( Microsoft Intermediate Language ) или CIL ( Common Intermediate Language )?

Сперва промежуточный язык псевдокода назывался Microsoft Intermediate Language ( MSIL ). Позднее (в последних версиях .NET ) это название было изменено на Common Intermediate Language ( CIL — общий промежуточный язык). Аббревиатуры MSIL , CIL и IL ( Intermediate Language )означают одно и то же.

Промежуточный язык CIL (или MSIL ) формируется после компиляции программы на некотором языке программирования, который поддерживает платформу .NET Framework .

MSIL есть псевдокодом. MSIL определяет набор инструкций, которые:

  • могут переноситься на разные платформы;
  • не зависят от конкретного процессора.

Фактически, MSIL – это язык переносного ассемблера

5. Что такое сборка (assembly) с точки зрения технологии .NET ?

Сборки – это файлы с расширениями *.dll или *.exe , которые содержат независимые от платформы .NET инструкции на промежуточном языке ( Intermediate Language – IL ), а также метаданные типов.

Сборка создается с помощью .NET компилятора. Сборка – это большой двоичный объект.

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

Сборка может содержать любое количество пространств имен. Любое пространство имен может содержать любое количество типов (классов, интерфейсов, структур, перечислений, делегатов).

6. Что размещается в сборках?

В сборках размещается CIL -код ( MSIL -код или IL -код) и метаданные.

CIL -код компилируется под конкретную платформу только тогда, если происходит обращение к нему из исполняющей среды .NET .

Метаданные детально описывают особенности каждого типа, который есть внутри данной двоичной .NET единицы.

Например, при создании приложения типа Windows Forms Application в C# создается файл Assembly.info . Этот файл размещается в подпапке Properties относительно основной папки программы. В этом файле указывается общая информация о сборке.

7. Что такое манифест ( manifest )?

Манифест – это описание самой сборки с помощью метаданных.

В манифесте размещается информация:

  • о текущей версии сборки;
  • сведения о культуре (локализация строчных и графических ресурсов);
  • перечень ссылок на все внешние сборки, которые нужны для правильного функционирования.
8. Схема взаимодействия между исходным кодом, компилятором .NET и механизмом выполнения .NET .

Программист создает исходный код приложения на языке, который поддерживает технологию .NET (языке C# , C++/CLI , Visual Basic .NET и т.д.). Приложение создается в некоторой среде программирования, например Microsoft Visual Studio . Компилятор формирует сборку – файл, который содержит CIL -инструкции, метаданные и манифест.

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

Если в исходном коде используются библиотеки базовых классов (например из сборки mscorlib.dll ), то они загружаются с помощью загрузчика классов.

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

Читать еще:  Изучить программирование с нуля

После этого приложение выполняется.

Рисунок 2. Связь между исходным кодом, компилятором и механизмом выполнения .NET

9. Какие существуют виды сборок?

Существует два вида сборок:

  • однофайловые сборки;
  • многофайловые сборки.

Сборка, которая состоит из одного единого модуля ( *.dll или *.exe ) называется однофайловой. В однофайловых сборках все необходимые CIL -инструкции, метаданные и манифесты размещаются в одном, четко определенном пакете.

Сборка, которая состоит из многих файлов двоичного кода .NET , называется многофайловой. Каждый из этих файлов называется модулем.

В многофайловой сборке один из модулей есть главным ( primary ).

10. В каком файле размещается главная сборка библиотеки MS Visual Studio?

Главная сборка размещается в файле “ mscorlib.dll ”.

11. Что такое общая система типов CTS ?

CTS ( Common Type System ) – система типов, которая содержит полное описание всех возможных типов данных и программных конструкций, которые поддерживаются общеязыковой исполнительной средой CLR . Также здесь описывается то, как эти сущности могут взаимодействовать между собою.

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

12. Какое назначение общеязыковой спецификации CLS?

Как известно, не все языки программирования, которые являются совместимыми с .NET , могут поддерживать функциональные возможности системы типов CTS . Для этого используется общеязыковая спецификация CLS ( Common Language Specification ).

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

13. Какие языки программирования поддерживают технологию .NET ?

В системе разработки приложений MS Visual Studio технологию .NET поддерживают следующие языки программирования: C# , Visual Basic .NET , C++/CLI , JScript .NET , F# , J# .

Для того, чтобы можно было использовать технологию .NET нужно установить на компьютере программное обеспечение Microsoft .NET Framework Software Development Kit ( SDK ) или Microsoft Visual Studio любой версии.

14. Что такое пространство имен ( namespace )?

Пространство имен предназначено для объединения группы типов, которые связаны между собою с семантической точки зрения. Типы размещаются в сборках ( assembly ). Под типами понимаются классы, делегаты, интерфейсы, структуры, перечисления.

Примеры названий пространств имен:

Например, в пространстве имен System.Data размещаются основные типы для работы с базами данных, в пространстве имен System.Collections размещаются основные типы для работы с коллекциями.

15. Как вывести содержимое сборок, пространств имен и типов в MS Visual Studio ?

В системе Microsoft Visual Studio есть утилита Object Browser , которая вызывается с меню View (рисунок 3).

Рис. 3. Вызов утилиты Object Browser

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

На рисунке 4 отображен список сборок, которые отображаются в технологии “ .NET Framework 4 ”. Выделена сборка с именем “ mscorlib ”.

Рис. 4. Окно Object Browser с выделенной сборкой mscorlib.dll

Если раскрыть содержимое сборки mscorlib (знак “ + ”), то будет отображен список всех пространств имен данной сборки (рисунок 5). Как видно из рисунка, сборка включает пространства имен Microsoft.Win32 , System , System.Collections , System.Collections.Concurrent и много других.

Рис. 5. Сборка mscorlib и список пространств имен, которые входят в нее

Аналогично раскрывается любое из пространств имен. В пространствах имен описываются типы. В типах описываются методы, свойства, константы и т.п.

На рисунке 6 изображен класс BinaryReader из пространства имен System.IO . По всей видимости, в классе реализованы методы с именами BinaryReader() , Close() , Dispose() , FillBuffer() и прочие.

Рис. 6. Содержимое класса BinaryReader

16. Как подключить пространство имен в программе на C# ?

Для подключения пространства имен используется ключевое слово using .

Примеры подключения пространств имен:

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

Язык программирования под .NET

Проект под .NET Framework 2.0 работает на 20% быстрее чем под 4.0
Добрый день! Один и тот же проект. Изначально написан под 2.0. В сборке написано Any CPU. .

Microsoft открывает язык программирования F#
Корпорация Microsoft накануне опубликовала полные исходные коды функционального языка.

Программы написанные под .NET работают под Mono?
Программы написанные под .NET работают под Mono? Программа написанная под Mono работает во всех.

Посоветуйте язык программирования под Android
Добрый день! В связи с огромным ростом популярности мобильных устройств возник вопрос — стоит ли.

Приведу только три основных недостатка.

1. Проги для своей работы требуют .NET, который пока установлен не на всех компах! Посмотрите сколько есть тем на форуме, в которых обсуждает работа прог без .NET Framework, даже предлагалось запихивать часть Framework в исполняемый файл, отчего его размер становился больше 15 МБ. Значит это не мной выдуманая проблема — она реально существует!

2. Как правило .NET приложения работают гораздо медленее native кода! А раз так, то зачем сознательно замедлять проги? Ведь МелкоМягким только это и надо, чтобы покупали компы помощьнее. Ради этого они .NET распространяют бесплатно, а бесплатный сыр сами знаете где! МелкоМягкие утверждают что проги на .NET платформе кроссплатформенны, но на деле это не так! Проект mono невсчёт, он не очень стабильно работает. А для мака альтернативы .NETа вроде вообще нет, так где-же обещаная кроссплатформенность?

3. Для доступа к API нужно извращятся, ручками вызывая функции прямо с User32.dll, kernel32.dll и др

#Мессир, а теперь вы напишите про достоинства .NETа

Добавлено через 10 минут
Да, ещё, попробуйте запустить .NET приложение в Win98.
Я не уверен что туда вообще .NET Framework установить можно, а про Win95 я вообще молчу.

доводы высосаны из пальца.
1. Сравните с явовским приложениями — тоже нужна ВМ. Возьмите любую виндовую прогу и запустите не под виндой — нужны виндовые библиотеки и АПИ
2. По скорости работы — есть куча тестов и если где то уступает то не значительно и за счет удобства разработки.
3. в дотнете есть практически все, чтобы не использовать АПИ, да и не большой это геморой

ЗЫ: вы бы еще .NET под досом пускали

Можно было Delphi.NET в опрос добавить

Добавлено через 3 минуты
2 минуса, которые я сам испытал с .NET:

  • компонентов не так много, как в VCL
  • идёт не на всех компах
Читать еще:  Учебный центр программирование

кроме быстрой работы плюсов пока не замечаю

криков в той теме там тоже было много, но вот написать «быстрый нативный код» почему-то желания ни у кого не возникло, все, скромно потупив глазки, попрятались по щелям

PB, сорри, программировал в 1С. Почему-то написанный код не работает без 1С, странно, надо будет разобраться на досуге, ну да ладно, теперь о главном:

Преимущества .НЕТ:
1. Достаточно быстрая разработка приложений
2. Скорость работы может на 5-10% медленнее (хотя смотря какие сценарии), но разработа этих сценариев проще, плюс внешний вид програмнмого обеспечения — а ну ка на WinAPI анимацию сделать с прозрачностью и всё такое?
3. Технология WPF — достаточно мощная штука, можно разрабатывать красивые мультимедийные, и не только, приложения, хотя пока не так уж много компонентов, подождём
4. Программы достаточно маленькие по объёму (один раз скачал .НЕТ фрэймворк и всё, пользуйся на здоровье). Скажем в Qt. вспомним VLC плеер, вроде как там 19 метров исполняемый файл?
В общем всё что связано с разработкой ПО для широкой публики, технология .NET очень упрощает жизнь — это и приятный интерфейс, это хорошая скорость работы, это и простота разработки (как уже было сказано), а для критических областей программы можно и прикрутить библиотеки user32.dll и прочие. В конце-концов на это времени уйдёт гораздо меньше, чем, скажем, на Win32API описывать создание окна и генерации в нём элементов управления.

Что мне в .НЕТ не нравится:
1. Среда разработки достаточно стабильная, мощная, но жутко тугодумная (на несильных машинах), скажем при работе в 1С (2-3 окна открытых), открытом MSDN локально, и приложении Lotus notes (о нём скажу отдельно) — работать в визуал студио непросто (тача пнеь е2ххх на 2 ггц, и 1 гиг ОЗУ, виста). Хотя этот недостаток можно сгладить блокнотом и всё такое, но теряется Intellisence и все вкусности подобные ему.
2. читал, что проще получить исходный код приложения, дизассемблировав его из байт кода, в который кодируется приложенеи .NET — сам не проверял.
3. Писал приложение для поиска файлов на WinAPI и C#, ну проще, конечно, на C# — но по производительности проигрывала слегка, плюс на том компьютере не стоит .NET Framework, и поставить его туда не было возможности.
Больше недостатков мне сейчас не вытянуть из себя, умственный спад после работы.

Насчёт Lotus Notes — написан, как я понимаю, на Ява, НО как он тормозит машину — это не передать словами. Больше не держу его открытым, иначе тачка под конец дня шевелится, как ХР на первом пне — Java — не экономит ресурсы.

криков в той теме там тоже было много, но вот написать «быстрый нативный код» почему-то желания ни у кого не возникло, все, скромно потупив глазки, попрятались по щелям

Если уж возникло желание поворошить прошлое, то можно ещё вспомнить следующие моменты:

  • Тебе вполне конкретно пояснили, почему такой пример не является показательным, а так же пояснили, как должен выглядеть показательный пример. Соответствующий код ты так и не написал
  • На конкретно поставленный вопрос типа «а нахера нужно было городить огород и создавать виртуальную платформу, вместо того, чтобы сделать это в native-кодах» так никто и не ответил

Это так, не претензия, а лирическое отступление

Добавлено через 3 минуты

Говорить, что анимация реализована в .NET всё равно, что говорить, что анимация реализована на i386. А взаимосвязь тут простая: МС захотели .NET, вот и среды разработки под него делают удобнее, чтобы народ начал хотеть этот .NET

А вообще, после обмозговывания у меня получилось примерно следующее. Переносимость в теории на все платформы должна быть, реально с этим они скорее всего обо$рались, но переносимость между разными версиями виндов и на разных процессорах — судя по всему работает. При этом native код, собранный под 32битную платформу (i386), работает и на 64битной (x86_64), но скорость исполнения кода ниде, чем если бы приложение было откомпилено под x86_64. Но если его откомпилять под x86_64, то оно попросту не будет работать на i386. С концепцией .NET эта проблема отпадает, ибо всё это разруливается на уровне реализации .NET под платформу. То же самое и между версиями винды: больше не надо гемороиться с тем, чтобы программа работала под всеми версиями — всё сокрыто внутри реализации framework’а под конкретную версию винды.

Этим я сам себе ответил на вопрос, а почему нельзя было это делать в native кодах. Можно было, но получилось бы менее эффективно. Правда всё равно оказалось сделано через $опу: и разные версии framework’ов, и миллион упомянутых проблем с их установкой. Можно сколько угодно говорить, что в висте и семёрке все уже сразу встроено, но с вистой МС уже обо$рались, посмотрим, что получится с семёркой. Насколько я понимаю, пока XP/SP2 наиболее распространённая версия. Если в домашних условиях снести XP и поставить семёрку для большинства раз плюнуть (к тому же ещё и ворованные версии), то для больших организаций это дело стОит большого гемороя и больших денег. Если народ не захочет переходить на семёрку, то в очередной раз план завхата мирового господства отодвинется на неопределённый срок.

Ну и к тому же .NET — это не технология будущего, это просто концепция виндов будущего. В то, что всё это будет нормально работать и на других архитектурах — что-то в это верится с трудом. Хотя идея в принципе хорошая. Ну а поскольку идея является новой, то к ней очень хорошо притесалась концепция взаимодействия кодов, написанных на разных языках. Эта идея реализуется и в native-кодах, но там сразу же возникнет миллион вопросов по совместимости со старым (а для ,net этой проблемы нет, ибо это новая идея). Ну и все языки под .NET являются более строгими и не допускают фривольностей, как Си и Си++

Ссылка на основную публикацию
Adblock
detector