SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Сергей Калинец
http://tdd4.net
@skalinets
   Joshua Arnold
   Brandon Behrens
   Alex Henning Johannessen
   Sam Merrell
   Jeremy Miller
   Mike Murray
   Chad Myers
   Ryan Rauh
   Dru Sellers
   Тонкие контролеры
   Никаких магических и прочих строк
   Типизированные View
   Контроллеры ничего о View не знают
   Контроллеров нет
   View – тоже может не быть 
   Оно простое

   Convention over configuration

   Не нужно наследоваться (simple TDD)

   Строгая типизация (no magic strings)

   Реальный underground (ALT.NET )
   Нет документации

   Слабая поддержка в студии
   Action Calls

   Behavior Chains

   Conventions
   Нет контроллеров
   Обычные .NET классы и методы
   Одна (ноль) модель на входе и одна (ноль) —
    на выходе
   Месторасположение класса значения не
    имеет
   Ищутся по соглашениям
   Простые, но мощные

   Вкладываются друг в друга

   Могут контролировать
    вызов друг друга
   Есть много встроенных

   Можно добавить свои

   Регистрируются в одном месте
   New empty asp.net project

   Install-package FubuMVC.References

   Add new Global application file

   Setup FubuMVC
   Add ActionCall (any class, any method)

   Set Home

   Diagnostics

   Custom Routes
   Post/get

   Routes

   Html output

   HtmlTags
   One model in / one model out


   Model binding


   Default properties (UserAgent)
   Install-Package FubuMvc.Spark

   this.UseSpark()

   Enable views

   Add spark view for model
   Adding Post handler with input model

   Url Helpers

   Html Helpers DisplayFor/InputFor

   Html Conventions
   Implement IActionBehavior or inherit from
    BasicBehavior

   Add it to Policies

   InnerBehavior is set by magic (DI container)
   Convention over configuration => DRY


   Strong typing => профит


   Здорово расширяет кругозор
@skalinets
http://tdd4.net

Weitere ähnliche Inhalte

Andere mochten auch

Alex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_DesignAlex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_DesignCiklum Ukraine
 
"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman Liashenko"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman LiashenkoCiklum Ukraine
 
OOP paradigm, principles of good design and architecture of Java applications
OOP paradigm, principles of good design and architecture of Java applicationsOOP paradigm, principles of good design and architecture of Java applications
OOP paradigm, principles of good design and architecture of Java applicationsMikalai Alimenkou
 
Tech Lead role for Agile success
Tech Lead role for Agile successTech Lead role for Agile success
Tech Lead role for Agile successMikalai Alimenkou
 
Functional programming in C#
Functional programming in C#Functional programming in C#
Functional programming in C#Serhiy Kalinets
 

Andere mochten auch (7)

XP (IT Brunch)
XP (IT Brunch)XP (IT Brunch)
XP (IT Brunch)
 
Alex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_DesignAlex Pazhyn: Google_Material_Design
Alex Pazhyn: Google_Material_Design
 
"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman Liashenko"Through the three circles of the it hell" by Roman Liashenko
"Through the three circles of the it hell" by Roman Liashenko
 
OOP paradigm, principles of good design and architecture of Java applications
OOP paradigm, principles of good design and architecture of Java applicationsOOP paradigm, principles of good design and architecture of Java applications
OOP paradigm, principles of good design and architecture of Java applications
 
Tech Lead role for Agile success
Tech Lead role for Agile successTech Lead role for Agile success
Tech Lead role for Agile success
 
TDD for DB integration
TDD for DB integrationTDD for DB integration
TDD for DB integration
 
Functional programming in C#
Functional programming in C#Functional programming in C#
Functional programming in C#
 

Ähnlich wie CiklumNetSat17032012SergeyKalinets- FubuMVC

анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
 
Референсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCРеференсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCAndrew Mayorov
 
Создаем работающую сеть безопасности
Создаем работающую сеть безопасностиСоздаем работающую сеть безопасности
Создаем работающую сеть безопасностиVitaly Stakhov
 
АРК-ПЗ-1.pptx
АРК-ПЗ-1.pptxАРК-ПЗ-1.pptx
АРК-ПЗ-1.pptxrobete3065
 
Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0akrakovetsky
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
 
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Ontico
 
Как devops исчерпывает себя и что будет дальше
Как devops исчерпывает себя и что будет дальшеКак devops исчерпывает себя и что будет дальше
Как devops исчерпывает себя и что будет дальшеKirill Vechera
 
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Dmytro Mindra
 
Powershell, Graphs and more. Or how to find dependencies in your systems
Powershell, Graphs and more. Or how to find dependencies in your systemsPowershell, Graphs and more. Or how to find dependencies in your systems
Powershell, Graphs and more. Or how to find dependencies in your systemsAndrey Vernigora
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных системDima Dzuba
 
