Как стать автором
Обновить

Комментарии 3

Мельком просмотрел статью. Следующее утверждение бросилось в глаза:
WinMD это библиотека классов Windows Runtime, которая создана специально и только для Windows Store приложений (в отличие от PCL). Если ее код написать на C++, то при обращении к ней из приложений на C#/JavaScript производительность возрастет по сравнение с тем же кодом на C#.
Хотелось бы немного дополнить.
Во-первых, WinMD — это файл метаданных для описания API, который предоставляется компонентом, а не библиотека. Наличие WinMD файла ещё не гарантирует корректную загрузку компонента(dll с кодом может вовсе отсутствовать).
Во-вторых, есть много нюансов работы WinRT компонентов. К примеру, если написать WinRT компонент на C# и вызывать методы из C# кода, то CLR не будет использовать WinRT ABI, а будет вызывать код напрямую. В случае же, если компонент написан на C++, то передача типов будет происходить через ABI, что медленнее прямого вызова C# — C#.

PS: поздравляю с получением сертификата!!!
Спасибо, ценные уточнения! Немного подкорректирую.
Под скоростью выполнения имел в виду то, что если вынести какие-то сложные, требующие высокой производительности вычисления в WinMD, то разница будет довольно заметна. Взято отсюда:
Splitting Assemblies, WinMD, Diagnostics and Instrumentation
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории