Язык c и платформа net

Язык программирования C#, его основные особенности, преимущества и недостатки. Краткая характеристика, плюсы и минусы платформы .NET. Перемещение элементов из listBox1 в listBox2. Удаление выделенного элемента и удаление всех элементов из ListBox2.

РубрикаПрограммирование, компьютеры и кибернетикаВидотчет по практикеЯзыкрусскийДата добавления07.08.2013Размер файла1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образование и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Южно-Уральский государственный университет»

(национальный исследовательский университет)

Факультет «Экономика и предпринимательство»

Кафедра «Информационная безопасность»

Специальность 090103 — Организация и технология защиты информации

ОТЧЕТ ПО УЧЕБНОЙ ПРАКТИКЕ

студент группы ЭиП-130

    Введение

  • 1. Постановка задач
  • 1.1 Постановка задачи для задания №1
  • 1.2 Постановка задачи для задания №2
  • 2. Спецификация для задания №2
  • 3. Описание тестовых заданий, распечатки результатов и анализ правильности функционирования программного продукта
    • 3.1 Задание №1
    • 3.2 Задание №2
    • 4. Заключение
    • 5. Приложение 1. Код программы. Задание№1
    • 6. Приложение 2. Код программы. Задание №2
      • Введение
      • Язык C# был создан в 2000 году корпорацией Microsoft, основным постулатом этого языка является высказывание: «всякая сущность есть объект». Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода.
      • Язык программирования C# вобрал лучшие черты целого ряда своих предшественников. Кроме языка C++, необходимо указать еще несколько знаковых для настоящего времени языков программирования, а именно, Java и Visual Basic.
      • Проанализировав основные особенности данного языка программирования, я попытаюсь сформулировать наиболее заметные преимущества данного языка программирования. Язык программирования C# призван практически реализовать компонентно-ориентированный подход к программированию, который способствует меньшей машинно-архитектурной зависимости результирующего программного кода, большей гибкости, переносимости и легкости повторного использования (фрагментов) программ. Принципиально важным отличием от предшественников является изначальная ориентация на безопасность кода (что особенно заметно в сравнении с языками C и C++), данная безопасность прежде всего соблюдена в самой платформе .NET, но о ней поговорим позже. Расширенная поддержка событийно-ориентированного программирования выгодно отличает язык программирования C# от целого ряда предшественников. Объединение лучших идей современных языков программирования (Java, C++, Visual Basic и др.) делает язык C# не просто суммой их достоинств, а языком программирования нового поколения.
      • Несмотря на значительное количество принципиальных преимуществ по сравнению с существующими аналогами, язык программирования C# не лишен и отдельных недостатков, которые, весьма вероятно, носят субъективный, локальный, временный характер. Прежде всего, необходимо отметить то обстоятельство, что язык программирования C# имеет довольно сложный синтаксис (можно утверждать, что примерно 75% его синтаксических возможностей аналогичны языку программирования Java, 10% — подобны языку программирования C++, а 5% — заимствованы из языка программирования Visual Basic). Объем действительно свежих концептуальных идей в языке C# относительно невысок (по мнению некоторых исследователей, он, составляет около 10% от общего объема конструкций языка).
      • До настоящего времени компилятор и среда разработки программного обеспечения, поддерживающие язык C#, обладают относительно невысокой производительностью (т.е. код программы на языке C# компилируется и выполняется примерно в 100 раз медленнее, чем тот же код на языке C). Справедливости ради нужно отметить, что производительность программ на C# вполне сравнима с тем же показателем для языка Java.
      • И так подведём краткие итоги по преимуществам языка программирования С#:
      • 1. Компонентно-ориентированное программирование;

        2. Безопасный (по сравнению с языками C и C++) код;

        3. Унифицированная система типизации;

        4. Поддержка событийно-ориентированного программирования;

        5. «Родной» язык для создания приложений в среде .NET;

        6. Объединение лучших идей современных языков программирования: Java, C++, Visual Basic и др.

        Недостатки языка программирования C#:

        1. Довольно сложный синтаксис (75% из Java, 10% из C++, 5% из Visual Basic);

        2. Относительно немного свежих концептуальных идей (вероятно, менее чем 10% конструкций языка);

        3. Относительно невысокая производительность (

        в 100 раз медленнее, чем язык C, хотя и сравнимая с языком Java).

        Далее поговорим об особенностях платформы .NET и её преимуществах и недостатках.

        Достоинства платформы .NET:

        1. Платформа .NET основана на единой объектно-ориентированной модели; все сервисы, предоставляемые программисту платформой, оформлены в виде единой иерархии классов. Это решает многие проблемы программирования на платформе Win32.

        2. Благодаря тому, что промежуточное представление .NET не привязано к какой-либо платформе, приложения, созданные в архитектуре .NET, являются многоплатформенными.

        3. Платформа .NET предоставляет автоматическое управление ресурсами. Это решает многие распространенные проблемы, такие как утечки памяти, повторное освобождение ресурса и т.п.

        4. Код, сгенерированный для .NET, может быть проверен на безопасность. Это гарантирует, что приложение не может навредить пользователю или нарушить функционирование операционной системы (так называемая «модель песочницы»). Таким образом, приложения для .NET могут быть сертифицированы на безопасность.

        5. Межъязыковое взаимодействие (language interoperability). Это единая модель, позволяющая на равных пользоваться различными языками для создания приложений. Так как MSIL не зависит от исходного языка программирования или от целевой платформы, в рамках .NET становится возможным развивать новые программы на базе старых программ — причем и первый, и второй языки программирования не так уж важны!

        Недостатки платформы .NET:

        1. Самым ощутимым недостатком является существенное замедление выполнения программ.

        С# Класс языкаПоявился в2000 ; 20 лет назад ( 2000 )АвторАндерс Хейлсберг РазработчикMicrosoftРасширение файлов.csВыпуск8.0 [1] (23 сентября 2019 ; 6 месяцев назад ( 2019-09-23 ) )Система типовстатическая, динамическая, строгая, безопасная, вывод типовОсновные реализации.NET Framework , Mono, .NET Core , DotGNU (заморожен), Universal Windows PlatformДиалектыCω, Spec#, Polyphonic C#, Enhanced C#Испытал влияниеC++, Java [2] [3] [4] , Delphi, Модула-3 и Smalltalk Повлиял наCω, F#, Nemerle, Vala, Windows PowerShell, KotlinЛицензия

        Компилятор Mono: dual GPLv3 and MIT/X11

        Сайтdocs.microsoft.com/…​ (англ.)ПлатформаCommon Language Infrastructure Читайте также:  Gigabyte gtx 1070 отзывы

        C# (произносится си шарп) — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота [7] как язык разработки приложений для платформы Microsoft .NET Framework. Впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

        C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

        Переняв многое от своих предшественников — языков C++, Delphi, Модула, Smalltalk и, в особенности, Java — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).

        ЛУЧШИЙ ХОСТИНГ 2023

        14 лет дарим людям удовольствие от работы с хостингом

        ⭐ Есть бесплатный тариф
        ⭐ Бесплатный SSL сертификат
        ⭐ Автоматическое резервное копирование
        ⭐ Быстрая техническая поддержка.

        Содержание

        Особенности языка [ править | править код ]

        C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем (однако, эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET). CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.

        Название языка [ править | править код ]

        Название «Си шарп» (от англ. sharp — диез) происходит от буквенной музыкальной нотации, где латинской букве C соответствует нота До, а знак диез (англ. sharp) означает повышение соответствующего ноте звука на полутон [8] , что аналогично названию языка C++, где «++» обозначает инкремент переменной. Название также является игрой с цепочкой C → C++ → C++++(C#) , так как символ «#» можно представить состоящим из 4 знаков «+» [9] .

        Из-за технических ограничений на отображение (стандартные шрифты, браузеры и т. д.) и того, что знак диеза ♯ не представлен на стандартной клавиатуре компьютера, при записи имени языка программирования используют знак решётки (#) [10] . Это соглашение отражено в Спецификации языка C# ECMA-334 [11] . Тем не менее, на практике (например, при размещении рекламы и коробочном дизайне [12] ), «Майкрософт» использует знак диеза.

        Названия языков программирования не принято переводить, поэтому язык называют, используя транскрипцию, — «Си шарп».

        Стандартизация [ править | править код ]

        C# стандартизирован в ECMA (ECMA-334) [13] и ISO (ISO/IEC 23270) [14] .

        Известно как минимум о трёх независимых реализациях C#, базирующихся на этой спецификации и находящихся в настоящее время на различных стадиях разработки:

        • Mono, начата компанией Ximian, продолжена её покупателем и преемником Novell, а затем Xamarin.
        • dotGNU и Portable.NET, разрабатываемые Free Software Foundation.

        Версии [ править | править код ]

        На протяжении разработки языка C# было выпущено несколько его версий:

        ВерсияСпецификация языкаДата.NET FrameworkVisual StudioECMAISO/IECMicrosoftC# 1.0Декабрь 2002Апрель 2003 (недоступная ссылка)Январь 2002Январь 2002.NET Framework 1.0Visual Studio .NET (2002)C# 1.2Октябрь 2003Апрель 2003.NET Framework 1.1Visual Studio .NET 2003C# 2.0Июнь 2006Сентябрь 2006Сентябрь 2005[15]Ноябрь 2005.NET Framework 2.0Visual Studio 2005C# 3.0Отсутствует [16]Август 2007Ноябрь 2007.NET Framework 3.5Visual Studio 2008C# 4.0Апрель 2010Апрель 2010.NET Framework 4Visual Studio 2010C# 5.0Декабрь 2017Отсутствует [16]Июнь 2013Август 2012.NET Framework 4.5Visual Studio 2012C# 6.0ОтсутствуетИюль 2015Июль 2015.NET Framework 4.6Visual Studio 2015C# 7.0ОтсутствуетМарт 2017Март 2017.NET Framework 4.6.2Visual Studio 2017C# 8.0ОтсутствуетСентябрь 2019.NET Framework 4.8Visual Studio 16.3.0Общая информация по версиям ВерсияНововведенияC# 2.0

        • Частичные типы
        • Обобщённые типы (generics)
        • Итераторы и ключевое слово yield
        • Анонимные методы
        • Оператор null-объединения
        • Nullable-типы

        C# 3.0

        • Запросы, интегрированные в язык (LINQ)
        • Инициализаторы объектов и коллекций
        • Лямбда-выражения
        • Деревья выражений
        • Неявная типизация и ключевое слово var
        • Анонимные типы
        • Методы расширения
        • Автоматические свойства

        C# 4.0

        • Динамическое связывание и ключевое слово dynamic
        • Именованные и опциональные аргументы
        • Обобщенная ковариантность и контрвариантность
        • Библиотека TPL, концепция задач и классы Task , Parallel
        • Класс MemoryCache
        • Классы параллельных коллекций

        C# 5.0

        • Шаблон TAP
        • Асинхронные методы async и await
        • Сведения о вызывающем объекте

        C# 6.0

        • Компилятор как сервис
        • Импорт членов статических типов в пространство имён
        • Фильтры исключений
        • await в блоках catch / finally
        • Инициализаторы автосвойств
        • Автосвойства только для чтения
        • null-условные операции ( ?. и ?[] )
        • Интерполяция строк
        • Оператор nameof
        • Инициализатор словаря
        • Функции сжатые до выражений

        C# 7.0 [17]

        • out -переменные
        • Сопоставление с шаблоном
        • Шаблоны с is
        • Шаблоны и выражение switch
        • Кортежи
        • Распаковка кортежей (деконструкторы)
        • Локальные функции
        • Улучшения литералов
        • Локальные переменные и возвращаемые значения по ссылке
        • Расширение списка типов, возвращаемых асинхронными методами
        • Больше членов класса в виде выражений
        • throw выражения

        C# 8.0

        • Члены только для чтения
        • Члены интерфейса по умолчанию
        • Улучшения сопоставления шаблонов
        • Объявления using
        • Статические локальные функции
        • Удаляемые ссылочные структуры
        • Ссылочные типы, допускающие значение NULL
        • Асинхронные потоки
        • Индексы и диапазоны
        • Присваивание объединения со значением NULL
        • Неуправляемые сконструированные типы
        • Выражения stackalloc во вложенных выражениях
        • Больше членов класса в виде выражений
        • Улучшения интерполированных строк

        Читайте также:  Условное форматирование ячеек с формулой

        Версия 1.0 [ править | править код ]

        Проект C# был начат в декабре 1998 и получил кодовое название COOL (C-style Object Oriented Language). Версия 1.0 была анонсирована вместе с платформой .NET в июне 2000 года, тогда же появилась и первая общедоступная бета-версия; C# 1.0 окончательно вышел вместе с Microsoft Visual Studio .NET в феврале 2002 года.

        Первая версия C# напоминала по своим возможностям Java 1.4, несколько их расширяя: так, в C# имелись свойства (выглядящие в коде как поля объекта, но на деле вызывающие при обращении к ним методы класса), индексаторы (подобные свойствам, но принимающие параметр как индекс массива), события, делегаты, циклы foreach , структуры, передаваемые по значению, автоматическое преобразование встроенных типов в объекты при необходимости (boxing), атрибуты, встроенные средства взаимодействия с неуправляемым кодом (DLL, COM) и прочее.

        Кроме того, в C# решено было перенести некоторые возможности C++, отсутствовавшие в Java: беззнаковые типы, перегрузку операторов (с некоторыми ограничениями, в отличие от C++), передача параметров в метод по ссылке, методы с переменным числом параметров, оператор goto (с ограничениями). Также в C# оставили ограниченную возможность работы с указателями — в местах кода, специально обозначенных словом unsafe и при указании специальной опции компилятору.

        Версия 2.0 [ править | править код ]

        Проект спецификации C# 2.0 впервые был опубликован Microsoft в октябре 2003 года; в 2004 году выходили бета-версии (проект с кодовым названием Whidbey), C# 2.0 окончательно вышел 7 ноября 2005 года вместе с Visual Studio 2005 и .NET 2.0.

        Новые возможности в версии 2.0

        • Частичные типы (разделение реализации класса более чем на один файл).
        • Обобщённые, или параметризованные типы (generics). В отличие от шаблонов C++, они поддерживают некоторые дополнительные возможности и работают на уровне виртуальной машины. Вместе с тем, параметрами обобщённого типа не могут быть выражения, они не могут быть полностью или частично специализированы, не поддерживают шаблонных параметров по умолчанию, от шаблонного параметра нельзя наследоваться, и т. д. [18]
        • Новая форма итератора, позволяющая создавать сопрограммы с помощью ключевого слова yield , подобно Python и Ruby.
        • Анонимные методы, обеспечивающие функциональность замыкания.
        • Оператор null-объединения: ‘??’: return obj1 ?? obj2; означает (в нотации C# 1.0) return obj1!=null ? obj1 : obj2; .
        • Обнуляемые (nullable) типы — значения (обозначаемые вопросительным знаком, например, int? i = null; ), представляющие собой те же самые типы-значения, способные принимать также значение null . Такие типы позволяют улучшить взаимодействие с базами данных через язык SQL.
        • Возможность создавать хранимые процедуры, триггеры и даже типы данных на .Net языках (в том числе и на C#).
        • Поддержка 64-разрядных вычислений, что кроме всего прочего, позволяет увеличить адресное пространство и использовать 64-разрядные примитивные типы данных.

        Версия 3.0 [ править | править код ]

        В июне 2004 года Андерс Хейлсберг впервые рассказал на сайте Microsoft о планируемых расширениях языка в C#3.0 [19] . В сентябре 2005 года вышли проект спецификации C# 3.0 и бета-версия C# 3.0, устанавливаемая в виде дополнения к существующим Visual Studio 2005 и .NET 2.0. Окончательно эта версия языка вошла в Visual Studio 2008 и .NET 3.5.

        Новые возможности в версии 3.0

        В C# 3.0 появились следующие радикальные добавления к языку:

        • ключевые слова select, from, where , позволяющие делать запросы из XML документов, коллекций и т. п. Эти запросы имеют сходство с запросами SQL и реализуются компонентом LINQ. (Сама фраза «language integrated query» переводится «запрос, интегрированный в язык».)
        • Инициализация объекта вместе с его свойствами:
        • Деревья выражений:

        лямбда-выражения теперь могут представляться в виде структуры данных, доступной для обхода во время выполнения, тем самым позволяя транслировать строго типизированные C#-выражения в другие домены (например, выражения SQL).

        • Неявная типизация: Вывод типов локальной переменной. Для неявной типизации вместо названия типа данных используется ключевое слово var . Затем уже при компиляции компилятор сам выводит тип данных исходя из присвоенного значения: var x = «hello»; вместо string x = «hello»;
        • Анонимные типы: var x = new < Name = «James» >;
        • Методы расширения. Появилась возможность добавления новых методов в уже существующие классы. Реализуется с помощью ключевого слова this при первом параметре статической функции статического класса.
        • Автоматические свойства: компилятор сгенерирует закрытое (private) поле и соответствующие аксессор и мутатор для кода вида

        C# 3.0 совместим с C# 2.0 по генерируемому MSIL-коду; улучшения в языке — чисто синтаксические и реализуются на этапе компиляции. Например, многие из интегрированных запросов LINQ можно осуществить, используя безымянные делегаты в сочетании с предикатными методами над контейнерами наподобие List.FindAll и List.RemoveAll .

        Версия 4.0 [ править | править код ]

        Превью C# 4.0 было представлено в конце 2008 года, вместе с CTP-версией Visual Studio 2010.

        Visual Basic 10.0 и C# 4.0 были выпущены в апреле 2010 года, одновременно с выпуском Visual Studio 2010.

        Новые возможности в версии 4.0 [20]

        • Возможность использования позднего связывания, для использования:
        • с языками с динамической типизацией (Python, Ruby)
        • с COM-объектами
        • отражения (reflection)
        • объектов с изменяемой структурой (DOM). Появляется ключевое слово dynamic .

        Читайте также:  Условие перпендикулярности векторов формула

      • Именованные и опциональные параметры
      • Новые возможности COM interop
      • Ковариантность и контравариантность обобщенных интерфейсов и делегатов
      • Контракты в коде (Code Contracts)
      • Библиотека параллельных задач TPL (Task Parallel Library), концепция задач и классы Task , TaskFactory , Parallel
      • Добавлен класс MemoryCache , который предназначен для кэширования контента. Он похож на класс Cache ASP.NET, но его можно использовать при написании веб- / графических / консольных приложений.
      • Добавлено пространство имен System.Collections.Concurrent и новые классы параллельных коллекций (ConcurrentQueue, ConcurrentStack, ConcurrentBag,…), которые предоставляют не только большую эффективность, но и более полную потокобезопасность.
      • Версия 5.0 [ править | править код ]

        Новые возможности в версии 5.0

        • Шаблон TAP (Task-based Asynchronous Pattern). TAP использует один метод для представления инициализации и завершения асинхронной операции.
        • Асинхронные методы ( async и await ) — как реализация шаблона TAP.
        • Сведения о вызывающем объекте

        Версия 6.0 [ править | править код ]

        Новые возможности в версии 6.0

        • null-условные операторы. Добавлены новые операторы: ?. и ?[] :
        • Функции сжатые до выражений (expression-bodied functions). Теперь определение метода может быть задано с использованием лямбда-синтаксиса:
        • Инициализаторы автосвойств. Автосвойства теперь можно инициализировать при объявлении:
        • Автосвойства только для чтения. Автосвойства теперь могут быть объявлены без сеттеров:
        • Инициализаторы индексов. Теперь можно инициализировать не только объекты и коллекции, но и словари:
        • Интерполяция строк. Вместо использования конструкций с String.Format() , например:

        теперь можно размещать код прямо в строке:

        • Фильтры исключений. Появилась возможность задавать условия для блоков catch :
        • Импорт статических функций типов. Теперь доступ к статическим членам типов возможен без указания полного имени этих членов:
        • Оператор nameof . Новый оператор, который возвращает компактное строковое представление для переданного в качестве аргумента типа:
        • Для асинхронного программирования была добавлена возможность использования операторов await внутри блоков catch и finally :

        Версия 7.0 [ править | править код ]

        Новые возможности в версии 7.0 [17]

        • out -переменные, которые позволяют объявить переменные сразу в вызове метода (причем областью видимости для таких переменных является внешний блок):
        • Сопоставление с шаблоном. Вводится понятие шаблона ( pattern ), который представляет собой синтаксическую конструкцию, позволяющую проверить соответствие переменной определённой форме и извлечь из неё информацию.
        • Шаблоны с is ( is теперь может использоваться не только с типом, но и с шаблоном — в качестве правого аргумента)
        • Шаблоны и выражение switch . Варианты использования switch были расширены, теперь можно:
        • использовать любые типы (не только примитивные);
        • использовать шаблоны в выражениях case ;
        • добавлять дополнительные условия к выражениям case (используя ключевое слово when ).
      • Кортежи. Добавлен тип кортеж значений (структура ValueTuple ) и синтаксис работы с данными этого типа:
        • Распаковка кортежей. Была добавлена новая синтаксическая конструкция деконструктор, позволяющая извлечь кортеж, состоящий из членов класса.
        • Локальные функции. Теперь функцию, которая используется только в теле какого-либо метода, можно объявить прямо в теле этого метода.
        • Улучшения литералов. Были добавлены бинарные литералы и символ разделителя ( _ ) в числовых литералах.
        • Локальные переменные и возвращаемые значения по ссылке. Расширена функциональность ключевого слова ref . Теперь можно возвратить данные из метода или сохранить их в локальной переменной по ссылке.
        • Расширение списка типов, возвращаемых асинхронными методами
        • Больше членов класса в виде выражений. Синтаксис функций, сжатых до выражений ( expression-bodied functions ), теперь применим для сеттеров, геттеров, конструкторов и деструкторов.
        • throw -выражения. Теперь можно использовать throw в функциях, сжатых до выражений ( expression-bodied functions ):

        Пример «Hello, World!» [ править | править код ]

        Ниже представлен код классической программы «Hello world» на C# для консольного приложения:

        и код этой же программы для приложения Windows Forms:

        Эта классическая книга представляет собой всеобъемлющий источник сведений о языке программирования C# и о связанной с ним инфраструктуре. В 8-м издании книги вы найдете описание функциональных возможностей самых последних версий C# 7.0 и 7.1 и .NET 4.7, а также совершенно новые главы о легковесной межплатформенной инфраструктуре Microsoft .NET Core, включая версию .NET Core 2.0. Книга охватывает ASP.NET Core, Entity Framework (EF) Core и т.д. наряду с последними обновлениями платформы .NET, в том числе внесенными в Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) и ASP.NET MVC.

        Погрузитесь в книгу и выясните, почему на протяжении более 15 лет она была лидером у разработчиков по всему миру. Сформируйте прочный фундамент в виде знания приемов объектно-ориентированной обработки, атрибутов и рефлексии, обобщений и коллекций, а также множества более сложных тем, которые не раскрываются в других книгах (коды операций CIL, выпуск динамических сборок и т.д.). С помощью настоящей книги вы сможете уверенно использовать язык C# на практике и хорошо ориентироваться в мире .NET.

        Книга предназначена для опытных разработчиков ПО, заинтересованных в освоении новых средств .NET 4.7, .NET Core и языка C#. Она будет служить всеобъемлющим руководством и настольным справочником как для тех, кто впервые переходит на платформу .NET, так и для тех, кто ранее писал приложения для предшествующих версий .NET.

        В книге рассматриваются следующие темы

        Новейшие возможности версий C# 7.0 и 7.1, от кортежей до сопоставления с образцом
        Базовые основы легковесной платформы Microsoft с открытым кодом .NET Core, включая ASP.NET Core MVC, веб-службы ASP.NET Core и Entity Framework Core
        Полное описание XAML, .NET 4.7 и Visual Studio 2017
        Философия, лежащая в основе .NET и новой межплатформенной версии .NET Core

        Если вам понравилась эта книга поделитесь ею с друзьями, тем самым вы помогаете нам развиваться и добавлять всё больше интересных и нужным вам книг!

  • 9726552