Чем уникален сам Net?
Интересует чем уникален .NET,чем вызвано его появление и т.д..
Что ты понимаешь под "традиционными" платформами?
А вобще я действительно загнул с "традиционными".Что знаете все пишите,потом разберусь.
А вобще я действительно загнул с "традиционными".Что знаете все пишите,потом разберусь.[/quote]
Ну прямой конкурент .NET - это Java. Правда в .NET есть фишки которых нет в Java (как и наоборот). Все .NET приложения могут выполняться на всех Windows платформах :
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
За исключением Win3.x.
Ещё на Linux - правда только ASP.NET приложения работают там стабильно. Проект Mono называется и Microsoft он не поддерживается.
Также Microsoft выпустила исходные коды (Shared Source) .NET Framework. Проект Rotor предназначен для портирования .NET на FreeBSD.
А вобще я действительно загнул с "традиционными".Что знаете все пишите,потом разберусь.[/QUOTE]
В .NET введен промежуточный язык(intermediate language) на котороый транслируются все программы при билдах. Независимо от того на чем ты пишешь C#, VB.NET или C++, твоя программа будет "переведена" на этот промежуточный язык.
После того как у тебя есть твоя программа на промежуточном языке ты можешь выполнить ее с помошью .NET движка.
В Visual C++ ты билдишь проект и сразу можешь запускать файл или использовать DLL. Тебе не нужно заботиться ни о каких движках и т.д, но ты ограничен только C++ в качестве языка разработки.
После того как у тебя есть твоя программа на промежуточном языке ты можешь выполнить ее с помошью .NET движка.
В Visual C++ ты билдишь проект и сразу можешь запускать файл или использовать DLL. Тебе не нужно заботиться ни о каких движках и т.д, но ты ограничен только C++ в качестве языка разработки.[/QUOTE]
Не выполнить, а скомпилировать под среду в которой исполняется код. M$IL не интерпретируется, а компилируется при первом запуске.
Не выполнить, а скомпилировать под среду в которой исполняется код. M$IL не интерпретируется, а компилируется при первом запуске.[/QUOTE]
Вот те раз! Зачем вводите в заблуждение человека! На самом деле компилируецца каждый метод при первом вызове, а вовсе не весь код. Когда к методу будет повтороное обращение, то он уже скомпиленый в команды процессора лежит в динамической памяти, откуда и беретцца.
Отсюда вытекает очевидное преимущество .NET: Если обычный c++ сразу компилируется под определенную архитектуру, то managed способен учесть особенности текущей. Есть и другие, но рассписывать их все будет очень долго. Почитайте книгу Джеффри Рихтера "Программирование на платформе Microsoft .NET Framework".
Отсюда вытекает очевидное преимущество .NET: Если обычный c++ сразу компилируется под определенную архитектуру, то managed способен учесть особенности текущей. Есть и другие, но рассписывать их все будет очень долго. Почитайте книгу Джеффри Рихтера "Программирование на платформе Microsoft .NET Framework".[/quote]
Методы не компилируются при первом запуске!!! Т.к. тогда теряется информация об объектах времени выполнения, а значит GC выполнить будет не возможно! То что методы компилируются при первом вызове - тоже правильно, но частично. Методы, которые интерпритируются при первом запуске являются inline-методами. Обычно это методы с небольшим содержимым. Например, метод:
[FONT=Courier New]public static int Multiply(int a, int b) {return a * b;}[/FONT]
Будет интерпритирован однажды, т.к. для него не требуется сборка мусора, type-safe контроль и т.д.. А некоторые методы всегда интепретируются при их вызове. Такой метод можно создать, применив атрибут System.Runtime.CompilerServices.MethodImplAttribute с параметром MethodImplOptions.NoInlining.
Не пугайте топик-стартера :) Человек спросил о различиях и я ему доступно и понятно ответил. Если ему нужны будут детали реализации .NET, то ему прийдется копаться в литературе самому. Никакие форумы в этом случае не помогут.