imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 14.06.2004, 20:18     # 1
steelik
Member
 
Аватар для steelik
 
Регистрация: 30.09.2002
Сообщения: 320

steelik Путь к славе только начался
Framework .NET

Народ, что есть вообще Framework .NET и чем вообще приложения .NET отличаются от обычных? Есть ли какая-нибудь связь с MFC ? Или это две разные библиотеки? Какая между ними собственно разница? Об этом хотелось бы поподробней, если есть линки какие-нибудь, заранее благодарен! Желательно для начала на русском, хотябы разницу уловить!
steelik вне форума  
Старый 14.06.2004, 22:51     # 2
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
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".
__________________
Фотолюбительщина

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 15.06.2004, 04:14     # 3
shuron
Full Member
 
Аватар для shuron
 
Регистрация: 16.09.2003
Сообщения: 793

shuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царствеshuron Луч света в тёмном царстве
из вышестоящего выходит, что приложения написанные
в .NET работают медленее... или есть "но"?

А как там с портировкой под линукс?
shuron вне форума  
Старый 15.06.2004, 09:09     # 4
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
shuron

1) Споры ведуться до сих пор. Кто-то кричит что да. Кто-то утверждает, что все тесты показывают, что нет. Скажем так: я бы не стал писать приложения где время критично на .NET и кроме того, на .NET ЛЕГЧЕ написать код, который будет работать раз в 50 медленнее чем мог бы, если не знаешь разных ловушек.

НО, теоретически, возможно, что код на .NET будет работать БЫСТРЕЕ кода на С++. Если JIT компилятор будет во время компиляции производить ОПТИМИЗАЦИЮ кода под машину на которой он бежит СЕЙЧАС. Например бежит под P 4 - оп и оптимизировал там что-то. У С++ такой возможности нет. Код компилируется на одной машине - и привет.
Я уверен, что в конце концов такие оптимизации будут добавлены.

2) С портировкой веселее. Достаточно выпустить CLR, которая будет бежать на линукс, и тогда программы будут там запускаться, даже не зная что они бегут в линуксе. То-же самое, что в Virtual Mashine у Java.
Так, сегодня существует версия CLR для Pocket PC.
__________________
Фотолюбительщина

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 15.06.2004, 10:11     # 5
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
а для linux пишется "моно" - http://www.go-mono.com/
Drakosha вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:31.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.