? data-driven apps and lightswitch teched sessions domain-driven design,.net and loosely-coupled...

33

Upload: donna-robinson

Post on 23-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Positioning Microsoft Development Technologies for Custom Application Development

Cesar De la Torre.NET Product ManagerMicrosoft [email protected]: @cesardelatorre

DEV-B204

Use different Components for different purposes

?

Cesar De la Torre.NET Product ManagerMicrosoft [email protected]@cesardelatorre

Sessions Mini-track for LOB app. development

Data-Driven apps and LightSwitchTechEd sessions

Domain-Driven Design, .NET and Loosely-coupled

approachesTechEd sessions

Windows Apps Modernization

TechEd sessions

Session DEVB204 - Positioning Microsoft development technologiesCesar 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:30AM

Heinrich Wendel : Building Modern, HTML5-based Business Apps for SharePoint 2013 with Visual Studio LightSwitch

(DEV-B342) June 28, 2013 from 2:45PM to 4:00PM

Glenn Condron : Entity Framework 6: Database Access Anywhere, Easily

(DEV-B335) June 25, 2013 from 3:15PM to 4:30PM

Brian Noyes : Building Windows Store Line-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:15PM

Choosing Technology depending on your Application and Business prioritiesTechnologies and approaches

Businesspriorities 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?.

Infrastructure services

Application services

Client software

Deployment environment

On Premises Private Cloud Public Cloud

ALM

& d

evelo

pm

en

t tools

Browser

LightSwitch HTML5

HTML5+JavaScript

JavaScript Libs

Native mobile (Windows 8 and Windows Phone 8)

.NET/XAMLHTML5/WinJS

C++

Desktop

.NET WPF/

WinForms

Apps for Office

C++

Web presentation/UI services

LightSwitch server

ASP.NETWebForms

ASP.NETMVC & SPA

Services

LightSwitch OData

services

ASP.NET Web API (REST)

WCF Workflow services

Collaboration and portals

Apps for SharePoint

Full-trust SharePoint

Sites

SharePointServices

Custom application platform

Custom component

s

Entity models

CacheSecurity,

authorizationApp.

workflows

Messaging

Service-Bus Queues

Business products and platforms

Dynamics CRMDynamics AX/

NAV/GP/SL

Storage

FilesSQL

ServerNo SQL Big-Data

App/Web server

IIS (Web Server)

AppFabric

Identity & access

Authentication

Federation

Instrumentalization & monitor

System Center

Microsoft Development Platform Technologies

?

Foundational Applications for the Business

Small/medium Business Applications

Large Mission criticalBusiness Applications

Productivity | Easy to get started Long-term | Core business.

ApproachesData-driven development.

Simple approaches

Rapid development (RAD).

ApproachesDomain-driven design or similar.

Decoupled architectures.

Long-term, evolving maintenance.

Categorizing Applications or Sub-

Systems?

Mission-Critical Application

Small-med size Application

Mission-Critical Core-BusinessSub-system

Collateral & simple Subsystem

Collateral & simple Subsystem

Collateral & simple Subsystem

Large compositeapplication

VS.

Small-mediumBusiness

Applications

Data-Driven ApplicationsWhat 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

CREATEREADUPDATEDELETE

Application

User’s knowledge

ProceduresManualData-Driven

Applications

Infrastructure services

Application services

Client software

Deployment environment

On Premises Private Cloud Public Cloud

ALM

& d

evelo

pm

en

t tools

Browser

LightSwitch HTML5

HTML5+JavaScript

JavaScript Libs

Native mobile (Windows 8 and Windows Phone 8)

.NET/XAMLHTML5/WinJS

C++

Desktop.NET WPF/

WinFormsLightSwitch

Apps for Office

C++

Web presentation/UI services

LightSwitch server

ASP.NETWebForms

ASP.NETMVC & SPA

Services

LightSwitch OData

services

ASP.NET Web API (REST)

WCF Workflow services

Collaboration and portals

Apps for SharePoint

Full-trust SharePoint

Sites

SharePointServices

Custom application platform

Custom component

s

Entity models

CacheSecurity,

authorizationApp.

workflows

Messaging

Service-Bus Queues

Business products and platforms

Dynamics CRMDynamics AX/

NAV/GP/SL

Storage

FilesSQL

ServerNo SQL Big-Data

App/Web server

IIS (Web Server)

AppFabric

Identity & access

Authentication

Federation

Instrumentalization & monitor

System Center

Scenario: Small/medium 3-Tier Desktop Application

Infrastructure services

Application services

Client software

Deployment environment

On Premises Private Cloud Public Cloud

ALM

& d

evelo

pm

en

t tools

Browser

LightSwitch HTML5

HTML5+JavaScript