Управление корпоративной сетью на основе SDN-технологий
Управление корпоративной сетью на основе SDN-технологий Управление корпоративной сетью на основе SDN-технологий
Управление корпоративной сетью на основе SDN-технологий ARCCN
 
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...ZFConf Conference
 
Бинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективыБинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективыd_olex
 
Ridgeline 4 Presentation
Ridgeline 4 PresentationRidgeline 4 Presentation
Ridgeline 4 PresentationMUK
 
Максим Игуменов – системный инженер Extreme Networks, «Примеры работающих при...
Максим Игуменов – системный инженер Extreme Networks, «Примеры работающих при...Максим Игуменов – системный инженер Extreme Networks, «Примеры работающих при...
Максим Игуменов – системный инженер Extreme Networks, «Примеры работающих при...ARCCN
 
Тимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПОТимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПОYandex
 
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
 

Ähnlich wie CiklumNetSat17032012SergeyKalinets- FubuMVC (20)

анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестирования
 
Референсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVCРеференсная архитектура приложения на ASP.NET MVC
Референсная архитектура приложения на ASP.NET MVC
 
Создаем работающую сеть безопасности
Создаем работающую сеть безопасностиСоздаем работающую сеть безопасности
Создаем работающую сеть безопасности
 
АРК-ПЗ-1.pptx
АРК-ПЗ-1.pptxАРК-ПЗ-1.pptx
АРК-ПЗ-1.pptx
 
Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
 
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
 
SDN технологии
SDN технологииSDN технологии
SDN технологии
 
Как devops исчерпывает себя и что будет дальше
Как devops исчерпывает себя и что будет дальшеКак devops исчерпывает себя и что будет дальше
Как devops исчерпывает себя и что будет дальше
 
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
Тестируем код с Visual Studio 2012 - XP Days Ukraine 2012
 
Powershell, Graphs and more. Or how to find dependencies in your systems
Powershell, Graphs and more. Or how to find dependencies in your systemsPowershell, Graphs and more. Or how to find dependencies in your systems
Powershell, Graphs and more. Or how to find dependencies in your systems
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных систем
 
Управление корпоративной сетью на основе SDN-технологий
Управление корпоративной сетью на основе SDN-технологий Управление корпоративной сетью на основе SDN-технологий
Управление корпоративной сетью на основе SDN-технологий
 
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
 
Бинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективыБинарные уязвимости и эксплойты: технологии и перспективы
Бинарные уязвимости и эксплойты: технологии и перспективы
 
Ridgeline 4 Presentation
Ridgeline 4 PresentationRidgeline 4 Presentation
Ridgeline 4 Presentation
 
Максим Игуменов – системный инженер Extreme Networks, «Примеры работающих при...
Максим Игуменов – системный инженер Extreme Networks, «Примеры работающих при...Максим Игуменов – системный инженер Extreme Networks, «Примеры работающих при...
Максим Игуменов – системный инженер Extreme Networks, «Примеры работающих при...
 
Тимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПОТимур Лукин - Архитектура и проектирование ПО
Тимур Лукин - Архитектура и проектирование ПО
 
Solid code via tdd
Solid code via tddSolid code via tdd
Solid code via tdd
 
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
 

Mehr von Ciklum Ukraine

"How keep normal blood pressure using TDD" By Roman Loparev
"How keep normal blood pressure using TDD" By Roman Loparev"How keep normal blood pressure using TDD" By Roman Loparev
"How keep normal blood pressure using TDD" By Roman LoparevCiklum Ukraine
 
Your 1st Apple watch Application
Your 1st Apple watch ApplicationYour 1st Apple watch Application
Your 1st Apple watch ApplicationCiklum Ukraine
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentCiklum Ukraine
 
Back to the future: ux trends 2015
Back to the future: ux trends 2015Back to the future: ux trends 2015
Back to the future: ux trends 2015Ciklum Ukraine
 
Developing high load systems using C++
Developing high load systems using C++Developing high load systems using C++
Developing high load systems using C++Ciklum Ukraine
 
Collection view layout
Collection view layoutCollection view layout
Collection view layoutCiklum Ukraine
 
Introduction to auto layout
Introduction to auto layoutIntroduction to auto layout
Introduction to auto layoutCiklum Ukraine
 
Unit Testing: Special Cases
Unit Testing: Special CasesUnit Testing: Special Cases
Unit Testing: Special CasesCiklum Ukraine
 
Model-View-Controller: Tips&Tricks
Model-View-Controller: Tips&TricksModel-View-Controller: Tips&Tricks
Model-View-Controller: Tips&TricksCiklum Ukraine
 
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...Ciklum Ukraine
 
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"Ciklum Ukraine
 
