![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Введение в Microsoft .NET для начинающих |
Не имея четкого представления о Microsof . E и роли, которую играет в этой новой инициативе Microsof язык С#, вам будет трудно разобраться в ключевых элементах С#, поддерживаемых платформой Microsof . E . Представленный в этой главе обзор технологии Microsof . E поможет вам усвоить терминологию, применяемую в этой книге, и понять, почему некоторые элементы языка С# ведут себя так, а не иначе. Если просмотреть в Интернете материалы по Microsof . E , можно заметить разнобой в трактовке и употреблении терминов этой технологии. Двусмысленные, а порой и просто противоречивые высказывания мешают уловить суть излагаемого материала. Во многом это объясняется новизной проблемы. Поэтому первым делом я постараюсь разогнать туман вокруг этой темы и разъяснить некоторые термины, связанные с Microsof . E . Не имея четкого представления о Microsof . E и роли, которую играет в этой новой инициативе Microsof язык С#, вам будет трудно разобраться в ключевых элементах С#, поддерживаемых платформой Microsof . E . Представленный в этой главе обзор технологии Microsof . E поможет вам усвоить терминологию, применяемую в этой книге, и понять, почему некоторые элементы языка С# ведут себя так, а не иначе. Если просмотреть в Интернете материалы по Microsof . E , можно заметить разнобой в трактовке и употреблении терминов этой технологии. Двусмысленные, а порой и просто противоречивые высказывания мешают уловить суть излагаемого материала. Во многом это объясняется новизной проблемы. Поэтому первым делом я постараюсь разогнать туман вокруг этой темы и разъяснить некоторые термины, связанные с Microsof . E . Платформа Microsof . E Идея Microsof . E в том, чтобы переместить центр внимания вычислительного сообщества из мира, состоящего из различных устройств и Web-узлов, связанных между собой через Интернет, в мир, где высокое качество решений для пользователей обеспечивается совместной работой устройств, служб и компьютеров. Основу Microsof . E составляют четыре базовых компонента: . E Buildi g Block Services — средства программного доступа к таким службам, как хранилище файлов (file s orage), календарь (cale dar), служба аутентификации "Passpor . E "; ПО для устройств . E , которое будет выполняться на новых устройствах Интернета; средства . E для работы с пользователями, включающие естественный интерфейс ( a ural i erface), информационные агенты (i forma io age s) и интеллектуальные теги (smar ags) — технологию, которая автоматизирует переход по гиперссылкам к информации, связанной со словами и фразами в документах пользователей; инфраструктура . E , состоящая из . E Framework, Microsof Visual S udio. E , . E E erprise Servers и Microsof Wmdows. E . Большинство разработчиков воспринимает инфраструктуру . E собственно как . E . Поэтому в дальнейшем при любом упоминании . E (если нет предварительной оговорки) я буду иметь в виду инфраструктуру . E . Инфраструктура . E связана со всеми технологиями, составляющими новую среду создания и выполнения надежных, масштабируемых, распределенных приложений. Та часть . E , с помощью которой разрабатываются такие приложения, называется .
E Framework. E Framework состоит из Commo La guage Ru ime (CLR) и набора библиотек классов . E Framework, который иногда называют Base Class Library (BCL). CLR — это по сути виртуальная машина, в которой функционируют приложения . E . Все языки . E имеют в своем распоряжении библиотеки классов . E Framework. Если вы знакомы с Microsof Fou da io Classes (MFC) или Objec Wi dows Library (OWL) компании Borla d, то вам не надо объяснять, что это такое. Библиотеки классов . E Framework включают поддержку практически всех технологий от файлового ввода-вывода и обмена с БД до XML и SOAP. Вообще библиотеки классов . E Framework столь обширны, что даже поверхностный обзор всех поддерживаемых классов потребует отдельной книги. Замечу, что под термином "виртуальная машина" здесь не подразумевается Java Vir ual Machi e (JVM). Фактически я применяю этот термин в его традиционном значении. Несколько десятилетий назад, когда Java значило лишь темный, горячий напиток, IBM ввела в оборот словосочетание "виртуальная машина" ("vir ual machi e"). Этим странным словосочетанием была обозначена абстракция высокоуровневой ОС, внутри которой могли функционировать в полностью инкапсулированной среде другие ОС. Говоря о CLR как о виртуальной машине, я имею в виду то, что код, выполняемый в инкапсулированной и управляемой среде, отделен от других процессов на этой машине. . E Framework Что же представляет собой . E Framework и что он дает? Вначале мы сравним . E с другой более ранней средой разработки распределенных приложений. Затем я перечислю возможности . E , позволяющие создавать мощные распределенные приложения в сжатые сроки. Wi dows DMA и. E Фраза, которой я охарактеризовал . E : "новая среда для создания и запуска надежных, масштабируемых, распределенных приложений" — звучит знакомо, да? Дело в том, что . E является продолжением предыдущей попытки достичь этой цели. Та платформа называлась Wi dows D A. Однако перспектив у . E по сравнению с Wi dows D A несопоставимо больше. Платформа Wi dows D A была нацелена на решения для бизнеса посредством серверных продуктов Microsof . К Wi dows D A порой применяли слово "клей" в таком, например, контексте: "D A — это клей, с помощью которого соединяются надежные, масштабируемые, распределенные системы". Однако, будучи только технической спецификацией, Wi dows D A не имело каких-то осязаемых компонентов. Это только одно из ряда основных различий между Wi dows D A и . E . В Microsof . E , кроме набора спецификаций, входит несколько реальных продуктов: компиляторы, библиотеки классов и даже целые приложения для конечных пользователей. Commo La guage Ru ime Commo La guage Ru ime (CLR) — это сердце технологии Microsof . E . Как следует из названия, это среда времени выполнения кода, в которой обеспечивается эффективное взаимодействие приложений, пересекающее границы разных языков программирования (cross-la guage i eroperabili y). Как достигается это взаимодействие? Commo La guage Specifica io (CLS) — это набор правил, которых должен придерживаться компилятор языка при создании . E -приложений, запускаемых в среде CLR.
Любой, кто захочет написать компилятор для . E , должен следовать этим правилам и — пожалуйста! — приложения, сгенерированные этим компилятором, будут работать наряду с другими . E -прило-жениями и будут иметь такую же возможность взаимодействия. С CLR связана важная концепция управляемого кода (ma aged code) — кода, выполняемого только в среде CLR и управляемого ею. Напомню, что во время исполнения в нынешних ОС Microsof Wi dows мы имеем дело с разнородными независимыми друг от друга процессами. Единственное требование, которому должны отвечать приложения в среде Wi dows, состоит в том, чтобы они правильно работали. Эти приложения создаются совершенно разными компиляторами. Иначе говоря, приложения должны подчиняться только наиболее общим правилам работы под Wi dows. В среде Wi dows есть несколько глобальных правил поведения приложений, относящихся к их взаимодействию друг с другом, распределению памяти, а также к привлечению средств самой ОС для работы от их имени. Напротив, в среде управляемого кода есть набор правил, обеспечивающих единообразное в глобальном смысле поведение всех приложений независимо от того, на каком языке они написаны. Единообразное поведение . E -приложений — характерная черта технологии . E , и его нельзя игнорировать. К счастью, эти глобальные правила распространяются главным образом только на создателей компиляторов. Библиотеки классов . E Framework Библиотеки классов . E Framework играют чрезвычайно важную роль в обеспечении межъязыкового взаимодействия приложений, так как они позволяют разработчикам использовать единый программный интерфейс ко всем функциональным средствам CLR. Если вам приходилось писать программы для Wi dows на нескольких языках, то вам понравится это новшество. Библиотеки классов . E Framework делают фактически революционный прорыв в разработке компиляторов. До . E почти каждый автор компилятора разрабатывал язык, обладающий способностью делать большую часть своей собственной работы. Даже C , разработанный как набор функциональных возможностей, работающих совместно с библиотекой классов, имеет некоторые средства для собственных нужд. Тогда как роль языков в окружении . E не исчерпывается предоставлением синтаксических интерфейсов к библиотекам классов . E Framework. В качестве иллюстрации к сказанному сравним версии традиционного приложения "Hello, World" на языках C и С#. fi clude &l ;ios ream.h> i mai (i argc, char argv[]) { cou " "Hello, World!" " e dl; re ur 0; } В начало приложения включен заголовочный файл с объявлением функции cou . Функция mai — входная точка любого приложения на C/C — выводит на стандартное устройство вывода с помощью функции cou строку "Hello, World". Здесь для нас важно то, что написать такое приложение на языке . E без библиотек классов . E Framework нельзя. Это действительно так: в . E -языках нет присущих обычным компиляторам основных элементов, которые, например, выводят на консоль строку текста. Да, с точки зрения технологии, реализация функции cou находится в той части C/C , которая сама является библиотекой. И все-таки основные задачи C , такие как форматирование строк, файловый ввод-вывод и вывод на экран, хотя бы формально считаются частью исходного языка.
По умолчанию Visual Studio 2005 всегда определяет символ DEBUG, однако такое поведение можно отменить путем снятия отметки флажка Define DEBUG constant (Определить константу DEBUG) на вкладке Build (Сборка), размещенной на странице Properties (Свойства) вашего проекта. В предположении о том, что этот обычно генерируемый символ DEBUG отключен, можно определить этот символ для каждого файла в отдельности, используя директиву препроцессора #define. #define DEBUG using System; namespace Preprocessor { Pclass ProcessMe { P static void Main(string[] args) { PP // Программный код, подобный показанному выше } P} } Замечание. Директивы #define в файле с программным кодом C# должны быть указаны до всех остальных. Можно также определять свои собственные символы препроцессора. Предположим, например, что у нас есть класс C#, которой должен компилироваться немного иначе в рамках дистрибутива Mono.NET (см. главу 1). Используя #define, можно определить символ MONO_BUILD для каждого файла. #define DEBUG #define MONO_BUILD using System; namespace Preprocessor { Pclass Program { P static void Main (string[] args) { #if MONO_BUILD PP Console.WriteLine("Компиляция для Mono!"); #else PP Consоlе.WriteLine("Компиляция для Microsoft .NET"); #endif P } P} } Чтобы создать символ, применимый для всего проекта, используйте текстовый блок Conditional compilation symbols (Символы условной компиляции, размещенный на вкладке Build (Сборка) страницы свойств проекта (рис. 9.6). Рис. 9.6
1. Введение в специальность («комплексная реконструкция и эксплуатация зданий и сооружений»)
2. Введение в теплоэнергетику Дальнего Востока
4. Введение в языкознание/лингвистику
5. История развития корпорации Microsoft
9. Билеты для проведения контрольных мероприятий по Turbo Pascal для начинающих
10. Microsoft Office
11. Microsoft Outlook Express - установка и использование
12. Обработка табличной информации с помощью сводных таблиц средствами MicroSoft Excel
13. Форматирование текста в MicroSoft Word
14. Изучение Microsoft Exel (v.7.0)
15. Microsoft Access
16. Настройка программы Microsoft Excel
17. Анализ криптостойкости методов защиты информации в операционных системах Microsoft Window 9x
18. Приложение Microsoft Office – WordArt
20. Зигмунд Фрейд - Введение в психоанализ (лекции)
21. Введение в специальность по дисциплине: менеджмент в социальной сфере (шпаргалка)
25. Глобализация, современные международные финансы, включая последствия введения евро
26. Microsoft - фирма, феномен, миф
27. Люк Клапье Вовенарг. Введение в познание человеческого разума
28. Введение в онтологию языка
29. Введение в грамматическое учение о слове
30. Введение в России Григорианского календаря
31. Сочетанное введение детских вакцин: важное направление в по-литике здравоохранения
32. Литература - фтизиатрия (введение)
33. Введение новой валюты евро
34. Миссия, цели и стратегия компании Microsoft
35. Введение в капельный анализ
41. Введение в использование шпаргалок
42. Введение в предмет гипноза
44. Введение в традицию как цель образования
45. Введение в медиапланирование
46. Популярное введение в буддизм
47. Введение в догматическое богословие - лекция 2
48. Как преодалеть страх введения полового члена во влагалище
50. Введение потребителя в заблуждение
51. Философское введение в "Основы построения систем искусственного интеллекта"
57. Введение рабочей карты в ОВД и порядок нанесения на нее оперативной обстановки
58. Шпоры по введению в языкознание
59. Квантитативная лексикология романских языков: введение в проблематику
60. Введение в дисциплину "Безопасность жизнедеятельности"
61. Способы введения лекарств рептилиям
62. 7 золотых правил начинающего цветовода
63. Net Culture
64. Введення в курс “Основи економічної теорії”
65. Карманные ПК: введение в тему
68. Введение в философию компьютерных существ
69. Введение в компьютерные технологии
73. Microsoft Internet Explorer v3 0
75. Новые возможности Microsoft Word 97
76. Подготовка и составление конференции в Microsoft PowerPoint
77. Создание баз данных в Microsoft Access
78. Совершенствование антивирусной защиты документов текстового процессора Microsoft Word
79. Введение в ADO
80. Отправка запроса методом POST на сервер из .NET приложения
81. Конфликты схем сопоставления (collation) в Microsoft SQL Server 2000
82. Программа Microsoft Excel. Ее применение для разработки электронных таблиц
83. Microsoft Visual Basic 5 0
84. Введение в CVS Конспект первого дня двухдневного курса по CVS
89. Несколько советов начинающему тайм-менеджеру
91. Практический совет начинающим группам
92. Абстрактно-дедуктивный метод введения и формирования математических понятий в 10-11 классах
93. Таинства Церкви: введение в изучение
94. Введение в историю русской социологии
95. Начинающий трейдер: истоки заблуждений