1 / 10

MVC Model-View-Controller

MVC Model-View-Controller. Всевоволод Головизнин , 2010. Определение. Всевоволод Головизнин , 2010. MVC – паттерн проектирование, в котором бизнес-логика, управляющая логика и интерфейс разделены на три отдельных компонента. Общие сведения.

hyman
Download Presentation

MVC Model-View-Controller

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MVCModel-View-Controller ВсевоволодГоловизнин, 2010

  2. Определение ВсевоволодГоловизнин, 2010 MVC – паттерн проектирование, в котором бизнес-логика, управляющая логика и интерфейс разделены на три отдельных компонента

  3. Общие сведения Паттерн MVC был впервые разработан и описан профессором ТригвомРеенсаугом (TrygveReenskaug) в 1973 году, а в 1978-79 был впервые применен к языку Smalltalk-80. Сейчас это основной паттерн проектирования web приложений и не только. MVC пришел в web благодаря одному из самых популярных фреймворков в мире – Ruby on Rails, представленному летом 2004 года. Сейчас существует множество фреймворков для различных языков и различных платформ, использующих подход MVC как основной для разработки приложения. Это такие продукты, как Ruby on Rails для Ruby, Zend Framework для PHP, Djangoдля Python, Spring для Java, ASP.NET MVC для ASP.NET. ВсевоволодГоловизнин, 2010

  4. Model • Содержит классы, описывающие работу с данными и бизнес-логикой приложения • Работа с СУБД\ORM • Манипуляции данными public void AddNewStudent(student stud) { _db.students.InsertOnSubmit(stud); _db.SubmitChanges(); } public void DeleteStudent(student stud) { _db.students.DeleteOnSubmit(stud); _db.SubmitChanges(); } public student GetStudentById(int id) { return _db.students.SingleOrDefault(s => s.student_id == id); } ВсевоволодГоловизнин, 2010

  5. View • Содержит пользовательский интерфейс (пр. HTML страницы) ВсевоволодГоловизнин, 2010

  6. Controller • Содержит классы, управляющие работой приложения • Что и когда показывать • Какие данные необходимы public ActionResultCreate(student stud) { if ((ModelState.IsValid) && (_studentContext.StudentExists(stud) == false)) { _studentContext.AddNewStudent(stud); return RedirectToAction("Index"); } ViewData["selectItems"] = (IEnumerable<SelectListItem>)_groupContext.SelectGroupList(); return View(stud); } ВсевоволодГоловизнин, 2010

  7. Разделяй и властвуй Интерфейс - модель Интерфейс - управлятор • В корне отличаются друг от друга (разные подходы и средства) • Использование нескольких пользовательских интерфейсов для одной модели • Легче тестировать • Легче тестировать • Несколько контроллеров для одного интерфейса • Не так важно и очевидно, но полезно в Web разработках ВсевоволодГоловизнин, 2010

  8. Развитие MVC MVC Model-view-presenter MVP • Представление получает данные модели от контроллера • Контроллер следит за V\M и действует в ответ на изменения • M реагирует на изменение V • Представление получает данные от презентера и уведомляет его об изменениях • Презентер перенаправляет изменения V к M • P реагирует на изменения V ВсевоволодГоловизнин, 2010

  9. Развитие MVC MVC Model-view-Viewmodel MVvm • V пассивно и «не знает» о M • V активно, содержит события, поведения и зависит от M\VM • VM служит для связывания M с V ВсевоволодГоловизнин, 2010

  10. Я • ICQ – 733540 • Skype – uapushok • Blog – pushoksuper.wordpress.com

More Related