The devices-services nexus spans both business and consumer scenarios. In the consumer space, mobile computing initially created a wave of devices focused on consumption, which continues to grow as hardware capabilities and technologies advance. Within the enterprise, the twin phenomena of the consumerization of IT and bring-your-own-device (BYOD) have created a dynamic in which consumer experiences are driving the future of business computing and line-of-business (LOB) applications.
The next generation of device- and service-dependent applications is not emerging in isolation. These applications have to work in an extremely well-integrated fashion with existing applications, unlocking their value to new audiences and new modes of interaction. This creates two different patterns that every application developer must now face:
- Established application patterns: These are applications developed using technology patterns such as client/server or web applications optimized for desktop browsers. They act as foundational applications and are heavily centered in existing business processes.
- Emerging application patterns: Patterns such as multi-devices and the cloud are emerging as technology enablers for new applications. They complement the established patterns by extending the applications to be centered on the end user.
This extension of established patterns to meet the end user is a key opportunity for developers to drive new innovation and differentiation vs. competitors. Retail, communications, finances, logistics, customer services—every company is a software company in today’s business world. Each company’s ability to fulfill customer needs and compete effectively is only as good as their ability to deliver software innovation.
However, extending existing applications to embrace these new needs is a challenging transformation process. Current development technologies are deeply rooted in the established pattern and are difficult to integrate with the emerging patterns needed for modern software. Existing tools do not provide an obvious path from the existing client/server world to the emerging device/cloud world.
.NET development and specifically on business applications. It covers how to use .NET to develop for the established patterns that shape existing applications and also how to embrace the emerging patterns that are enabling the modern business applications of the future.
The .NET Framework and the future of development
The Microsoft .NET Framework was built to enable developers to create compelling applications on the Microsoft platform and, by all accounts, it has been a huge success in the market. Today, millions of developers across companies of all sizes and segments rely on .NET to create applications. It provides the core services required to build consumer applications; small business applications; and large, mission-critical applications, all with unprecedented quality, performance, and productivity.
.NET was also built with these now-emerging patterns in mind. At Forum 2000, Bill Gates said that the goal for .NET was “to move beyond today’s world of stand-alone websites to an Internet of interchangeable components where devices and services can be assembled into cohesive, user-driven experiences.” The original vision for .NET is remarkably well aligned with today’s developer landscape, including cross-device, service-powered experiences that are changing how the industry thinks about software development.
Enabling multi-device experiences empowered by services was a key attribute for .NET from the beginning. .NET has kept evolving since then, providing a first-class development experience for the new needs of applications:
- On the server side, .NET provides a common platform for developers to target services that run on-premises or in the cloud. Its close integration with Windows Server and Windows Azure allows applications to be gradually extended to the cloud, taking the best of each platform and enabling hybrid applications that sit between the two worlds. The fast delivery cadence in the .NET Framework libraries also provides continuous innovation that addresses the new needs of cloud-based applications in areas such as lightweight services, real-time communications, mobile web applications, and authentication.
- On the client side, .NET provides a consistent, first-class development experience across all Microsoft devices: desktop experiences, Windows Phone apps, and Windows Store apps. It allows .NET developers to keep developing foundational applications on the desktop and add exciting new experiences, all while using their existing skills and reusing code between devices. For scenarios where the reach goes beyond Microsoft devices, HTML5 browser-based solutions are the norm. .NET, in conjunction with Visual Studio, provides a modern solution for creating standard-based web applications that run across various devices. For developers looking to create more tailored, native experiences on any device, Visual Studio industry partners provide solutions that enable reusing C# skills and code with non-Windows devices.
Source: .NET Technology Guide for Business Applications, Cesar de la Torre, David Carmona