SlideShare a Scribd company logo
Architecting
professional ASP.NET
MVC applications
GUNNAR PEIPMAN
ASP.NET/IIS MVP
Who’s this horror?
 Name: Gunnar Peipman
 Job: Chief Everything Officer
 Company: Peipman Consult Ltd
 Hobbies: Coding, reading, travelling, beers
 Shoe number: 44
 In family: boyfriend, step father and father
 Animals: white fluffy bunny
 Me & MS: ASP.NET/IIS MVP, blogger, speaker
 Community: ENETA (www.eneta.ee)
 http://weblogs.asp.net/gunnarpeipman/
Agenda
 Architect
 Architecture of web applications
 Building models
 Extending user interface
 Breaking dependencies
 Surprise topic
Architect
Tasks of architect
 Come up with plan how to build application
 Find solutions to common problems
 Detect new problems during development
 Making decisions that have strong impact
 Helping and consulting developers
 Having overview of system at all levels
Challenges
 Making complex things work together as one
 Learning all the time to gain better understanding of software
development and the nature of systems
 Finding and working out new patterns that can be used also
in future projects
 Having good understanding of your play-ground
One thing ...
„You don’ born to be architect – you grow to architect,
it is long and hard road“
Architecture of
web applications
Domain logic patterns
 Transaction Script
 Table Module
 Domain Model
 Most often your own patterns
Onion architecture
Patterns and project size
Pattern Small Medium Big
Transaction Script + - -
Table Module + + -
Domain Model + + +
Custom ? ? ?
Building models
What is model in MVC?
„Model in MVC can be any class that is used to carry data from
controller to view. It’s up to you to define the structure and meaning of
model.“
Some suggestions
 Good model performs no operations when view is rendered
 Keep models simple
 Don’t put business or data logic to model
 Don’t use business objects as models or part of models
Mapping
 Mapping can be done:
 manually
 by writing some code to automate the process
 using third-party tools
 I prefer AutoMapper
Extending user
interface
Why to extend UI?
 To avoid adding working code to views
 To keep views smaller at size
 To avoid repeating same output logic in views
 Best extensions can be gathered to library for future projects
Breaking
dependencies
Why not dependencies?
 Tightly coupled coe – hard to test and manage
 Replacing parts of system is not easy
 Unit testing is hard if not possible
 Lost flexibility (run system in conceptually different environments)
What dependencies to break?
 Access to data (repositories, data context)
 Application services layer
 Access to file storage
 Access to network resources
 Logging
Now ...
... let’s throw STRINGS
Thanks, friends! 

More Related Content

What's hot (20)

PPTX
ASP .NET MVC - best practices
Bohdan Pashkovskyi
 
PPSX
Asp.net mvc
Er. Kamal Bhusal
 
PPT
MSDN - ASP.NET MVC
Maarten Balliauw
 
PPTX
ASP .NET MVC
eldorina
 
PPTX
Getting started with MVC 5 and Visual Studio 2013
Thomas Robbins
 
PPTX
Building an enterprise app in silverlight 4 and NHibernate
bwullems
 
PPTX
ASP.NET MVC.
Ni
 
PPTX
MVC Training Part 1
Lee Englestone
 
PPT
MVC Architecture in ASP.Net By Nyros Developer
Nyros Technologies
 
PPTX
ASP .NET MVC Introduction & Guidelines
Dev Raj Gautam
 
PPTX
ASP .Net MVC 5
Nilachal sethi
 
PPT
MVC ppt presentation
Bhavin Shah
 
PDF
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
 
PPTX
MVC - Introduction
Sudhakar Sharma
 
PPTX
Feature and Future of ASP.NET
Md. Mahedee Hasan
 
PPTX
MVC Puree - Approaches to MVC with Umbraco
Andy Butland
 
PDF
Asp.net mvc basic introduction
Bhagath Gopinath
 
PDF
Dot net interview questions and asnwers
kavinilavuG
 
PPTX
Learning ASP.NET 5 and MVC 6
Ido Flatow
 
PPTX
ASP.NET MVC for Begineers
Shravan Kumar Kasagoni
 
ASP .NET MVC - best practices
Bohdan Pashkovskyi
 
Asp.net mvc
Er. Kamal Bhusal
 
MSDN - ASP.NET MVC
Maarten Balliauw
 
ASP .NET MVC
eldorina
 
Getting started with MVC 5 and Visual Studio 2013
Thomas Robbins
 
Building an enterprise app in silverlight 4 and NHibernate
bwullems
 
ASP.NET MVC.
Ni
 
MVC Training Part 1
Lee Englestone
 
MVC Architecture in ASP.Net By Nyros Developer
Nyros Technologies
 
ASP .NET MVC Introduction & Guidelines
Dev Raj Gautam
 
ASP .Net MVC 5
Nilachal sethi
 
MVC ppt presentation
Bhavin Shah
 
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
 
MVC - Introduction
Sudhakar Sharma
 
Feature and Future of ASP.NET
Md. Mahedee Hasan
 
MVC Puree - Approaches to MVC with Umbraco
Andy Butland
 
Asp.net mvc basic introduction
Bhagath Gopinath
 
Dot net interview questions and asnwers
kavinilavuG
 
Learning ASP.NET 5 and MVC 6
Ido Flatow
 
ASP.NET MVC for Begineers
Shravan Kumar Kasagoni
 

Viewers also liked (18)

PPTX
3-TIER ARCHITECTURE IN ASP.NET MVC
Mohd Manzoor Ahmed
 
PDF
Tips and Tricks For Faster Asp.NET and MVC Applications
Sarvesh Kushwaha
 
PDF
OpenROV: Node.js takes a dive into the ocean
Simone Chiaretta
 
PPTX
Building Scalable .NET Web Applications
Buu Nguyen
 
PPTX
Sexy Architecting. VIPER: MVP on steroids
Dmytro Zaitsev
 
PPT
Four Ways to Improve ASP .NET Performance and Scalability
Alachisoft
 
PPT
Asp.net
Dinesh kumar
 
PDF
MVP Clean Architecture
Himanshu Dudhat
 
PDF
Repository and Unit Of Work Design Patterns
Hatim Hakeel
 
PPT
Concepts of Asp.Net
vidyamittal
 
PDF
Generic repository pattern with ASP.NET MVC and Entity Framework
Md. Mahedee Hasan
 
PPTX
ASP.NET Presentation
dimuthu22
 
PPTX
Introduction to ASP.NET
Peter Gfader
 
PPTX
Scaling asp.net websites to millions of users
oazabir
 
PDF
web apiで遊び倒す
Keiichi Daiba
 
PPTX
Big Data World
Hossein Zahed
 
PPTX
Introduction to asp.net
Melick Baranasooriya
 
PPT
Developing an ASP.NET Web Application
Rishi Kothari
 
3-TIER ARCHITECTURE IN ASP.NET MVC
Mohd Manzoor Ahmed
 
Tips and Tricks For Faster Asp.NET and MVC Applications
Sarvesh Kushwaha
 
OpenROV: Node.js takes a dive into the ocean
Simone Chiaretta
 
Building Scalable .NET Web Applications
Buu Nguyen
 
Sexy Architecting. VIPER: MVP on steroids
Dmytro Zaitsev
 
Four Ways to Improve ASP .NET Performance and Scalability
Alachisoft
 
Asp.net
Dinesh kumar
 
MVP Clean Architecture
Himanshu Dudhat
 
Repository and Unit Of Work Design Patterns
Hatim Hakeel
 
Concepts of Asp.Net
vidyamittal
 
Generic repository pattern with ASP.NET MVC and Entity Framework
Md. Mahedee Hasan
 
ASP.NET Presentation
dimuthu22
 
Introduction to ASP.NET
Peter Gfader
 
Scaling asp.net websites to millions of users
oazabir
 
web apiで遊び倒す
Keiichi Daiba
 
Big Data World
Hossein Zahed
 
Introduction to asp.net
Melick Baranasooriya
 
Developing an ASP.NET Web Application
Rishi Kothari
 
Ad

Similar to Architecting ASP.NET MVC Applications (20)

PDF
ASP NET MVC in Action 1st Edition Jeffrey Palermo
sysolkadieqj
 
PDF
ASP NET MVC in Action 1st Edition Jeffrey Palermo
psfxedtb367
 
PPTX
An Introduction To Model  View  Controller In XPages
Ulrich Krause
 
PPTX
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
 
PPTX
MVC 6 Introduction
Sudhakar Sharma
 
PPTX
Rethinking Object Orientation
IASA
 
PPTX
Walther Mvc
rsnarayanan
 
PPTX
ASP.NET MVC Presentation
Volkan Uzun
 
PPTX
Crafted Design - GeeCON 2014
Sandro Mancuso
 
PDF
Asp.Net Mvc Dev Days09
Bruno Matos Tavares
 
PDF
ASP.NET MVC - Whats The Big Deal
Venketash (Pat) Ramadass
 
PDF
Applying Domain Driven Design on Asp.net MVC – Part 1: Asp.net MVC
Mohamed Meligy
 
PPTX
Software Development Practices in Practice
Dennis Doomen
 
PPTX
ASP.NET MVC Fundamental
ldcphuc
 
PDF
Aspnetmvc 1
Fajar Baskoro
 
PDF
Asp 1a-aspnetmvc
Fajar Baskoro
 
PPT
Why do complex software application projects drag?
Stephen Erdman
 
PPT
MVC(Model View Controller),Web,Enterprise,Mobile
naral
 
PPTX
DCI - ANUG 24th November 2010
Christian Horsdal
 
PPTX
DCI ANUG - 24th November 2010
Christian Horsdal
 
ASP NET MVC in Action 1st Edition Jeffrey Palermo
sysolkadieqj
 
ASP NET MVC in Action 1st Edition Jeffrey Palermo
psfxedtb367
 
An Introduction To Model  View  Controller In XPages
Ulrich Krause
 
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
 
MVC 6 Introduction
Sudhakar Sharma
 
