Microsoft Ajax. Проект Розсилка повідомлень
Работа добавлена: 2016-05-20





Міністерство освіти і науки України

Смілянський промислово - економічний коледж

Черкаського державного технологічного університету

Курсова робота

з предмету «Розробка застосувань клієнт-серверної архітектури»

Тема: "MicrosoftAjax.Проект «Розсилка повідомлень»"

Студента ІV курсу групи ПР-9-12

напрямку підготовки:  програмна інженерія

спеціальності: розробка програмного забезпечення

Борткус Вадим Володимирович

Керівник викладач вищої категорії Зборівська В. П.

Національна шкала   _________________________

Члени комісії         _______       _________________

     _______       _________________

     _______       ________________

Сміла 2016

ЗАВДАННЯ

Для курсової роботиMicrosoftAjax. Проект «Розсилка повідомлень»

Студенту_______________________________________

______________________________________________

Курсова робота на вказану тему виконується студентом технікуму в слідуючому обсязі:

1.Пояснювальна записка

І. Вступ

  1. Висвітити загальні задачі створенняweb-застосувань;
  2. Показати свою ознайомленість з основними положеннями дисципліни,  існуючими міжнародними стандартами та правилами розробки;
  3. Проаналізувати проблеми створенняweb-продуктів.
  4. Вказати тему проекту, предмет вивчення.

Обсяг 1-2 ст.

ІІ. Теоретична частина відповідно до варіанту.

Розкрити питання, обсягом 10-12 ст.

ІІІ. Постановка задачі.

Призначення додатку, його функціїї та достоїнства. Обсяг 1 ст.

ІV. Опис проекту

Опис процесу завантаження проекту, інтерфейс процесу роботи.

Опис розміщення і переходу по сторінках проекту. 6-7 ст.

V. Детальне проектування

Розробка бази даних проекту. Логічна схема бази даних, структура таблиць. Основні модулі, алгоритми. 6-7 ст.

VІ Висновки

VII Література

2.Зміст додатків

  1. Лістинг програми.
  2. Системний код згенерованої бази  даних.
  3. Графічний матеріал.
  4. Схеми проектів.

Дата видачі______________________

Зав.відділенням___________________

Викладач_________________________

Зміст

Вступ

ASP.NET (Active Server Pages для .NET) - технологія створення веб-додатків і веб-сервісів від компанії Майкрософт. Вона є складовою частиною платформи Microsoft .NET і розвитком старішої технології Microsoft ASP. На даний момент останньою версією цієї технології є ASP.NET 5. Початковий проект називався «XSP»; Гатрі пояснив в інтерв'ю 2007 року, що «завжди запитують, що означає буква X. У той час вона нічого не значила. XML починається з неї; XSLT починається з неї. Все клевое починається з X, тому ми його так і назвали. »Прототип XSP був написаний на Java, так як на той момент у Microsoft не було Java-подібної технології. У той час вже передбачалося (небезпідставно, як з'ясувалося в подальшому), що ліцензування Java для Microsoft не буде продовжено в 2003 році (в 2003 минав термін виданої Sun Microsystems ліцензії). У 1999 було вирішено побудувати нову платформу на основі Common Language Runtime (CLR), так як в ньому, як і в Java, наявна програмування по принципам ООП, Прибирання сміття та інші можливості. Гатрі описав це рішення як «величезний ризик», так як успіх нової розробки був пов'язаний з успіхом CLR, яка, як і XSP, перебувала на ранній стадії розробки.

Хоча ASP.NET бере свою назву від старої технології Microsoft ASP, вона значно від неї відрізняється. Microsoft повністю перебудувала ASP.NET, грунтуючись на Common Language Runtime (CLR), яка є основою всіх додатків Microsoft .NET. Розробники можуть писати код для ASP.NET, використовуючи практично будь-які мови програмування, що входять в комплект .NET Framework (C #, Visual Basic.NET і JScript .NET). ASP.NET має перевагу в швидкості в порівнянні з скриптовими технологіями, так як при першому зверненні код компілюється і поміщається в спеціальний кеш, і згодом тільки виконується, не вимагаючи витрат часу на парсинг, оптимізацію, і т. д.

Предметом вивчення курсового проекту є веб-продукт «Розсилка повідомлень». Даним веб-продуктом зможуть користуватися всі користувачі. Проект «Розсилка повідомлень» містить в собі можливості відправляти адресатам повідомлення.

Метою даної курсової роботи є:

Метою створення веб-продукту є закріплення навичок по розробці додатківASP.NET.

1.MicrosoftAjax

МожливостіMicrosoftAjax дозволяють швидко створювати веб-сторінки з збагаченим призначеним для користувача інтерфейсом, щомістить відомі елементи призначеного для користувача інтерфейсу. Технологія Microsoft Ajax містить бібліотеки клієнтських скриптів, що включають не залежить від браузера скрипт ECMAScript (JavaScript) і технології динамічного HTML (DHTML). За допомогою можливостей Microsoft Ajax можна поліпшити роботу користувачів і підвищити ефективність веб-додатків.

Технологію Microsoft Ajax можна використовувати для поліпшення серверних веб-додатків ASP.NET або MVC-додатків ASP.NET шляхом додавання клієнтської функціональності, яка дозволяє прискорити їх роботу і підвищити інтерактивність. Наприклад, ви можете вибрати користувацькі елементи керування Microsoft Ajax для відображення згортається панелей і вкладок.

1.1.Робота з серверними елементами управлінняMicrosoftAjax

Елементуправління UpdatePanel ASP.NETдозволяєстворюватибагатіклієнтськівеб-додатки.За допомогою елементів управління UpdatePanel можна оновлювати окремі частини сторінки замість поновлення її цілком при зворотному передачі. Це називається оновленням часткової сторінки. Веб-сторінка ASP.NET, яка містить елемент керування ScriptManager і один або більше елемент управління UpdatePanel, може приймати участь в оновленні часткової сторінки без участі користувача клієнтського сценарію.

Елемент управління UpdatePanel - це серверний елемент управління, який допомагає розробляти веб-сторінки зі складною клієнтської обробкою, що робить веб-сторінки більш інтерактивними з точки зору кінцевого користувача. Написання коду, що взаємодіє з сервером і клієнтом з метою поновлення лише окремих частин веб-сторінки, зазвичай вимагає глибокого знання ECMAScript (JavaScript). Однак за допомогою елемента управління UpdatePanel можна використовувати оновлення часткової сторінки без написання клієнтських сценаріїв. Якщо потрібно, можна додати власний клієнтський сценарій для поліпшення умов роботи користувача. При використанні елемента управління UpdatePanel поведінку сторінки не залежить від оглядача і потенційно зменшує обсяг даних, переданих між клієнтом і сервером.

Елементи управління UpdatePanel працюють шляхом вказівки областей на сторінці, які можуть оновлюватися без оновлення всієї сторінки. Цей процес узгоджується серверним елементом управління ScriptManager і клієнтським класом PageRequestManager.Коли оновлення часткової сторінки включено, елементи управління можуть асинхронно відправляти дані на сервер. Асинхронний повторний виклик поводиться аналогічно звичайному в тому, що на сервері виконується повний життєвий цикл сторінки і елемента управління. Проте в разі асинхронного повторного виклику поновлення сторінки обмежені областями сторінки, укладеними в елементи управлінняUpdatePanel й позначеними як оновлювані. Сервер відправляє в оглядач розміткуHTML тільки для змінених елементів. У браузері клієнтський класPageRequestManager виконує обробку моделі об'єктів документа (DOM), щоб замінити існуючийHTML оновленої розміткою.

При використанні асинхронної зворотної передачі або об'єкта XMLHTTPRequest може виникати помилка зворотної передачі, якщо URL містить багатобайтових символ. Можна вирішити цю проблему, включивши елемент <base href = "url" /> в елемент head сторінки, де атрибут href встановлений рівним рядку в кодуванні URL, яка посилається на цю сторінку. Можна додати цей елемент, динамічно доданий в код сервера.

Елемент управлінняUpdatePanel вимагає наявності на веб-сторінці елемента управлінняScriptManager. За замовчуванням оновлення часткової сторінки включено, так як значення за замовчуванням властивостіEnablePartialRendering елемента управлінняScriptManager одноtrue.

Вміст в елемент управління UpdatePanel додається декларативно або в конструкторі, використовуючи властивість ContentTemplate. У розмітці це властивість представляється як елемент ContentTemplate. Щоб додати вміст програмним способом, використовується властивість ContentTemplateContainer.

Коли сторінка, що містить один або більше елементів, що управляють UpdatePanel, виконується спочатку, все вміст керуючих елементів UpdatePanel виконується і відсилається в оглядач. При наступних асинхронних повторних виклики можуть оновлюватися лише вміст окремих елементів управління UpdatePanel. Оновлення залежать від параметрів панелі, елемент якої здійснив повторний виклик, і від коду цієї конкретної панелі.

За замовчуванням будь-який елемент управління зворотним передачею в елементі управління UpdatePanel здійснює асинхронний повторний виклик і оновлює вміст панелі. Однак можна налаштувати інші елементи управління на сторінці на оновлення елемента управління UpdatePanel. Це робиться визначенням тригера для елемента управління UpdatePanel. Тригер - це прив'язка, яка вказує елемент управління зворотної передачі і подія, що викликає оновлення панелі. При виникненні вказаної події тригера (наприклад події кнопки Click), панель оновлюється.

Не обов'язково вказувати подія тригера. Якщо подія не задано, подія тригера - це подія за замовчуванням для елемента управління. Наприклад, подією за замовчуванням для елемента управління Button є подія Click.

Щоб використовувати елемент управління UpdatePanel на головній сторінці, необхідно вирішити, як включати елемент управління ScriptManager. Якщо включити ScriptManager на головній сторінці, він може використовуватися як елемент управління ScriptManager для всіх сторінок вмісту. (Якщо ви хочете декларативно зареєструвати сценарії або служби на сторінці вмісту, можна додати елемент керування ScriptManagerProxy на цю сторінку.)

Якщо головна сторінка не містить елемент керування ScriptManager, можна помістити ScriptManager на кожну сторінку вмісту, що містить елемент керування UpdatePanel. Вибір залежить від того, як передбачається управляти клієнтським сценарієм в додатку.

У деяких випадках елемент управління ScriptManager знаходиться на головній сторінці, і немає необхідності в відображенні часткових сторінок на сторінці вмісту. Тоді для цієї сторінки вмісту необхідно програмно встановити властивість EnablePartialRendering елемента управління ScriptManager в значення false.

Елементи управління UpdatePanel можуть бути вкладеними. При оновленні батьківської панелі всі вкладені панелі також оновлюються.

Коли внутрішній елемент управління GridView показує нову сторінку записів, зовнішня панель і панелі в інших рядках зовнішнього елемента управління GridView не оновлюється. При відображенні нової сторінки записів зовнішнім елементом управління GridView зовнішня панель і всі вкладені панелі оновлюються.

Щоб програмно додати елемент керування UpdatePanel на сторінку, потрібно створити новий екземпляр елемента управління UpdatePanel. Потім елементи управління додаються на нього за допомогою властивості ContentTemplateContainer і методу ControlCollection.Add. Не додавайте елементи управління безпосередньо в властивість ContentTemplate.

Коли елемент управління UpdatePanel додається програмними засобами, тільки повторні виклики від елементів управління в тому ж контейнері іменування, що і UpdatePanel, можуть бути використані як тригери для панелі.

Веб-частини ASP.NET - це інтегрований набір елементів управління для створення веб-вузлів, що дозволяють кінцевим користувачам змінювати вміст, зовнішній вигляд і поведінку веб-сторінок безпосередньо з оглядача. Елементи управління веб-частин можна використовувати в UpdatePanel з наступними обмеженнями:

Наступні сценарії установки на сторінці кнопки повторного виклику за замовчуванням не підтримуються при асинхронних повторних викликах:

Наступні методи класу HttpResponse підтримуються тільки в сценаріях зворотної передачі, але не в сценаріях асинхронних повторних викликів:

Елемент управління UpdateProgress надає інформацію про стан щодо часткового оновлення сторінки в елементах управління UpdatePanel. Для елемента управління UpdateProgress можна налаштувати вміст і макет за замовчуванням. Щоб запобігти мерехтіння при занадто швидкому частковому оновленні сторінки, можна задати затримку перед відображенням елемента управління UpdateProgress.

Елемент управління UpdateProgress допомагає розробляти більш наочний користувальницький інтерфейс, коли веб-сторінка містить один або кілька елементів управління UpdatePanel для часткової відтворення сторінки. Якщо часткове оновлення сторінки виконується повільно, можна використовувати елемент управління UpdateProgress для надання візуальної зворотнього зв'язку про стан оновлення. На сторінці можна розмістити кілька елементів управління UpdateProgress, кожен з яких буде зіставлений з окремим елементом управління UpdatePanel. Крім того, можна використовувати один елемент управління UpdateProgress і зіставити його з усіма елементами управління UpdatePanel на сторінці.

Елемент управління UpdateProgress отрісовиваєт елемент <div>, який відображається або прихований в залежності від того, чи є впливом зіставлений елемент управління UpdatePanel асинхронну зворотну передачу. Для відтворення початкової сторінки або синхронної зворотної передачі елемент управління UpdateProgress не відображається.

Елемент управління UpdateProgress зіставляється з елементом управління UpdatePanel за допомогою завдання властивості AssociatedUpdatePanelID елемента управління UpdateProgress. Коли зворотна передача відбувається з елемента управління UpdatePanel, відображаються всі зіставлені елементи управління UpdateProgress. Якщо елемент керування UpdateProgress не приміряючи з певним елементом управління UpdatePanel, елемент управління UpdateProgress відображає хід виконання будь-асинхронної зворотної передачі.

Якщо властивості ChildrenAsTriggers елемента управління UpdatePanel присвоєно значення false і асинхронна зворотна передача відбувається з цього елемента управління UpdatePanel, будь зіставлений елемент управління UpdateProgress буде відображений.

Коли властивості Dynamic Layout присвоєно значення true, то спочатку елемент управління UpdateProgress не займає місце при відображенні веб-сторінок. Замість цього, сторінка динамічно змінюється, щоб показати вміст елемента управління UpdateProgress, коли це необхідно. Для підтримки динамічного відображення елемент управління промальовується як елемент <div>, у якого властивості стилю display спочатку присвоєно значення none.

Коли властивості DynamicLayout присвоєно значення false, елемент управління UpdateProgress займає місце при відображенні сторінки, навіть якщо він невидимий. В цьому випадку властивості стилю display елемента <div> для елемента управління присвоюється значення block, а для visibility спочатку задається значення hidden.

Елементи управління UpdateProgress можуть бути поміщені всередині або поза елементами управління UpdatePanel. Елемент управління UpdateProgress відображається, коли елемент управління UpdatePanel, з яким він зіставлений, оновлюється в результаті асинхронної зворотної передачі. Ця подія істинно, якщо елемент керування UpdateProgress знаходиться всередині іншого елемента управління UpdatePanel.

Якщо елемент керування UpdatePanel знаходиться всередині іншої панелі поновлення, зворотна передача відбувається в дочірньої панелі створює умови, щоб всі елементи управління UpdateProgress, зіставлені з дочірньою панеллю, були відображені. У ній також відображаються всі елементи управління UpdateProgress, зіставлені з батьківської панеллю. Якщо зворотна передача відбувається в проміжному дочірньому елементі управління батьківської панелі, відображаються тільки елементи управління UpdateProgress, зіставлені з батьківської панеллю. Це відповідає логіці запуску зворотних передач.

Часом відображення елемента управлінняUpdateProgress можна програмно керувати за допомогою подійbeginRequestJavaScriptendRequestJavaScript класуPageRequestManager. У обробнику подійbeginRequest, можна відобразити елементDOM, який представляє елемент управлінняUpdateProgress. У обробнику подійendRequest можна приховати цей елемент.

Для відображення і приховування елементу управлінняUpdateProgress в наступних умовах необхідно надати клієнтський сценарій:

Елемент управлінняASP.NETAJAXTimer виконує зворотні передачі через певні інтервали. Якщо використовується елемент керуванняTimer з елементом управлінняUpdatePanel, то можна включити часткові поновлення через певні інтервали. Також можна використовувати елемент управлінняTimer для передачі всієї сторінки.

Елемент управління Timer використовується для здійснення:

Елемент управління Timer є серверним елементом управління, який впроваджує компонент JavaScript у веб-сторінку. Компонент JavaScript ініціює зворотний передачу від оглядача, коли закінчується інтервал, визначений у властивості Interval. Властивості для елемента управління Timer встановлюються в коді, який виконується на сервері, і ці властивості передаються компоненту JavaScript.

При використанні елемента управління Timer екземпляр класу ScriptManager потрібно включити в веб-сторінку.

Коли зворотна передача ініційована елементом управління Timer, елемент управління Timer викликає подія Tick на сервері. Можна створити обробник подій для події Tick, щоб виконувати дії при відправці сторінки сервера.

Встановіть властивість Interval для визначення того, як часто відбуватимуться зворотні передачі, і встановіть властивість Enabled, щоб включити або вимкнути Timer. Властивість Interval визначається в мілісекундах, і за замовчуванням його значення складає 60 000 мілісекунд, або 60 секунд.

Присвоєння невеликого значення властивості Interval елемента управління Timer може привести до значного збільшення трафіку до веб-сервера. Використовуйте елемент керування Timer для оновлення вмісту тільки так часто, як це потрібно.

Можна включити більше одного елемента управління Timer в веб-сторінку, якщо різні елементи управління UpdatePanel повинні оновлюватися з різними інтервалами. Також один екземпляр елемента керування Timer може бути тригером більш ніж для одного елемента управління UpdatePanel на веб-сторінці.

Коли елемент управління Timer включений в елемент управління UpdatePanel, елемент управління Timer автоматично діє як тригер для елемента управління UpdatePanel. Можна перевизначити цю поведінку шляхом завдання для властивості ChildrenAsTriggers елемента управління UpdatePanel значення false.

Для елементів управління Timer всередині елемента керування UpdatePanel тимчасової компонент JavaScript заново створюється, тільки коли закінчується поточна зворотна передача. Таким чином, часовий інтервал не почалась, поки сторінка не виконає зворотну передачу повністю. Наприклад, якщо для властивості Interval задано значення в 60 000 мілісекунд (60 секунд), але виконання поточної зворотної передачі займає 3 секунди, то наступна зворотна передача відбудеться через 63 секунди.

Коли елемент управління Timer знаходиться поза елементом управління UpdatePanel, потрібно явно визначити елемент управління Timer як тригер для елемента управління UpdatePanel, який потрібно оновити.

Якщо елементи керування Timer знаходяться поза елементом управління UpdatePanel, то тимчасової компонент JavaScript залишиться активним і при виконанні зворотної передачі. Наприклад, якщо для властивості Interval задано значення в 60 000 мілісекунд (60 секунд) і виконання поточної зворотної передачі займає 3 секунди, то наступна зворотна передача відбудеться через 60 секунд. Користувач буде бачити оновлений вміст в елементі управління UpdatePanel тільки протягом 57 секунд.

Для властивості Interval необхідно встановити значення, що дозволяє зробити повну асинхронну зворотну передачу до ініціалізації наступної зворотної передачі. Якщо нова зворотна передача ініціюється під час обробки попередньої зворотної передачі, то ініційована раніше передача скасовується.

Елемент управління ScriptManager управляє клієнтським сценарієм для веб-сторінок ASP.NET, що підтримують технологію AJAX. За замовчуванням елемент управління ScriptManager реєструє сценарій для Microsoft AJAX (бібліотека) на сторінці. Це дозволяє клієнтського сценарієм використовувати розширення системи типів і підтримувати такі можливості, як часткова отрисовка сторінки і виклики веб-служби.

На сторінці повинен використовуватися елемент управління ScriptManager, щоб активувати наступні можливості AJAX ASP.NET:

Якщо сторінка містить один або кілька елементів управління UpdatePanel, то елемент управління ScriptManager управляє часткової отрисовкой сторінки в браузері. Елемент управління взаємодіє з життєвим циклом сторінки для поновлення частин сторінки, які знаходяться всередині елементів управління UpdatePanel.

Властивість EnablePartialRendering елемента управління ScriptManager визначає, чи бере участь сторінка в часткових оновленнях. За замовчуванням властивість EnablePartialRendering має значення true. Таким чином, за замовчуванням часткова отрисовка сторінки активується при додаванні на сторінку елемента управління ScriptManager.

Під час часткової відтворення сторінки помилки можна обробляти наступним чином:

Задайте властивість AllowCustomErrorsRedirect. Воно визначає, як використовується розділу Користувачів помилок файлу Web.config при виникненні помилки в ході асинхронної зворотної передачі.

Обробіть подія AsyncPostBackError елемента управління ScriptManager, яке виникає при наявності помилки в ході асинхронної зворотної передачі.

Задайте властивість AsyncPostBackErrorMessage, яке є повідомленням про помилку, що відправляється оглядачеві.

Microsoft AJAX (бібліотека) додає розширення системи типів до JavaScript, що надають простору імен, успадкування, інтерфейси, перерахування, відображення і допоміжні функції для рядків і масивів. Ці розширення надають функції в клієнтському сценарії, подібні до .NET Framework. Вони дозволяють писати ASP.NET AJAX сумісні програми структурованим способом, що полегшує подальшу підтримку додатків, додавання нових функцій і рознесення функціональності по верствам. Додавання елемента керування ScriptManager на веб-сторінку ASP.NET автоматично включає розширення системи типів, тому можна використовувати бібліотеку в клієнтському сценарії.

Використовуйте елемент управління ScriptManager для управління ресурсами, створеними для елементів управління, що беруть участь в часткових оновлення сторінок. Ресурси включають сценарії, стилі, приховані поля і масиви. Колекція Scripts елемента управління ScriptManager містить об'єкт ScriptReference для кожного сценарію, доступного оглядачеві. Сценарії можна визначати примусово або програмними засобами.

Елемент управління ScriptManager також надає методи реєстрації, які можна використовувати для управління клієнтськими сценаріями і прихованими полями за допомогою програмних засобів. При реєстрації сценарію або прихованих полів, що підтримують часткові поновлення, необхідно викликати методи реєстрації елемента управління ScriptManager. (Для реєстрації сценаріїв, які не потрібні для часткових оновлень, використовуйте методи класу ClientScriptManager).

Будь-які сценарії сторінки, які реєструються за допомогою елемента управління ScriptManager, а також весь сценарій обробки подій повинні бути всередині елемента form сторінки. В іншому випадку сценарій не буде зареєстрований або виконаний.

Щоб зареєструвати веб-службу, яку потрібно викликати зі сторінки ASP.NET, що підтримує AJAX, необхідно зареєструвати веб-службу, додавши її в колекцію Services елемента управління ScriptManager. Платформа ASP.NET AJAX створює клієнтський проксі-об'єкт для кожного об'єкта ServiceReference в колекції Services.Проксі-класи та їх строго типізовані члени спрощують використання веб-служб з клієнтського сценарію.

Можна програмно додавати об'єкти ServiceReference до колекції Services для реєстрації веб-служб під час виконання. Додаткові відомості див. У розділі Веб-служби в ASP.NET AJAX.

Microsoft AJAX (бібліотека) включає проксі-класи для виклику служб додатків ASP.NET 2.0, що відповідають за перевірку справжності за допомогою форм, взаємодія з ролями і профілями, безпосередньо з JavaScript.При необхідності використовувати клієнтської служби та пароль можна зареєструвати її за допомогою елемента управлінняScriptManager.

На сторінку може бути доданий тільки один екземпляр елемента управління ScriptManager. Сторінка може містити елемент управління, прямо або побічно, у вкладеному компоненті, такому як користувальницький елемент управління, сторінка вмісту головної сторінки або вкладена головна сторінка. Якщо сторінка вже містить елемент керування ScriptManager, але вкладений або батьківський компонент потребує додаткових можливостях елемента управління ScriptManager, то компонент може містити елемент управління ScriptManagerProxy. Наприклад, елемент управління ScriptManagerProxy дозволяє додавати сценарії і служби, які стосуються вкладеним компонентів.

Отже,Microsoft Ajaxмає можливість під завантажувати елементи на сторінку без її оновлення, дає управління над оновленням сторінки за допомогою методів інтервальності.

2. Постановка задачі

2.1. Призначення, функції та достоїнства додатку

Веб-продукт призначений для створення електронної розсилки повідомлень деяким певним користувачам, що є в базі даних проекту, якою може користуватися будь-який користувач. В даному веб-додатку «Розсилка повідомлень» користувач може відправити електронний лист будь-якому адресату, який є в базі даних. Його головним достоїнством є надання користувачу не витрачати часу на реальну пошту, а замінити її швидкодійним веб-додатком відправлення повідомлень різним адресатам через локальну або інтернет мережу.

3. Опис проекту

3.1. Проектування інтерфейсу

Для проектування інтерфейсу було використано принцип послідовності діаграми переходів станів.Весь проект реалізований в одній сторінці «Розсилка повідомлень». Процес основується на описі вимог до інтерфейсу у текстовому вигляді:

  1. При вході на сайт завантажується головна сторінка з відповідним інтерфейсом, на якому розміщено: назва сторінки; випадаючий список адресатів,яким можна відправити повідомлення; поле введення адреси відправника; поле введення теми повідомлення; поле введення тексту повідомлення та кнопка відправлення заповненої форми. Форма буде відправлена, якщо всі текстові поля будуть заповненні.

3.2. Основні елементи інтерфейсу

Візуальний інтерфейсWEB – додатку було визначено в процесі розробкуWEB – проекту. Далі слідує опис основних елементів інтерфейсу.

Рис. 3.2.1 – Основні елементи інтерфейсу головно сторінки проекту.

Основні елементи інтерфейсу сторінки реєстрації користувачів:

  1. Назва сторінки;
  2. Заголовок сторінки;
  3. Елемент відступу;
  4. Поле введення електронної адреси відправника;
  5. Повідомлення, про те, що поле «Адреса відправника» повинна бути заповненою;
  6. Поле введення теми повідомлення;
  7. Повідомлення, про те, що поле «Тема повідомлення» повинна бути заповненою;
  8. Поле введення тексту повідомлення;
  9. Повідомлення, про те, що поле «Повідомлення» повинна бути заповненою;
  10. Кнопка перевірки заповненості важливих полів форми та її відправки;
  11. Заголовок текстового поля, який розміщений праворуч;
  12. Заголовок текстового поля, який розміщений праворуч;
  13. Заголовок текстового поля, який розміщений праворуч;
  14. Заголовок випадаючого поля, який розміщений нижче;
  15. Випадаючий список можливих адресатів.

4. Детальне проектування

4.1. Розробка бази даних проекту, структура таблиць

База даних веб - додатку «Розсилка повідомлень» створена розробником проекту. До проекту було допущено має доступ будь-який користувач. В самій базі даних міститься 1 таблиця:

Таблиця «Customers» містить атрибути:

Рис. 4.1.1 – Конструкторський вид таблиці Customers.

Рис. 4.1.4 – Логічна схема бази даних.

4.2. Основні модулі, алгоритми

При створенні проекту було використано наступні модулі:

  1. Модуль відправлення повідомлення адресатам:

Рис. 4.2.1 – Модуль відправлення повідомлень.

Для роботи бази даних з проектом було використано наступний алгоритм:<%@ Page Language=VB Debug=true %>

<%@ Import Namespace="System.Web.Mail" %>

<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.OLEDB" %>

<script runat=server>

Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)

   If Not IsPostBack Then

       Dim DBConn as OleDbConnection

       Dim DBCommand As OleDbDataAdapter

       Dim DSPageData as New DataSet

       DBConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" _

           & "DATA SOURCE=" _

           & Server.MapPath("/INetBook/C4/EmailBlast/" _

           & "Access/C4EmailBlast.mdb;"))

       DBCommand = New OleDbDataAdapter _

           ("Select Distinct GroupName from Customers " _

           & "Order By GroupName", DBConn)

           DBCommand.Fill(DSPageData, _

           "Groups")

       ddlGroupName.DataSource = _

           DSPageData.Tables("Groups").DefaultView

       ddlGroupName.DataBind()

   End If

End Sub

Sub SubmitBtn_Click(Sender As Object, E As EventArgs)

   Dim DBConn as OleDbConnection

   Dim DBCommand As OleDbDataAdapter

   Dim DSPageData as New DataSet

   Dim TheMailMessage as New MailMessage

   Dim I as Integer

   DBConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" _

       & "DATA SOURCE=" _

       & Server.MapPath("/INetBook/C4/EmailBlast/" _

       & "Access/C4EmailBlast.mdb;"))

   DBCommand = New OleDbDataAdapter _

       ("Select Distinct CustomerEmail from Customers " _

       & "Where GroupName = '" _

       & ddlGroupName.SelectedItem.Text & "'", DBConn)

   DBCommand.Fill(DSPageData, _

       "Emails")

   TheMailMessage.From = txtFrom.Text

   TheMailMessage.Subject = txtSubject.Text

   TheMailMessage.Body = txtMessage.Text

   For I = 0 to DSPageData.Tables("Emails"). _

           Rows.Count - 1

       TheMailMessage.To = DSPageData.Tables("Emails"). _

           Rows(0).Item("CustomerEmail")

           ' SmtpMail.Send(TheMailMessage)

   Next

   if DSPageData.Tables("Emails").Rows.Count = 1 then

       lblMessage.Text = "Ваше сообщение отправлено 1" _

           & " адресату. Можете осуществить новую рассылку."

   Else

       lblMessage.Text = "Ваше сообщение отправлено " _

           & DSPageData.Tables("Emails").Rows.Count _

           & " адресатам. Можете осуществить новую рассылку."

   End If

End Sub

   Protected Sub ddlGroupName_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

   End Sub

Висновок

В ході виконання курсової роботи було реалізованоWEB – додаток, який надає можливість користувачам відправляти адресатам певні повідомленя із певною тематикою, що дає собою зручність не використовувати реальні матеріали та витрачати час на реальну пошту.

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

Реалізується це все за допомогоюWEBдодатку (сторінки), що розміщений на сервері(локальний сервер).

Головна сторінкаWEB – проекту надає користувачеві відправити електронний лист певному адресату, що є в базі даних з певної електронної пошти.

ДанийWEBдодаток значно спрощує життя людям(користувачам) замінюючи реальну(фізичну) пошту на електронну, що надає собою більш швидку оперативність при своєму використанні.

Література
  1. Разработка Web- приложений на Microsoft Visual Basic .NET.
  2. Microsoft Visual C# .NET. Учебный курс MCAD MCSD.
  3. Бучек Г. ASP.NET. Учебный курс — СП6.: Питер. 2002. — 512 с.: ил.
  4. Троелсен Э. «C# и платформа .NET. Библиотека программиста» - СПб.: Питер 2007 796л.
  5. Шилдт Г. — Самоучитель C++, видавництво — «БХВ-Петербург, 3-е издание, 2003», 318с. ISBX 944-53S-328-2.
  6. Т. А. Павловська, Програмування високого рівня, Києво-Могилян. акад. 285с. 2005. ISBX 911-11S-418-4.
  7. Н. Вірт - Алгоритми і структура даних, Києво-Могилян. акад., 366с. ISBX 962-75S-358-0.
  8. Charls Petsold (Ч. Петзольд) - Код – таємна мова програмування. Washing. P., 2004. 206c. ISBX 162-53S-238-4.
  9. http://www.ebooks.streltsov.spb.su/microsoft.htm.
  10. http://www.aabooks.ru/books/180.html.
  11. http://msdn.microsoft.com/ru-ru/asp.net/gg404476.
  12. http://msdn.microsoft.com/ruru/library/yedba920.aspx.

