Язык C# и .NET путь продолжающего в 2020 году


Оглавление (нажмите, чтобы открыть):

Программа минимум: что должен знать начинающий C# программист

Рассказывает Мош Хамедани, автор курсов по C# на Udemy

Мои студенты часто задают вопросы такого рода:

Мош, меня только что приняли на должность Junior C#-разработчик. Что ты посоветуешь? Что мне необходимо выучить?

Итак, если вы ищете первую работу в качестве C#-разработчика или недавно её получили, эта статья расскажет вам, какие навыки являются необходимыми. Я постарался объединить их в единый «путь», который подойдёт желающим разрабатывать как декстопные, так и веб-приложения.

Прежде чем я углублюсь в детали, я проясню кое-что: вы — джуниор, вам не нужно знать всё на свете! Никто не знает всего, даже матёрые разработчики. Мир программирования огромен и постоянно растёт. Поэтому каждый разработчик силён лишь в определённых областях, в зависимости от тех проектов, над которыми он работал.

Каждый навык будет сопровождаться одной или несколькими ссылками на полезные ресурсы.

Базовые навыки

Вне зависимости от выбранной сферы разработки существует несколько моментов, которые стоит знать.

Структуры данных и алгоритмы

Если у вас нет степени в Computer Science, я очень рекомендую потратить месяц на изучение структур данных и алгоритмов. Это основы программирования. Конечно, вы можете пропустить их и заняться веб-разработкой, но поверьте, разница между изучавшим этот вопрос программистом и пропустившим его заметна.

4 октября 2020 – 1 марта 2020, Москва и онлайн, беcплатно

Вы можете удивиться, но крупные компании наподобие Microsoft, Apple и Amazon уделяют на интервью много времени именно проверке знания структур данных и алгоритмов, а не ASP.NET 5 или WPF! Они просто хотят понять, можете ли вы мыслить, как программист.

Вот неплохая книга для начала изучения: Data Structures and Algorithms Made Easy

Если вы в чём-то не разобрались — не отчаивайтесь! Просто убедитесь, что вы поняли, что такое списки, стеки, очереди, деревья и хеш-таблицы, и умеете их реализовывать на чистом C#. Реализуйте несколько алгоритмов поиска и сортировки.

Базы данных

SQL Server — это наиболее часто используемая реляционная СУБД среди .NET разработчиков. Разберитесь в основах реляционных баз данных и базовых операциях в SQL Server.

T-SQL — это язык запросов, используемый в SQL Server. Освойте функции SELECT, INSERT, UPDATE, DELETE, JOIN и GROUP BY.

Вот полезные материалы:

Когда вы работаете с РСУБД, то часто используете системы объектно-реляционного отображения для работы с объектами в базе данных. Существует много таких систем, но самой популярной является Entity Framework.

Материалы для изучения:

Веб-разработка

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

Поэтому все веб-разработчики делятся на 3 группы:

  • Фронтенд-разработчики;
  • Бэкенд-разработчики;
  • Full-stack-разработчики: те, кто занимаются и фронт-, и бэкендом.

В зависимости от ваших предпочтений стоит выбрать один из двух путей. Full-stack-разработчики обычно более востребованы.

Фронтенд

Если вы собрались заняться фронтендом, то вам нужно познакомиться с основами HTML, CSS и Javascript.

HTML — это язык разметки веб-страниц. В отличие от языков программирования (таких как C#), у него нет логики. Для декорации нашей страницы мы используем CSS. И, наконец, JavaScript — язык, отвечающий за поведение веб-страницы.

Материалы для изучения:

Бэкенд

ASP.NET MVC — это доминирующий среди C#-разработчиков фреймворк для создания серверных веб-приложений. Для работы с ASP.NET MVC вам всё равно потребуется базовое знание HTML, CSS и Javascript. Поэтому я советую вам начать изучение с фронтенда и затем перейти к бэкенду, изучив весь спектр веб-разработки.

Вот моё руководство, в котором мы создадим простое приложение с использованием ASP.NET MVC5 и Entity Framework 6: A Step-by-Step ASP.NET MVC Tutorial for Beginners

Десктоп-разработка

Если вы хотите заняться разработкой приложений под Windows, вам понадобится отличный от предыдущего набор навыков (хотя и они, как ни странно, могут пригодиться). Большинство заданий потребует от вас знания XAML, WPF или Windows Forms.

suhorukov.com

Языки программирования — это всего лишь инструменты, которые создаются для решения конкретных задач, и C# не был исключением. Правда, его путь был весьма тернист и сложен, любой роман позавидует: и судебное разбирательство, и война платформ, и много чего еще. Однако все сложности только помогли быстрому развитию и становлению C#. Учась на ошибках и анализируя недостатки ближайших «родственников» и конкурентов: Java, Delphi и C++, Smalltalk и некоторых других, он взял от них самое лучшее и сумел во многом избежать их недостатков. Благодаря чему и удостоился названия C# — С c четырьмя плюсами, с двумя инкрементами, «диез» — на полтона выше.

Фактически компания Майкрософт показала, что ее детище более чем достойно своих прародителей. Большая часть программного обеспечения для Windows (в том числе и встроенного в операционную систему) написана именно на C#. Впрочем, как и бесчисленное число внутрибанковских систем, web-сайтов и мобильных приложений. Ведь что такое C#? Это объектно-ориентированный язык, разработанный специально для использования с платформой .NET. Бесчисленное множество готовых компонент .NET и легкость использования WinAPI и COM позволяют разрабатывать настольные приложения настолько комфортно и быстро, что многие разработчики и альтернативы для написания проектов «под окна» не видят. И ведь на этом преимущества только начинаются.

C# как язык, будучи разработанным в 2000 году, пережил множество структурных изменений и к настоящему моменту обзавелся огромным количеством возможностей, недоступных ранее в Java или С++. Это и расширения для функционального программирования, и generics (упрощенная версия шаблонов из C++), и даже встроенный в C# язык запросов LINQ, радикально упростивший работу с любыми источниками данных. Кроме того, число компонент и каркасов для разработки самых разных приложений поражает воображение: хотите делать настольные приложения с оригинальным интерфейсом? Пожалуйста, вот вам WPF. Хотите комфортно и быстро писать высоконагруженные web-сайты? Извольте, ASP.NET MVC. Хотите сделать сетевое приложение, работающее через любые каналы связи — WCF к вашим услугам. Нужно интегрировать в свое приложение код, написанный на C++? Не проблема, это легко реализуется через PInvoke. И это далеко не полный перечень возможностей!

Профи и идейные приверженцы назовут вам среди прочих такие преимущества и факты, как:

множество полностью готовых к применению библиотек, уже встроенных в .NET Framework;

комфортная среда разработки, что гарантирует отсутствие лишних телодвижений и огромную экономию ресурсов: времени, денег и, чего греха таить, нервов разработчика;

низкий порог вхождения для любого, кто более-менее знаком c C-подобными языками и с Java в частности;

стремительный захват языком новых платформ и операционных систем, благодаря развитию таких проектов, как mono. С недавних пор C#-приложения могут компилироваться и работать на *nix-платформах и даже в MacOS;

работа даже на мобильных платформах — проект Xamarin, позволяющий разрабатывать под Android и iPhone;


открытый код у .NET Framework — переход на open source только дал толчок для развития языка, в том числе и в сторону его «мобилизации»;

C# проявил себя и в области веб: на нем прекрасно пишется back-end для сайтов, да и вообще любые сетевые приложения. Хотите примеров? Добро пожаловать на stackoverflow, МоеДело, myspace: написаны на C# и .NET Framework. Но главное, что на современном рынке труда это одно из самых интересных и очень перспективных направлений. По мнению рекрутеров КА Сухорукова, если C#-программист хочет быть востребованным, ему придется изучить веб-технологии! Так что не одним десктопом живет и работает хороший специалист. И платят ему, как сказали нам по секрету, от 17 000 до 28 000 руб. только на первом этапе его карьеры.

Остается только отметить, что спор относительно ограниченности «шарпа» одной только Windows уже не стоит рассмотрения: язык и платформа развиваются и прекрасно себя чувствуют за пределами операционной системы от Microsoft.

Итак, если вы действительно желаете начать программировать на C# и .NET Framework, то мы можем предложить вам отличный старт: Курс С# (C Sharp) онлайн , который начинается уже в марте. На нем вы познакомитесь не только с базовыми конструкциями, но и изучите на практике самые современные технологии Microsoft — WCF, WPF, ASP.NET MVC.

Помогать вам в этом нелегком, скажем честно, деле будет опытный разработчик и отличный преподаватель Павел Новиков , за плечами которого — разработка информационных систем для бизнеса, web-сайтов, открытых программных продуктов. И кстати, раз уж есть такая возможность, познакомимся поближе и зададим несколько вопросов о его курсе.

Павел, скажите, что же должен знать и уметь хороший C# программист, чтобы быть востребованным на рынке?

Он должен иметь четкое и правильное представление об используемых подходах, чтобы быстро понимать любой уже существующий код на C#. Отличное знание языка, то есть четкое понимание, что будет делать машина в ответ на конкретную последовательность языковых конструкций (в таких случаях я рекомендую открывать полный справочник ключевых слов и читать про каждое). Само собой, необходимы знания ООП/ООАД и опыт проектирования систем. Тут, как говорится, чем больше, тем лучше. Ну и самые основы программирования, про которые я не устаю повторять, — алгоритмы и структуры данных, которые даются на первом курсе любого более-менее хорошего вуза по направлению IT (от редактора: у нас есть курс Основы программирования , который поможет вам получить хорошую базу). Вот эти основы должны быть, что называется, «в крови» у каждого программиста, независимо от языка, на котором он пишет.

А какие пути развития есть у специалиста, на ваш взгляд?

Если не брать в расчет систему должностей и шильдиков в конкретной компании, то по большому счету путей развития два. Первый — работа в компании за ежемесячную зарплату, с соцпакетом, обедами, бесплатным тренажерным залом, корпоративами, графиком «с 10 до 19» (варьируется от компании к компании) и спокойная жизнь. Второй — фриланс: договоры, подрядчики/заказчики, поиск заказов, нестандартные задачи, жесткая самодисциплина, полностью свободный график (чаще всего это означает, что работать вы будете по 12 часов в день, преимущественно ночью), отчеты в налоговую инспекцию и жизнь, полная приключений, рисков, интересных людей, задач и ощутимо большее количество денег, которое ограничивается только вашими возможностями. Как правило, в области фриланса работают более квалифицированные специалисты, но бывают и досадные исключения.

В Академии Сухорукова вы ведете курс C#, расскажите о нем подробнее? Какова его программа? На кого он нацелен в первую очередь?

Курс нацелен в первую очередь на людей, у которых уже имеются какой-никакой опыт программирования, желание этим самым программированием заниматься, здоровый интерес ко всякого рода инженерным конструкциям и аналитическим складом ума. В ходе курса я даю детальное введение в инструменты, с помощью которых пишутся программы на C#, понимание базовых языковых конструкций, небольшое введение в ООП, а также показываю и рассказываю о том, как пишутся приложения на C# в промышленных, так выразимся, условиях. Материала очень много, материал достаточно сложный, но я всегда отвечаю на любые вопросы и разъясняю непонятные места в индивидуальном порядке, если это необходимо. Изначально я начал преподавать, потому что меня несколько удивило количество программистов, приходящих ко мне на собеседование и не знающих самые базовые и самые важные нюансы языка, а также не имеющих представления об общем подходе к написанию приложений. Именно на устранение этого обстоятельства курс главным образом и нацелен.

Какая подготовка потребуется от слушателя для его успешного прохождения?

Наличие хотя бы минимального опыта программирования. Совсем хорошо, если слушатель знает язык C и общий подход к работе с памятью. Огромным плюсом является знание и понимание ООП. В этом случае слушатель получит максимальную отдачу от курса, приобретя очень богатый набор конкретных знаний.

От себя нам остается только добавить, что все эти знания и умения вы будете получать с минимумом трудозатрат в удобной домашней обстановке, находясь онлайн. Впрочем, это не отменяет необходимость внимательно слушать лекции и скрупулезно готовить домашние задания. Павел — преподаватель строгий, но справедливый!

Ждем вас уже в марте в нашей уютной онлайн-аудитории!

Есть ли будущее у c# [закрыт]

Господа, простите за немного холиварный вопрос, но хочу услышать ваше мнение.

Посмотрев на количество вакансий, прочитав разные аналитические статьи и взглянув на диаграммы популярности языков программирования появилось ощущение, что C# очень теряет свои позиции. Например даже если самому подумать, то выходит, что веб направление это PHP и JSP в первую очередь, ASP идет после них. Мобильное направление это Android и приложения под IOS, WinPhone опять отстает и очень серьезно. Проектов десктопных приложений я уже давненько не встречал ни под какую платформу. И получается грустная картина, что .Net рассчитанный только под WinOS очень теряет позиции и в дальнейшем будет не совсем актуально. А вы что думаете по этому вопросу ?

Мастер Йода рекомендует:  Человеком года по версии Time стал основатель Facebook

Закрыт по причине того, что необходимо переформулировать вопрос так, чтобы можно было дать объективно верный ответ участником Nicolas Chabanovsky ♦ 15 фев ’18 в 13:33 .

Вопрос порождает бесконечные прения и дискуссии, основанные не на знаниях, а на мнениях. Для получения ответа перефразируйте ваш вопрос так, чтобы на него можно было дать однозначно правильный ответ, либо удалите вопрос вовсе. Если вопрос можно переформулировать согласно правилам, изложенным в справке, отредактируйте его.

1 ответ 1

Начну с того, что раз вы приводите данные украинских сайтов, то, вероятно, вас интересует именно этот рынок труда. К сожалению я не знаком с особенностями IT-рынка Украины, поэтому воздержус от комментариев именно по этой стране.

В общем и целом у вас тут целый ряд довольно голословных утверждений. Начнем по порядку.

Первое. C# всегда был менее популярен, чем Java или PHP. Причем, если в России он просто менее популярен, нежели Java, то скажем в США значительно менее популярен. Тому было много причины, в частности, более раннее появление Java и ее же кроссплатформенность. Поэтому я бы не стал утверждать, что это свидетельство заката C#

Второе. C# очень бурно развивается. Судите сами — дженерики, анонимные методы, делегаты, лямбды, linq, удобная модель написания асинхронного кода, грядущий roslyn — все это очень крутые вещи, которые свидетельствуют о динамичности развития языка. Сравните скажем с PHP, который никак не может разродиться новой версией, или хотя бы с Java, который только год назад обзавелся лямбдами. Нет, конечно не в лямбдах счастье, но само по себе отсутствие застоя в развитии языка говорит в его пользу.

Третье. У C# есть одно очень важное преимущество перед рядом других языков — он поддерживается крупной корпорацией. Сами знаете какой. Это в определенной степени является залогом уверенности в будущем языка. Microsoft конечно иногда любит закапывать свои детища, но, думается, это все же не тот случай — слишком много всего у них завязано на этот язык.

Четвертое. .NET наконец становится кроссплатформенным. Microsoft вынашивает наполеоновские планы по экспансии на рынок мобильной разработки, взаимодействуя с Xamarin, вовсю развивает ASP.NET, который скоро можно будет разворачивать на любых серверах. Не уверен, что они завоюют рынок мобильной разраюотки, но поживем-увидим. В любом случае это сложно назвать печальным концом платформы.

Пятое. Не забывайте про очень активно развивающееся направление Azure.

Шестое. Невысокий интерес к десктоп-приложениям вполне объясним нынешними тенденциями. Однако даже тут нужно поискать что-то лучше WPF.

По рынку труда я могу сказать, что когда мне доводилось искать работу, количество вакансий было всегда примерно одинаковым — никакого падения я не замечал.

.NET Developer

C#/.NET разработчик – это программист, который использует в своей работе технологии платформы .NET. Платформа Microsoft .NET Framework состоит из большого количества инструментов для разработки и технологий, используя которые разработчик может создавать различные типы приложений, от обычных настольных приложений и сайтов, заканчивая решениями для мобильных платформ и компьютерными играми. В основе платформы Microsoft .NET Framework лежит язык программирования C#. Именно этот язык программирования в подробностях должен освоить .NET разработчик.

Язык программирования C# более десяти лет занимает лидирующие позиции во всех рейтингах языков программирования. Так, как рынок труда активно развивается, программисты, которые хорошо знают C# и технологии .NET, являются очень востребованными. .NET разработчики способны развивать логическую последовательность команд для связи с сетями, приложениями и базами данных. От них требуется знание объектно-ориентированного проектирования и программирования с использованием систем, баз данных, а также языков программирования, которые разрабатывают программные приложения с .NET Framework. Сюда входят знания и навыки программирования на языке C#, XML и создание баз данных приложений, таких как Microsoft SQL Server.

Например, разработка интернет магазинов, форумов, онлайн сервисов, потребует знаний языка программирования, который способен реализовать полноценное взаимодействие с сайтом: организовать работу с базой данных, принять и обработать данные пользователя. Это означает, что для реализации полноценного сайта «под ключ», Вам понадобится создать не только разметку с динамическими эффектами, но и позаботиться о полноценном взаимодействии пользователя с сайтом.

Знакомство с программной платформой .NET Framework начинается с видео уроков по языку программирования С# (c sharp): С# Starter, С# Essential и С# Professional. Далее слушателю предлагается набор видео курсов, посвящённых работе с базами данных: SQL Essential, SQL Практикум, Entity Framework 5 и 6.

Только после освоения одного уровня, стоит переходить ко второму, к обучению более сложных и узконаправленных технологий. В качестве дополнительных материалов, рекомендуется просмотреть такие видео курсы: Алгоритмы и структуры данных, Рефакторинг .NET приложений, TDD (разработка через тестирование) и WCF Essential (Windows Communication Foundation). Каждый из перечисленных видео курсов направлен на расширение базовых знаний о платформе .NET Framework и составлен в полном соответствии с современными требованиями ведущих IT компаний к разработчикам программного обеспечения.

Требования к C#/.NET разработчику:

  • Владение языком программирования C#
  • Владение ООП
  • Знание технологий работы с базами данных
  • Практический опыт работы с MS SQL Server
  • Навык использования Transact-SQL
  • Знание Entity Framework
  • Базовый уровень знаний и опыт работы с .NET Framework
  • Знание технологии WCF
  • Базовый уровень знаний технологии ASP.NET MVC
  • Знание и умение применять средства коллективной работы, умение читать и понимать чужой код
  • Английский язык на уровне чтения технической документации (углубленные знания будут преимуществом)
  • Знания основ командной разработки SCRUM или Agile

C#/.NET разработчик может занимать такие должности:

История языка C# The history of C#

В этой статье содержится описание основных выпусков языка C#. This article provides a history of each major release of the C# language. Команда разработчиков C# продолжает добавлять новые функции. The C# team is continuing to innovate and add new features. Сведения о состоянии функции для отдельных языков, включая функции, которые будут добавлены в предстоящие выпуски, см. в репозитории dotnet/roslyn на сайте GitHub. Detailed language feature status, including features considered for upcoming releases can be found on the dotnet/roslyn repository on GitHub.

В некоторых возможностях используются типы и методы, которые в спецификации C# определены как стандартная библиотека. The C# language relies on types and methods in what the C# specification defines as a standard library for some of the features. Платформа .NET предоставляет эти типы и методы в разных пакетах. The .NET platform delivers those types and methods in a number of packages. например, обработка исключений. One example is exception processing. Каждая инструкция и выражение throw проверяется, чтобы убедиться, что вызываемый объект является производным от Exception. Every throw statement or expression is checked to ensure the object being thrown is derived from Exception. Аналогичным образом каждая инструкция catch проверяется, чтобы убедиться, что перехваченный тип является производным от Exception. Similarly, every catch is checked to ensure that the type being caught is derived from Exception. В каждой версии могут добавляться новые требования. Each version may add new requirements. Чтобы использовать новейшие возможности языка в старой среде, может потребоваться установить определенные библиотеки. To use the latest language features in older environments, you may need to install specific libraries. Эти зависимости описаны на странице для каждой конкретной версии. These dependencies are documented in the page for each specific version. Дополнительные сведения о связи между языком и библиотекой, а также общие сведения о такой зависимости см. здесь. You can learn more about the relationships between language and library for background on this dependency.

Для использования средств сборки C# требуется последний основной выпуск версии языка по умолчанию. The C# build tools consider the latest major language release the default language version. Основные выпуски, описанные в других статьях этого раздела, могут чередоваться с дополнительными выпусками. There may be point releases between major releases, detailed in other articles in this section. Чтобы использовать новые возможности доработанного выпуска, настройте версию языка компилятора, выбрав необходимую. To use the latest features in a point release, you need to configure the compiler language version and select the version. После C# 7.0 было три дополнительных выпуска: There have been three point releases since C# 7.0:

C# версии 1.0 C# version 1.0


Если взглянуть на C# версии 1.0, выпущенный вместе с Visual Studio .NET 2002, станет очевидно его сходство с Java. When you go back and look, C# version 1.0, released with Visual Studio .NET 2002, looked a lot like Java. В число поставленных перед ECMA задач проектирования входило создание «простого и современного объектно-ориентированного языка общего назначения». As part of its stated design goals for ECMA, it sought to be a «simple, modern, general-purpose object-oriented language.» В то время схожесть с Java означала достижение этих ранних целей проектирования. At the time, looking like Java meant it achieved those early design goals.

Однако если взглянуть на C# 1.0 сейчас, вам может стать немного не по себе. But if you look back on C# 1.0 now, you’d find yourself a little dizzy. В этой версии не было встроенных асинхронных возможностей и некоторых функций для универсальных шаблонов, к которым вы уже привыкли. It lacked the built-in async capabilities and some of the slick functionality around generics you take for granted. Фактически, в ней вообще не было универсальных шаблонов. As a matter of fact, it lacked generics altogether. А LINQ? And LINQ? Еще нет. Not available yet. Для добавления этих возможностей потребовалось несколько лет. Those additions would take some years to come out.

По современным меркам C# версии 1.0 не предоставлял практически никаких возможностей. C# version 1.0 looked stripped of features, compared to today. Вам пришлось бы писать довольно подробный код. You’d find yourself writing some verbose code. Однако надо же было с чего-то начинать. But yet, you have to start somewhere. C# версии 1.0 был достойной альтернативой Java на платформе Windows. C# version 1.0 was a viable alternative to Java on the Windows platform.

Основные возможности C# 1.0 включали следующие компоненты: The major features of C# 1.0 included:

Версия для C# 1.2 C# version 1.2

Версия C# 1.2 входит в состав Visual Studio .NET 2003. C# version 1.2 shipped with Visual Studio .NET 2003. Она содержит ряд небольших улучшений языка. It contained a few small enhancements to the language. Наиболее значительным изменением является то, что начиная с этой версии код, создаваемый в цикле foreach , вызывает Dispose в IEnumerator, если IEnumerator реализует IDisposable. Most notable is that starting with this version, the code generated in a foreach loop called Dispose on an IEnumerator when that IEnumerator implemented IDisposable.

C# версии 2.0 C# version 2.0

Вот теперь все становится гораздо интереснее. Now things start to get interesting. Давайте рассмотрим некоторые основные возможности языка C# 2.0, выпущенного в 2005 году вместе с Visual Studio 2005: Let’s take a look at some major features of C# 2.0, released in 2005, along with Visual Studio 2005:

Другие возможности C# 2.0 расширяли существующие возможности: Other C# 2.0 features added capabilities to existing features:

  • Отдельный доступ к методу получения и методу задания Getter/setter separate accessibility
  • Преобразования групп методов (делегаты) Method group conversions (delegates)
  • Статические классы Static classes
  • Выведение делегата Delegate inference

Хотя сначала C# и был универсальным объектно-ориентированным языком, в C# версии 2.0 все кардинально изменилось. While C# may have started as a generic Object-Oriented (OO) language, C# version 2.0 changed that in a hurry. Нащупав опору под ногами, команда уделила внимание решению серьезных проблем, с которыми сталкивались разработчики. Once they had their feet under them, they went after some serious developer pain points. И они подошли к делу с огоньком. And they went after them in a significant way.

Благодаря универсальным шаблонам вы получаете типы и методы, которые могут работать с произвольным типом, при этом обеспечивая безопасность типа. With generics, types and methods can operate on an arbitrary type while still retaining type safety. В результате, например, наличие List позволяет использовать List или List и совершать типобезопасные операции с этими строками или целыми числами, выполняя итерацию по ним. For instance, having a List lets you have List or List and perform type-safe operations on those strings or integers while you iterate through them. Использовать универсальные шаблоны удобнее, чем создавать ListInt , производный от ArrayList , или выполнять приведение из Object для каждой операции. Using generics is better than create ListInt that derives from ArrayList or casting from Object for every operation.

Мастер Йода рекомендует:  Отправка писем при помощи PHP-Прикрепление файла PHP

В C# версии 2.0 появились итераторы. C# version 2.0 brought iterators. Если кратко, итераторы позволяют изучать все элементы в List (или других перечислимых типов) с помощью цикла foreach . To put it succinctly, iterators let you examine all the items in a List (or other Enumerable types) with a foreach loop. Наличие итераторов в качестве первоклассного компонента в языке значительно улучшило удобочитаемость языка и способность воспринимать код. Having iterators as a first-class part of the language dramatically enhanced readability of the language and people’s ability to reason about the code.

А еще C# продолжил играть в салки с Java. And yet, C# continued to play a bit of catch-up with Java. Для Java уже были выпущены версии, включающие универсальные шаблоны и итераторы. Java had already released versions that included generics and iterators. Но вскоре этому было суждено измениться, так как языки продолжили развиваться независимо. But that would soon change as the languages continued to evolve apart.

C# версии 3.0 C# version 3.0

C# версии 3.0 был выпущен в конце 2007 года вместе с Visual Studio 2008, однако существенно набор возможностей языка пополнится только в .NET Framework версии 3.5. C# version 3.0 came in late 2007, along with Visual Studio 2008, though the full boat of language features would actually come with .NET Framework version 3.5. Эта версия ознаменовала кардинальное изменение развития C#. This version marked a major change in the growth of C#. Она доказала, что C# действительно является достойным языком программирования. It established C# as a truly formidable programming language. Давайте рассмотрим некоторые основные возможности в этой версии: Let’s take a look at some major features in this version:

Если оглянуться назад, становится ясно, что многие из этих возможностей не могли не появиться или появиться отдельно друг от друга. In retrospect, many of these features seem both inevitable and inseparable. Все они образуют единый и стратегически значимый набор. They all fit together strategically. Принято считать, что уникальным преимуществом C# было выражение запроса, которое также называется LINQ. It’s generally thought that C# version’s killer feature was the query expression, also known as Language-Integrated Query (LINQ).

Немного углубившись, можно отметить деревья выражений, лямбда-выражения и анонимные типы как основу для создания LINQ. A more nuanced view examines expression trees, lambda expressions, and anonymous types as the foundation upon which LINQ is constructed. Однако в любом случае в C# 3.0 была представлена революционная концепция. But, in either case, C# 3.0 presented a revolutionary concept. Версия C# 3.0 начала закладывать фундамент для превращения C# в гибридный объектно-ориентированный/функциональный язык. C# 3.0 had begun to lay the groundwork for turning C# into a hybrid Object-Oriented / Functional language.

Среди прочего, теперь вы можете создавать декларативные запросы в стиле SQL для выполнения операций с коллекциями. Specifically, you could now write SQL-style, declarative queries to perform operations on collections, among other things. Вместо создания цикла for для вычисления среднего значения из списка целых чисел теперь вам достаточно использовать list.Average() . Instead of writing a for loop to compute the average of a list of integers, you could now do that as simply as list.Average() . Сочетание выражений запросов и методов расширения позволяет сделать работу со списком целых чисел гораздо интеллектуальнее. The combination of query expressions and extension methods made it look as though that list of integers had gotten a whole lot smarter.

Людям потребовалось некоторое время, чтобы принять эту концепцию и начать применять ее, но это у них получилось. It took time for people to really grasp and integrate the concept, but they gradually did. А теперь, спустя несколько лет, код стал гораздо более кратким, простым и функциональным. And now, years later, code is much more concise, simple, and functional.

C# версии 4.0 C# version 4.0

Разработчикам версии C# 4.0, выпущенной вместе с Visual Studio 2010, пришлось приложить серьезные усилия, чтобы не отставать от новаторской версии 3.0. C# version 4.0, released with Visual Studio 2010, would have had a difficult time living up to the groundbreaking status of version 3.0. С появлением версии 3.0 язык C# смог выйти из тени Java и занять доминирующее положение. With version 3.0, C# had moved the language firmly out from the shadow of Java and into prominence. Он быстро становился утонченным и элегантным. The language was quickly becoming elegant.

Следующая версия представила ряд интересных функций: The next version did introduce some interesting new features:

Внедренные типы взаимодействия помогли сделать развертывание более удобным. Embedded interop types alleviated a deployment pain. Универсальная ковариантность и контравариантность расширяют возможности применения универсальных шаблонов, однако эти функции несколько академичны и высоко оценены авторами, создающими платформы и библиотеки. Generic covariance and contravariance give you more power to use generics, but they’re a bit academic and probably most appreciated by framework and library authors. Именованные и дополнительные параметры позволяют избавиться от многих перегрузок методов и сделать работу более удобной. Named and optional parameters let you eliminate many method overloads and provide convenience. Однако ни одна из этих функций не является кардинальным изменением. But none of those features are exactly paradigm altering.

Значимым событием стало появление ключевого слова dynamic . The major feature was the introduction of the dynamic keyword. Благодаря ключевому слову dynamic в C# версии 4.0 появилась возможность переопределять компилятор при типизации во время компиляции. The dynamic keyword introduced into C# version 4.0 the ability to override the compiler on compile-time typing. Используя это ключевое слово, вы можете создавать конструкции, характерные для языков с динамической типизацией, таких как JavaScript. By using the dynamic keyword, you can create constructs similar to dynamically typed languages like JavaScript. Вы можете создать dynamic x = «a string» и добавить туда шестерку, отложив решение о дальнейших действиях во времени выполнения. You can create a dynamic x = «a string» and then add six to it, leaving it up to the runtime to sort out what should happen next.

Динамическое связывание подвержено ошибкам, однако открывает великолепные возможности внутри языка. Dynamic binding gives you the potential for errors but also great power within the language.

C# версии 5.0 C# version 5.0

Версия C# 5.0, выпущенная вместе с Visual Studio 2012, была крайне целенаправленной. C# version 5.0, released with Visual Studio 2012, was a focused version of the language. Практически все нововведения в этой версии касались другой инновационной концепции: модели async и await для асинхронного программирования. Nearly all of the effort for that version went into another groundbreaking language concept: the async and await model for asynchronous programming. Ниже приведен список основных функций: Here is the major features list:

См. также See Also

Информационный атрибут вызывающего объекта позволяет легко получать сведения о контексте, в котором выполняется работа, не прибегая к массивному стандартному коду отражения. The caller info attribute lets you easily retrieve information about the context in which you’re running without resorting to a ton of boilerplate reflection code. Он находит обширное применение в задачах диагностики и ведения журнала. It has many uses in diagnostics and logging tasks.

Однако настоящими звездами этого выпуска являются async и await . But async and await are the real stars of this release. После появления этих функций в 2012 г. C# удалось снова взять быка за рога, первоклассным образом внедрив асинхронность в язык. When these features came out in 2012, C# changed the game again by baking asynchrony into the language as a first-class participant. Если вы когда-либо сталкивались с длительными операциями и реализацией переплетающихся обратных вызовов, эта возможность, скорее всего, вам понравится. If you’ve ever dealt with long running operations and the implementation of webs of callbacks, you probably loved this language feature.

C# версии 6.0 C# version 6.0

Версии 3.0 и 5.0 добавили в объектно-ориентированный язык C# несколько впечатляющих возможностей. With versions 3.0 and 5.0, C# had added major new features in an object-oriented language. Версия 6.0, выпущенная вместе с Visual Studio 2013, отступает от проторенного пути по реализации уникальных возможностей и концентрируется на предоставлении незначительных функций, с которыми программирование на C# становится гораздо эффективнее. With version 6.0, released with Visual Studio 2013, it would go away from doing a dominant killer feature and instead release many smaller features that made C# programming more productive. Вот некоторые из них: Here are some of them:

Другие новые возможности: Other new features include:

  • Выражение Await в блоках Catch и Finally Await in catch/finally blocks
  • Значения по умолчанию для свойств метода получения Default values for getter-only properties

Каждая из этих функций интересна сама по себе. Each of these features is interesting in its own right. Но если взглянуть на них вместе, заметна интересная особенность. But if you look at them altogether, you see an interesting pattern. В этой версии C# избавился от стандартного текста, чтобы сделать код более сжатым и удобочитаемым. In this version, C# eliminated language boilerplate to make code more terse and readable. Поэтому эта версия, несомненно, привлечет сторонников простого и понятного кода. So for fans of clean, simple code, this language version was a huge win.

Еще одно новшество, связанное с этой версией, не является функцией языка в обычном понимании. They did one other thing along with this version, though it’s not a traditional language feature in itself. Состоялся выпуск компилятора Roslyn в виде службы. They released Roslyn the compiler as a service. Теперь компилятор C# написан на C#, и вы можете использовать его при программировании. The C# compiler is now written in C#, and you can use the compiler as part of your programming efforts.

C# версии 7.0 C# version 7.0

Сейчас последним основным номером версии для C# является 7.0. Эта версия была выпущена вместе с Visual Studio 2020. The most recent major version is C# version 7.0, released with Visual Studio 2020. В этой версии получили развитие некоторые функции из версии C# 6.0, однако компилятор в виде службы отсутствует. This version has some evolutionary and cool stuff in the vein of C# 6.0, but without the compiler as a service. Ниже приведены некоторые из новых функций: Here are some of the new features:

Другие возможности: Other features included:

Все это предоставляет разработчиком множество новых возможностей и позволяет писать более понятный код. All of these features offer cool new capabilities for developers and the opportunity to write even cleaner code than ever. Важным аспектом является доработка объявления переменных путем использования ключевого слова out и поддержки нескольких возвращаемых значений благодаря кортежу. A highlight is condensing the declaration of variables to use with the out keyword and by allowing multiple return values via tuple.

Но при этом сфера применения C# продолжает расширяться. But C# is being put to ever broader use. Теперь .NET Core подходит для любой операционной системы, а также уверенно движется в направлении облачных технологий и портативности. .NET Core now targets any operating system and has its eyes firmly on the cloud and on portability. Очевидно, что разработчики активно занимаются этими новыми возможностями наравне с добавлением новых функций. These new capabilities certainly occupy the language designers’ thoughts and time, in addition to coming up with new features.

Статья изначально опубликована в блоге NDepend , с разрешения Эрика Дитриха (Erik Dietrich) и Патрика Смачиа (Patrick Smacchia). Article originally published on the NDepend blog, courtesy of Erik Dietrich and Patrick Smacchia.

Язык программирования C# 7.3


Программирование и СУБД

Visual Studio

Веб-программирование

Этот курс в нашем Центре
успешно закончили
2333 человек!

Programming in C#

Язык программирования C# – популярный объектно-ориентированный язык программирования, который с выходом .Net Core в 2020 году, стал кроссплатформенным. С# представляет собой современный объектно-ориентированный язык для разработки компонентов и модулей для платформ .Net. С# обеспечивает создание безопасного и верифицируемого кода, применение которого возможно в любом современном программном комплексе. Созданные на языке C# приложения могут успешно работать на любом компьютере под управлением операционной системы Windows, Linux и MacOS независимо от архитектуры железа.

В курсе «Язык программирования C# 7.3» рассматриваются все элементы и конструкции самого языка C#, а также разбираются многие возможности платформы .Net. В курсе приводится больше количество примеров и лабораторных, что позволит слушателям практически сразу после окончания приступить к реальной работе.

В курсе «Язык программирования C# 7.3» рассматривается новейшая версия языка C#, поэтому Вы сможете использовать курс для подготовки к экзамену Microsoft 70-483 “Programming in C#”.

Если учесть, что базовый синтаксис языка C# взят от С++ и Java, то курс «Язык программирования C# 7.3» предназначен для всех программистов, желающих своего карьерного роста.

По окончании курса Вы будете уметь:

  • Разбираться в .Net технологиях
  • Работать и создавать структурные типы данных
  • Использовать ветвление и циклы
  • Создавать методы на C#
  • Работать с массивами и со строками
  • Разрабатывать классы на C#
  • Использовать наследование и полиморфизм
  • Разрабатывать абстрактные классы и интерфейсы
  • Обрабатывать ошибки, возникающие в программе
  • Работать с файловой системой
  • Научитесь пользоваться коллекциями .Net
  • Использовать в программе параметризованные типы
  • Работать с событиями, делегатами и лямбда-выражениями
  • Использовать перегрузку операций и расширяющие методы
  • Получите представление о LINQ
Мастер Йода рекомендует:  Модуль re – регулярные выражения

Специалисты, обладающие этими знаниями и навыками, в настоящее время крайне востребованы. Большинство выпускников наших курсов делают успешную карьеру и пользуются уважением работодателей.

С# в 2020 году: спрос, зарплаты и тренды

Если верить TIOBE, уже пятнадцать лет С# входит в топ-10 популярных языков программирования. По итогам октября 2020 он занимает шестую строчку — выше PHP и JavaScript. Неплохо для совсем юного языка, который появился в 2000 году.

В другом рейтинге — PYPL (PopularitY of Programming Language) — «решетка» на четвертом месте, вслед за JS, Java и Python. Правда, PYPL отражает популярность C# не столько у разработчиков, сколько среди обучающихся. Основа для сравнения здесь — как часто люди ищут в Google учебные материалы по языкам.

Востребованность C# закономерна — он реализует многие преимущества С++ и Java, но по простоте сравним с Visual Basic. C помощью C# можно создавать игры на движке № 1 в мире — Unity, мобильные и веб-приложения, десктопные Windows-программы на каждый день и большие корпоративные продукты, в том числе банковские.

Около 34 % популярных бесплатных мобильных игр сделаны на Unity. На нем же работает большинство приложений виртуальной и дополненной реальности. Доля юнити-проектов среди игр для VR-шлемов и очков Samsung Gear достигает 90 %, для оборудования Oculus Rift — 53 %.

За что любят С#

Дело не только в сферах применения. Чтобы язык был по-настоящему популярным, он должен нравиться программистам. В 2020 году более ста тысяч пользователей Stack Overflow назвали свои любимые ЯП.

Большинство участников опроса (90 %) — профессиональные разработчики с опытом более трех лет. С# покорил сердца 60 % респондентов и занял восьмое место в десятке лидеров. По числу проектов на StackOverflow этот язык — третий.

Среди преимуществ C#:

  • простые паттерны асинхронного программирования;
  • работа приложений всюду, где есть .NET Framework — без перекомпиляции;
  • мобильная разработка под Android, iOS и Windows Phone с Хаmarin;
  • автоматическое управление памятью, сборщик мусора;
  • написание запросов c SQL-подобным синтаксисом внутри кода C# (проект LINQ);
  • удобные фреймворки для создания MVC-приложений и работы с RESTful API;
  • хороший базовый набор библиотек;
  • статическая типизация — упрощает выявление ошибок.

Язык живет, но что с ним происходит? Узнаем, как он развивается и какие тенденции наметились в его сообществе.

Зарплаты программистов C#

В зарплатных рейтингах SuperJob за 2020 год позиции «Программист С#» и «.NET-программист» регулярно появляются в списке лучших IT-вакансий месяца по разным регионам РФ. Для примера возьмем заманчивые предложения за август-октябрь 2020:

Месяц

Город

Вакансия

Предлагаемая зарплата

150 000 рублей + релокационный пакет с компенсацией съема жилья

Программист .NET (C#, Senior)

По оценке кадрового агентства «Каус», зарплаты программиста С# (.NET) в 2020 году:

  • минимальный уровень — 77 000–133 000 рублей;
  • средний — 133 000–180 000;
  • повышенный — 180 000–250 000.

При этом аналитики отмечают, что вакансии с минимальными зарплатами часто открываются, но «как правило, остаются незакрытыми, поскольку не находят своих соискателей».

Портал Indeed.com в начале ноября 2020 вычислил среднюю зарплату разработчика C# по России — 76 498 рублей в месяц. Для Москвы этот показатель составляет 115 009 рублей, для Санкт-Петербурга — 83 202 рубля.

За границей

По данным Glassdoor, разработчик C# (.NET) с четырьмя-пятью годами опыта в среднем получает более 90 000 долларов в год. Джуниор с опытом до года может рассчитывать на зарплату в районе 60 000 в год.

Статистика сервиса LinkedIn за 2020 год свидетельствует, что вакансия Unity-разработчика — седьмая по скорости роста в США. Показатель основан на том, как часто открывались соответствующие вакансии за последние пять лет.

GitHub-тренды С# в 2020

В конце лета компания OverOps, известная аналитикой software-рынка, исследовала 18 471 репозиторий на GitHub и назвала в своем блоге топ-20 библиотек C#.

По итогам в сообществе прослеживаются две основные тенденции. Первая — рост интереса к CMS на C#, а именно к Orchard, BetterCms, umbraco (открытая CMS от Microsoft), DNN. Вторая — развитие средств тестирования и отладки. Инструменты разработчика совершенствуются, потому что C# используют в масштабных проектах. Это направление актуально для всех востребованных языков программирования.

Как видно на картинке выше, особым спросом пользуются:

  • Newtonsoft (aka Jason.NET) — быстро сериализует и десериализует объекты .NET в JSON. Умеет конвертировать XML в JSON и обратно;
  • Xunit и NUnit — для unit-тестов;
  • утилита dnSpy — средство для отладки и обратного проектирования сборок;
  • Cake — кроссплатформенная система сборки, которая позволяет автоматизировать ряд задач: структурирование файлов проекта, тестирование исходников, создание бинарников;
  • Log4net — позволяет вести лог с учетом типа и уровня сообщений, а также отслеживать, как они форматируются и куда выводятся во время исполнения программы.


Отдельно стоит отметить ReSharper — расширение для Visual Studio, которое ускоряет разработку с помощью умных функций: статического анализа кода, автозаполнения, поиска (например, всех ссылок на объект или потомков родительского класса).

4 июня 2020 года Microsoft анонсировала покупку GitHub за 7,5 миллиарда долларов. Корпорация и ранее активничала на GitHub — ее специалисты совершили более двух миллионов операций по созданию и обновлению репозиториев. Сделка позволит Microsoft привлечь к своим проектам больше разработчиков и простимулировать развитие платформы .NET. Поэтому GitHub-сообщество C#, скорее всего, будет расти.

Если верить TIOBE, уже пятнадцать лет С# входит в топ-10 популярных языков программирования. По итогам октября 2020 он занимает шестую строчку — выше PHP и JavaScript. Неплохо для совсем юного языка, который появился в 2000 году.

В другом рейтинге — PYPL (PopularitY of Programming Language) — «решетка» на четвертом месте, вслед за JS, Java и Python. Правда, PYPL отражает популярность C# не столько у разработчиков, сколько среди обучающихся. Основа для сравнения здесь — как часто люди ищут в Google учебные материалы по языкам.

Востребованность C# закономерна — он реализует многие преимущества С++ и Java, но по простоте сравним с Visual Basic. C помощью C# можно создавать игры на движке № 1 в мире — Unity, мобильные и веб-приложения, десктопные Windows-программы на каждый день и большие корпоративные продукты, в том числе банковские.

Около 34 % популярных бесплатных мобильных игр сделаны на Unity. На нем же работает большинство приложений виртуальной и дополненной реальности. Доля юнити-проектов среди игр для VR-шлемов и очков Samsung Gear достигает 90 %, для оборудования Oculus Rift — 53 %.

За что любят С#

Дело не только в сферах применения. Чтобы язык был по-настоящему популярным, он должен нравиться программистам. В 2020 году более ста тысяч пользователей Stack Overflow назвали свои любимые ЯП.

Большинство участников опроса (90 %) — профессиональные разработчики с опытом более трех лет. С# покорил сердца 60 % респондентов и занял восьмое место в десятке лидеров. По числу проектов на StackOverflow этот язык — третий.

Среди преимуществ C#:

  • простые паттерны асинхронного программирования;
  • работа приложений всюду, где есть .NET Framework — без перекомпиляции;
  • мобильная разработка под Android, iOS и Windows Phone с Хаmarin;
  • автоматическое управление памятью, сборщик мусора;
  • написание запросов c SQL-подобным синтаксисом внутри кода C# (проект LINQ);
  • удобные фреймворки для создания MVC-приложений и работы с RESTful API;
  • хороший базовый набор библиотек;
  • статическая типизация — упрощает выявление ошибок.

Язык живет, но что с ним происходит? Узнаем, как он развивается и какие тенденции наметились в его сообществе.

Зарплаты программистов C#

В зарплатных рейтингах SuperJob за 2020 год позиции «Программист С#» и «.NET-программист» регулярно появляются в списке лучших IT-вакансий месяца по разным регионам РФ. Для примера возьмем заманчивые предложения за август-октябрь 2020:

Язык C# и .NET: путь продолжающего в 2020 году

Курс по C# рассчитан на новичков, которые хотят изучить язык. Курс состоит из трёх частей, в которых вы научитесь: писать код на C#, создавать консольные программы, разрабатывать полноценные программы под Windows с дизайном и подключением к БД, а также создавать веб сайты на ASP.NET и публиковать их в интернете.

Изучение языка C#

  • Введение в язык C#. Установка всего необходимого
  • Переменные и типы данных. Получение данных от пользователя
  • Условные операторы и операции
  • Массивы данных. Динамические массивы данных
  • Циклы, а также операторы в циклах. Цикл Foreach
  • Функции и их перегрузка. Шаблоны функций. Коллекции
  • Работа с файлами и исключения
  • Создание классов и объектов
  • Конструкторы, модификаторы, аксессоры
  • Наследование классов. Суперклассы. Вложенные классы
  • Абстрактные классы. Шаблоны классов
  • Интерфейсы и перечисления
  • Структуры и операторы as и is
  • Делегаты. Методы расширения LINQ
  • Работа с потоками данных
  • Сериализация данных
  • Создание игры «Пинг Понг»
  • Добавление дизайна и создание exe файла
  • Современный подход к созданию программ. Фреймворк WPF
  • Текстовый редактор с меню настройками
  • Улучшение текстового редактора и добавление функций
  • Текстовый редактор. Завершение
  • Переключение между вкладками
  • Программа авторизации с SQL базой данных
  • Введение в ASP.NET. Создание проекта
  • Создание нового контроллера и новой страницы
  • Регистрация на сайте и авторизация на сайте
  • Добавление, сохранение и вывод данных из БД
  • Публикация сайта в Интернете

Автор: Гоша Дударь
Язык: русский

Формат: MP4 (+доп.файлы)
Видео: AVC, 1920×1080,

1589 Kbps
Аудио: AAC, 114 Kbps, 48.0 KHz

Платформа .NET Framework и язык программирования C#

Опубликовано shwan в 08.05.2020 08.05.2020

C# является одним из самых востребованных, многофункциональных и активно развивающихся языков программирования на данный момент. С его помощью можно разрабатывать практически любое программное обеспечение, начиная от простых win forms приложений, до крупных клиент-серверных веб-приложений или даже мобильные приложения и компьютерных игры.

Язык программирования C# является относительно свежим, но он уже успел заслужить доверие. Релиз первой версии состоялся в феврале 2002 года. Крайней версией языка на момент написания статьи является C# 7.2, которая вышла 16.08.2020.

Синтаксис языка C# как следует из названия входит в семейство Си-подобных языков и похож на другие популярных языки из этой группы (C++, Java). Поэтому, если вы уже знакомы с одним из этих языков, вам будет значительно проще освоить языком программирования C#.

Так как C# является объектно-ориентированным языком, то он поддерживает наследование, полиморфизм, инкапсуляцию, строгую типизацию переменных, перегрузку операторов и другое. Все эти понятия будут нами подробно рассмотрены в последующих статьях. Благодаря использованию парадигмы объектно-ориентированного проектирования с помощью языка программирования можно достаточно легко разрабатывать масштабные и при этом гибкие проекты. При всем этом регулярно выходят новые версии языка C#, добавляя новую функциональность для упрощения жизни разработчика, увеличения скорости разработки, повышения производительности и надежности прилоежния.

Платформа .NET

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

.NET Framework – это программная платформа от компании Microsoft позволяющая выполнять разработку на различных языках программирования, так как для всех языков используется единая общеязыковая среда исполнения Common Language Runtime (CLR). Таким образом, основными возможностями платформы .NET являются:

  • Кроссплатформенность – .NET Framework поддерживается большинством современных операционных систем Windows, а также есть возможность создавать приложения поддерживаемые Linux системами, и даже мобильные приложения.
  • Мультиязычность – так как исходный код, написанный на используемом языке программирования, транслируется в общеязыковой Common Intermediate Language (CIL) код, появляется возможность вести разработку на любом поддерживаемом языке программирования, и даже использовать различные языки программирования в одном решении. Наиболее популярными поддерживаемыми языками являются C#, VB.NET, C++, F#.
  • Обширная библиотека классов и технологий – существует огромное количество готовых к использованию библиотек для решения необходимых задач. Зачастую совсем не приходится реализовывать низкоуровневую логику работы приложения, достаточно воспользоваться готовым решением, удобно поставляемым через менеджер пакетов nuget. Кроме того, платформа .NET предусматривает легкую разработку практически любого типа необходимого программного обеспечения.

Управляемый и неуправляемый код. JIT-компиляция

Управляемый код (managed code) – это код управляемый общеязыковой средой CLR. Это означает, что что управляющая среда имеет возможность приостановить выполнение приложения и получить специфическую информацию о состоянии приложения в любой момент его исполнения. Исходный код используемого языка программирования транслируется в управляемый код CIL (его еще называют высокоуровневым ассемблером).

После создания библиотеки классов или приложения, исходный код продолжает храниться на языке CIL. А при запуске приложения или обращении к библиотеке выполняется Just-In-Time ( JIT) компиляция приложения в машинный код, специфичный именно для того окружения, на котором осуществляется исполнение приложения. При этом важной особенностью является то, что выполняется компиляция только той части приложения или библиотеки, к которой выполняется обращение (ну и связей естественно). Это позволяет увеличить производительность работы системы и экономить ресурсы.

Неуправляемый код (unmanaged code) – это код, транслируемый сразу в машинный исполняемый код и исполняется операционной системой напрямую.

Страница поста от канала Библиотека программиста

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме

Пожаловаться

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме

Добавить комментарий