JavaScript Libs

Native mobile (Windows 8 and Windows Phone 8)

.NET/XAMLHTML5/WinJS

C++

Desktop

.NET WPF/

WinForms

Apps for Office

C++

Web presentation/UI services

LightSwitch server

ASP.NETWebForms

ASP.NETMVC & SPA

Services

LightSwitch OData

services

ASP.NET Web API (REST)

WCF Workflow services

Collaboration and portals

Apps for SharePoint

Full-trust SharePoint

Sites

SharePointServices

Custom application platform

Custom component

s

Entity models

CacheSecurity,

authorizationApp.

workflows

Messaging

Service-Bus Queues

Business products and platforms

Dynamics CRMDynamics AX/

NAV/GP/SL

Storage

FilesSQL

ServerNo SQL Big-Data

App/Web server

IIS (Web Server)

AppFabric

Identity & access

Authentication

Federation

Instrumentalization & monitor

System Center

Scenario: Small/medium Web Application

Visual Studio 2012UPDATE 2Release date:April 4th 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-update

Demo

Creating Web Data-DrivenBusiness Applications(LightSwitch)

Large Mission-Critical Core-Business Applications

Infrastructure services

Application services

Client software

Deployment environment

On Premises Private Cloud Public Cloud

ALM

& d

evelo

pm

en

t tools

Browser

LightSwitch HTML5

HTML5+JavaScript

JavaScript Libs

Native mobile (Windows 8 and Windows Phone 8)

.NET/XAMLHTML5/WinJS

C++

Desktop

.NET WPF/

WinForms

Apps for Office

C++

Web presentation/UI services

LightSwitch server

ASP.NETWebForms

ASP.NETMVC & SPA

Services

LightSwitch OData

services

ASP.NET Web API (REST)

WCF Workflow services

Collaboration and portals

Apps for SharePoint

Full-trust SharePoint

Sites

SharePointServices

Custom application platform

Custom component

s

Entity models

CacheSecurity,

authorizationApp.

workflows

Messaging

Service-Bus Queues

Business products and platforms

Dynamics CRMDynamics AX/

NAV/GP/SL

Storage

FilesSQL

ServerNo SQL Big-Data

App/Web server

IIS (Web Server)

AppFabric

Identity & access

Authentication

Federation

Instrumentalization & monitor

System Center

Scenario: Large Core-Business systems

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 andEvent sourcing.

Greg Young, Martin Fowler, etc.

Decoupled architectures.

Use of Dependency Injection and IoC containersMicrosoft 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.

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

DALDDD

Layered

CQRS Legacysystem

CRUD or data-drivenarchitecture

for simple tasks

DDD Layered architecture

for core-domain

CQRS for core-domain

Oldarchitecture

(legacy)

LARGE APPLICATION

BackgroundServer Tier

Web/app Tier

DatabaseTier

MyApp-Event-Bus (In-memory or Service Bus or Queues, etc.)Asynchronous communication

Integration Events Integration Events Integration Events Integration Events

Demo- Web app SPA (Single Page Application)- Several Subsystems/Bounded-Contexts

DemoIntegrating different Bounded-Contexts (Sub-systems) through Event-Driven approaches

DemoIntegrating CRUD Data-DrivenLightSwitch system with otherBounded-Contexts

ApplicationModernization

Modern Times!

Services

Devices

+

+

Emerging patterns

Application patterns evolution

Servers

Client

Established patterns

Established application patternsFoundational applications for the businessWeb and desktop applicationsCentered on existing business processes

Modern Business Applications

Small/Medium Business ApplicationsProductivityEasy to get started

Large Mission-Critical Business ApplicationsLong-TermCore-Business

Emerging application patternsEnd-user centricInnovationMobility & Cloud

FoundationalBusiness

NewExperiences

Exte

nd

ing

FixedOn-Premises

Elastic Cloudand Hybrid

Evolv

ing

.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

Cloud

DemoModern-Applications - Modern Web Apps- Windows Store Apps

Summary

Emerging application patternsInnovation | Mobility | Cloud

TechnologiesCompelling 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.

ApproachesData-driven development.Productive dev. environment.Rapid development (RAD).Keep flexibility and extensibility.

TechnologiesEnd-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-criticalBusiness Applications

Long term | Core business.

ApproachesDomain-driven design or similar.Decoupled architectures.Long-term agile maintenance.QoS (Quality of Service)High scalability.

TechnologiesFine-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.

ApproachesNative or Web client.Mash-up apps consuming services.Differentiators based on client side.Need services as backend.

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.

Takeaways

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

Evaluate this session

Scan this QR code to evaluate this session.

Cesar de la Torre.NET Product ManagerMicrosoft [email protected]: cesardelatorre

© 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.