Электронная библиотека » Сергей Евдокимов » » онлайн чтение - страница 3


  • Текст добавлен: 4 мая 2023, 06:01


Автор книги: Сергей Евдокимов


Жанр: Компьютеры: прочее, Компьютеры


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 3 (всего у книги 8 страниц)

Шрифт:
- 100% +
Глава 4. Объектно-ориентированное программирование

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

Классическое определение – «способы моделирования настоящего мира». ‎ Можно предположить, что ООП делает код более простым и наглядным [19]. С таким подходом можно построить сложные системы просто и эффективно, и всё благодаря тому, что предметная область разбита на объекты, каждый из которых связан с другими объектами.

Главное отличие между Объектно-ориентированное программированием и Процедурным программированием, то что процедурное программирование заключается в написании кода с или без подпрограмм. ООП использует язык программирования более хорошему программному коду и для получений высокого уровня написания огромных проектов и производительность [20]. Плохая взаимосвязь может возникать после несоблюдения трех главных принципов: полиморфизма, инкапсуляции и наследования.


Рисунок 2.4.1 – Основные принципы ООП


«Сущность» и «объект» в человеческой ежедневной жизни можно считать: самолёты, ПК, транспортные средства, банковские счета. Все объекты обладают некоторыми параметрами и функциональностью. Объект, который представляется как завершенная функциональная единица, составляет все необходимые данные и полную функциональность, которая нужна для решений задач, и по которой он имеет назначение.

К примеру, рассмотрим такой объект как «велосипед». У него есть параметры (цвет, вес, стоимость) и поведение (мотоцикл может ехать, сигналить, потреблять топливо).

С вышеуказанного примера, можно считать, что Инкапсуляция – это сокрытие поведения объекта внутри него [22]. Этому объекту «водитель» нет такой необходимости владеть информацией о происходящем в объекте «мотоцикл», чтобы двухколёсный ехал. Это главный и ключевой принцип ООП.

Наследование. К примеру, возьмём объекты: «человек» и «водитель». У них есть что-то общее? Наследование даёт возможность выделить всё общее в один объект (в данном конкретном случае более общим – человек), а для водителя – определить как человека с дополнительными параметрами и поведением [22]. Так как у водителя обязательно есть водительские права, а у человека их присудствие является не обязательным.

Полиморфизм считается переопределением поведения.

К примеру, снова рассмотрим объекты «человек» и «водитель», но в этот раз добавим ещё один объект «пешеход». Объект «Человек» наделён способностью передвигаться, но как именно, это уже зависит от того, является он водителем, или пешеходом. Можно прдположить, что у пешехода и водителя похожее поведение [24], но реализация по-разному: первый перемещается с помощью ног, второй – на машине.

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


Рисунок 2.4.2 – ООП (Общее представление)


Объект представляет собой экземпляр определёного класса.

А класс – шаблон, в котором описаны: все параметры этого объекта, его методы. Учитывая то, что класс объекта «Воздушный шарик» определяется свойствами цвета, то экземпляр этого класса, можно создавать сколько угодно, и другие будут раскрашены в эти цвета [23].

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

Для понимание принципа работы объектов нужно разобраться в сути мастерства ООП, и в умении создавать многоуровневую структуру по классам, оставляя программный код надежным, читаемым и гибким.

Глава 5. Ахлгоритмы и структуры данных

Алгоритм – это так называют последовательность действий, которые совершаются. Структуры данных имеют реализацию с помощью алгоритма, а вот алгоритмы – структуры данных [20]. Алгоритмы и структуры данных – это инструменты, которыми уверенно пользуются начинающее разработчики, создавая утилиты. Если знать этот инструментарий, можно создавать большое количество того, что уже в базах кодинга, а также и с которыми не редко встречаемся. Кроме этого, похожие данные решают сложные задания. Это нужно иметь ввиду, и при ограничениях алгоритмов (теоретических), о при том, какими оптимизациями их есть возможность подвергнуть. По итогу, понять решение, в котором, с учётами всех нужных компромиссов, оказывается настолько хорошими, насколько это предоставляет возможность.

