Содержание
- 2. Программа курса “Основы .Net” Введение в платформу .Net – понятия CLR, IL, BCL, рефлектор Основы языка
- 3. Что будет дальше
- 4. План этой презентации Причины возникновения платформы Microsoft .NET Базовые понятия – CLR, CTS, CLS, CIL, CLI,
- 5. Немного истории. Язык С В начале 1970-х Дэнис Ритчи разрабатывает язык С. Как и все популярные
- 6. Немного истории. Язык С++ Следующим этапом развития семейства стал язык С++, разработанный Бьярном Страуструпом в 1979-ом
- 7. Новые требования Но время предъявило новые требования в области разработки ПО. Они заключались в том, что
- 8. Появление Java В 1991 году компания Sun Microsystems предложила решение этой проблемы на базе своего нового
- 9. Создатели языка Java
- 10. Java-архитектура - Программист создаёт файл с расширением JAVA и помещает в него исходный код программы -
- 11. Инструкции байт-кода Инструкции можно разделить на несколько групп: загрузка и сохранение (например, ALOAD_0, ISTORE) арифметические и
- 12. Microsoft strikes back ;) Однако, язык Java решал далеко не все проблемы (например, проблему межъязыкового взаимодействия).
- 13. Что такое .Net Framework? .NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой
- 14. Список .Net языков https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_.NET-%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2 ПЕРЕЙТИ ПО ССЫЛКЕ!!! Языки программирования .NET — компьютерные языки программирования, используемые для
- 15. Что такое .Net? Платформа Microsoft .NET — это технология, которая поддерживает создание и выполнение приложений самых
- 16. Ранние независимые проекты .NET Framework (теперь уже как часть .NET) является патентованной технологией корпорации Microsoft и
- 17. Ранние независимые проекты https://docs.microsoft.com/ru-ru/dotnet/?WT.mc_id=dotnet-35129-website
- 18. Цели разработки платформы Одной из целей разработки новой платформы было объединение всех наиболее удачных наработок в
- 19. Понятие платформы Платформа .NET — это среда, которую видит код в процессе исполнения. Это означает, что
- 20. Преимущества Платформа .NET основана на единой объектно-ориентированной модели; все сервисы, предоставляемые программисту платформой, оформлены в виде
- 21. Преимущества Си-подобный синтаксис, на 80% те же ключевые слова, что и в С++ Тонны «синтаксического сахара»
- 22. Преимущества Код, сгенерированный для .NET, может быть проверен на безопасность. Это гарантирует, что приложение не может
- 23. Преимущества Обработка ошибок в .NET всегда производится через механизм исключительных ситуаций. Это решает неоднозначность ситуации, когда
- 24. Главное преимущество! Вероятно, самым большим достижением .NET остаётся межъязыковое взаимодействие (language interoperability). Впервые в истории программирования
- 25. Межъязыковое взаимодействие Например, служба, написанная на C++ для Microsoft .NET, может обратиться к методу класса из
- 26. Недостатки .Net Несущественное замедление выполнения программ. Это и неудивительно, так как между исходным языком и машинным
- 27. MSIL MSIL - это язык, на котором должен быть написан код, загружаемый и запускаемый средой исполнения
- 28. Есть ещё один недостаток Кстати, ещё одна проблема .NET заключается в том, что при её создании
- 29. Архитектура .Net Framework
- 30. Архитектура платформы Платформа .NET Framework является надстройкой над операционной системой, в качестве которой может выступать любая
- 31. Архитектура платформы Самым важным компонентом платформы .NET Framework является CLR (Common Language Runtime), предоставляющая среду, в
- 32. Сбор мусора Под сбором мусора понимается освобождение памяти, занятой объектами, которые стали бесполезными и не используются
- 33. Framework Class Library Над уровнем CLR находится набор базовых классов платформы, над ним расположены слой классов
- 34. Архитектура платформы Набор базовых классов платформы — нижний уровень FCL — не только прячет обычные низкоуровневые
- 35. Классы для работы с SQL и XML Над этим уровнем находится уровень классов, которые расширяют базовые
- 36. Архитектура платформы Microsoft .NET поддерживает не только языковую независимость, но и языковую интеграцию. Это означает, что
- 37. Архитектура платформы Важно понимать, что не во всех языках программирования .NET обязательно должны поддерживаться все типы
- 38. CLR Common Language Runtime (англ. CLR — общеязыковая исполняющая среда) — исполняющая среда для байт-кода CIL
- 39. CLR CLR,— это то, что собственно управляет исполнением нашего кода. Можно рассматривать её как системный код,
- 40. CTS Common Type System (cтандартная система типов) — часть .NET Framework, формальная спецификация, определяющая, как какой-либо
- 41. Функции CTS Формирует фреймворк, способствующий межъязыковой интеграции, безопасности типов, а также высокой производительности исполнения кода Обеспечивает
- 42. Типы, поддерживаемые CTS Переменные значимых типов непосредственно содержат данные, а экземпляры значимых типов располагаются или в
- 43. Два вида типов
- 44. CLS Платформа .NET Framework является независимой от языка. Это означает, что код можно разрабатывать на одном
- 45. CLS Не все языки .NET могут работать с некоторыми встроенными типами данных CTS. Поэтому очень важно
- 46. CLS CLS – это минимальный набор стандартов, который гарантирует, что доступ к коду может быть осуществлён
- 47. CLS – подмножество CTS!
- 48. BCL (FCL) Base Class Library, сокращённо BCL — стандартная библиотека классов платформы .NET. Программы, написанные на
- 49. BCL В отличие от многих других библиотек классов, вроде MFC, ATL/WTL или SmartWin, библиотека BCL не
- 50. BCL Вероятно, одним из самых больших достоинств управляемого кода, помимо упрощения процесса написания кода, является возможность
- 51. BCL Замечательной особенностью базовых классов .NET является то, что они просты в использовании и самодокументированы. Например,
- 52. BCL Возможно, это будет большим облегчением для программистов на C++, которые вынуждены иметь дело с такими
- 53. Сферы BCL Поддержка Windows GUI, элементов управления и тп. Формы Web (ASP.NET) Доступ к данным (ADO.NET)
- 54. Mscorelib.dll Вся библиотека базовых классов поделена на ряд отдельных сборок, главной среди которых является сборка mscorelib.dll.
- 55. Возможности языка C# автоматическое управление памятью расширенные возможности обработки исключительных ситуаций богатый набор средств фильтрации ввода-вывода
- 56. Создатель языка C# Андерс Хейлсберг, датский инженер-программист, также создатель Turbo Pascal, Delphi и TypeScript.
- 57. Название языка Название «Си шарп» (от англ. sharp — диез) происходит от музыкальной нотации, где знак
- 58. Версии .NET и языка C#
- 59. Новые возможности версий
- 60. Типы данных языка C#
- 61. CLI CLI (Common Language Infrastructure) — спецификация общеязыковой инфраструктуры. Наиболее известными реализациями этого стандарта являются Microsoft
- 62. Схема исполнения приложения
- 63. Схема исполнения приложения Во время выполнения программы среда исполнения .NET загружает первую сборку, ту, что содержит
- 64. Схема исполнения приложения CLR создает процесс, в котором будет исполняться код, и отмечает область приложения, в
- 65. JIT Компиляция Just-In-Time (JIT) - это процесс выполнения заключительной стадии компиляции с промежуточного языка в машинный
- 66. Схема исполнения приложения Во время выполнения кода CLR следит за использованием памяти. На основе этих наблюдений
- 67. CIL Common Intermediate Language (сокращённо CIL) — «высокоуровневый ассемблер» виртуальной машины .NET. Промежуточный язык, разработанный фирмой
- 68. CIL Все компиляторы, поддерживающие платформу .NET, должны транслировать код с языков высокого уровня платформы .NET на
- 69. CIL По синтаксису и мнемонике язык CIL напоминает язык ассемблера. Его можно рассматривать как ассемблер виртуальной
- 70. Hello, world! на CIL .assembly Hello {} .method public static void Main() cil managed { .entrypoint
- 71. Код C# static void Main ( string [] args ) { for ( int i =
- 72. А теперь то же самое на CIL ☺ .method private hidebysig static void Main( string []
- 73. CIL Промежуточный язык и байт-код Java в своей основе имеют одну и ту же идею: это
- 74. Виртуальный процессор MSIL-код содержит инструкции, независимые ни от языка программирования, ни от ОС, ни от процессора.
- 75. Понятие сборки Сборка — это логическая единица, которая содержит компилированный код, предназначенный для .NET. С этой
- 76. Понятие сборки
- 77. Метаданные Важной характеристикой сборок является то, что они содержат метаданные, описывающие типы и методы, определенные в
- 78. Метаданные Сборка содержит метаданные о программе, а это означает, что программы и сборки, которые вызывают код
- 79. Манифест Манифест – это сведения о самой сборке (номер версии сборки, языковые настройки, список других внешних
- 80. Создание проекта
- 81. Создание проекта
- 82. Вот такой теперь шаблон :) // See https://aka.ms/new-console-template for more information Console.WriteLine("Hello, World!");
- 83. Что там в коде на самом деле using System; namespace ConsoleApplication1 { internal class Program {
- 84. Рефлексия То, что сборки полностью себя описывают, открывает теоретическую возможность программного доступа к метаданным сборки. В
- 85. Рефлексия В большинстве современных компьютерных архитектур программные инструкции (код) хранятся как данные. Разница между кодом и
- 86. Рефлексия Рефлексия может использоваться для наблюдения и изменения программы во время выполнения. Рефлексивный компонент программы может
- 87. Рефлексия Программы, написанные на языках программирования, поддерживающих рефлексию, наделены дополнительными возможностями, реализация которых на языках низкого
- 88. Практическое применение Загрузчики классов виртуальных машин Чтение комментариев (метаданных) на этапе выполнения (атрибуты, аннотации) Получение подробной
- 89. .Net Reflector .NET Reflector — платная утилита для Microsoft .NET, комбинирующая браузер классов, статический анализатор и
- 90. Рефлекторы .NET Reflector может использоваться для нахождения мест, имеющих проблемы с производительностью и поиска багов. Он
- 91. dotPeek decompiler Free .Net decompiler: https://www.jetbrains.com/decompiler/
- 92. Практика Установка .Net Reflector Изучение исходного кода игры Smile
- 93. ILdasm Дизассемблер IL — сопутствующее средство Ассемблера IL (Ilasm.exe). Ildasm.exe принимает входной исполняемый файл, содержащий код
- 94. Обфускация Обфускация (от лат. obfuscare — затенять, затемнять; и англ. obfuscate — делать неочевидным, запутанным, сбивать
- 95. Обфускаторы Запутывание кода может осуществляться на уровне алгоритма, исходного текста и/или ассемблерного текста. Для создания запутанного
- 96. Цели обфускации Затруднение декомпиляции/отладки и изучения программ с целью обнаружения функциональности Затруднение декомпиляции проприетарных программ с
- 97. Пример обфускации Исходный вариант кода: int COUNT = 100; float TAX_RATE = 0.2; for (int i=0;
- 98. Обфускация Как правило, обфускация на уровне машинного кода увеличивает время выполнения программы. Поэтому она применяется в
- 99. Обфускация В отличие от обычных языков, таких как C++ и Паскаль, компилирующих в машинный код, язык
- 100. Обфускация Декомпиляция программ Java и .NET достаточно проста. Поэтому, обфускатор оказывает неоценимую помощь тем, кто хочет
- 101. Обфускаторы Обзор обфускаторов для .NET: http://habrahabr.ru/post/97062/ Принципы работы: http://habrahabr.ru/post/74463/ Скачать обфускатор: http://www.eziriz.com/downloads.htm
- 107. Уроки Текстовые уроки: https://metanit.com/sharp/ https://professorweb.ru/my/csharp/charp_theory/level1/index.php Видео-уроки: Уроки Сергея Байдачного!
- 108. Литература по C# Джефри Рихтер Герберт Шилдт Книги уже в беседе
- 110. Скачать презентацию