| imho.ws |
![]() |
|
|
|
# 1 |
|
Member
Регистрация: 30.09.2002
Сообщения: 320
![]() |
Framework .NET
Народ, что есть вообще Framework .NET и чем вообще приложения .NET отличаются от обычных? Есть ли какая-нибудь связь с MFC ? Или это две разные библиотеки? Какая между ними собственно разница? Об этом хотелось бы поподробней, если есть линки какие-нибудь, заранее благодарен! Желательно для начала на русском, хотябы разницу уловить!
|
|
|
|
|
# 2 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Framework .NET - это среда (в которой бегут программы) + библиотека классов + определенные правила.
Среда - CLR (Common Language Runtime) - подобна Virtual Mashine у Java. На сегодняшний день Visual Studio .NET включает: С# VB .NET VJ .NET Visual C++ .NET (AKA Managed C++) + старые C++, Win32 API, MFC, ATL etc., которые НЕ ЯВЛЯЮТСЯ частью Framework .NET. Теоретически из любого языка можно сделать .NET, надо только что бы он поддерживал условия специфиц. в CLS (Common Language Specification), на основе которого построена CLR. Например, языки: Perl .NET, Foxpro .NET. Поскольку все .NET языки поддерживают CLS, в .NET Framework нет границ между языками. Так, код написанный на С# можно вызвать из VB .NET и т.д. Код написанный на языке .NET компилируется в assembly (exe или dll), который представляет собой бинарный блок, но написанный не на привычном ассемблере а на неком промежуточном языке IL (Intermidiate Language код). При запуске assembly, CLR запускает JIT (just-in-time) компилятор, который компилирует команды на IL в команды процессора. JIT запускается только на код, который вызывается. Нет вызова - нет компиляции. Рез-ты компиляции на диск НЕ сохраняются и assembly не меняется, т.е. каждый запуск происходит тоже самое. Так-же в CLR бежит Garbage Collection (GC) производящая подсчет ссылок и сборку памяти. Вообще, рассказывать можно до одурения. Это слишком обширная тема, для того что-бы уложиться в один пост. В нескольких словах - .NET Framework это целый новый мир, это гораздо больше чем просто новая версия Visual Studio или новая библиотека. Если хочешь узнать побольше о Framework, рекомендую книгу Рихтера: "Applying .NET Framework".
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|
|
|
# 4 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
shuron
1) Споры ведуться до сих пор. Кто-то кричит что да. Кто-то утверждает, что все тесты показывают, что нет. Скажем так: я бы не стал писать приложения где время критично на .NET и кроме того, на .NET ЛЕГЧЕ написать код, который будет работать раз в 50 медленнее чем мог бы, если не знаешь разных ловушек. НО, теоретически, возможно, что код на .NET будет работать БЫСТРЕЕ кода на С++. Если JIT компилятор будет во время компиляции производить ОПТИМИЗАЦИЮ кода под машину на которой он бежит СЕЙЧАС. Например бежит под P 4 - оп и оптимизировал там что-то. У С++ такой возможности нет. Код компилируется на одной машине - и привет. Я уверен, что в конце концов такие оптимизации будут добавлены. 2) С портировкой веселее. Достаточно выпустить CLR, которая будет бежать на линукс, и тогда программы будут там запускаться, даже не зная что они бегут в линуксе. То-же самое, что в Virtual Mashine у Java. Так, сегодня существует версия CLR для Pocket PC.
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|
|
|
# 5 |
|
Full Member
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557
![]() ![]() ![]() ![]() |
а для linux пишется "моно" - http://www.go-mono.com/
|
|
|