Додаток 1 – Лістинг програми

Лістинг файлу «index.aspx»

<%@ Page Language=VB Debug=true %>

<%@ Import Namespace="System.Web.Mail" %>

<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.OLEDB" %>

<script runat=server>

Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)

   If Not IsPostBack Then

       Dim DBConn as OleDbConnection

       Dim DBCommand As OleDbDataAdapter

       Dim DSPageData as New DataSet

       DBConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" _

           & "DATA SOURCE=" _

           & Server.MapPath("/INetBook/C4/EmailBlast/" _

           & "Access/C4EmailBlast.mdb;"))

       DBCommand = New OleDbDataAdapter _

           ("Select Distinct GroupName from Customers " _

           & "Order By GroupName", DBConn)

           DBCommand.Fill(DSPageData, _

           "Groups")

       ddlGroupName.DataSource = _

           DSPageData.Tables("Groups").DefaultView

       ddlGroupName.DataBind()

   End If

End Sub

Sub SubmitBtn_Click(Sender As Object, E As EventArgs)

   Dim DBConn as OleDbConnection

   Dim DBCommand As OleDbDataAdapter

   Dim DSPageData as New DataSet

   Dim TheMailMessage as New MailMessage

   Dim I as Integer

   DBConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" _

       & "DATA SOURCE=" _

       & Server.MapPath("/INetBook/C4/EmailBlast/" _

       & "Access/C4EmailBlast.mdb;"))

   DBCommand = New OleDbDataAdapter _

       ("Select Distinct CustomerEmail from Customers " _

       & "Where GroupName = '" _

       & ddlGroupName.SelectedItem.Text & "'", DBConn)

   DBCommand.Fill(DSPageData, _

       "Emails")

   TheMailMessage.From = txtFrom.Text

   TheMailMessage.Subject = txtSubject.Text

   TheMailMessage.Body = txtMessage.Text

   For I = 0 to DSPageData.Tables("Emails"). _

           Rows.Count - 1

       TheMailMessage.To = DSPageData.Tables("Emails"). _

           Rows(0).Item("CustomerEmail")

           ' SmtpMail.Send(TheMailMessage)

   Next

   if DSPageData.Tables("Emails").Rows.Count = 1 then

       lblMessage.Text = "Ваше сообщение отправлено 1" _

           & " адресату. Можете осуществить новую рассылку."

   Else

       lblMessage.Text = "Ваше сообщение отправлено " _

           & DSPageData.Tables("Emails").Rows.Count _

           & " адресатам. Можете осуществить новую рассылку."

   End If

