net programmers and architects here are your options · server-side rendering on asp.net •...

Post on 06-Aug-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Oliver Sturm olivers@devexpress.com

Copyright © 2014 Oliver Sturm

.NET Programmers and Architects Here are your options

Oliver Sturm

• Training Director at DevExpress • Experienced consultant, trainer, author, software

architect and developer • Microsoft C# MVP !

•Contact: olivers@devexpress.com

Copyright © 2014 Oliver Sturm

Agenda

• Idea: talk about technology !

• Client applications • Data access • Web applications • Services • Mobile • Cloud

Copyright © 2014 Oliver Sturm

Client applications

• What’s a client application today? • What was it yesterday?

Copyright © 2014 Oliver Sturm

Client style UI

• WinForms • WPF • Silverlight • WinRT • … XAML based

Copyright © 2014 Oliver Sturm

Client style UI?

• HTML

Copyright © 2014 Oliver Sturm

Reasoning about client applications

• For: access to local resources, legacy applications, integrated environments, devices, integrating with other client applications

• Against: restricted to local resources, deployment, high maintenance and support effort, dependency to system environment (not for HTML) !

• Platform independence -> HTML • Extensive use of local resources -> WinForms, WPF • Applications for WinRT -> WinRT • Silverlight interesting as plugin technology

Copyright © 2014 Oliver Sturm

Storing Data

• Relational databases • NoSQL options

• Key/value and column family stores • Document • Data analytics (e.g. MapReduce)

!

• Reasoning • For RDBMS • For NoSQL

Copyright © 2014 Oliver Sturm

Accessing Stored Data

• Direct access - ADO.NET? • NoSQL APIs?

Copyright © 2014 Oliver Sturm

ORM

• Entity Framework • Third parties • Top Down vs Bottom Up • DB independence

Copyright © 2014 Oliver Sturm

CQRS

• Command Query Responsibility Segregation • Query and Command Models • Consistency often not Strong - Eventual

consistency? • Back to data access basics? • Conflicts with ORM?

Copyright © 2014 Oliver Sturm

Reasoning About Data Access

• For direct access: use of DB specific features, batch updates, schema updates

• For ORM: no SQL knowledge needed with devs, natural OO programming model, DB independence

• For CQRS: less overhead in majority of DB access cases

Copyright © 2014 Oliver Sturm

Web Applications

• What is a web application?

Copyright © 2014 Oliver Sturm

Server-side rendering on ASP.NET

• WebForms • MVC

!

• Reasoning • For WebForms: automatic data transfer, state management • For MVC: complete transparency, promotes a good architectural

application pattern, more current platform (active development) !

• For server-side rendering: dependability of rendered output (debugging)

• Against server-side rendering: any updates required server rendering roundtrips

Copyright © 2014 Oliver Sturm

HTML

• … with little or no server rendering • Can be delivered by a server

!

• Reasoning • For: smooth client UI feeling, platform independence for

UI • Against: compatibility and performance requirements on

client side

Copyright © 2014 Oliver Sturm

Services

• Part of most architectural concepts • SOA? • “Real-time web?” SignalR? socket.io?

Copyright © 2014 Oliver Sturm

Web Services

• ASMX? WSE? • WCF

• Configurability - decision late binding • Complexity

!

• Reasoning • For: Support for certain standards that were created in

the timeframe of WSE/WCF • Against: Overhead of configurational flexibility

Copyright © 2014 Oliver Sturm

Web API

• Based on ASP.NET MVC infrastructure • JSON/XML content negotiation • REST

!

• Reasoning • For: easy of use to create web standard service interfaces

in .NET • Against: very current technology environment required

Copyright © 2014 Oliver Sturm

Mobile

• Mobile support as a conceptual module • Strategic platform?

Copyright © 2014 Oliver Sturm

“Native” Mobile

• Windows Phone SDK • More XAML!

• iOS SDK • Android SDK

!

• Reasoning • For: maximum performance, optimal hardware access • Against: maintenance, special knowledge required, tied

into individual platforms

Copyright © 2014 Oliver Sturm

Mobile .NET

• Xamarin !

• Reasoning: • For: Platform independence, C# • Against: individual work required per UI platform, 3rd

party commercial solution

Copyright © 2014 Oliver Sturm

HTML/Hybrid

• HTML (5), JavaScript, CSS • PhoneGap/Cordova or similar • Cross-platform

!

• Reasoning • For: Cross-platform, knowledge transfer • Against: performance issues (rare, but they exist),

hardware access

Copyright © 2014 Oliver Sturm

Cloud

• Deployment option • Managed infrastructure

Copyright © 2014 Oliver Sturm

Cloud functionality

• Supplied services, vertical features • Base platform functionality

• Dynamic scalability • SLA

Copyright © 2014 Oliver Sturm

Legal considerations

• Locations • Industry/governmental requirements

Copyright © 2014 Oliver Sturm

Cloud options

• Azure • Amazon Web Services • Third parties?

Copyright © 2014 Oliver Sturm

Cloud Reasoning

• For cloud: deployment option, cost, scalability • Against cloud: legal side, trust, no hardware specific

functionality, vendor (cloud platform) tie-in !

• For/against specific platforms: Azure natural choice for Visual Studio users, consider functionality of platforms and pricing based on your specific use cases

Copyright © 2014 Oliver Sturm

Thank you

Please feel free to contact me about the content anytime.

!

olivers@devexpress.com !

!

!

!

Copyright © 2014 Oliver Sturm

top related