45745 (762136)

Файл №762136 45745 (Введение в Microsoft .NET для начинающих)45745 (762136)2016-08-02СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Введение в Microsoft .NET для начинающих

Не имея четкого представления о Microsoft .NET и роли, которую играет в этой новой инициативе Microsoft язык С#, вам будет трудно разобраться в ключевых элементах С#, поддерживаемых платформой Microsoft .NET. Представленный в этой главе обзор технологии Microsoft .NET поможет вам усвоить терминологию, применяемую в этой книге, и понять, почему некоторые элементы языка С# ведут себя так, а не иначе. Если просмотреть в Интернете материалы по Microsoft .NET, можно заметить разнобой в трактовке и употреблении терминов этой технологии. Двусмысленные, а порой и просто противоречивые высказывания мешают уловить суть излагаемого материала. Во многом это объясняется новизной проблемы. Поэтому первым делом я постараюсь разогнать туман вокруг этой темы и разъяснить некоторые термины, связанные с Microsoft .NET.

Не имея четкого представления о Microsoft .NET и роли, которую играет в этой новой инициативе Microsoft язык С#, вам будет трудно разобраться в ключевых элементах С#, поддерживаемых платформой Microsoft .NET. Представленный в этой главе обзор технологии Microsoft .NET поможет вам усвоить терминологию, применяемую в этой книге, и понять, почему некоторые элементы языка С# ведут себя так, а не иначе. Если просмотреть в Интернете материалы по Microsoft .NET, можно заметить разнобой в трактовке и употреблении терминов этой технологии. Двусмысленные, а порой и просто противоречивые высказывания мешают уловить суть излагаемого материала. Во многом это объясняется новизной проблемы. Поэтому первым делом я постараюсь разогнать туман вокруг этой темы и разъяснить некоторые термины, связанные с Microsoft .NET.

Платформа Microsoft .NET

Идея Microsoft .NET в том, чтобы переместить центр внимания вычислительного сообщества из мира, состоящего из различных устройств и Web-узлов, связанных между собой через Интернет, в мир, где высокое качество решений для пользователей обеспечивается совместной работой устройств, служб и компьютеров. Основу Microsoft .NET составляют четыре базовых компонента:

.NET Building Block Services — средства программного доступа к таким службам, как хранилище файлов (file storage), календарь (calendar), служба аутентификации "Passport.NET";

ПО для устройств .NET, которое будет выполняться на новых устройствах Интернета;

средства .NET для работы с пользователями, включающие естественный интерфейс (natural interface), информационные агенты (information agents) и интеллектуальные теги (smart tags) — технологию, которая автоматизирует переход по гиперссылкам к информации, связанной со словами и фразами в документах пользователей;

инфраструктура .NET, состоящая из .NET Framework, Microsoft Visual Studio.NET, .NET Enterprise Servers и Microsoft Wmdows.NET.

Большинство разработчиков воспринимает инфраструктуру .NET собственно как .NET. Поэтому в дальнейшем при любом упоминании .NET (если нет предварительной оговорки) я буду иметь в виду инфраструктуру .NET. Инфраструктура .NET связана со всеми технологиями, составляющими новую среду создания и выполнения надежных, масштабируемых, распределенных приложений. Та часть .NET, с помощью которой разрабатываются такие приложения, называется .NET Framework.

NET Framework состоит из Common Language Runtime (CLR) и набора библиотек классов .NET Framework, который иногда называют Base Class Library (BCL). CLR — это по сути виртуальная машина, в которой функционируют приложения .NET. Все языки .NET имеют в своем распоряжении библиотеки классов .NET Framework. Если вы знакомы с Microsoft Foundation Classes (MFC) или Object Windows Library (OWL) компании Borland, то вам не надо объяснять, что это такое. Библиотеки классов .NET Framework включают поддержку практически всех технологий от файлового ввода-вывода и обмена с БД до XML и SOAP. Вообще библиотеки классов .NET Framework столь обширны, что даже поверхностный обзор всех поддерживаемых классов потребует отдельной книги.

Замечу, что под термином "виртуальная машина" здесь не подразумевается Java Virtual Machine (JVM). Фактически я применяю этот термин в его традиционном значении. Несколько десятилетий назад, когда Java значило лишь темный, горячий напиток, IBM ввела в оборот словосочетание "виртуальная машина" ("virtual machine"). Этим странным словосочетанием была обозначена абстракция высокоуровневой ОС, внутри которой могли функционировать в полностью инкапсулированной среде другие ОС. Говоря о CLR как о виртуальной машине, я имею в виду то, что код, выполняемый в инкапсулированной и управляемой среде, отделен от других процессов на этой машине.

.NET Framework

Что же представляет собой .NET Framework и что он дает? Вначале мы сравним .NET с другой более ранней средой разработки распределенных приложений. Затем я перечислю возможности .NET, позволяющие создавать мощные распределенные приложения в сжатые сроки.

Windows DMA и. NET

Фраза, которой я охарактеризовал .NET: "новая среда для создания и запуска надежных, масштабируемых, распределенных приложений" — звучит знакомо, да? Дело в том, что .NET является продолжением предыдущей попытки достичь этой цели. Та платформа называлась Windows DNA. Однако перспектив у .NET по сравнению с Windows DNA несопоставимо больше. Платформа Windows DNA была нацелена на решения для бизнеса посредством серверных продуктов Microsoft. К Windows DNA порой применяли слово "клей" в таком, например, контексте: "DNA — это клей, с помощью которого соединяются надежные, масштабируемые, распределенные системы". Однако, будучи только технической спецификацией, Windows DNA не имело каких-то осязаемых компонентов. Это только одно из ряда основных различий между Windows DNA и .NET. В Microsoft .NET, кроме набора спецификаций, входит несколько реальных продуктов: компиляторы, библиотеки классов и даже целые приложения для конечных пользователей.

Common Language Runtime

Common Language Runtime (CLR) — это сердце технологии Microsoft .NET. Как следует из названия, это среда времени выполнения кода, в которой обеспечивается эффективное взаимодействие приложений, пересекающее границы разных языков программирования (cross-language interoperability). Как достигается это взаимодействие? Common Language Specification (CLS) — это набор правил, которых должен придерживаться компилятор языка при создании .NET-приложений, запускаемых в среде CLR. Любой, кто захочет написать компилятор для .NET, должен следовать этим правилам и — пожалуйста! — приложения, сгенерированные этим компилятором, будут работать наряду с другими .NET-прило-жениями и будут иметь такую же возможность взаимодействия.

С CLR связана важная концепция управляемого кода (managed code) — кода, выполняемого только в среде CLR и управляемого ею. Напомню, что во время исполнения в нынешних ОС Microsoft Windows мы имеем дело с разнородными независимыми друг от друга процессами. Единственное требование, которому должны отвечать приложения в среде Windows, состоит в том, чтобы они правильно работали. Эти приложения создаются совершенно разными компиляторами. Иначе говоря, приложения должны подчиняться только наиболее общим правилам работы под Windows.

В среде Windows есть несколько глобальных правил поведения приложений, относящихся к их взаимодействию друг с другом, распределению памяти, а также к привлечению средств самой ОС для работы от их имени. Напротив, в среде управляемого кода есть набор правил, обеспечивающих единообразное в глобальном смысле поведение всех приложений независимо от того, на каком языке они написаны. Единообразное поведение .NET-приложений — характерная черта технологии .NET, и его нельзя игнорировать. К счастью, эти глобальные правила распространяются главным образом только на создателей компиляторов.

Библиотеки классов .NET Framework

Библиотеки классов .NET Framework играют чрезвычайно важную роль в обеспечении межъязыкового взаимодействия приложений, так как они позволяют разработчикам использовать единый программный интерфейс ко всем функциональным средствам CLR. Если вам приходилось писать программы для Windows на нескольких языках, то вам понравится это новшество. Библиотеки классов .NET Framework делают фактически революционный прорыв в разработке компиляторов. До .NET почти каждый автор компилятора разрабатывал язык, обладающий способностью делать большую часть своей собственной работы. Даже C++, разработанный как набор функциональных возможностей, работающих совместно с библиотекой классов, имеет некоторые средства для собственных нужд. Тогда как роль языков в окружении .NET не исчерпывается предоставлением синтаксических интерфейсов к библиотекам классов .NET Framework.

В качестве иллюстрации к сказанному сравним версии традиционного приложения "Hello, World" на языках C++ и С#.

tfinclude

int main(int argc, char* argv[]) {

cout " "Hello, World!" " endl;

return 0; }

В начало приложения включен заголовочный файл с объявлением функции cout. Функция main — входная точка любого приложения на C/C++ — выводит на стандартное устройство вывода с помощью функции cout строку "Hello, World". Здесь для нас важно то, что написать такое приложение на языке .NET без библиотек классов .NET Framework нельзя. Это действительно так: в .NET-языках нет присущих обычным компиляторам основных элементов, которые, например, выводят на консоль строку текста. Да, с точки зрения технологии, реализация функции cout находится в той части C/C++, которая сама является библиотекой. И все-таки основные задачи C++, такие как форматирование строк, файловый ввод-вывод и вывод на экран, хотя бы формально считаются частью исходного языка. Что касается С# (и это характерно для любого .NET-языка), то он не в состоянии выполнить даже самую примитивную задачу без привлечения библиотеки классов .NET Framework. А так выглядит пример "Hello, World" на языке С#:

using System;

class Hello {

public static void Main()

{

Console.WriteLine("Hello, World");

} >

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

Кто-то на дискуссионной страничке в Интернете недоумевал: "Зачем нам столько языков, если у них одинаковые функциональные возможности?" Как человек, поработавший в нескольких многоязыковых средах, заявляю, что это очень здорово, когда не надо помнить, какой язык, что и как может делать с системой. В конце концов мы, как разработчики, должны написать код, не мучая себя вопросом, есть ли у нашего любимого языка то или иное преимущество.

Еще один частый вопрос: "Если все .NET-языки могут делать одно и то же, зачем нам много таких языков?" Ответ надо искать в том, что программисты — это люди, которые редко отказываются от своих привычек. Microsoft, конечно, стремится выделить из множества языков какой-то один и навязать его миллионам программистов, имеющим многолетний опыт работы с другими языками. Мало того, что разработчику нужно познакомиться с новым API, ему придется еше освоить совершенно другой синтаксис. Пусть уж разработчик продолжает писать на том языке, который лучше всего подходит для его задачи. Как никак, наша главная цель — производительность. А замена того, что не должно меняться, — не то, к чему мы должны стремиться.

ПРИМЕЧАНИЕ В идеале библиотеки классов .NET Framework открывают пользователям языка все функциональные возможности CLR, однако на самом деле так бывает не всегда. Камнем преткновения между разработчиками библиотек классов .NET Framework и разработчиками компиляторов является то, что первые хотя и попытались открыть для любых языков все функциональные возможности библиотек классов, последних все-таки ничто не обязывает делать реализацию каждой такой возможности (не пренебрегая, правда, минимальными стандартами CLS). Когда я спросил в Microsoft об этом противоречии, мне ответили, что вряд ли каждый язык будет иметь доступ ко всем функциональным возможностям .NET Framework, поскольку каждая бригада разработчиков компиляторов вправе реа^ лизовать только те, что они считают самыми нужными для своих пользователей. К нашему счастью, С# — поидимому, тот язык, в котором имеется интерфейс практически ко всем функциональным возможностям .NET Framework.

Microsoft Intermediate Language и компиляторы JITter

Для облегчения перевода языков в среду .NET в Microsoft разработан промежуточный язык — Microsoft Intermediate Language (MSIL). Чтобы откомпилировать приложение для .NET, компиляторы берут исходный код и создают из него MSIL-код. MSIL — это полноценный язык, пригодный для написания приложений. Однако, как в случае с ассемблерным языком, вам вряд ли придется этим заниматься, кроме каких-то особых обстоятельств. Каждая группа разработчиков компилятора решает, в какой мере он будет поддерживать MSIL. Но если создатели компиляторов захотят, чтобы их язык полноценно взаимодействовал с другими языками, им придется ограничить себя рамками, определяемыми спецификациями CLS.

Результатом компиляции приложения, написанного на С# или другом языке, который отвечает правилам CLS, является MSIL-код. Потом, при первом запуске приложения в среде CLR, MSIL-код компилируется в машинные команды, специфичные для данного процессора. (На самом деле компилируются только функции, вызываемые впервые.)

Поскольку мы все пока новички в этой технологии, а книга наша посвящена С#, посмотрим по порядку, что же происходит с кодом.

Вы пишете исходный код на С#.

Затем вы компилируете его с помощью компилятора языка С# в ЕХЕ-файл.

Характеристики

Тип файла
Документ
Размер
1,09 Mb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов статьи

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее