IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Framework .NET (http://www.imho.ws/showthread.php?t=61744)

steelik 14.06.2004 20:18

Framework .NET
 
Народ, что есть вообще Framework .NET и чем вообще приложения .NET отличаются от обычных? Есть ли какая-нибудь связь с MFC ? Или это две разные библиотеки? Какая между ними собственно разница? Об этом хотелось бы поподробней, если есть линки какие-нибудь, заранее благодарен! Желательно для начала на русском, хотябы разницу уловить!

Dimm 14.06.2004 22:51

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".

shuron 15.06.2004 04:14

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

А как там с портировкой под линукс?

Dimm 15.06.2004 09:09

shuron

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

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

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

Drakosha 15.06.2004 10:11

а для linux пишется "моно" - http://www.go-mono.com/


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

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