Что такое .NET Framework?


23 0

Сегодня получил простой но очень интересный вопрос: Насколько я понимаю С# для платформы .NET. Я не особо понимаю что это за платформа такая. Извиняюсь за глупый вопрос: в обычной виндовс программа, созданная на языке С# будет работать? Для этого кажется нужно только установить NET Framework? (орфография не мой :))

Классические программы используют функции Windows. Преимущество:

1. Программа выполняет код ОС напрямую и работает достаточно быстро

Недостатки Win32:

1. Код привязан к оборудованию. Проблемы решаются сложным введением HAL уровня, который становится прослойкой между кодом системы не связанным с оборудованием и кодом привязанным к оборудованию. Этот уровень уже есть в ОС Windows и кажется в Linux, но реализован не идеально, поэтому классические программы все равно привязаны к определенному железу. Если программа скомпилирована для Intel процессора, то она не сможет работать на абсолютно другой архитектуре.

2. Код неуправляем и программист должен сам заботиться о памяти. При плохом программировании постоянно возникают утечки и потери памяти и нестабильность работы системы. Код может получить доступ к любому участку памяти и это небезопасно

3. При использовании специфичного API для определенной версии Windows, программа перестает работать на других версиях. Например, очень часто можно встретить сообщение о том, что какая-то программа не совместима с XP, Vista или другой системой

.NET преимущества

1. Уровень абстракции намного лучше и код программы может выполнятся на разных платформах и архитектурах без перекомпиляции.

2. Код управляем платформой .NET (кодом и библиотеками платформы). Ненужно заботится об освобождении памяти и выполнение программы более безопасно, потому что нельзя получить доступ к чему угодно

3. Вопрос совместимости программ отсутствует. Если программа написана для .NET 2.0, то она будет работать на любой системе, где есть .NET 2.0 и даже в Linux. Да, пользователям иногда может понадобиться установка платформы и библиотек режима выполнения платформы, но это единственная проблема. К тому же, Windows Vista уже включает .NET 2.0 (через SP и обновления компания предоставляет возможность пользователям установить до 3.5), а Windows 7 будет включать 4.0.

При использовании .NET исчезает вопрос совместимости программы с ОС, но возникает проблема совместимости программы и платформы, но эта проблема решается легко. Если в Win32 приложении вы использовали специфичную функцию Vista, то программа не запустится в XP и решить эту проблему будет сложно. Вы не сможете просто скопировать системную библиотеку Vista в XP. Если же вы написали программу для .NET 3.5, а у пользователя нет этой версии, потому что он использует старый Windows XP, то проблема решается просто установкой платформы и все.

Программа, написанная для .NET будет работать не только в обычном Windows, но и в Linux и других системах, где реализуют платформу. Единственное – для Windows 9x платформа кажется не реализована и как я слышал не будет реализована. Но в наше время это не особая проблема. А необходимость устанавливать платформу тоже не проблема. Используй .NET 2.0 возможности которого великолепны и потенциальный ранок будет достаточно широким, потому что большинство XP систем уже содержат .NET и все Vista системы тоже содержат его.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

ronin

18 Августа 2009

у меня возникло несколько вопросов:

Программа, написанная для .NET будет работать не только в обычном Windows, но и в Linux и других системах, где реализуют платформу


то есть получается тоже реализация Net под другие системы? так же нужно будет устанавливать? это уже есть или только ещё предполагается?

Код управляем платформой .NET (кодом и библиотеками платформы). Ненужно заботится об освобождении памяти и выполнение программы более безопасно, потому что нельзя получить доступ к чему угодно


это реально так, или это только обещания? кто то проверял этот факт? есть ли примеры? просто я не всему верю что говорят в MS :), бывает ошибаются, так что как говорится семь раз отмерь...

но возникает проблема совместимости программы и платформы


имеется ввиду несоответствие версии NET у пользователя и версии под которую разрабатывалась программа?

Недостатки Win32...


если уж быть совсем объективными, было бы неплохо рассмотреть и недостатки NET технологии, или ты хочешь сказать их нет?


ronin

18 Августа 2009

ещё хотелось бы добавить что я пока не наблюдаю массового перехода на данную платформу, хотя сколько ей уже? я лично могу по пальцам пересчитать программы которые я устанавливал и они просили установить NET, почему тогда разработчики её игнорируют (или как это назвать)?


Alexo

19 Августа 2009

Хм, складывается впечатление, что у .NET нет недостатков.


olegmaster

19 Августа 2009

Alexo,


Хм, складывается впечатление, что у .NET нет недостатков.

.NET и JAVA кроссплатформенны, какие могут тут быть недостатки?


Николай

19 Августа 2009

Знакомое письмо, мое :))


Alexo

19 Августа 2009

olegmaster думаю если поискать можно кучу найти. JAVA существует уже много лет но не тала самым популярным языком, хотя ты и утверждаешь что там нет недостатков.


Topal

19 Августа 2009

читаю объявления на работу, и вижу, что часто нужны программисты умеющие писать под NET, хотябы поэтому надо изучать эту платформу


Ekstrem

19 Августа 2009

Вот на счёт API я не согласен.

Если вы больше извращенец чем обычный программер, и, например, игнорируете менеджер памяти делфи и выделяете страницы в ручную, то конечно с фреймворком будет легче))

Вобщем-то хочу сказать, что если пришлось использовать специфические API, то интерпретатор их не заменит (ошибаюсь?).
_______________________________________________________
Так же мне кажется, что проблема памяти не совсем проблема. Я пишу под делфи, и всё равно слежу за утечками - так положено! но ведь их не будет! менеджер памяти делфи жрёт активно оперативу, но работает...

_______________________________________________________
Вообще, самым большим достоинством таких систем является их "стойкость" к написанию эксплойтов - я думаю это самый большой аргумент.

Так же вижу позитивность дот нета в том, что им занимается активно майкрософт, и наверное самые лучшие его решения будут заточены именно под .NET.

А ещё можно представить такую картину. Вы написали прогу и через 20 лет нужно опять её откомпилить. Срочно откомпилить! Если ваше детище на дот нете, разве не для этого она? Но кто станет компилить? :)


CodeVoyager

19 Августа 2009

ronin

ещё хотелось бы добавить что я пока не наблюдаю массового перехода на данную платформу, хотя сколько ей уже? я лично могу по пальцам пересчитать программы которые я устанавливал и они просили установить NET, почему тогда разработчики её игнорируют (или как это назвать)?

Если используешь Vista,то там .NET установлен вместе с системой.Если нет,то вполне возможно,что он у тебя уже установлен,и ты об этом не знаешь.


Михаил Фленов

19 Августа 2009

На счет API посмотри сколько функций было добавлена в Vista. При работе с классическими приложениями, ты встаешь перед выбором - использовать новую хорошую функцию или нет. Если воспользуешся, то программа не будет работать в Windows 2000 и XP и ты ничего не сможешь сделать. Просто так функцию из одной версии в другую не перенесешь.

А вот при .NET, если ты воспользуешся новой функцией из новой версии платформы, то пользователям нужно только обновить платформу и версия ОС тут погоды не играет. Исключением кажется является WPF. Так что менеджер памяти - это вообще не причем тут


Alexo

19 Августа 2009

Михаил Фленов, т.е. ns хочешь сказать, что все те фишки с новым таскбаром в W7 будут так же работать и на XPшном таскбаре? Лично я немного сомневаюсь.


olegmaster

19 Августа 2009

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


Михаил Фленов

19 Августа 2009

2Alexo

Не уверен, что эти фишки реализуют на уровне .NET платформы. На уровне платформы пока реализовывали только те вещи, которые действительно смогут работать везде. Она не всесильна, хотя и пытается сгладить неровности между различными ОС. Java тоже пытается сгладить и она тоже не всесильна. И это не недостаток таких платформ, это то ограничение, с которым надо смирится. Ничего нет идеального.


Alexo

19 Августа 2009

Михаил Фленов, и это можно записать в минусы.


ronin

19 Августа 2009

Если используешь Vista,то там .NET установлен вместе с системой.Если нет,то вполне возможно,что он у тебя уже установлен,и ты об этом не знаешь.


я имел ввиду случай с Windows XP с неустановленным NET'ом, брал все дистрибутивы которые есть и устанавливал, один или два только просили установить NET, причём не самые распространённые программы

А вообще если честно бесит то что MS постоянно что то меняют причём так, что ты постоянно стоишь перед выбором или оставить всё как есть и со временем отстать от жизни, или переписывать все проекты. Хотя опять же не все их начинания приживаются и имеют место быть.


Новичек

20 Августа 2009

На счет API посмотри сколько функций было добавлена в Vista.

Я тоже извиняюсь за глупый вопрос: где можно на нововведенные API-функции посмотреть?


Михаил Фленов

20 Августа 2009

2Alexo
Можно занести это в недостаток

2Новичек
смотри msdn. Еще при выходе новой системы на конференциях сотрудники MS любят хвастаться количеством функций.


Gameover

21 Августа 2009

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


THandle

21 Августа 2009

По сути, прямого ответа на вопрос здесь нет. Простой пиар этой технологии.
Я просто поражаюсь умению русских программистов уходить от ответа.


Alexo

23 Августа 2009

Delphi 2010 вроде будет поддерживать вставки на .net по типу ассемблерных.

В плюсы Win32 языков можно занести то, что зная их вы сможете писать под Win32 и под .NET (Например Delphi For Win32 и Delphi Prism)


Саня Шпак

28 Августа 2009

Да при чём тут пиар? имхо он даже и не нужен.
Я считаю что Мелкософт, с учётом всёй моей антипатии к ним, сделала отличный продукт и всё чтоб доставить его в массы...


NA

19 Октября 2009

в отличие от Java, судьба .Net под Linux/UNIX системы находится под юридическим(и техническим кстати тоже) вопросом. Все разработки на Mono могут быть объявлены вне закона(так как открыта для реализации только часть спецификаций!!!). В общем, как всегда пресловутый грязный подход МС - монополия...
На сегодня кроссплатформенность - это ТОЛЬКО Java...
(также стоит смотреть в сторону Qt ля создания легкопортабельных приложений, благо библиотека ну ооочень многофункциональна)
и кстати и java- и Qt-разработчикам в среднем платят больше чем за дотнет..


Михаил Фленов

19 Октября 2009

Mono с открытым кодом и не нарушает абсолютно ничего в GNU. Даже если бы была закрыта, она все равно не нарушает ничего и не может быть объявлена не в законе не над законом. MS открыла спецификацию полностью и не она разрабатывает Mono, так что она абсолютно не причем.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне