Программирование на C# 5.0

Программирование на C# 5.0
Автор: Йен Гриффитс
Год: 2014
ISBN: 978-5-699-69313-9
Страниц: 1136
Язык: Русский
Формат: PDF
Размер: 29 Мб

Download

Исчерпывающее комплексное руководство поможет вам узнать, насколько мощными возможностями обладает комбинация С# 5.0 и .NET 4.5.
Большое количество примеров поможет при работе с такими особенностями С#-кода, как обобщения, динамическая типизация и новые возможности асинхронного программирования. Кроме того, вы узнаете обо всех тонкостях работы с XAML, ASP.NET, LINQ и другими инструментами платформы .NET.

+

ЗНАКОМСТВО С ЯЗЫКОМ C#

Язык программирования С# (произносится «си-шарп») может использоваться для разработки множества разных типов приложений, включая сайты, игры, настольные и мобильные приложения, а также утилиты командной строки. С# занимает центральное место в мире разработки для Windows вот уже в течение десяти лет, поэтому когда компания Microsoft объявила о введении в операционной системе Windows нового* стиля приложений, оптимизированного для сенсорных взаимодействий на планшетных компьютерах, ни у кого не вызвал удивления тот факт, что C# стал одним из первых четырех языков (наряду с C++, JavaScript и Visual Basic), которые смогли обеспечить полную поддержку так называемых приложений в стиле Metro.

Несмотря на то что С# был разработан компанией Microsoft, этот язык и его среда выполнения документированы организацией по стандартизации ЕСМА (European Computer Manufacturers Association, Европейская ассоциация изготовителей компьютеров), благодаря чему C# может реализовать кто угодно, и эта возможность не является чисто гипотетической. Проект с открытым исходным кодом Mono, доступный в Интернете по адресу www.mono-projcct.com, предоставляет инструменты для разработки приложений на С#, которые смогут функционировать в операционных системах Linux, OS X. iOS и Android.

Почему С#?

Несмотря на множество применений С#, для тех же целей всегда можно использовать другие языки. Так по какой причине следует предпочесть С# другим языкам? Это зависит от того, для чего применяется язык и что вам нравится или не нравится в программировании. Лично я нахожу C# очень мощным и гибким, кроме того, он работает на достаточно высоком уровне абстракции, что позволяет мне не тратить массу усилий на малозначительные детали, не имеющие прямого отношения к тем задачам, решить которые призваны мои программы (в отличие от C++).

Мощь С# обусловлена в значительной степени поддерживаемыми им техниками, такими, например, как объектно-ориентированные возможности, обобщение и функциональное программирование. Этот язык поддерживает как динамическую, так и статическую типизацию. Благодаря поддержке технологии LINQ он предоставляет возможности по работе со списками и множествами. А в самой последней версии языка также появилась встроенная поддержка асинхронного программирования.

Некоторые из наиболее важных преимуществ C# предоставляются средой выполнения этого языка; например, такие возможности, как безопасное выполнение в песочнице, проверка типов во время выполнения, обработка исключений, управление потоками и, возможно, самое важное – автоматическое управление памятью. Предоставляемый средой выполнения сборщик мусора избавляет разработчиков от большого объема действий по высвобождению уже неиспользуемой программой памяти.

Конечно, языки существуют не в изолированном пространстве — не менее важным является наличие высококачественных библиотек с широким набором возможностей. Некоторые элегантные и академически красивые языки восхищают лишь до тех пор, пока вы не попробуете с их помощью сделать что-либо прозаическое, например, выполнить доступ к базе данных или сохранить настройки пользователя. Вне зависимости от того, насколько мощный набор идиом программирования предлагает язык, он также должен предоставить полный и удобный доступ к службам базовой платформы. Благодаря платформе .NET Framework, в этом отношении C# стоит на очень прочной почве.

Платформа .NET Framework включает в себя как среду выполнения, так и библиотеки, используемые С#-программами в операционной системе Windows. В соответствии со своим названием Общеязыковая среда выполнения (CLR, Common Language Runtime) поддерживает не только С#, но и любые другие языки платформы .NET. Эта платформа позволяет использовать множество языков программирования. Например, в среде разработки от компании Microsoft. Visual Studio, можно работать с Visual Basic, F#, и .NET расширенными для C++; также существуют свободные реализации языков Python и Ruby для платформы .NET (которые называются, соответственно IronPython и IronRuby). Присутствующая в CLR Общая система типов (CTS, Common Type System) обеспечивает возможность свободного взаимодействия разных языков, то есть библиотеки .NET обычно допускается использовать из любого языка этой платформы – F# может работать с библиотеками, написанным на С#. С# – с библиотеками, написанными на Visual Basic, и т. д. .NET Framework включает обширную библиотеку классов. Помимо оберток для возможностей операционной системы, эта библиотека также предоставляет значительный обьем собственной функциональности. Она содержит более 10 000 классов, каждый из которых обладает множеством-членов.

Некоторые части библиотеки классов платформы .NET Framework являются специфичными для операционной системы Windows. Например, ряд возможностей этой библиотеки касается создания настольных приложений для Windows. Тем не менее другие части библиотеки более универсальны, как. например, классы HTTP-клиента, которые будут иметь значение в любой операционной системе. Используемая языком C# спецификация ЕСМА для среды выполнения определяет набор библиотечных возможностей, не зависящих от операционной системы. Библиотека классов .NET Framework, конечно поддерживает их все, а также предлагает ряд возможностей, специфичных для Microsoft.

Однако дело не ограничивается только встроенной библиотекой – свои библиотеки .NET-классов предоставляют также многие другие фреймворки. Например, достаточно большим набором АРI-ннтсрфсйсов .NET обладает платформа SharePoint. Кроме того, совсем не обязательно, чтобы библиотека была связана с каким-либо фреймворком. Обширная экосистема .NET-библиотек включает как коммерческие. так и бесплатные библиотеки, а также такие, которые обладают открытым исходным кодом. Можно найти библиотеки математических утилит, синтаксического анализа или компонентов пользовательского интерфейса, и это лишь отдельные примеры.

Однако даже если вам придется применять возможности операционной системы, для которых нет оберток в библиотеке .NET. в C# вы найдете различные механизмы для работы со старыми API-интерфейсами, такими как Win32 и СОМ. Некоторые аспекты механизмов интероперабельности являются довольно тяжеловесными, поэтому при необходимости работы с существующим компонентом, возможно, вам потребуется написать тонкую обертку, которая будет более дружественной к .NET. (Обертку также можно написать на С# — достаточно просто разместить громоздкие детали интероперабельности в одном месте, не позволяя им засорять все исходные тексты.) Однако если с надлежащей тщательностью разработать новый COM-компонент, его можно сделать достаточно простым для непосредственного использования из С#. В операционной системе Windows 8 появился новый тип API для написания планшетных приложений в стиле Metro, WinRT. который является развитием СОМ. В отличие от взаимодействия с предыдущими API-интерфейсами операционной системы Windows, использование WinRT из С# носит очень естественный характер.

Таким образом, вместе с C# мы получаем богатый набор встроенных в язык абстракций, мощную среду выполнения и легкий доступ к обширной функциональности платформы и библиотек.

Почему не С#?

Для хорошего понимания языка полезно сравнить его с альтернативами» поэтому стоит рассмотреть ряд причин, по которым вы можете предпочесть какие-то другие языки. Ближайшим соперником С#, вероятно, является Visual Basic, еще один «родной* язык платформы .NET, который предлагает практически те же преимущества, что и С#. Выбор здесь является главным образом вопросом синтаксиса. C# принадлежит к семейству С-подобных языков, и если вы знакомы хотя бы с одним из языков этого семейства (в которое входят С, C++. Objective С. Java и JavaScript), то синтаксис С# сразу же покажется вам знакомым. Однако если вы не знаете ни один из этих языков, но работали с версиями языка Visual Basic, существовавшими до появления .NET. или с вариантами этого языка для написания сценариев, такими как Visual Basic for Applications (VBA) из программного пакета Microsoft Office, то вам определенно будет легче освоить .NET-версию языка Visual Basic.

Среда разработки Visual Studio предлагает еще один язык, который предназначен специально для платформы .NET Framework, — он называется F#. Этот язык сильно отличается от С« и Visual Basic, областью