Cesar De la Torre NET Product Manager Microsoft Corp cesardlMicrosoftcom Twitter cesardelatorre DEVB204 Use different Components for different purposes Cesar De la Torre NET Product Manager ID: 726803
Download Presentation The PPT/PDF document "Positioning Microsoft Development Techno..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1Slide2
Positioning Microsoft Development Technologies for Custom Application Development
Cesar De la Torre.NET Product ManagerMicrosoft Corp.cesardl@Microsoft.comTwitter: @cesardelatorre
DEV-B204Slide3
Use different
Components for different purposes
?Slide4
Cesar De la Torre
.NET Product Manager
Microsoft Corp.
cesardl@Microsoft.com
@
cesardelatorre
Slide5
Sessions Mini-track for LOB app. development
Data-Driven apps and
LightSwitch
TechEd sessions
Domain-Driven Design, .NET and Loosely-coupled approaches
TechEd sessions
Windows Apps Modernization
TechEd sessions
Session DEVB204 - Positioning Microsoft development technologies
Cesar de la Torre
Jimmy Nilsson
: Developing
Core Business Applications with
DDD
and
.NET
(DEV-B311
) June 26, 2013 from 5:00PM to 6:15PM
Per Rovegård
:
Real Experiences
and Architectural
DDD
Patterns
Applied on
.NET
(DEV-B343) June 27, 2013 from 12:00PM to 1:15PM
Julie Lerman
:
Entity Framework
in Core Business Applications and
DDD
Approaches
(DEV-B336) June 27, 2013 from 3:15PM to 4:30PM
Understanding Dependency Injection and Those Pesky Containers (DEV-B207) June 27, 2013 from 5:00PM to 6:15PM
Heinrich Wendel: Building Modern, HTML5-Based Business Apps on Windows Azure with Microsoft Visual Studio LightSwitch (DEV-B307) June 26, 2013 from 10:15AM to 11:30AMHeinrich Wendel : Building Modern, HTML5-based Business Apps for SharePoint 2013 with Visual Studio LightSwitch (DEV-B342) June 28, 2013 from 2:45PM to 4:00PMGlenn Condron : Entity Framework 6: Database Access Anywhere, Easily (DEV-B335) June 25, 2013 from 3:15PM to 4:30PM
Brian Noyes
:
Building
Windows Store
L
ine-of-Business
Applications
(
DEV-B358) June 26, 2013 from 8:30AM to 9:45AM
Brian Noyes
:
Design
Guidance for
Windows Store Line-of-Business
Apps
(
DEV-B309) June 27, 2013 from 5:00PM to 6:15PM
Cesar de la Torre
:
Modernizing
WPF Line-of-Business
Applications
(
DEV-B325) June 27, 2013 from 12:00PM to 1:15PMSlide6
Choosing Technology depending on your
Application and
Business priorities
Technologies
Technologies and approaches
Business
priorities
Short Time-to-market
versus
long-term investment.
Departmental
versus
enterprise mission-critical.
engage customers
versus
Run the
business
RADs
versus
loosely-coupled architectures?.
Data-driven
versus
Domain-Driven?.
Modern-apps
versus
Desktop applications?.Slide7
Microsoft Development
Platform Technologies
?Slide8
Foundational Applications for the Business
Small/medium
B
usiness
A
pplications
Large Mission critical
B
usiness
A
pplications
Productivity | Easy to get started
Long-term | Core business.
Approaches
Data-driven development.
Simple approaches
Rapid development (RAD
).
Approaches
Domain-driven design or similar.
Decoupled architectures.
Long-term, evolving maintenance.Slide9
Categorizing
Applications or Sub-Systems?
Mission-Critical
Application
Small-med size
Application
Mission-Critical Core-Business
Sub-system
Collateral & simple Subsystem
Collateral & simple Subsystem
Collateral & simple Subsystem
Large composite
application
VS.Slide10
Small-medium
Business ApplicationsSlide11
Data-Driven Applications
What is a Data-Driven Application?
Basically, it is a
CRUD
application (CREATE, READ, UPDATE, DELETE).
The Business Logic volume is usually low
ISSUE
when evolving to large volumes of business logic
CREATE
READ
UPDATE
DELETE
Application
User’s
knowledge
Procedures
Manual
Data-Driven
Applications
Slide12
Scenario:
Small/medium 3-Tier
Desktop
ApplicationSlide13
Scenario:
Small/medium
Web
ApplicationSlide14
Visual Studio 2012
UPDATE 2
Release date:
April 4
th
2013
As part of the VS
UPDATE 2,
a new version of
LightSwitch
was released, including the LightSwitch HTML5 Client final version.
Great for
Web Data-Driven applications
LightSwitch HTML5
Client
VS 2012 UPDATE 2 Download:http://www.microsoft.com/visualstudio/eng/downloads#d-visual-studio-2012-updateSlide15
Demo
Creating Web Data-DrivenBusiness Applications(LightSwitch)Slide16
Large Mission-Critical
Core-Business ApplicationsSlide17
Scenario: Large Core-Business
systemsSlide18
Approaches
for Core Domain/Business applications
S.O.L.I.D. principles.
Patterns of Enterprise Applications Architecture.
Martin
Fowler.
Domain-driven design (DDD).
Eric
Evans, Jimmy Nilsson
,
Vaughn Vernon, etc.
CQRS (Command and Query Responsibility Segregation).
Microsoft P&P ‘CQRS Journey,’
Greg
Yound
,
Udi
Dahan
.
Event driven and
Event
sourcing.
Greg Young, Martin Fowler, etc.
Decoupled architectures.
Use of Dependency Injection
and
IoC
containers
Microsoft P&P Unity, MEF,
Ninject
,
Castle Windsor, etc.
Behavior-driven design (BDD) and TDD.
Dan North, Chris Matts, etc.
Frameworks
:
SpecFlow
, Nspec, Cuke4Nuke, Nbehave, and MSpec.
Single Responsibility principle.Open/close principle.Liskov substitution principle.Interface segregation principle.Dependency Inversion principle.Slide19
BOUNDED CONTEXT
C
BOUNDED CONTEXT
D
Several subsystems
or
bounded-contexts
with
different architectures
BOUNDED CONTEXT
A
BOUNDED CONTEXT
B
Unified UI—Visual aggregation
UI
DAL
DDD
Layered
CQRS
Legacy
system
CRUD
or
data-
driven
architecture
for
simple
tasks
DDD Layered
architecture
for
core-domain
CQRS
for
core-domain
Old
architecture
(
legacy
)
LARGE
APPLICATION
Background
Server
Tier
Web/app
Tier
Database
Tier
MyApp
-Event-Bus
(
In-memory or
Service
Bus or
Queues, etc.)
Asynchronous
communication
Integration Events
Integration Events
Integration Events
Integration EventsSlide20
Demo
- Web app SPA (Single Page Application)- Several Subsystems/Bounded-ContextsSlide21
Demo
Integrating different Bounded-Contexts (Sub-systems) through Event-Driven approachesSlide22
Demo
Integrating CRUD Data-DrivenLightSwitch system with otherBounded-ContextsSlide23
Application
Modernization
Modern Times!Slide24
Services
Devices
+
+
Emerging patterns
Application patterns evolution
Servers
Client
Established patternsSlide25
Established application patterns
Foundational applications for the business
Web and desktop applications
Centered on existing business processes
Modern Business Applications
Small/Medium
Business Applications
Productivity
Easy to get started
Large Mission-Critical
Business Applications
Long-Term
Core-Business
Emerging application patterns
End-user centric
Innovation
Mobility & Cloud
Foundational
Business
New
Experiences
Extending
Fixed
On-Premises
Elastic Cloud
and Hybrid
EvolvingSlide26
.NET Application Modernization
Windows Store
Windows Phone
Non-Microsoft native apps
NATIVE APPLICATIONS
WEB APPLICATIONS
Web-PC
form factor
On-premises only
Hybrid
SERVICES
Web tablet
/
phone
form-factors
Desktop-only
CloudSlide27
Demo
Modern-Applications Modern Web AppsWindows Store AppsSlide28
Summary
Emerging application patterns
Innovation | Mobility | Cloud
Technologies
Compelling UI technologies.
Windows native apps.
NET/
WinRT
, HTML5/
WinRT
, C++.
Web apps.
HTML5/JS +
jQuery
+ ASP.NET.
Small/medium
Business Applications
Productivity | Easy to get started.
Approaches
Data-driven
development.
Productive dev. environment.
Rapid development (RAD).
Keep flexibility and extensibility.
Technologies
End-to-end productive technologies.
LightSwitch
.
ASP.NET web forms or MVC.
Apps for SharePoint.
Apps for Office.
WPF.
ASP.NET Web-API or WCF Services.
Entity framework model and DB first.
SQL Server.
Windows Server or Windows Azure.
Mission-critical
Business Applications
Long term | Core business.
Approaches
Domain-driven design
or similar.
Decoupled architectures.
Long-term agile maintenance.
QoS
(Quality of Service)
High scalability.
Technologies
Fine-grain
technologies.
MVC and SPA
(Single Page Applications
)
WPF for desktop.
ASP.NET Web-API services or WCF services.
Custom .NET libraries and layers.
Inversion of control containers and DI.
Entity framework POCO
Codefirst
.
Service bus (Azure or server).
Workflow foundation.
SQL Server.
Windows Server or Windows Azure.
SPA (single page applications).
LightSwitch
HTML5 client.
Continuous services – backend.
ASP.NET Web-API services.
Windows Azure services and DB.
Approaches
Native or Web client.
Mash-up apps consuming services.
Differentiators based on client side.
Need services as backend.Slide29
Select
architecture approaches
technologies
depending
on
your specific
application’s priorities
.
In large applications,
when selecting architectural approaches, think about
subsystems/bounded-contexts rather than the whole application.
Modernize
your established applications with
decoupled subsystems/bounded
contexts
.
TakeawaysSlide30
msdn
Resources for Developers
http://microsoft.com/msdn
Learning
Microsoft Certification & Training Resources
www.microsoft.com/learning
TechNet
Resources
Sessions on Demand
http://channel9.msdn.com/Events/TechEd
Resources for IT Professionals
http://microsoft.com/technet Slide31
Evaluate this session
Scan
this QR code
to
evaluate this session.
Required Slide
*delete this box when your slide is finalized
Your MS Tag will be inserted here during the final scrub. Slide32
Cesar de la Torre
.NET Product Manager
Microsoft Corp.
cesardl@microsoft.com
Twitter:
cesardelatorreSlide33
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.