С помощью компилятора .NET Native можно будет компилировать в машинный код под определенную платформу - x86 или x64 или ARM. И тут возникает вполне резонный вопрос - а где вы были раньше?
До недавнего времени .NET хоть и был создан с возможностью поддерживать несколько платформ, но всё же официально работал только на x86 или x64 и только под Windows. Остальное поддерживалось только независимыми разработками. При таком раскладе я не понимаю, зачем Microsoft все это время компилировала .NET приложения в IL код, если никогда не планировали запускать его где-то, кроме Windows на Intel совместимых процессорах. Получается, они осознано и бессмысленно тормозили свои же программы на .NET и не получали от этого реальной выгоды.
Сейчас, когда компания официально хочет поддерживать во многих отношениях Linux и MacOS, вдруг откуда не возьмись, появляется компилятор .NET Native, который должен будет создавать родной для платформы код. Я этот шаг поддерживаю обеими руками, потому что он позволит увеличить скорость работы приложений до 60% (по заявлению Майкрософт, а я им тут верю) и уменьшить расход памяти. Я просто не понимаю, почему это не было сделано раньше.
Большое количество программистов пишет только для одной платформы. Ударение на вторую букву О, потому что я не могу знать сколько в реальности, но имею ввиду, что таких людей много. Для них на много интереснее использовать любимый C# и компилировать в машинный код, чтобы получить преимущество в производительности и экономии памяти. Таким людей абсолютно не интересуют возможности и преимущества IL, которыми они не планируют пользоваться.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Как-то без рефлексии трудно себе представляю серьезную разработку в C#. Помоему для компиляции в машинный код есть с++. Хотя я конечно рад, что такая возможность появится
Po moemu, sozdanie dopolinitelinogo sloya kak CLR delayet namnogo legche sozdayie sledushevo Windows OS. Naprimer Windows 8 sdelal ocheni mnogo core izmenenii, mnogie .NET prilojenii daje ne zametyat etogo.
Вопрос в другом. Если будет компиляция в инструкции платформы, в машинный код, исчезнет ли зависимость сборки от установленного .ИЕТ Фреймворка?
Если это будет самостоятельный бинарник, то это плюс , ящитаю.
А инлайн АСМ-вставки они там не собрались запилить? ))))
А как же NGen, разве он не то же самое делал?
Здравствуйте, Михаил. Только недавно услышал про .net Native. Работал раньше на C#, и отвращало лишь то, что работает на своей платформе .net, которая его замедляет. Объясните, пожалуйста, попдробней, в чем заключается суть .net native?
Как я понял, если раньше компиляция шла через промежуточное звено - IL-код, то сейчас C# будет компилироваться сразу в машинные команды, как C++?
Почему интересуюсь: мне нравится язык C#, и хочу на него вернуться. Но поэтому хочу до конца понять этот компилятор .net native.
На счет машинных команд - ну это не самый главный тормоз. На сколько я понял, будут прямая линковка на библиотечные функции. Сейчас все через промежуточное звено, которое как раз подтормаживает.
Ммм. Просто интересно, смогу ли я его использовать вместо C++)) C++ нравится производительностью, но не нравится сам язык.
Рассматривал Rust, Golang. Но неразвитость IDE пока не удовлетворяет требованиям.
Если C# будет близко по скорости к C++, то это рай.
Пока не установил VS15 имею вопрос: " А поможет ли .net Native скомпилировать проект на XNA 3.1"? Вопрос возник в связи с тем, что эта технология не может быть использована ни с чем кроме VS2008, ибо XNA Game Studio 3.1 ни на что другое не ставится.
Я не интересовался, потому что XNA мертвая технология, она уже давно закрыта и развиваться не будет.
то есть .net Native может перевести в родной код только проект, и не может перевести в него .net EXE-файл?
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.