Сегодня информацию рассматривают как один из основных ресурсов развития общества, а информационные системы и технологии как средство повышения производительности и эффективности работы людей.
Создание современных электронных вычислительных машин позволило автоматизировать обработку данных во многих сферах человеческой деятельности, в том числе торговле. Без современных систем обработки данных трудно представить сегодня передовые производственные технологии, управление экономикой на всех ее уровнях, научные исследования, образование, издательское дело, функционирование средств массовой информации, проведение крупных спортивных состязаний. Значительно расширило сферу применения систем обработки данных появление персональных компьютеров.
Одним из наиболее распространенных классов систем обработки данных являются информационные системы.
Развитие информационных технологий в настоящее время идет все быстрее и быстрее. Разработано множество стандартов, протоколов, форматов по хранению и передаче информации между компьютерами. В настоящее время существует большое количество программ для обмена данными между компьютерами.
Однако основной особенностью данных программ является обязательное подключение к серверу, что делает невозможным использование данных программ, например, в локальной вычислительной сети или просто между двумя компьютерами, без организации соответствующего сервера.
Используя современные средства визуальной разработки программного обеспечения, имеется возможность быстрого создания собственных программ по обмену сообщениями в локальной вычислительной сети. В данной курсовой работе рассматривается создание клиент-серверного приложения с помощью среды визуальной разработки приложений Microsoft Visual Studio 2015 Community.
В ходе выполнения курсовой работы был выбран язык программирования C#.
C# (произносится си шарп) — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.
Переняв многое от своих предшественников — языков C++, Pascal, Модула, Smalltalk и, в особенности, Java — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).
C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR.
Цель проекта: разработать приложения с использованием сетевых технологий на основе Клиент-Серверной архитектуры. Сетевое взаимодействие должно быть организованно с использованием протокола TCP/IP. Реализовать возможность распределённой сортировки массива между клиентами и сервером. Сортировки, которые используется у клиентов - QuickSort. Сортировка, которая используется на сервере MergeSort. Язык программирования C#.
В данном проекте необходимо реализовать сортировку методом слияния. Сортировка слиянием (англ. merge sort) — алгоритм сортировки, который упорядочивает списки (или другие структуры данных, доступ к элементам, которых можно получать только последовательно, например — потоки) в определённом порядке. Эта сортировка — хороший пример использования принципа «разделяй и властвуй». Сначала задача разбивается на несколько подзадач меньшего размера. Затем эти задачи решаются с помощью рекурсивного вызова или непосредственно, если их размер достаточно мал. Наконец, их решения комбинируются, и получается решение исходной задачи.
Для решения задачи сортировки эти три этапа выглядят так:
а) Сортируемый массив разбивается на две части примерно одинакового размера.
б) Каждая из получившихся частей сортируется отдельно, например — тем же самым алгоритмом.
Приступая к разработке каждой программы ПС, следует иметь в виду, что она, как правило, является большой системой, поэтому мы должны принять меры для ее упрощения. Для этого такую программу разрабатывают по частям, которые называются программными модулями. А сам такой метод разработки программ называют модульным программированием. Программный модуль - это любой фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в описаниях процесса. Это означает, что каждый программный модуль программируется, компилируется и отлаживается отдельно от других модулей программы, и тем самым, физически разделен с другими модулями программы. Более того, каждый разработанный программный модуль может включаться в состав разных программ, если выполнены условия его использования, декларированные в документации по этому модулю. Таким образом, программный модуль может рассматриваться и как средство борьбы со сложностью программ, и как средство борьбы с дублированием в программировании (т.е. как средство накопления и многократного использования программистских знаний).
Модульное программирование является воплощением в процессе разработки программ обоих общих методов борьбы со сложностью и обеспечение независимости компонент системы, и использование иерархических структур. Для воплощения первого метода формулируются определенные требования, которым должен удовлетворять программный модуль, т.е. выявляются основные характеристики «хорошего» программного модуля. Для воплощения второго метода используют древовидные модульные структуры программ (включая деревья со сросшимися ветвями).
Из проделанной работы следует, что разработанная информационная система полностью удовлетворяет поставленной задаче.
В результате получена информационная система, предоставляющая пользователям простой и удобный способ взаимодействия с базой данных. Информационная система легко модифицируема, при возникновении необходимости возможна дальнейшая ее доработка (как базы данных, так и клиентского приложения) для расширения круга решаемых задач. Полученная в результате проведенной работы информационная система в полной мере удовлетворяет поставленной задаче, что не исключает возможности расширения её функциональных возможностей в будущем.
В данной работе необходимо было разработать клиент-серверное приложение. Для разработки приложение использовалась интегрированная среда разработки Microsoft Visual Studio 2015 Community. Главным преимуществом данной среды является быстрота разработки программного обеспечения, благодаря наличию визуальных средств проектирования приложения, таких, как формы и набор визуальных и не визуальных компонент, обладающих богатым функционалом.
В ходе проектирования приложения было принято решение о реализации приложения в виде двух программ - клиентской и серверной части. Был разработан примерный алгоритм работы каждой из частей.
Заключительным этапом явилась непосредственная реализация серверной и клиентской части в среде разработки программного обеспечения Microsoft Visual Studio 2015 Community. Полученный программный продукт работоспособен, имеет необходимую функциональность.
1. Бабэ, Бруно Просто и ясно о Borland C++; М.: БИНОМ, 1995. - 400 c.
2. Дейтел, Х.М.; Дейтел, П.Дж. Как программировать на С++; М.: Бином; Издание 4-е, 2005. - 390 c.
3. Джейсон, Прайс; Майк, Гандэрлой Visual C# .NET. Полное руководство; КОРОНА принт, 2004. - 960 c.
4. Нейгел, К. C# 2005 для профессионалов; Вильямс, 2006. - 763 c.
5. Рихтер, Джефри CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C#; Питер, 2007. - 656 c.
6. Робинсон, С.; Корнес, О.; Глинн, Д. и др. C# для профессионалов; М.: Лори, 2005. - 396 c.
7. Саттер, Герб Новые сложные задачи на C++; Вильямс, 2005. - 272 c.
8. Холзнер, С. Visual C++ 6. Учебный курс; Питер, 2001. - 576 c.