End Sub

   Protected Sub ddlGroupName_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

   End Sub

</SCRIPT>

<HTML>

<HEAD>

<TITLE>Розсилка повідомлень</TITLE>

</HEAD>

<BODY BACKGROUND="./lp.gif" TEXT="darkslateblue" LINK="darkred" VLINK="darkred" ALINK="red" LEFTMARGIN="140">

<form runat="server">

<asp:Label

   id="lblTitle"

   Font-Size="25pt"

   Font-Name="Tahoma"

   Text="Розсилка повідомлень"

   runat="server"

/>

<BR>

<IMG SRC="./line.gif">

<Font Face="Tahoma">

<BR><BR>

<asp:Label

   id="lblMessage"

   Font-Size="12pt"

   Font-Name="Tahoma"

   Font-Bold="True"

   runat="server"

   Text="Виберіть адресата."

/>

<BR><BR>

<asp:dropdownlist

   id="ddlGroupName"

   runat=server

   DataTextField="GroupName" onselectedindexchanged="ddlGroupName_SelectedIndexChanged"

>

</asp:dropdownlist>

<BR>

<IMG SRC="./line.gif">

<Font Face="Tahoma">

<BR>

<Table>

<TR>

<TD>

<B>Адреса відправника:</B>

</TD>

<TD>

