Главная » Просмотр файлов » Учебное пособие

Учебное пособие (1077022), страница 2

Файл №1077022 Учебное пособие (Самохвалов Э.Н., Ревунков Г.И., Гапанюк Ю.Е. - Введение в проектирование и разработку Интернет-приложений) 2 страницаУчебное пособие (1077022) страница 22018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

В Java язык10MSIL называется байт-кодом (byte code). На платформе Java такжереализован сборщик мусора, в языке Java как и в C# существует операторnew и отсутствует оператор delete.Платформа .NET часто подвергается критике по той причине, что онаможет быть запущена только под управлением операционной системыWindows. Преимуществом платформы Java является то, что она можетбыть запущена под управлением операционных систем Windows, macOS,различныхверсийLinux,атакженекоторыхдругих,менеераспространенных операционных систем.Для преодоления данного ограничения .NET, открытым сообществомбыла начата разработка аналога платформы .NET, который мог бывыполняться под управлением различных операционных систем.

Этаплатформа получила название Mono, ее первая версия появилась в 2004году. Официальный сайт Mono – http://www.mono-project.com. ПлатформаMono, как и Java, может быть запущена под управлением операционныхсистем Windows, macOS, различных версий Linux.Интересным является тот факт, что компания Microsoft практически ссамого начала поддержала разработку платформы Mono, официальнопризнала ее версией .NET для macOS и Linux, и, даже ограничила действиенекоторыхпатентов,длятогочтобыплатформаMonoмоглабеспрепятственно развиваться.Также компания Microsoft, в том числе для поддержки проекта Mono,раскрыла некоторые технологии и языки, связанные с .NET, и сделала ихмеждународными стандартами. В частности версия 4 языка C# былаопубликована в виде международных стандартов ECMA-334 и ISO/IEC23270:2006.В настоящее время разработчикам платформы Mono удалось добитьсяочень хорошей совместимости с .NET.

В большинстве случаев бинарные11файлы проекта, который был скомпилирован в MSIL в среде .NET под ОСWindows, могут быть перенесены на ОС Linux и запущены в среде Mono.Однако необходимо учитывать, что не все библиотеки и фреймворки.NET поддерживаютсяв Mono. Поэтому, если читатель захочетразработать проект, который предполагается запускать и в .NET и в Mono,то необходимо проверить, что все библиотеки и фреймворки, которыепредполагается использовать, поддерживаются обеими платформами.Несмотря на вполне гармоничное сосуществование платформ .NET иMono, наличие двух платформ все-таки нельзя было признать идеальнымвариантом.

Поэтому в настоящее время компания Microsoft началаразработку платформы .NET Core. Версия 1.0 была выпущена в июне 2016года. Платформа .NET Core, как и Mono является проектом с открытымисходным кодом, который располагается в репозитории GitHub.Разработка платформы .NET Core преследует две цели. Первая цель –создание единой платформы, которая может выполняться под управлениемразличных операционных систем. Вторая цель – создание платформынового поколения, которая учтет основные ошибки при проектировании.NET и Mono, станет более модульной и производительной платформой,вберет в себя лучшие особенности платформ .NET и Mono, и постепеннозаменит их.В настоящее время все три платформы: .NET, Mono и .NET Coreактивноразвиваются.Такая«конкуренция»несоздаетпроблемразработчикам, потому что проект на C# может быть с минимальнымидоработками скомпилирован под все три платформы.

Проблемой прикомпиляции может стать только наличие определенной библиотеки илифреймворка под конкретную платформу.В нашем пособии мы постараемся дать читателю базовые знанияязыка C#, которые позволят разрабатывать приложения под все триплатформы.122.2 Особенность компиляции и исполнения приложенийдля среды исполнения .NETВ данном разделе на примере среды исполнения .NET мы наконцептуальномуровнерассматриваемпроцесскомпиляцииикомпоновки. Приведенные рассуждения также справедливы для платформMono и .NET Core.Рассмотрим процесс компиляции и компоновки для языков безиспользования среды исполнения, который приведен на рис.

1.ИсходныеИсходныефайлыфайлыпрограммыпрограммы1.1. КомпиляцияКомпиляция иикомпоновкакомпоновкаИсполняемыйИсполняемыйкодкодПодключаемыеПодключаемыебиблиотекибиблиотекиРис. 1. Процесс компиляции и компоновки без использования среды исполнения.В этом случае исходные файлы программы сначала компилируются,затем скомпилированные модули компонуются, к ним присоединяютсябиблиотеки и получается исполняемый код, который представляет собоймашинные команды для конкретного микропроцессора.Безусловно, процесс на рис.

1 представлен схематично, он можетсущественно различаться в деталях для конкретных языков и технологий.Если считать компиляцию и компоновку частями одного процесса, томожно принять что такой процесс для языков без использования средыисполнения выполняется в одну фазу. Процесс компиляции и компоновкина платформе .NET выполняется в две фазы (рис.

2).В этом случае в результате формируется MSIL-код, так называемыйфайл сборки (.dll или .exe).При запуске файла сборки происходит процесс JIT-компиляции (JIT –Just In Time компиляция, преобразование MSIL-кода в исполняемый код13дляконкретногомикропроцессоранаданномкомпьютере).JIT-компиляция производится в памяти, исполняемый код запускаетсянемедленно и не сохраняется на жесткий диск.ИсходныеИсходныефайлыфайлыпрограммыпрограммы1.1. КомпиляцияКомпиляция иикомпоновкакомпоновкаMSIL-кодMSIL-код2.2. JIT-компиляцияJIT-компиляцияИсполняемыйИсполняемыйкодкодПодключаемыеПодключаемыебиблиотекибиблиотекиРис. 2. Процесс компиляции, компоновки и исполнения программы для .NETплатформы.Разработчику, не знакомому с виртуальными средами исполнения.NET или Java подобная схема может показаться на первый взглядсовершенно бессмысленной.

Действительно, ведь при использовании,например, языка C++ в результате компиляции и компоновки получается«быстрый» машинный код, который сразу же исполняется. В случаевиртуальной среды сначала генерируется «ненужный» промежуточныйкод, затем он переводится в быстрый машинный код и выполняется.Складывается впечатление, что вторая схема в плане исполнения кодадолжна быть медленнее первой. Но парадокс в том, что она обычнооказывается быстрее. Для этого есть две причины.Первая состоит в том, что для программы на С++ обычно неизвестнона какой платформе (на каком конкретно микропроцессоре) будетисполнятьсякод.подмножествоПоэтомукомпиляторобычногенерируеттомашинных команд, которое будет выполняться набольшинстве микропроцессоров, то есть приоритет при генерации кодаотдаетсясовместимостисмикропроцессоромвущербпроизводительности.

В случае же виртуальной среды такой проблемы невозникает – JIT-компилятор способен определить, какой микропроцессор14установлен на данном компьютере и может генерировать команды,оптимальные по производительности для данного микропроцесса.Вторая причина заключается в том, что JIT-компилятор имеетвстроенный профилировщик кода, то есть он оценивает качество искорость выполнения сгенерированного кода. При необходимости JITкомпиляторповторногенерируетмашинныйкод,которыйбудетвыполняться быстрее.JIT-компиляторы впервые появились на Java-платформе.

В первыхверсиях Java исполняемый код (байт-код) интерпретировался, чтозначительноснижалопроизводительность.ЗатемпоявилисьJIT-компиляторы, которые на лету преобразовывали байт-код в машинныйкод, что повышало производительность Java-машины. В среде .NET JITкомпилятор существовал изначально, поэтому даже у первых версийплатформы.NETпрактическиникогданевозникалопроблемспроизводительностью.2.3 Контрольные вопросы к разделу 21.

Что такое MSIL?2. Что такое CLR?3. Для чего используется сборщик мусора?4. В чем различие между платформами .NET, Mono и .NET Core?5. Опишите процесс компиляции, компоновки и исполненияпрограммы для .NET-платформы.6. В чем различие между процессами компиляции и компоновкидля языков без использования среды исполнения и для .NETплатформы?7. Что такое JIT-компиляция?158. Почему машинный код, сформированный JIT-компилятором,будетвнекоторыхслучаяхвыполнятьсябыстрее,чеммашинный код, сформированный обычным компилятором?3 Основы языка C#3.1 Организация типов данных в языке C#Особенность типов данных языка C# заключается в том, что для всейсреды исполнения .NET используется единая общая система типов – CTS(Common Type System), причем как в C#, так и в Visual Basic .NET идругих языках .NET-платформы.Все типы данных разделяются на типы-значения (value type) иссылочные типы (reference type).Типы-значения хранятся в области памяти, доступ к которойорганизован в виде стека.

К ним относятся: базовые типы данных; перечисления (enum); структуры (struct).Если переменная типа-значения передается как параметр в метод, то встеке делается копия значения и передается в метод, а исходное значениене изменяется. В частности, такой порядок копирования значений удобендля примитивных типов.Ссылочные типы хранятся в динамически распределяемой областипамяти, которую принято называть кучей (heap).

Для работы с нейиспользуются ссылки, фактически являющиеся указателями. Ссылочнымитипами являются: классы; интерфейсы; массивы;16 делегаты.Если переменная ссылочного типа передается в метод как параметр,то фактически передается указатель на эту переменную, при этом неделается копия значения (как в случае типа-значения). Поэтому еслизначение переменной, переданное по ссылке, изменяется в методе, тоисходное значение вследствие этого также меняется.

Такой порядоккопирования значений удобен, в частности, для передачи объектовклассов.В отличие от С++, в языке C# использование типов-значений иссылочных типов практически ничем не различается, для обозначенияссылок не применяют специальные символы «&». Использовать указатели(которые как и в С++ обозначаются символом «*») можно в такназываемом небезопасном (unsafe) режиме. Этот режим подходит длявзаимодействиясаппаратнымисредствами,оптимизациипроизводительности, в обычных приложениях применять unsafe-режимкатегорически не рекомендуется.

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

Список файлов книги

Самохвалов Э.Н., Ревунков Г.И., Гапанюк Ю.Е
примеры
01
Structures
Structures
v15
.suo
Structures
Properties
AssemblyInfo.cs
bin
Debug
Structures.exe
Structures.exe.config
Structures.pdb
obj
Debug
TempPE
CoreCompileInputs.cache
DesignTimeResolveAssemblyReferencesInput.cache
Structures.csprojResolveAssemblyReference.cache
Structures.exe
Structures.pdb
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
App.config
Program.cs
Structures.csproj
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7031
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее