.NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET •...

28
Oliver Sturm [email protected] Copyright © 2014 Oliver Sturm .NET Programmers and Architects Here are your options

Transcript of .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET •...

Page 1: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Oliver Sturm [email protected]

Copyright © 2014 Oliver Sturm

.NET Programmers and Architects Here are your options

Page 2: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Oliver Sturm

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

architect and developer • Microsoft C# MVP !

•Contact: [email protected]

Copyright © 2014 Oliver Sturm

Page 3: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Agenda

• Idea: talk about technology !

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

Copyright © 2014 Oliver Sturm

Page 4: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Client applications

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

Copyright © 2014 Oliver Sturm

Page 5: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Client style UI

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

Copyright © 2014 Oliver Sturm

Page 6: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Client style UI?

• HTML

Copyright © 2014 Oliver Sturm

Page 7: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 8: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 9: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Accessing Stored Data

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

Copyright © 2014 Oliver Sturm

Page 10: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

ORM

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

Copyright © 2014 Oliver Sturm

Page 11: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 12: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 13: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Web Applications

• What is a web application?

Copyright © 2014 Oliver Sturm

Page 14: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 15: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 16: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Services

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

Copyright © 2014 Oliver Sturm

Page 17: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 18: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 19: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Mobile

• Mobile support as a conceptual module • Strategic platform?

Copyright © 2014 Oliver Sturm

Page 20: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

“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

Page 21: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Mobile .NET

• Xamarin !

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

party commercial solution

Copyright © 2014 Oliver Sturm

Page 22: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 23: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Cloud

• Deployment option • Managed infrastructure

Copyright © 2014 Oliver Sturm

Page 24: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Cloud functionality

• Supplied services, vertical features • Base platform functionality

• Dynamic scalability • SLA

Copyright © 2014 Oliver Sturm

Page 25: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Legal considerations

• Locations • Industry/governmental requirements

Copyright © 2014 Oliver Sturm

Page 26: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Cloud options

• Azure • Amazon Web Services • Third parties?

Copyright © 2014 Oliver Sturm

Page 27: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

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

Page 28: .NET Programmers and Architects Here are your options · Server-side rendering on ASP.NET • WebForms! • MVC!! • Reasoning! • For WebForms: automatic data transfer, state management!

Thank you

Please feel free to contact me about the content anytime.

!

[email protected] !

!

!

!

Copyright © 2014 Oliver Sturm