Разработка серверного программного обеспечения для выполнения типовой задачи

Программное обеспечение как один из видов обеспечения вычислительной системы. Характеристика программных средств. История языка программирования C#. Платформа .NET Framework. Алгоритм программного обеспечения, его интерфейс. Инструкция пользователя.

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

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

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

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

Введение

программный интерфейс алгоритм вычислительный

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

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

Самыми популярными пакетами серверного ПО являются веб-сервер, интерпретатор языка программирования, СУБД, FTP-сервер, ускорители исполнения программного кода и кэширующие механизмы, службы работы с электронной почтой [3].

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

1. Используемые средства

1.1 Язык программирования C# и его история

С# стал языком программирования для работы с данным проектом. На сегодняшний день данный язык является одним из самых лучших, часто используемых и быстро развивающихся языков в сфере IT. Сейчас его используют для создания множества приложений: от самых простых и индивидуальных программ до больших веб-сервисов, принимающих ежедневно миллионы пользователей [1].

Данный язык является молодым по сравнению с другими. Его первая версия вышла в феврале 2002 года вместе с Microsoft Visual Studio .NET. На данный момент последней версией языка является C# 7.0, вышедшая 7 марта 2017 года [2] вместе с Visual Studio 2017.

C# Ї это язык с Си-подобным синтаксисом, а, значит, он подобен таким языкам, как С++ и Java. Является объектно-ориентированным. Он поддерживает полиморфизм, наследование, перегрузку операторов и статическую типизацию. Объектно-ориентированный метод дает возможность выполнить команду, создавая крупные, при этом гибкие, масштабируемые и расширяемые приложения.

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

Ї Сборка мусора - автоматически освобождает память от удаленных объектов;

Ї обработка исключений - расширяет способ выявлять и обрабатывать ошибки;

Ї строгая типизация - не разрешает обращаться к неинициализированным переменным.

Родители C# зародились еще в 60-х годах. Началом развития является появление языка В, который в 1969 году был создан командой разработчиков из Технологического института Массачусетса. Главным разработчиком является Кен Томпсон. После В на его основе разработали С в 1972 году. Разработчики - Кен Томпсон и Денис Ритчи, которые работали в исследовательской лаборатории компании AT&T. В 1971 году начали разработку NB (New B), однако данный язык стал слишком отличаться от В, и название сменили на С [4].

В 1984 году Бьярне Страуструп начал разработку проекта языка С++. Ему необходимо было написать пару имитационных программ для моделирования распределенных вычислений. SIMULA-67 - объектно-ориентированный язык - мог бы стать лучшим средством для решения подобных проблем, если бы не его быстродействие. Таким образом появился язык С++. Его начальное название - «Си с классами».

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

В честь нового тысячелетия компания Microsoft подготовила новые версии компонентных технологий и решений в различных областях. В поддержку этих нововведений Microsoft выпускает инструменты для создания приложений - «.NET». Они включают в себя несколько языков программирования.

Еще одним нововведением платформы .NET являлась технология активных серверных страниц ASP.NET. С# был спроектирован специально для этой технологии.

Разработчиками этого языка стали Скотт Вилтамут и Андерс Хейльсберг - создатель Турбо Паскаля и Дельфи, перешедший в 1996 году в Microsoft.

C# поддерживает все основы объектно-ориентированного программирования: инкапсуляция, наследование и полиморфизм.

Аналогично Java, С# предназначен для разработки веб-приложений. Его также считают более «чистой» версией Java.

Единая среда выполнения программ построена на использовании промежуточного языка, исполняющего роль байт-кода виртуальной машины Java. Необходимые в технологии .NET компиляторы с разных языков отправляют в промежуточный язык-код. Так же, как и байт-код Java, промежуточный язык-код представляет собой команды предположительной стековой вычислительной машины. Однако существуют отличия в работе.

В отличие от JVM, промежуточный язык не привязан к одному языку программирования. В структуре ранних версий .NET имеются компиляторы языков С++, С# и Visual Basic. Независимые разработчики могут добавлять прочие языки для более удобной работы.

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

Работа над C# началась в декабре 1998 года. Первая бета-версия С# 1.0 появилась летом 2000 года, а в 2002 году выходит финальная версия языка. В 2005 году вышла финальная версия C# 2. Добавлены такие возможности, как анонимные методы, обобщение, частичные и параметризованные типы расширяют возможности применения C#.

Так же была добавлена поддержка 64-х разрядных вычислений. Добавлено создание триггеров, хранимых процедур и типов данных на .NET языках.

В 2008 году вышел C# 3.0. Нововведения - язык интегрированных запросов; неявно типизированные переменные и методы расширения, Lambda-выражения [5].

