Текст ориентирован на уровень менеджеров, которым важно знать, что
в конечном итоге дает технология .Net по сравнению с C/C++/Дельфи и т.д.
Я попытался уйти от
технических деталей (Garbage Collector, Attribute-ы, Reflection) к каким-то
более понятным для менеджера (или просто неподготовленного человека) концепциям.
1.Уменьшение объема написания собственного
кода
Полнофункциональная стандартная библиотека (в C++ — многократно
меньше, необходимо использование сторонних библиотек) — все уже написано до
нас.
2.Облегчается использование сторонних библиотек и разработка
сложных программ, состоящих из нескольких модулей
Стандартизированы
базовые вещи
В .Net-е уже стандартизовано большое количество базовых
сущностей.
В C++, например, много времени уходит на борьбу со строками в
различных библиотеках в связи с их неунифицированностью. Например, в С++ строки
бывают (char*, wchar*, TCHAR*, std::string, std::wstring, LPOLESTR, BSTR,
CString, ATL::CString, WTL::CString) и это только верхушка айсберга.
Встроенная в язык поддержка модулей
Благодаря полноценной
инкапсуляции кода и встроенной в язык поддержке модулей уменьшаются наведенные
эффекты при использовании сторонних библиотек и упрощается стыковка различных
частей программы, написанных разными программистами.
3.Упрощение
отладки и сопровождения
Благодаря верифицируемому (Managed) коду и
встроенному Stack Trace-у, при тестировании, а также при работе у пользователя,
в случае ошибки выдается полное описание ошибки и трасса вызова, а не непонятное
сообщение «Access violation».
4.Отсутствуют утечки памяти и
ресурсов.
Наличие сборщика мусора позволяет полностью избежать утечек
памяти, и значительно уменьшить вероятность утечки ресурсов.
5.Быстрая
компиляция
Простой язык, и наличие полноценных модулей обеспечивает
мгновенную компиляцию.
6.Быстрая разработка первых
прототипов
Благодаря атрибутам, reflection-у, богатой стандартной
библиотеке и общим концепциям сильно уменьшается время разработки первых
прототипов.
7.Простая стыковка с унаследованным кодом.
Из
.Net-а легко можно стыковаться с любым старым кодом, написанном на языках VB,
С++ и т.д.
8.С начала 2002 г. .Net позиционируется как основное
средство разработки «серьезных» приложений
Microsoft прекратило развитие
языка C++ в этом направлении 4 года назад.
Уже год новые библиотеки для
Windows-а от Microsoft-а и сторонних разработчиков выходят в первую очередь для
.Net-а, а остальные задерживаются или вообще не выходят.
9.Упрощается
разработка сложных объектно-ориентированных программ
Встроенная
компонентная модель позволяет получить доступ к любому объекту из любого модуля
без написания каких-то оболочек, что упрощает разработку сложных
объектно-ориентированных программ
10.Упрощение и ускорение разработки
типовых сущностей.
Благодаря добавлению атрибутов и мощного механизма
метаданных, в разы упрощается разработка типовых сущностей, что при грамотной
разработке первых этапов сильно упрощает добавление/изменение/удалении типовых
вещей на поздних этапах.
Резко упрощается разработка классов, которые
занимаются обслуживанием типовых сущностей.
11.Красивый визуальный
интерфейс.
На .Net разработка красивого, функционального интерфейса с
использованием новейших технологий гораздо проще, чем в C++.
Это позволяет
для любой программы разработать интерфейс а’ля Microsoft Office и т.д., что
сильно повышает успех программы при показе клиенту.
12.Повышение
быстродействия сложных программ
Наличие P-code, а также возможность
генерации кода в runtime-е, при разработке сложной программы на .Net и грамотное
реализации дает повышение быстродействия по сравнению с программой-аналогом на
языке C++.
Упрощение языка («верифицируемый» код, сборщик мусора)
позволяют реализовывать более сложные алгоритмы оптимизации, что положительно
сказывается на работе сложных программ.
13.Уменьшается размер конечных
бинарных файлов
Благодаря наличию большой стандартной библиотеки, P-коду,
модульности и т.д., размер создаваемых dll/exe-файлов получается, как правило,
более чем на порядок меньше (около 50-100кб) при использовании всех наворотов и
без какой-либо оптимизации размера со стороны программиста.
При
исправлении ошибок в программе, а также при выходе новых версий пользователю
необходимо будет скачать только несколько десятков
килобайт.
14.Упрощается развертывание (инсталляция)
приложений.
Отсутствие регистрации, а также новая политика при
развертывании .Net-приложений упрощают инсталляцию программы на компьютер
пользователя.
смотреть также
C# vs C++
ниши языков