Rethinking Object Orientation
IASA
 
Walther Mvc
rsnarayanan
 
ASP.NET MVC Presentation
Volkan Uzun
 
Crafted Design - GeeCON 2014
Sandro Mancuso
 
Asp.Net Mvc Dev Days09
Bruno Matos Tavares
 
ASP.NET MVC - Whats The Big Deal
Venketash (Pat) Ramadass
 
Applying Domain Driven Design on Asp.net MVC – Part 1: Asp.net MVC
Mohamed Meligy
 
Software Development Practices in Practice
Dennis Doomen
 
ASP.NET MVC Fundamental
ldcphuc
 
Aspnetmvc 1
Fajar Baskoro
 
Asp 1a-aspnetmvc
Fajar Baskoro
 
Why do complex software application projects drag?
Stephen Erdman
 
MVC(Model View Controller),Web,Enterprise,Mobile
naral
 
DCI - ANUG 24th November 2010
Christian Horsdal
 
DCI ANUG - 24th November 2010
Christian Horsdal
 
Ad

More from Gunnar Peipman (10)

PPTX
Multi-tenant web applications with ASP.NET Core
Gunnar Peipman
 
PPTX
Brewing Eisbock with Raspberry PI and Windows 10 IoT
Gunnar Peipman
 
PPTX
Deep-Dive to Azure Search
Gunnar Peipman
 
PPTX
Deep-Dive to Application Insights
Gunnar Peipman
 
PPTX
What's new in ASP.NET vNext
Gunnar Peipman
 
PPTX
Porting ASP.NET applications to Windows Azure
Gunnar Peipman
 
PPTX
Working with legacy code
Gunnar Peipman
 
PPTX
ASP.NET MVC 4 Overview
Gunnar Peipman
 
PPTX
Building SharePoint Online applications using Napa Office 365 Development Tools
Gunnar Peipman
 
PPTX
Optimizing public facing SharePoint sites
Gunnar Peipman
 
Multi-tenant web applications with ASP.NET Core
Gunnar Peipman
 
Brewing Eisbock with Raspberry PI and Windows 10 IoT
Gunnar Peipman
 
Deep-Dive to Azure Search
Gunnar Peipman
 
Deep-Dive to Application Insights
Gunnar Peipman
 
What's new in ASP.NET vNext
Gunnar Peipman
 
Porting ASP.NET applications to Windows Azure
Gunnar Peipman
 
Working with legacy code
Gunnar Peipman
 
ASP.NET MVC 4 Overview
Gunnar Peipman
 
Building SharePoint Online applications using Napa Office 365 Development Tools
Gunnar Peipman
 
Optimizing public facing SharePoint sites
Gunnar Peipman
 

Recently uploaded (20)

PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Digital Circuits, important subject in CS
contactparinay1
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 

Architecting ASP.NET MVC Applications

  • 2. Who’s this horror?  Name: Gunnar Peipman  Job: Chief Everything Officer  Company: Peipman Consult Ltd  Hobbies: Coding, reading, travelling, beers  Shoe number: 44  In family: boyfriend, step father and father  Animals: white fluffy bunny  Me & MS: ASP.NET/IIS MVP, blogger, speaker  Community: ENETA (www.eneta.ee)  http://weblogs.asp.net/gunnarpeipman/
  • 3. Agenda  Architect  Architecture of web applications  Building models  Extending user interface  Breaking dependencies  Surprise topic
  • 5. Tasks of architect  Come up with plan how to build application  Find solutions to common problems  Detect new problems during development  Making decisions that have strong impact  Helping and consulting developers  Having overview of system at all levels
  • 6. Challenges  Making complex things work together as one  Learning all the time to gain better understanding of software development and the nature of systems  Finding and working out new patterns that can be used also in future projects  Having good understanding of your play-ground
  • 7. One thing ... „You don’ born to be architect – you grow to architect, it is long and hard road“
  • 9. Domain logic patterns  Transaction Script  Table Module  Domain Model  Most often your own patterns
  • 11. Patterns and project size Pattern Small Medium Big Transaction Script + - - Table Module + + - Domain Model + + + Custom ? ? ?
  • 13. What is model in MVC? „Model in MVC can be any class that is used to carry data from controller to view. It’s up to you to define the structure and meaning of model.“
  • 14. Some suggestions  Good model performs no operations when view is rendered  Keep models simple  Don’t put business or data logic to model  Don’t use business objects as models or part of models
  • 15. Mapping  Mapping can be done:  manually  by writing some code to automate the process  using third-party tools  I prefer AutoMapper
  • 17. Why to extend UI?  To avoid adding working code to views  To keep views smaller at size  To avoid repeating same output logic in views  Best extensions can be gathered to library for future projects
  • 19. Why not dependencies?  Tightly coupled coe – hard to test and manage  Replacing parts of system is not easy  Unit testing is hard if not possible  Lost flexibility (run system in conceptually different environments)
  • 20. What dependencies to break?  Access to data (repositories, data context)  Application services layer  Access to file storage  Access to network resources  Logging
  • 22. ... let’s throw STRINGS