Анонимные типы переменных дали возможность избежать неудобства при описании переменных, давая возможность объявлять новый тип прямо при ее создании.

В 2010 году выпустили C# 4.0. Основными новшествами стали именованные и необязательные аргументы. Параллельно появились обновления в .NET Framework 4.0 - библиотека распараллеливания задач и параллельный вариант языка интегрированных запросов [7].

В 2012 году выпустили С# версии 5.0. Нововведения были малочисленны и незначительны [11].

C# версии 6.0 была выпущен в 2015 году. В ней добавили:

- Инициализация свойств со значениями;

- Интерполяция строк;

- Использования лямбда-выражений;

- Импорт статических классов;

- Null-условный оператор;

- nameof оператор;

- Await в catch и finally блоках;

- Фильтры исключений;

- Инициализация Dictionary;

Повысили производительность компилятора.

В 2016 году появились новости о готовящейся версии C#7.0 [6]:

- Бинарные литералы;

- Локальные функции;

- Сопоставление с образцом;

- Условия и использование объектов в переключателях;

- Записи;

- Кортежи;

Платформа .NET Framework - это технология, которая поддерживает разработку и выполнение нового поколения приложений и веб-служб XML. При создании данной технологии учитывались следующие цели:

- Реализация согласованной объектно-ориентированной среды программирования для ограниченного сохранения и исполнения кода;

- Реализация среды осуществления кода, уменьшающей проблемы при развертывании ПО и управления версиями;

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

- Реализация среды осуществления кода, устраняющей проблемы с производительностью сред осуществления сценариев или интерпретируемого кода;

- Реализация единых принципов разработки всевозможных типов приложений;

- Взаимодействие на основе стандартов, которое гарантирует интеграцию кода платформы .NET с другими кодами.

Платформа .NET Framework состоит из общеязыковой среды выполнения и ее библиотеки классов. Среда выполнения управляет кодом во время выполнения, а также предоставляет ключевые службы, такие как управление памятью, управление потоками и удаленное взаимодействие. Так же среда добавляет условия строгой типизации и другие виды проверки точности кода, дающие безопасность и надежность. Из этого следует, что главной задачей среды является управление кодом [10]. Библиотека классов является комплексной объектно-ориентированной коллекцией часто применяемых типов, которые используются для разработки приложений.

.NET Framework может размещаться неуправляемыми компонентами, которые нагружают среду CLR в личные процессы и запускают выполнение управляемого кода, получая таким образом программную среду, дающую возможность использовать средства как управляемого, так и неуправляемого выполнения. Данная платформа не только предоставляет несколько базовых сред выполнения, но также поддерживает создание базовых сред выполнения независимыми производителями [8].

К примеру, ASP.NET размещает среду выполнения и обеспечивает масштабируемую среду для кода со стороны сервера. ASP.NET работает прямо со средой выполнения, чтобы обеспечить исполнение приложений и веб-служб.

Среда CLR управляет памятью, исполнением потоков, исполнением кода, проверкой безопасности кода, компиляцией и другими службами системы.

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

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

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

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

Среда выполнения разработана для повышения производительности. Пусть общеязыковая среда выполнения предоставляет большинство стандартных служб времени выполнения, управляемый код на машинном языке компьютера, где он выполняется [12].

Библиотека классов платформы .NET Framework представляет собой коллекцию типов, которые близко интегрируются со средой CLR. Библиотека классов является объектно-ориентированной. Она предоставляет типы, от которых управляемый код пользователя может наследовать функции. Компоненты свободных производителей просто объединяются с классами платформы .NET Framework.

Типы .NET Framework дают возможность решать типовые задачи программирования, в том числе и работу со строками, сбор данных, подключение к базам данных и доступ к файлам. В дополнение к этим стандартным задачам библиотека классов содержит типы, поддерживающие большинство специализированных сценариев разработки. Использовать .NET Framework можно для разработки следующих типов приложений и служб:

- Консольные приложения;

- Приложения с графическим интерфейсом Windows;

- Приложения Windows Presentation Foundation;

- Приложение ASP.NET;

- Службы Windows;

- Сервисноориентированные приложения, использующие Windows Communication Foundation;

- Приложения, поддерживающие бизнес-процессы Windows Workflow Foundation;

2. Разработанное программное обеспечение

2.1Разработанная программа

Данная программа служит для отправки электронных писем из программного кода. Реализована средствами языка C# и платформы .NET Framework. Целью данного проекта является реализация работы с SMTP сервером, обращаясь к нему для отправки e-mail сообщений прямо из кода программы на выбранные e-mail адреса.