<asp:TextBox

   id="txtFrom"

   Columns="40"

   MaxLength="100"

   runat=server

/>

<asp:RequiredFieldValidator

   id="rfvFrom"

   ControlToValidate="txtFrom"

   Display="Dynamic"

   Font-Name="Verdana"

   Font-Size="10pt"

   runat=server>

   <BR>Необхідно вказати адерсу відправника!

</asp:RequiredFieldValidator>

</TD>

</TR>

<TR>

<TD>

<B>Тема повідомлення:</B>

</TD>

<TD>

<asp:TextBox

   id="txtSubject"

   Columns="40"

   MaxLength="100"

   runat=server

/>

<asp:RequiredFieldValidator

   id="rfvSubject"

   ControlToValidate="txtSubject"

   Display="Dynamic"

   Font-Name="Verdana"

   Font-Size="10pt"

   runat=server>

   <BR>Необхідно вказати тему повідомлення!

</asp:RequiredFieldValidator>

</TD>

</TR>

<TR>

<TD VAlign="Top">

<B>Повідомлення:</B>

</TD>

<TD>

<asp:TextBox

   id="txtMessage"

   Columns="40"

   Rows="5"

   runat=server

   TextMode="MultiLine"

/>

<asp:RequiredFieldValidator

   id="rfvMessage"

   ControlToValidate="txtMessage"

   Display="Dynamic"

   Font-Name="Verdana"

   Font-Size="10pt"

   runat=server>

   <BR>Необхідно ввести повідомлення!

</asp:RequiredFieldValidator>

</TD>

</TR>

</Table>

<BR>

<asp:button

   id="butOK"

   text="  OK  "

   Type="Submit"

   OnClick="SubmitBtn_Click"

   runat="server"

/>

</Font>

</Form>

</BODY>

</HTML>

Додаток 2 – Схеми проекту

Рис.1 – Схема розмітки файлів проекту в файловій системі.




Возможно эти работы будут Вам интересны.

1. Microsoft SQL Server

2. Текстовый редактор Microsoft Word

3. Microsoft Office Programmability in C# and Visual Basic

4. Применение программ пакета Microsoft Office

5. Використання Visual Basic for Application у Microsoft Excel

6. Обработка экспериментальных данных в металлургии с использованием Microsoft Excel

7. Решение задачи нелинейного программирования с использованием Microsoft Excel

8. Microsoft Access - система управления реляционными базами данных

9. Використання надбудови Пошук розв’язку електронних таблиць Microsoft Excel

10. Знайомство з середовищем розробки Microsoft Visual Studio.NET. Структура програми на C#. Основи мови C#