"To be, rather than to seem” interview with Ciklum VP of HR Marina Vyshegorod...
"To be, rather than to seem” interview with Ciklum VP of HR Marina Vyshegorod..."To be, rather than to seem” interview with Ciklum VP of HR Marina Vyshegorod...
"To be, rather than to seem” interview with Ciklum VP of HR Marina Vyshegorod...Ciklum Ukraine
 
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy""Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"Ciklum Ukraine
 

Mehr von Ciklum Ukraine (20)

"How keep normal blood pressure using TDD" By Roman Loparev
"How keep normal blood pressure using TDD" By Roman Loparev"How keep normal blood pressure using TDD" By Roman Loparev
"How keep normal blood pressure using TDD" By Roman Loparev
 
Your 1st Apple watch Application
Your 1st Apple watch ApplicationYour 1st Apple watch Application
Your 1st Apple watch Application
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Back to the future: ux trends 2015
Back to the future: ux trends 2015Back to the future: ux trends 2015
Back to the future: ux trends 2015
 
Developing high load systems using C++
Developing high load systems using C++Developing high load systems using C++
Developing high load systems using C++
 
Collection view layout
Collection view layoutCollection view layout
Collection view layout
 
Introduction to auto layout
Introduction to auto layoutIntroduction to auto layout
Introduction to auto layout
 
Groovy on Android
Groovy on AndroidGroovy on Android
Groovy on Android
 
Unit Testing: Special Cases
Unit Testing: Special CasesUnit Testing: Special Cases
Unit Testing: Special Cases
 
Material design
Material designMaterial design
Material design
 
Kanban development
Kanban developmentKanban development
Kanban development
 
Mobile sketching
Mobile sketching Mobile sketching
Mobile sketching
 
More UX in our life
More UX in our lifeMore UX in our life
More UX in our life
 
Model-View-Controller: Tips&Tricks
Model-View-Controller: Tips&TricksModel-View-Controller: Tips&Tricks
Model-View-Controller: Tips&Tricks
 
Unit Tesing in iOS
Unit Tesing in iOSUnit Tesing in iOS
Unit Tesing in iOS
 
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
Future of Outsourcing report published in The Times featuring Ciklum's CEO To...
 
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"Михаил Попчук "Cкрытые резервы команд или 1+1=3"
Михаил Попчук "Cкрытые резервы команд или 1+1=3"
 
"To be, rather than to seem” interview with Ciklum VP of HR Marina Vyshegorod...
"To be, rather than to seem” interview with Ciklum VP of HR Marina Vyshegorod..."To be, rather than to seem” interview with Ciklum VP of HR Marina Vyshegorod...
"To be, rather than to seem” interview with Ciklum VP of HR Marina Vyshegorod...
 
Why to join Ciklum?
Why to join Ciklum?Why to join Ciklum?
Why to join Ciklum?
 
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy""Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
"Marmalade" presentation at Ciklum event "Defining your Mobile Strategy"
 

CiklumNetSat17032012SergeyKalinets- FubuMVC

  • 2. Joshua Arnold  Brandon Behrens  Alex Henning Johannessen  Sam Merrell  Jeremy Miller  Mike Murray  Chad Myers  Ryan Rauh  Dru Sellers
  • 3.
  • 4.
  • 5. Тонкие контролеры  Никаких магических и прочих строк  Типизированные View  Контроллеры ничего о View не знают  Контроллеров нет  View – тоже может не быть 
  • 6. Оно простое  Convention over configuration  Не нужно наследоваться (simple TDD)  Строгая типизация (no magic strings)  Реальный underground (ALT.NET )
  • 7. Нет документации  Слабая поддержка в студии
  • 8. Action Calls  Behavior Chains  Conventions
  • 9. Нет контроллеров  Обычные .NET классы и методы  Одна (ноль) модель на входе и одна (ноль) — на выходе  Месторасположение класса значения не имеет  Ищутся по соглашениям
  • 10. Простые, но мощные  Вкладываются друг в друга  Могут контролировать вызов друг друга
  • 11. Есть много встроенных  Можно добавить свои  Регистрируются в одном месте
  • 12. New empty asp.net project  Install-package FubuMVC.References  Add new Global application file  Setup FubuMVC
  • 13. Add ActionCall (any class, any method)  Set Home  Diagnostics  Custom Routes
  • 14. Post/get  Routes  Html output  HtmlTags
  • 15. One model in / one model out  Model binding  Default properties (UserAgent)
  • 16. Install-Package FubuMvc.Spark  this.UseSpark()  Enable views  Add spark view for model
  • 17. Adding Post handler with input model  Url Helpers  Html Helpers DisplayFor/InputFor  Html Conventions
  • 18. Implement IActionBehavior or inherit from BasicBehavior  Add it to Policies  InnerBehavior is set by magic (DI container)
  • 19. Convention over configuration => DRY  Strong typing => профит  Здорово расширяет кругозор