Для отправки электронного сообщения требуется установить адрес SMTP - сервера и порт для отправки. В данном проекте, в программе реализованы несколько различных серверов и порты для отправки для каждого из них.

2.2 Описание алгоритма

Для реализации данной программы используются классы MailMessage и SmtpClient, а также имеется возможность прикрепить к письму файл, для которого необходимы методы класса Attachment. Здесь реализована возможность отправлять сообщения на почтовые ящики следующих почтовых сервисах:

- Google;

- Яндекс;

- Mail.ru;

- Ukr.ua;

- Рамблер;

Алгоритм данной программы заключается в том, что необходимо подключится к серверу почтового сервиса и порту для данного сервиса. Изначально выбран был сервис Google и порт для него - 465. Затем проходит авторизация на данном сервисе. Для этого необходимо указать e-mail и пароль. После этого необходимо в объект класса MailMessage указать адрес того, кому будет доставлено сообщение, тему и тело сообщения. Под телом сообщения понимают текст сообщения.

При необходимости прикрепить файл используется класс Attachment. При выборе файла записываются его данные в объект класса Attachment.

2.3Описание интерфейса программы

Для программы был разработан простой и понятный интерфейс. Описание основных элементов представлено в таблице 2.1.

Таблица 2.1 Ї разработанный интерфейс программы

Объект интерфейса

Назначение

Свойства объекта

Form1

Главное окно программы, в котором пользователь может ввести свои данные и прикреплять файлы

BackgroundImage: System.Drawing.Bitmap;

Icon: (Значок); Size: 400; 400; Text: EmailSendler;

comboBox1

ComboBox, где пользователь выбрать сервис с которого будет отправлено сообщение

Name: comboBox1; Size: 121; 21;

login

TextBox, в который вводится логин пользователя

Size: 100; 20

email

TextBox, в который вводится e-mail пользователя

Size: 100; 20

textBox3

TextBox, в который вводится e-mail того, кому будет отправлено сообщение

Size: 100; 20

Объект интерфейса

Назначение

Свойства объекта

pass

TextBox, в который вводится пароль пользователя

Size: 100; 20

textBox4

TextBox, в который вводится тема сообщения

Size: 270; 20

textBox6

TextBox, в который вводится тело сообщения

Multiline: True; Size: 359; 114

attacher

Button, который дает возможность прикрепить файл к сообщению

Size: 75; 23

send

Button, который отправляет сообщение

Size: 75; 23

2.4 Инструкция пользователя

Для того чтобы начать работу с данной программой, сперва необходимо ее установить. Для этого запустите EmailSendler-setup.exe (рисунок 2.1).

Рисунок 2.1 - Загрузочный файл программы

Выберите язык, который будет использован в процессе установки: английский, русский, украинский (рисунок 2.2).

Рисунок 2.2 - окно выбора языка

Далее выберите, в какую папку вы хотите установить EmailSendler, и нажмите «Далее», чтобы продолжить (рисунок 2.3).

Рисунок 2.3 - окно выбора пути установки

Выберите, где программа установки должна создать ярлыки, и нажмите «Далее» (рисунок 2.4).

Рисунок 2.4 - окно выбора пути установки в меню «Пуск»

Выберите дополнительные задачи, которые должны выполниться при установке EmailSendler, после этого нажмите «Далее» (рисунок 2.5).

Рисунок 2.5 - окно выбора дополнительных задач

Нажмите «Установить» (рисунок 2.6).

Рисунок 2.6 - окно просмотра опций установки

Дождитесь окончания установки и нажмите «Завершить» (рисунок 2.7).

Рисунок 2.7 - окно завершения установки

Если вы убрали галочку по окончанию установки, необходимо запустить «EmailSendler.exe» (рисунок 2.8).

Рисунок 2.8 - ярлык запуска программы

При работе в программе сперва необходимо выбрать почтовый сервис из выпадающего меню (рисунок 2.9).

Рисунок 2.9 - Окно программы с выбором почтового сервиса

После этого наберите свой логин на данном почтовом сервисе (рисунок 2.10).

Рисунок 2.10 - ввод логина

Далее укажите свой e-mail адрес и введите пароль (рисунок 2.11).

Рисунок 2.11 - ввод e-mail и пароля пользователя

Укажите адрес получателя (рисунок 2.12).

Рисунок 2.12 - ввод e-mail получателя

В конце напишите тему и введите само сообщение (рисунок 2.13).

Рисунок 2.13 - ввод темы и тела сообщения

При необходимости можете добавить файл. Для этого необходимо нажать на кнопку «Attach File». В диалоговом окне выбрать файл (рисунок 2.14).

Рисунок 2.14 - окно выбора файла