Алгоритмы и структуры данных (в C#):


– Связный список

Связный список (с англ. Linked List) – это набор связанных узлов, в которых хранятся необходимые данные и указатели на постследующие узелы.


– Двусвязные списки

Двусвязный список – это соответствующая структура данных, определяющая узлами, в которых хранятся необходимые свойства, указываемые на предыдущие узлы и следующий узел, каждый из которых содержит информационную часть (данные) и два указателя на соседние элементы (на следующий и предыдущий элементы). В пространстве имен. NET C# System. Collections. В случае, когда в списке нет элементов, оба они равны нулю [18]. Если в списке один элемент, то оба указателя ссылаются на один и тот же элемент (соответственное, они равны).


– Стек на основе массива

Стек – это структура данных, работающая по принципу LIFO

(Как говорят: «кто последний пришел, тот первый вышел»). Графический стек представляется столбиками или стопками объектов:


Рисунок 2.5.1 – Стек из массива


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


– Стек

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


– Очередь

Очередь (с англ. queue) – это коллекция, в которой элементы обрабатываются по схеме «первый вошел, первый вышел» (first in, first out – FIFO). Элемент, вставленный в очередь первым, первым же и читается. Отличие в том, что в стеке элемент устанавливаются, извлекаются с одного конца. В очереди элементы вставляются с одного конца, а извлекаются из другого. В программировании очередь используется, когда необходимо проделать какие-то действия по порядку их поступления, выполняя это последовательно. Примером служит организация событий семейства ОС Windows.


– Дек

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


– Кольцевой односвязный список

Кольцевые (циклические, круговые) списки – разновидность связных списков. Поэтому, могут быть как односвязными, так и двусвязными. Их отличительной особенностью является то, что условной последний элемент хранит ссылку на первый элемент, поэтому список получается замкнутым или кольцевым.


Рисунок 2.5.2 — Структура данных

(Кольцевые, круговые, циклические списки)


– Кольцевой двусвязный список

Кольцевой двусвязный список – это замкнутый список, на основе указателя элемента перемещается вперед, и назад по кругу.

Каждый узел такого списка представляет элемент, который хранит указатели на предыдущий и следующий узел.

Также есть другие критерии по классификации типов. Например, встроенные типы и те, которые определяются программистом непосредственно. Встроенные типы принадлежат к языку программирования и составляют его основу [16]. В базисе системы типов языка программирования лежит главная система типов, которые встроенные в этот язык. На этой основе разработчик строит собственные, определенные типы данных.

Типы данных бывают динамические и статические. Для динамического типа данных размер в момент объявления неизвестен и память выделяется по запросу в процессе выполнения программы. Для статического типа данных память отводится в момент объявления, требуемый размер данных известен при их объявлении. Еще есть важная классификация типов – деление на ссылочные и значимые. Для значимых типов значение объекта неотъемлемая собственностью переменной. Для ссылочных типов значение служит ссылка на некий объект в памяти, который располагается в динамической памяти. Далее показано перечень основных встроенных типов в языке C Sharp, их основные характеристики.


Таблица 2.5.3 – Типы данных в C#


Таблица 2.5.4 – Типы данных в C#


По структуре алгоритмы разделяют на линейные, разветвляющиеся и циклические


Рисунок 2.5.5 – Схема алгоритма циклической структуры для нахождения суммы N первых членов натурального ряда.


Линейными называют алгоритмы, в которых операции выполняются последовательно одна за другой, в естественном и единственном порядке следования [12].


Рисунок 2.5.6 – Пример алгоритма разветвляющейся структуры в случаях необходимости анализа логических условий.


Разветвляющийся алгоритмы – это зависимости выполнения некоторого логического условия в результате разветвления вычислений по одному из возможных направлений.

Рисунок 2.5.7 – Схема алгоритма циклической структуры для нахождения суммы N первых членов натурального ряда.

Алгоритмы циклической структуры включает повторения действия по последовательности по одним и тем же математическим зависимостям, учитывая разные значения некоторых изменяемых величин. Это были только основы, поверхностно, что узнать подробней, нужно читать литературу [1—5].

Глава 6. Язык C# и. NET Framework

Язык C# разработано и спроектировано для использования его с технологией. NET Framework. Учитывая то, что. NET Framework послужила поддержкою, разработкой и выполнением распределенных приложений компонентов. Что обеспечивает использование совместно на разных языках программирования, ещё и предоставляет переносимость утилит, безопасность, общую модель для программирования на платформе ОС Windows [17]. Технология. NET Framework содержит много по разработке WEB-приложений готовых API-интерфейсов (ASP.NET), взаимодействие с базами данных (ADO.NET), десктопных приложений (WPF), и т. д.


– ASP.NET

ASP.NET – это основная технология для создания элементов по северной части и WEB-утилит от компании Microsoft. В общем, ASP.NET до сих пор представляет полную платформу по WEB-разработке из всех, программ, что создавались когда-нибудь. Продвинутая поддержка шаблонов проектирования технологии MVC только даёт ещё больше популярности ASP.NET.


– C#5.0 и платформа. NET 4.5

Простое руководство по C#, которое описывает основные конструкции синтаксиса языка программирования, а также самые простые особенности API-интерфейсов и. NET Framework, включая работу по сборкам и рефлексии, много поточности файлов по сети.


– WPF

WPF (с англ. Windows Presentation Foundation) – это полнофункциональный API-интерфейс по созданию настольных программ (графических), которые имеют коасочный дизайн, интерактивность.

С отличием от технологий Windows Forms, WPF включает в себя новейшую модель создания пользовательских программ (в основе инфраструктура, основана на DirectX).


– Темы WPF

Темы WPF – наборы разнообразных элементов шаблонов по управлению.


– Silverlight

Технологии Silverlight предназначены для построения утилит, которые работают под управлением разных ОС в браузерах. Программы в Silverlight обрабатывают надстройками браузера. В обработке WEB-страницы, которая включает все компоненты Silverlight, поднадстройка браузера выводит компоненты в заданную область на HTML-странице.


– ADO.NET

По своей сути в технологии. NET определяются возможности, позволяющее взаимодействовать непосредственно с удаленными базами данных, и с локальными БД (используя ADO.NET и Entity Framework).


– LINQ

Дополнительное расширение для языка C# по работе в разных контекстах (с объектами LINQ to Objects, XML-документами, ADO.NET, Entity Framework, LINQ).

– Expression Blend 4

Дополнение под названием Expression Blend предназначено для создания приложений WPF, и было разработано компанией Microsoft на промышленном уровне. Это инструментарий предоставляется для пользователя как интерфейс с графической оболочкой, в котором можно настраивать и создавать настольные ПО и WEB-приложения. Учитывая то, что формируется автоматически вся необходимая XAML-разметка.


– Entity Framework 6

Технология под наименованием Entity Framework предоставляется как возможность с БД с помощью объектно-ориентированного кодинга C#. Поэтому можно использовать язык запросов LINQ.


– SQL Server 2012 и T-SQL

SQL Server (с англ. система управления базами данных) – наилучший выбор на широкий диапазон конечного пользователя и разработчиков БД, которые работают по созданию бизнес-утилит.


– Приложения Windows Store

Для приложений, установленных с Windows Store, начиная с ОС Windows 8, появился функционал API-интерфейса, который наименует себя Windows Runtime. Эти программные продукты представляются с общими стилями, имеют графический интерфейс и разрабатываются в основном для планшетных устройств и смартфонов, хотя так же хорошо работают и на ПК.

Высокоуровневое программирование включает в себя языки программирования, которые разработанные для удобства и скорости использования программистами. C Sharp – это высокоуровневый объектно-ориентированный язык программирования. Часто, его расматривают как средство для создания программ для платформы.NET Framework и. NET Core от компании Microsoft. C Sharp на этапах создания компанией Microsoft рассчитан для собственных целей и служб. Некоторые полагают, что С Sharp – это просто версия языка С или C++, но это предположение не правдиво. Данных язык программирования создавался «с нуля». Рассмотрим преимущества и недостатки:


Таблица 2.6.1 – Плюсы и минусы С Sharp


Синтаксис языка чем-то похож на С и С++, Java. Он становится доступным по изучению самыми-самими новичками. С ним можно довольно хорошо разобраться с английским, и также начинать осваиваться с азами коддинга. Многие программеры C Sharp по сей день ассоциируют с платформой. NET Framework, и также ОС Windows.

Хоть и это – основное назначение, но под iOS и Android также на этом языке программирования очень успешно пишутся программы. Сегодня C# очень сильно развился, но преимущественно разработчиков, что специализировались на нем, не так и много. Поэтому, такой вариант очень подойдёт и для новичков, и для любителей, и также небольших предприятий. По сравнению со своими конкурентами C Sharp представляет варианты написания ПО из синтаксисом Си-подобным, что напоминает в общем целом и C++, и Java. Изначально он нужен был для WEB-разработки, как и JAVA. В неким круге C Sharp называют «улучшенной версией Java». У эти языков программирования синтаксические возможности на 75% схожи, 10% – это заимствование с С++, а еще около 5% – у VB, и ставшийся 10% – уникальные свойства, что были внедрены разработчиками. При этом, с помощью C#, составляющей ООП получает очень гибкие, большие, расширяемые и масштабируемые программы. Также наблюдают стремительное развитие. С каждой новой версией C Sharp получается большое количество полезных возможностей. Например – асинхронные методы, лямбды, динамическое связывание. По сравнению с другими способами создания ПО, С# «очень горячий» вариант, для которого немалый путь проделан. И начинающее и опытные программисты рассматриваю его, несмотря на устоявшийся стереотипы (относительно предназначения только для Software на ОС Windows).

Простота изучения С# превосходительная, так как имеет большое количество документации в доступе, и помогает разобраться с любыми проблемами. Язык С# с производительностью языка, включает очень высокую продуктивность. А кроссплатформенность на С# пишется за 1000$, и так по многим встраиваемым, десктопным и серверным платформам. Большинство популярных игровых движков поддерживаются на высокоуровневом языке программирования.

Глава 7. Использование C Sharp в прикладном программировании

Прикладное ПО включает в себя компьютерные программы, что создаются для пользователей для задания компьютеру по конкретной работы. Например, программы прикладного программного обеспечения: по обработке заказов, графические редакторы, WEB-браузеры или разработка списков рассылки и т. д. Прикладные программы в большинству ОС не могут связываться с ресурсами компьютера напряму, поэтому взаимодействуют с оборудованием и другими программными средствами операционной системы.

Прикладное ПО используется по управлению: данными, базами данных, сетью и безопасностью. Также есть как образовательное, так и имитационное ПО (первое способствует изучению материала и имеет четкие требования по тестированию знаний пользователя, второе – в целях научных исследований, обучения или развлечения по симуляции физических или абстрактных системах. Прикладную программу используют самостоятельно, но для её написания потребуются C#.

Для бэкенда самыми популярным языками до сих пор является C#. Для простых проектов и задач выбор языка практически не имеет значения. Времена сложных конфигураций с веб-серверами и XML давно прошли, а с текущими MVC-фреймворками написать простое приложение можно на любом языке. Что на Node. js, что на Spring Boot развернуть веб приложение можно всего за несколько минут. Что касается сложных и объёмных проектов с долгосрочной поддержкой, лучше отдавать предпочтение статически типизированным и компилируемым языкам, таким как C#, Go и Java. В больших проектах скорость написания кода не очень важна, зато более приоритетной является скорость анализа при чтении кода и возможности не деструктивного рефакторинга, особенно если вы имеете дело со сложной бизнес-логикой. И наконец, фреймворки ASP.NET для C# и Spring для Java, благодаря большому набору компонентов в DI-экосистеме, предоставляют все возможности для удобного проектирования и точной конфигурации веб-приложения. Многие технологии, фреймворки и среды разработки требуют лицензии, но есть и много бесплатных вариантов. На практике, скорее всего, у вас будет выбор между платными инструментами, но с большей функциональностью и поддержкой, или бесплатные, но с ограниченным набором функций. В моей практике чаще всего всё зависело от языка программирования, которым владеет команда. Если команда пишет на C#, то и весь стек связан с платформой. NET и т. д.

При выборе фреймворка или языка программирования необходимо всегда обращать внимание в первую очередь на его популярность и наличие экспертов в команде (или на рынке). Это позволит в будущем избежать проблем с поиском кадров. Можно выбрать в качестве языка, например, Scala или Clojure, которые, безусловно, имеют свои сильные стороны относительно консервативной Java, но потом столкнуться с серьёзной проблемой поиска специалистов, когда необходимо будет усилить команду или заменить сотрудников, которые решили покинуть проект.

Глава 8. Работа с базами данных в C# и. NET

Процессы с БД имеют очень большое значение. Разные системы управления базами данных используются для хранения данных (MySQL, Oracle, MS SQL Server и т. д. Большинство больших программ используются для хранения данных, управления базами данных эти же ПО. Но чтобы осуществлять связь между базой данных и приложением на C# необходимо посредничество.

Реляционная база данных (РБД) – это набор данных с предопределенными связями между ними. Эти данные созданы в виде набора таблиц, которые стоят из строк и столбцов. В таблицах имеется информация про объекты, представленные в БД. В каждом из столбцов таблицы хранится определенный тип данных, в каждой ячейке – значение атрибута. Каждая строка таблицы представляет собой набор связанных значений, относящихся к одному объекту или сущности.

SQL (Structured Query Language) – это структурированный язык запросов, стандартный язык запросов по работе с реляционными БД.

В C# для работы с базами данных технологии. NET применяется ADO.NET. Для улучшения процессов взаимодействия с БД, также используется технология ORM Entity Framework, которая позволяет сопоставлять сущностей C# с таблицами в БД. Далее выкладываться примеры, с использованием подключения к БД с вышеупомянутых технологий.

Взаимодействие с базами данных часто встречается в современных приложениях (настольное приложение, WEB-сайт или WEB-служба). Платформа. NET Framework имеет много способов для взаимодействия с БД из управляемого ей кода, что также описывается в данном проекте. Главной системой управления базами данных для ОС Windows является SQL Server, поэтому администрирование также будет описано детально.


– Entity Framework 6

API-интерфейс имеет название Entity Framework, который был спроектирован по взаимодействиям с другими базами данных, которые взаимодействуют с технологией ADO (и с SQL Server), и даже включает свой диалект, который не зависит от языка SQL, его можно применять в качестве альтернативы LINQ.


– Оконные функции T-SQL

Добавление оконных функций стало одним из самых фундаментальных расширений для языка SQL в среде Microsoft SQL Server 2005, с такими синтаксическими конструкциями, как OVER и набор новых функций, известных как функции ранжирования (ROW_NUMBER, RANK, и других). Это позволяет решать нестандартные проблемы более понятным способом и более высокой производительностью, чем ранее.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 | Следующая
  • 3 Оценок: 1

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации