28.12.2012, 12:47 | #1 |
Бессмертный
|
Введение
.NET — это платформа от компании Microsoft, которая состоит из полного набора инструментов для разработчиков (.NET Framework) и для пользователей. Сюда входят клиентская и серверная операционные системы (ОС), инструменты разработки, сервисы. В данной книге мы будем рассматривать .NET Framework, который нужен программистам для написания программ для платформы .NET, а также язык программирования С#, на котором мы и будем писать для .NET Framework. .NET Framework состоит из множества библиотек и классов, которые можно использовать для создания собственных приложений.
Меня очень часто спрашивают, как я отношусь к .NET. К первой версии .NET Framework я относился не очень хорошо, потому что не понял ее и не увидел преимуществ. Когда появилась вторая версия, я кардинально изменил свое мнение по поводу С#. Хотя нет, если быть точным, то мое отношение к .NET первой версии так и осталось скорее негативным, чем положительным или нейтральным. А вот ко второй версии и ко всем последующим я отношусь не то, чтобы положительно, а даже с восхищением. Большинство языков программирования с богатой историей обладают одним большим недостатком. За время существования накапливается много устаревшего и небезопасного, но все эти недостатки накапливаются для сохранения совместимости с уже написанным кодом. Разработка абсолютно нового языка позволила компании Microsoft избавиться от всего старого и создать что-то новое, чистое и светлое. Наверно, это слишком громкие слова, но просто захотелось сказать эту глупость. Чтобы понять, почему мне нравятся .NET и С#, давайте рассмотрим реальные преимущества, которые я бы выдел. Они уже есть в .NET и никуда не денутся. К основным преимуществам платформы .NET я бы отнес: 1. Универсальный API. На каком бы языке вы не программировали, вам предоставляются одни и те же имена объектов. Все языки для платформы .NET отличаются только синтаксисом, а классы используются из .NET Framework. Таким образом, все языки схожи, и вы выбираете только тот, который вам ближе именно по синтаксису. Я начинал изучать программирование с Basic, затем Pascal, С, С++, Assembler, Delphi, Java и сейчас .NET. При переходе с языка на язык приходится очень много времени тратить на изучение нового API. На платформе .NET больше не будет такой проблемы. И тут преимущество не только в том, что все языки одинаковы, а в том, что улучшается возможность взаимодействия программ, написанных на разных языках. Раньше для того, чтобы программа на С++ без проблем взаимодействовала с кодом на Visual Basic или Delphi, приходилось применять различные трюки и уловки. В основном это было связано тем, что каждый язык по-своему обрабатывал и хранил строки. Сейчас такой проблемы нет, и все типы данных в С# абсолютно совместимы с Visual Basic .NET или другим языком платформы .NET. Таким образом, программисты, использующие различные языки, могут работать над одним и тем же проектом и без швов сращивать модули на разных языках. 2. Защищенный код. Платформу Win32 очень часто ругали за ее незащищенность. В ней действительно есть очень слабое звено — незащищенность кода и возможность перезаписывать любые участки памяти. Самым страшным в Win32 являлась работа с массивами, памятью и со строками (последние являются разновидностью массива). С одной стороны, это предоставляет мощные возможности системному программисту, который умеет правильно распоряжаться памятью. С другой стороны* в руках неопытного программиста данная возможность превращается в уязвимость. Сколько раз нам приходилось слышать об ошибках переполнения буфера из-за неправильного выделения памяти? Уже и сосчитать сложно. На платформе .NET вероятность такой ошибки стремится к нулю, если вы используете управляемый код, и если Microsoft не допустит ошибок при реализации самой платформы. 3. Платформа .NET не является абсолютно безопасной, потому что существуют не только ошибки переполнения буфера, есть еще и ошибки логики работы программы. 4. Полная ориентированность на объекты. Объектно-ориентированное программирование (ООП) — это не просто дань моде, это мощь, удобство и скорость разработки. Платформа Win32 все еще основана на процедурах и наследует все недостатки этого подхода. Любые объектные надстройки, такие как Object Windows Library (OWL), Microsoft Foundation Classes (MFC) и др., решают далеко не все задачи. 5. Сборка мусора. Начинающие программисты очень часто путаются, когда нужно уничтожать объекты, а когда это делать не обязательно. Приходится долго объяснять, что такое локальные и глобальные переменные, распределение памяти, стек и т. д. Даже опытные программисты нередко путаются и допускают ошибки при освобождении памяти. А ведь если память освободить раньше, чем это можно сделать, то обращение к несуществующим объектам приведет к краху программы. 6. На платформе .NET за уничтожение объектов отвечает сама платформа, хотя вы и можете повлиять на этот процесс, но только косвенно; Таким образом, у вас не будет утечек памяти, а вместо того, чтобы думать об освобождении ресурсов, вы можете заниматься более интересными вещами. А это приводит и к повышению производительности труда. 7. Визуальное программирование. Благодаря объектно-ориентированному подходу стало проще создавать визуальные языки программирования. Если вы программировали на Visual С++, то наверно уже знаете, что этот язык далек от идеала, а визуальные возможности сильно ограничены по сравнению с такими языками, как Delphi и Visual Basic. Новый язык С# действительно визуален и по своим возможностям практически не уступает самой мощной (по крайней мере, до появления .NET) визуальной среде разработки Delphi. Визуальность упрощает создание графического интерфейса и ускоряет разработку, а значит, ваша программа сможет раньше появиться на рынке и захватить его. Как показывает практика, очень часто первый игрок снимает основные сливки. 8. Компонентное представление. Так как платформа имеет полностью объектную основу, появилась возможность компонентно-ориентированного программирования, как это сделано в Delphi. В платформе Win32 были попытки создания компонентной модели с помощью ActiveX, но развертывание подобных приложений являлось слишком сложной задачей. Большинство разработчиков старались не связываться с этой технологией (в том числе и я), а если жизнь заставляла, то для развертывания приходилось создавать инсталляционные пакеты. Самостоятельно создавать пакет— сложно и неинтересно, поэтому среди разработчиков быстро получил распространение пакет InstallShield, позволяющий упростить задачу создания инсталляционных пакетов и упростить развертывание ActiveX. На платформе .NET установка новых пакетов сводится к простому копированию без необходимости регистрации в реестре. 9. Распределенные вычисления. Платформа .NET ускоряет разработку приложений с распределенными вычислениями, что достаточно важно для корпоративного программного обеспечения. В качестве транспорта при взаимодействии используются технологии HTTP (Hypertext Transfer Protocol, протокол передачи гипертекстовых файлов), XML (Extensible Markup Language, расширяемый язык разметки) и SOAP (Simple Object Access Protocol, простой протокол доступа к объектам). 10. Открытость стандартов. При рассмотрении предыдущего преимущества мы затронули открытые стандарты HTTP, XML и SOAP. Открытость — это неоспоримое преимущество, потому что предоставляет разработчику большую свободу. 11. Поддержка устройств. На мой взгляд, это основная причина появления платформы. Дело в том, что язык программирования Java оказался наиболее пригодным для различных устройств, и на данный момент этот язык поддерживает большинство мобильных телефонов и карманных устройств. Платформа .NET способна отобрать этот лакомый кусок, и мне кажется, что именно для этого она делалась независимой от аппаратной части. .NET называют межплатформенной, потому что она создавалась с возможностью работы на разных платформах, но сама компания Microsoft не спешит поддерживать конкурентные платформы, такие как Linux или Мае. Остается только наблюдать, что выберут производители устройств и программного обеспечения. Список можно продолжать и дальше, но уже видно, что будущее у платформы есть. Какое это будет будущее — вот это большой и сложный вопрос. Но, глядя на деньги, которые были вложены в разработку и рекламную кампанию, можно говорить, что Microsoft не упустит своего и сделает все возможное для обеспечения долгой и счастливой жизни .NET Framework. Данная книга призвана показать вам преимущества новой платформы и научить вас создавать собственные законченные приложения. Мы будем не просто рассматривать процесс расстановки компонентов на форме, а окунемся в глубину платформы и увидим жизнь ваших программ с разных сторон. Это позволит вам создавать более эффективные приложения. Напоследок хочу выразить собственное мнение о платформе, которое не опирается на какие-либо факты. Как мы выбираем в нашей жизни какие-либо вещи? В основном по личному опыту. Да, качество товара тоже играет свою роль, но если вам не нравится, как выглядит майка, вы никогда ее не наденете. Я знаком с .NET с момента появления первой версии и пытался изучать ее, несмотря на то, что синтаксис и возможности не вызывали восторга. Да, язык С# вобрал в себя все лучшее от С++ и Delphi, но все равно удовольствия было мало. Тем не менее, я продолжал его изучать в свободное время, т. к. люблю находиться на гребне волны, а не стоять в очереди за догоняющими. Возможно, мое первоначальное отрицательно отношение было связано со скудными возможностями самой среды разработки Visual Studio, которая является стандартом, потому что после выхода финальной версии Visual Studio .NET и версии .NET Framework 2.0 мое отношение к языку начало меняться в противоположную сторону. Язык и среда разработки стали намного удобнее, а код читабельным, что очень важно при разработке больших проектов. На данный момент мое личное отношение к языку и среде разработки Visual Studio .NET более чем положительное. Для меня эта платформа стала номером один в моих личных проектах (на работе я использую то, что требует работодатель). Я удивляюсь, как компания смогла разработать за такой короткий срок целую платформу, которая позволяет быстро решать широкий круг задач. |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|