Для отправки сообщения необходимо нажать на кнопку «Send» (рисунок 2.15).

Рисунок 2.15 - окно программы с готовым к отправке сообщением

В результате работы программы будет сформировано письмо, отправленное на почту получателя (рисунок 2.16).

Рисунок 2.16 - Результат отправки сообщений

Выводы

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

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

В дальнейшем имеется возможность сохранить профили для быстрой авторизации на серверах. Там будет сохранен «Сервис», «Логин», «E-mail», «Пароль».

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

Однако предусмотреть все возможные ошибки в любом случае нельзя.

Список литературы

1) Агуров, Павел C#. Сборник рецептов / Павел Агуров. - М.: "БХВ-Петербург", 2012. - 432 c.

2) Албахари, Джозеф C# 3.0. Справочник / Джозеф Албахари , Бен Албахари. - М.: БХВ-Петербург, 2012. - 944 c.

3) Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. - М.: Вильямс, 2015. - 266 c.

4) Бишоп, Дж. C# в кратком изложении / Дж. Бишоп, Н. Хорспул. - М.: Бином. Лаборатория знаний, 2013. - 472 c.

5) Вагнер, Билл С# Эффективное программирование / Билл Вагнер. - М.: ЛОРИ, 2013. - 320 c.

6) Зиборов, В.В. Visual C# 2012 на примерах / В.В. Зиборов. - М.: БХВ-Петербург, 2013. - 480 c.

7) Адам Фримен ASP.NET 4.5 с примерами на C# 5.0 для профессионалов; Диалектика / Вильямс - М., 2014. - 686 c.

8) Алекс Макки Введение в .NET 4.0 и Visual Studio 2010 для профессионалов; Диалектика / Вильямс - М., 2010. - 738 c.

9) Бошемин Боб Основы ADO.NET; Вильямс - М., 2003. - 448 c.

10) Гарнаев А. Самоучитель Visual Studio .NET 2003; БХВ-Петербург - М., 2003. - 354 c.

11) Гриффитс Иэн Программирование на C# 5.0; Эксмо - М., 2012. - 826 c.

12) Джонсон Гленн , Нортроп Тони Разработка клиентских веб-приложений на платформе Microsoft .Net Framework (+ CD-ROM); Русская Редакция, Питер - М., 2007. - 748 c.

Приложение

Код разработанной программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Web;

using System.Net;

using System.Net.Mail;

using System.Net.Mime;

namespace Kursach

{

public partial class Form1 : Form

{

SmtpClient smtp = new SmtpClient("smtp.gmail.com", 465);

MailMessage message = new MailMessage();

public Form1()

{

InitializeComponent();

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

}

private void send_Click(object sender, EventArgs e)

{

//Авторизация на SMTP сервере

smtp.Credentials = new NetworkCredential(login.Text, pass.Text);

smtp.EnableSsl = Enabled;

//Формирование письма

message.From = new MailAddress(email.Text);

message.To.Add(new MailAddress(textBox3.Text));

message.Subject = textBox4.Text;

message.Body = textBox6.Text;

try

{

smtp.Send(message);

label8.Text = "Message send";

}

catch (Exception ex)

{

label8.Text = ex.ToString();

}

}

private void attacher_Click(object sender, EventArgs e)

{

//Прикрепляем файл

openFileDialog1.ShowDialog();

string file = openFileDialog1.FileName;

label9.Text = file;

Attachment attach = new Attachment(file, MediaTypeNames.Application.Octet);

// Добавляем информацию для файла

ContentDisposition disposition = attach.ContentDisposition;

disposition.CreationDate = System.IO.File.GetCreationTime(file);

disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);

disposition.ReadDate = System.IO.File.GetLastAccessTime(file);

message.Attachments.Add(attach);

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

switch(comboBox1.Text)

{

case "Gmail":

smtp.Host = "smtp.gmail.com";

smtp.Port = 465;

email.Text = "@gmail.com";

break;

case "Yandex":

smtp.Host = "smtp.yandex.ua";

smtp.Port = 2525;

email.Text = "@yandex.ua";

break;

case "Mail.ru":

smtp.Host = "smtp.mail.ru";

smtp.Port = 25;

email.Text = "@mail.ru";

break;

case "Ukr.net":

smtp.Host = "smtp.ukr.net";

smtp.Port = 465;

email.Text = "@ukr.net";

break;

case "Rambler":

smtp.Host = "smtp.rambler.ru";

smtp.Port = 465;

email.Text = "@rambler.ru";

break;

default:

smtp.Host = "smtp.gmail.com";

smtp.Port = 465;

email.Text = "@gmail.com";

break;

}

}

}

}

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.