In this post (in the diagram), an overview of what components can be or should be used when creating modern .NET applications. It displays the components which are becoming more important and the components which are heading towards distinction.
Only 3rd party components which can be used productively together with .NET components are shown. For example, a Web Api backend with MS SQL database for infrastructure used together with a IPhone frontend would be a good application for many business cases. Ruby on Rails or PHP could also be used to produce good software applications, but these cannot be used productively together with a .NET component.
Entity Framework 6 is now good enough that NHibernate is no longer required.
For full duplex or messaging systems, SignalR should be used.
The business cases for WCF are disappearing. See the previous blog The end of WCF is on the horizon
In most cases, SQLite is the best choice for mobile persistence.
Color codes in diagram:
- Blue: .NET and Microsoft
- Pink: Third Party
- Grey: Shouldn’t be used anymore unless forced upon you
Arrow codes in diagram:
- Green Up: becoming more important or more popular
- Orange level: No change to last year
- Red down: Losing its business case, or becoming less popular/useful
- Win 8 Apps (WinRT)
- Win 8 phone Apps (WinPRT)
- IPhone Apps / Android Apps
- ASP.NET MVC
- Web Api
- .NET Wrappers for unmanaged code
- RS 232/485, USB
- Bus systems, NServicesBus, RabbitMQ
- OPC realtime systems, etc
Infrastructure / Persistence
- MS SQL Server
- NoSQL Databases, Solr, ElasticSearch, MongoDB
- Oracle / MySQL / PostgreSQL