Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Загальна характеристика патерну mvc

Скачати 394.75 Kb.

Загальна характеристика патерну mvc




Скачати 394.75 Kb.
Сторінка1/3
Дата конвертації02.05.2017
Розмір394.75 Kb.
  1   2   3

  1. Загальна характеристика патерну MVC.

MVC - ModelViewController. Цей шаблон розділяє роботу веб-додатка на три окремі функціональні ролі: модель даних (model, надає знання: дані та методи роботи з цими даними, реагує на запити, змінюючи свій стан; не містить інформації, як ці знання можна візуалізувати), користувальницький інтерфейс (view, відповідає за відображення інформації, тобто її візуалізацію; часто як представлення виступає форма (вікно) з графічними елементами) і керуючу логіку (controller,забезпечує зв'язок між користувачем і системою: контролює введення даних користувачем і використовує модель і представлення для реалізації необхідної реакції). Таким чином, зміни, внесені в один з компонентів, надають мінімально можливий вплив на інші компоненти. У даному паттерні модель не залежить від подання або керуючої логіки, що робить можливим проектування моделі як незалежної компоненти і, наприклад, створювати кілька подань для однієї моделі. Вперше цей шаблон був застосований в фреймворку, що розробляється для мови Smalltalk в кінці 1970-х років. З цього моменту він відіграє основну роль у більшості фреймворків з призначеним для користувача інтерфейсом. Він докорінно змінив погляд на проектування додатків.

Для реалізації схеми Model-View-Controller використовується досить велика кількість шаблонів проектування (в залежності від складності архітектурного рішення), основні з яких «спостерігач», «стратегія», «компонувальник».

Архітекту́ра (грец. αρχιτεκτονικη - будівництво) - це одночасно наука і мистецтво проектування будівель, а також власне система будівель та споруд, які формують просторове середовище для життя і діяльності людей відповідно до законів краси.

Крім того, можуть використовуватися й інші шаблони проектування, наприклад, «фабричний метод», який дозволить задати за замовчуванням тип контролера для відповідного виду.



2. Структура проекту ASP.NET MVC

ASP.NET MVC-це частина платформи ASP.NET. Розробка додатків ASP.NET MVC-це альтернатива розробці сторінок веб-форм ASP.NET, але не заміна моделі веб-форм. При створенні нового додатка ASP.NET MVC в Visual Studio в нього автоматично додаються кілька файлів і каталогів.

Шаблони проектування програмного забезпечення (англ. software design patterns) - ефектні способи вирішення задач проектування програмного забезпечення. Шаблон не є закінченим зразком, який можна безпосередньо транслювати в програмний код.

Microsoft Visual Studio - серія продуктів фірми Майкрософт, які включають інтегроване середовище розробки програмного забезпечення та ряд інших інструментальних засобів. Ці продукти дозволяють розробляти як консольні програми, так і програми з графічним інтерфейсом, в тому числі з підтримкою технології Windows Forms, а також веб-сайти, веб-застосунки, веб-служби як в рідному, так і в керованому кодах для всіх платформ, що підтримуються Microsoft Windows, Windows Mobile, Windows Phone, Windows CE, .NET Framework, .NET Compact Framework та Microsoft Silverlight.

Проекти ASP.NET MVC за замовчуванням мають шість каталогів вищого рівня:



/Controllers – Місце зберігання контролерів проекту. Контролери - класи, які відповідають за роботу додатка. /Models – Місце зберігання класів, які представляють і маніпулюють даними і бізнес-об'єктами
/Views – Місце зберігання файлів інтерфейсу, що відповідають за подання, наприклад, розмітки HTML. Є папка загальних для контролерів уявлень - папка Shared. /Scripts – Місце зберігання бібліотек і скриптів JavaScript. /Content – Місце зберігання файлів стилів css, картинок, а також іншого контенту./App_Data – Місце зберігання файлів з ​​даними, доступ для простих користувачів в цю папку заборонений.

ASP.NET MVC не вимагає жорсткого дотримання даної структури в проекті. В дійсності програмісти, що працюють над великими проектами, зазвичай ділять один великий проект на безліч більш дрібних для більшої керованості(наприклад, класи даних моделі розробляються впроекті для бібліотеки класів). Однак все ж стандартна структура проекту являє непоганий каркас додатка, з яким дуже зручно працювати.



Каталог/Controllers за замовчуванням містить два класи-контролера: HomeController і AccountController.

Каталог/Views містить три вкладених під-каталоги-/Account, /Home і /Shared

Каталоги/Contentі/Scripts містять файл Site.css, який використовується для стилізації html-сторінки, а також бібліотеки JavaScript, які роблять додають в додаток підтримку jQuery

Папки Images і Scripts містять відповідно зображення і скрипти на JavaScript, використовувані в додатку. За замовчуванням ці папки вже містять файли, зокрема, в папку Scripts вже поміщені файли бібліотеки jQuery. Файли, що додаються Visual Studio за умовчанням, представляють базову структуру програми:головну сторінку, сторінку з довідковою інформацією, сторінки дляв ходу на сайт і реєстрації, а також сторінку необроблених помилок.

За замовчуваннямдодаткаASP.NET MVC ґрунтуються на деяких угодах, що до зволяє розробникам уникнути зайвої конфігурації.
Наприклад, назви каталогів базуються на угодах, що дозволяє не вказувати шляху до файлів представлення в класі-контролері. За замовчуваннямASP.NET MVC шукає файл представлення в каталозі \Views\[ControllerName] \.
Дана концепція називається"угода по конфігурації". При необхідності вона може бути перевизначеною
.
3. Контролери у ASP.NET MVC: структура, функції. Написати приклад.

Всі контролери складаються з методів. Контролери здійснюють взаємодію з користувачем, роботу з моделлю, а також вибір представлення, що відображає користувальницький інтерфейс. У додатку MVC представлення тільки відображають дані, а контролер обробляє дані, що вводяться і відповідає на дії користувача.

Платформа MVC для ASP.NET співставляє URL-адреси з класами, які називаються контролерами. Контролери обробляють вхідні запити, вводені користувачами дані і їх дії, а також реалізують необхідну логіку додатків. Клас контролера зазвичай викликає окремий компонент упредставлення, який створює в якості відповіді HTML-розмітку.

Базовий клас для всіх контролерів - це ControllerBase, який реалізує загальну обробку MVC. Клас Controller успадковується від класу ControllerBase і є реалізацією контролера за замовчуванням. Клас Controller відповідає за наступні етапи обробки: Пошук методу дії, який потрібно викликати, і перевірка допустимості його виклику. Отримання значень, використовуваних як аргументи методу дії. Обробка всіх помилок, які можуть виникнути при виконанні методу дії. Надання використовуваного за замовчуванням класу WebFormViewEngine для відображення різних типів сторінок ASP.NET (подань).

Приклад контролера, який з методом, що виводить повідомлення "Hello World!"

public class MyController : Controller

{

public ActionResult HelloWorld()



{

ViewData["Message"] = "Hello World!";

return View();

}

}


4. Моделі даних у ASP.NET MVC: структура, функції. Написати приклад.

Всі сутності в додатку виділяються в окремі моделі. Наприклад, в тестовому застосуванні з другого розділу ми використовували дві сутності - клас для програм кредитування і клас для заявок по кредитам. Залежно від поставленого завдання ми можемо виділити різну кількість моделей.

Моделі являють собою прості класи і розташовуються в папці Models.

Модель, що представляє програму кредитування:




    public class Credit

    {ID кредита

        public virtual int CreditId { get; set; }

        // Название

        public virtual string Head { get; set; }

        // Период, на который выдается кредит

        public virtual int Period { get; set; }

        // Максимальная сумма кредита

        public virtual int Sum { get; set; }

        // Процентная ставка

        public virtual int Procent { get; set; }

    }  
а модель заявки на кредит так:

namespace MvcEmptyApp.Models

{    public class Bid

    {  // ID заявки

        public virtual int BidId { get; set; }

        // Имя заявителя

        public virtual string Name { get; set; }

        // Название кредита

 public virtual string CreditHead {get;set;}        

// Дата подачи заявки

public virtual DateTime bidDate { get; set; }    }

}


Дані моделей зберігаються в базі даних. Щоб взаємодіяти з базою даних, дуже зручно користуватися фреймворком Entity Framework. Entity Framework підтримує підхід "Code first", який передбачає збереження або вилучення інформації з БД на SQL Server без створення схеми бази даних або використання дизайнера в Visual Studo.

Систе́ма керування ба́зами да́них (СКБД) або Систе́ма управлі́ння ба́зами да́них (СУБД) - комплекс програмного забезпечення, що надає можливості створення, збереження, оновлення та пошуку інформації в базах даних з контролем доступу до даних.

Щоб підключитися до бази даних через Entity Framework, нам потрібен контекст даних. Контекст даних являє собою клас, похідний від класу DbContext. Контекст даних містить одне або кілька властивостей типу DbSet , де T представляє тип об'єкта, що зберігається в базі даних. Припустимо, створимо контекст даних для роботи з вищенаведеними моделями Bid і Credit:
namespace MvcEmptyApp.Models

{    public class CreditContext : DbContext

    {   public DbSet Credits { get; set; }

        public DbSet Bids { get; set; }

    }

}

Тут за допомогою двох властивостей Credits і Bids ми отримуємо до доступ даним відповідних моделей, які зберігаються в базі даних.




 5. Views у ASP.NETMVC: структура, функції. Написати приклад.

Поданнявідповідає за наданнякористувальницькогоінтерфейсу (UI) для користувача. Поданнязвертається до моделі та перетворюєїї в формат,готовийдопредставлена користувачеві, зокремав HTML.Розширення – cshtml.

Структура директоріїViewsDirectory

-папка, з таким же іменем, як у контролера, окрім суфікса Controller;

-view для кожногоactionметоду, названий так само, як і actionметод;

- bounderies: ViewData і TempData.

- ViewBag - динамічна обгортка для ViewData – допомагає спростити синтаксис.

Усередині View міститьсяHTML розмітка та синтаксис Razor.



PartialView- часткові види представлення, що містять цільові розмітки призначений для відображаються як частина більшого представлення

ASP.NET MVC пропонує два способи передачі даних через модель-подання-контролер bounderies: ViewData і TempData.

Передача даних (обмін даними, цифрова передача, цифровий зв'язок) - фізичне перенесення даних цифрового (бітового) потоку у вигляді сигналів від точки до точки або від точки до множини точок засобами електрозв'язку каналом зв'язку; як правило, для подальшої обробки засобами обчислювальної техніки.

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



Приклад

Наприклад, файл _ViewStart.cshtml задає код, який буде виконано перед викликом будь-якого представлення, у ньому вказується шаблон розмітки сторінок за замовчуванням - Layout.cshtml.ПапкаShared містить загальні представлення, доступні всім контролерам. ПредставленняError.cshtml використовується для виведення повідомлення про помилку.

У ASP.NET MVC Контролер використовує Ппредставленняз файлу з іменем як у Дії, розташованої в папці з іменем як у Контролера. Наприклад, для адреси http://www.somesite.com/Home/Edit/42 буде використовуватися Представлення з файлу Edit.cshtml, розташованого в папці Views / Home. При зверненні до даної сторінки:


  • викликається код, розташований у файлі _ViewStart.cshtml;

  • при використанні шаблону розмітки здійснюється його пошук і обробка;

  • в папці, з ім'ям Home здійснюється пошук файлу Edit.cshtml / Edit.vbhtml;

  • при відсутності файлу ASP.NET MVC намагається виявити його в папці Shared;

  • якщо файл знайдено, то створюється HTML і завершується обробка;

  • якщо файл не виявлений - видається повідомлення про помилку.


6. Синтаксис Razor для формування розмітки проектів.

Razor – синтаксис, який використовується для вбудовування у веб-сторінку серверного коду. В веб-сторінці Razor є два варіанти контенту: клієнтський та серверний код. Тобто за допомогою синтаксису Razor можна у клієнтський код сторінки вставити серверний код, котрий виконується перед тим, як сторінка передається у браузер. Головною особливістю даного синтаксису є те, що він може створювати клієнтський контент динамічно – він може генерувати HTML-розмітку чи інший вміст, а потім відправляти це все на відображення у браузері.

Основними правилами синтаксису Razor є те, що код додається на сторінку за допомогою символу @ - для одиничного звернення до коду можна просто дописати виклик властивості чи метода, наприклад: @DateTime.Today.ToString().

Всередині коду можна повернутися безпосередньо до написання Html-розмітки безпосередньо із використанням тегів. Наприклад:



    @for (int i = 0; i < 4; i)

    {

  • Текст @i
  • }

Для коментування елементів у синтаксисі Razor використовують послідовність символи починаючи із @* і закінчуючи *@.

Таким чином синтаксис Razor поєднує у собі як мову гіпертекстової розмітки так і сам синтаксис, що дозволяє виконувати різні операції, змінювати і виводити дані, які знаходяться у базі даних та забезпечує динамічне виконання коду.


7. Описати підходи до роботи з базами даних в .net
Для роботи з даними в ASP.NET існують дві групи спеціальних елементів управління. Перша призначена для того, щоб здійснювати зв'язок з джерелами даних. Друга група слугує для відображення даних.

У VisualStudio. NET 2002 і 2003 можна було створювати прив'язки даних до сторінки за технологією "drag-and-drop". Ця технологія була зручна тим, що спрощувала написання коду, але вона ускладнювала його модифікацію. Об'єкти даних DataAdapter і DataConnection безпосередньо зв'язувалися з формою VisualStudio 2005. Зараз це теж можливо, але технологія змінилася. Введена нова об'єктна модель джерел даних. Класи-джерела даних забезпечують кращу абстрактізацію, ніж використання класів ADO.

Один з компонентів це моделі - це рядок з'єднання з джерелом даних. У VsualStudio 2005 всі рядки додаються в конфігураційних файл web.config.

Всього в ASP. NET 5 елементів-джерел даних: SqlDataSource, AccessDataSource і ObjectDataSource для роботи з табличними джерелами даних і XmlDataSource і SiteMapDataSource - для роботи з ієрархічними даними.

SqlDataSource дозволяє з'єднуватися з більшістю реляційних СУБД.

Реляційна система керування базами даних (РСКБД; інакше Система керування реляційними базами даних, СКРБД) - СКБД, що керує реляційними базами даних.

Sql в назві класу означає, що служить для з'єднання з базами, які розуміють мову запитів Sql, а не тільки з MS SQL Server.

Мо́ви за́питів (англ. query languages) - комп'ютерні мови, що використовуються для написання запитів до баз даних та інформаційних систем.

Кешування потрібно для збільшення ефективності роботи з даними. При включеному кешуванняSqlDataSource «запам'ятовує» велику кількість записів на заданий час, навіть якщо всі дані не відображаються відразу, але можуть знадобитися при гортанні.

Для зберігання даних найчастіше використовуються СУБД. Дані в СУБД зберігаються в таблицях. Таблиця складається з полів і записів. Запис – одиниця зберігання даних, рядок таблиці. Поля – це стовпці таблиці для зберігання конкретного виду інформації. Бази даних називаються реляційними, тому що таблиці в них зв'язані певним чином.

Для роботи з базами даних використовується мова структурованих запитів – SQL (StructuredQueryLanguage).

SQL (англ. Structured query language - мова структурованих запитів) - декларативна мова програмування для взаємодії користувача з базами даних, що застосовується для формування запитів, оновлення і керування реляційними БД, створення схеми бази даних та її модифікації, системи контролю за доступом до бази даних.

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

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



8. Code First підхід для розробки ПЗ

Code First - новий шаблон розробки для Entity Framework та альтернатива існуючим шаблонам Database First і Model First. Code First дозволяє визначити модель, використовуючи CLR-класи, а потім зіставити ці класи з існуючою базою даних або згенерувати на їх основі схему бази даних.

Схема баз даних (англ. database schema) - це структура системи баз даних[ru] описана формальною мовою, яка підтримується системою керування баз даних (СКБД) і відноситься до організації даних для створення плану побудови бази даних з розподілом на таблиці.

Додаткова конфігурація забезпечується через анотації даних або через поточний API.

В технології Code First для створення бази даних ми створюємо один звичайний клас (який являє собою запис з таблиці) і один спеціально успадкований клас. Дані класи автоматично генеруються в базу даних, таблиці. Далі ми можемо працювати з класом за допомогою LINQ, який фактично перетворює код на C # в SQL. При необхідності внесення змін ми міняємо клас і знову перезапускаємо додаток - база перестворюється (якщо ми дозволили відповідну опцію).

Основними перевагами даного методу є:



  1. Схема і код роботи з базою пишеться на тій же мові, що і сервер додатків.

  2. Наближення до принципу DRY - зміни в структурі бази даних типу додавання нових полів теоретично не вимагають змін в базі даних, SQL запитах і XML схемах

  3. Мова запитів LINQ дозволяє значною мірою позбутися вразливостей типу SQL Injection, а також конструювати запити з окремих повторно використовуваних шматків.

Щоб створити базу даних на основі даної технології потрібно написати такий синтаксис

public class “Table”

{

[Key]


public int id { get; set; }

public string name { get; set; }

}

public class DataBase: DbContext



{

public DbSet Tables { get; set; }

}

Клас DataBase - це єдиний "спеціальний" клас, який знає специфіку Entity Framework і відображає, які ORM класи потрібно перетворити до таблиць. Інші класи - звичайні, але вони повинні бути написані з використанням деяких угод і при необхідності мати спеціальні атрибути. Поле primary key повинно називатися Id або мати атрибут [Key]. Якщо таке поле буде числового типу, то воно автоматично стане автоінкрементальним IDENTITY.



12. Можливості інтелектуального аналізу даних у середовищі Deductor

Deductor є аналітичною платформою, тобто основою для створення закінчених прикладних рішень.

Аналіз даних - розділ математики, що займається розробкою методів обробки даних незалежно від їх природи.

Технології, що реалізовані в Deductor дозволяють на базі єдиної архітектури пройти всі етапи побудови аналітичної системи: від створення сховища даних до автоматичного підбору моделей і візуалізації отриманих результатів.

Процес DataMining(інтелектуальний аналіз) в Deductor включає в себе:


  • Самонавчальні алгоритми і машинне навчання.

    Сховище даних (англ. data warehouse) - предметно орієнтований, інтегрований, незмінний набір даних, що підтримує хронологію і здатний бути комплексним джерелом достовірної інформації для оперативного аналізу та прийняття рішень.

    Машинне навчання (англ. machine learning) - це підгалузь інформатики (зокрема, м'яких[en] та гранульованих обчислень[en]), яка еволюціювала з дослідження розпізнавання образів та теорії обчислювального навчання[en] в галузі штучного інтелекту.

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

    Штучна нейронна мережа (ШНМ, англ. artificial neural network, ANN, рос. искусственная нейронная сеть, ИНС) - це математична модель, а також її програмна та апаратна реалізація, побудовані за принципом функціювання біологічних нейронних мереж - мереж нервових клітин живого організму.



  • Аналіз часових рядів.

    Часовий ряд (англ. time series) - це ряд точок даних[en], проіндексованих (або перелічених, або відкладених на графіку) в хронологічному порядку. Найчастіше часовий ряд є послідовністю, взятою на рівновіддалених точках в часі, які йдуть одна за одною.

    В Deductor включені алгоритми, що застосовуються для виявлення сезонності, трендів, знаходження автокореляційних залежностей.

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

  • Оцінка якості моделей. У систему інтегровані механізми оцінки якості моделей. Вони застосовуються для порівняння результатів моделювання як на основі формальних критеріїв якості, так і експертних знань.

  • Візуалізація. В Deductor вбудовано безліч спеціалізованих способів візуалізації, орієнтованих на різні Data Mining алгоритми.

Завдання, які вирішуються методами Data Mining:

Класифікація - це віднесення об'єктів (спостережень, подій) до одного з наперед відомих класів.

Регресія, у тому числі задачі прогнозування. Встановлення залежності безперервних вихідних від вхідних змінних.

Кластеризація - це угрупування об'єктів (спостережень, подій) на основі даних (властивостей), що описують сутність цих об'єктів. Об'єкти усередині кластера повинні бути "схожими" один на одного і відрізнятися від об'єктів, що ввійшли в інші кластери. Чим більше схожі об'єкти усередині кластера і чим більше відмінностей між кластерами, тим точніше кластеризація.

Асоціація - виявлення закономірностей між зв'язаними подіями. Прикладом такої закономірності служить правило, яке вказує, що з події X слідує подія Y. Такі правила називаються асоціативними. Вперше ця задача була запропонована для знаходження типових шаблонів покупок, що здійснюються в супермаркетах, тому іноді її ще називають аналізом ринкової корзини (market basket analysis).

Послідовні шаблони - встановлення закономірностей між зв'язаними в часу подіями, тобто виявлення залежності, що якщо відбудеться подія X, то через заданий час відбудеться подія Y.

Аналіз відхилень - виявлення найбільш нехарактерних шаблонів.

  1   2   3


Скачати 394.75 Kb.

  • /Controllers
  • /Views
  • /Content
  • Каталог/Controllers
  • Каталоги/Contentі/Scripts
  • 3. Контролери у ASP . NET MVC : структура, функції. Написати приклад.
  • 4. Моделі даних у ASP . NET MVC : структура, функц ії. Написати приклад.
  • 5. Views у ASP . NETMVC : структура, функц ії. Написати приклад.
  • PartialView - ч
  • 6. Синтаксис Razor для формування розмітки проектів.
  • 7. Описати підходи до роботи з базами даних в . net
  • 8. Code First підхід для розробки ПЗ
  • 12. Можливості інтелектуального аналізу даних