Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как работает .Net?  (Прочитано 6949 раз)
0 Пользователей и 1 Гость смотрят эту тему.
The Nameless One
Помогающий

ru
Offline Offline
Пол: Мужской

« : 20-02-2010 19:38 » 

Всем привет.

Меня интересует, как работает технология Net? На чем написан этот фреймворк - на С++ или assembler? Или все не так?

Правда ли, что фреймфорк вызывает winapi-функции на С? Т.е. это просто такая "обёртка" в каком-то смысле?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 21-02-2010 08:53 » 

The Nameless One, какая разница, на чем он написан?
Если нижний уровень винды - Win32 API, то .NET не может не вызывать их. На другой ОС .NET будет вызывать другое API.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
The Nameless One
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 21-02-2010 14:23 » 

какая разница, на чем он написан?

Интересно это узнать Улыбаюсь

Спасибо.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 21-02-2010 20:29 » 

The Nameless One, большая часть .NET написана на .NET Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
The Nameless One
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 21-02-2010 23:33 » 

Полагаю, это из той же оперы: стандартная библиотека С++ написана на С++ ?
А остальная часть .NET? Улыбаюсь
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 22-02-2010 08:05 » 

Думаю, остальная часть должна быть двухслойной. По-крайней мере, фреймворки Java устроены именно так, и я не вижу причин, по которым .NET может отличаться от данной модели Улыбаюсь

В такой схеме существует нативный код (скорее всего, на C++, хотя совершенно не обязательно), выполняющий основные действия, и .NET-обёртка для него. Все действия над конкретной системой выносятся в нативный код. Управление временем жизни объектов тоже сюда относится: нижележащая виртуальная машина должна иметь доступ ко всем объектам, чтобы вести подсчёт ссылок и осуществлять сборку мусора.

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

Кстати, для Linux есть (несовершенная) сторонняя реализация .NET под названием Mono.
Записан
The Nameless One
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 22-02-2010 15:32 » 

Спасибо, стало намного понятнее )
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines