Microsoft Development Platforms
A fundamental shift is underway at Microsoft Corporation. Changes in customer computing requirements, advancements in technology, and software being marketed in conjunction with vertically
integrated hardware in global markets, have all contributed to a decline in the relative position and impact of several Microsoft software products. Unlike its first quarter century of business Microsoft, must now defend declining and static market share with the Windows family of operating systems, Internet Explorer web browser, MS Office Suite
desktop applications, and MS SQL Server database. Microsoft is pursuing parallel paths with its software and service initiatives based upon an entirely new set of assumptions. Its a response to the viability and growth of freeware and open source software, increased use of software as a service, emergence of cloud computing, and
Amazon and Google business models.
Microsoft remains committed to the Windows family operating system franchise and upgrading its programming language and development platforms. In the early 1990ís Microsoft Corporation adapted
the C, C++, and BASIC programming languages into its commercial Windows development platforms, Visual Studio, and SDKs. The software was well received, extensively utilized, and commanded a leading share of their respective markets. Twenty or so years later, there is a requirement for
maintenance programming with MS Visual C++ and Visual Basic and transitioning to a web-based architecture: .NET, Java, and hybrid open source. In conjunction with manual coding, refactoring tools are being used. Visual Studio was a significant application development initiative undertaken by Microsoft.
The assumption is that Microsoft will use MS Azure, Windows Server 2016, and SharePoint 2016 to leverage and extend its .NET platform.
Open Standards and OSS: Open Source Software
||OData - Open
||jQuery Mobile and json.Net
Since the departure of chief executive officer Steve Ballmer, there has been an acceleration in the acceptance of open source software by Microsoft. In the fourth quarter 2014, Satya Nadella, his successor, stated that Microsoft loves Linux. Microsoft has been investing and developing resources to build support for Linux and other open source technologies in its Windows 10 operating system,
Windows Server networking operating system/hypervisor, Visual Studio / .NET platform, SQL Server, and Azure cloud computing platform.
Microsoft contributes and participates in open source committees, projects, and developing open standards. In the fourth quarter 2016, Microsoft joined the Linux Foundation as a platinum member. GitHub is replacing CodePlex as Microsoft Corporation's open source software sharing. Microsoft has a large number of contributors and provides free access to resources through download areas, communication forums and product information. Microsoft is on the Open Daylight board and technical steering committee; it has full-time developers assigned to the project.
jQuery provides dynamic user experience in a web browser. jQuery Mobile is a HTML5-based user interface system designed to make responsive web sites and apps that are accessible on all smartphone, tablet and desktop devices. Microsoft JSON.NET is a high performance framework. Itís featureset includes LINQ to JSON for reading and writing and
bi-directional JSON conversion to XML.
The Microsoft development now environment reflects the commitment and strategic importance of open source software. Visual Studio supports Linux; applications can be run in both Windows and Linux environments. Microsoft released PowerShell for Linux to provide tools that manage systems outside the Windows environment. MS Windows and Azure support both Docker and Kubernetes container management. MS SQL Server on Linux will enable data exchange with Windows Server on premises or through the cloud.
This has led to increased interoperability with products offered by hardware and software companies and FOSS purveyors.
Open Source Software - Market and Competition
Information technology demographics have been driving data center diversity, cost reduction - ip: intellectual property, and complexity in IT infrastructure: commodity hardware, open
protocols/open source projects, mergers, and acquisitions. There are very few organizations exclusively using the Microsoft operating system and development stack. Departments within large companies have mixed
workloads: .NET and Linux/Java. There are Apache web servers and LAMP scripts being used with MS SQL Server or Active Directory for security and authentication. Microsoft's reluctant acceptance of Linux-variant
environments started in 2008 by having MS Hyper-V and System Center tools operate with the open source environment. Without doing so, Microsoft would not be able to properly support
and meet the requirements of MS Windows and .NET users.
Microsoft has been responding to changes in the market and its own client base.
Increasingly choice is being offered to corporate IT executives and developers concerned with lock-in a single vendor's software stack where a programming language could dictate other decisions for operating systems, databases and cloud. At its 2016 Build developer conference,
Microsoft introduced Windows Subsystem for Linux; this allows Ubuntu binaries to execute using the Bash shell in Windows 10; Linux tools can be used alongside Windows utilities without a reboot or launching a
virtual machine. IBM, Hewlett Packard Enterprise, and Oracle have been offering proprietary products blended with open source. Microsoft practical response is Linux versions of MS .NET and Visual Studio.
The adoption of Linux by Microsoft has boosted confidence in blending Windows-based technologies with existing and new internally developed open source projects. Open source software has had a positive impact on the bottom
line and Wall Street valuation. Microsoft is far more competitive in a heterogeneous environments enterprise client base with mobile devices and movement to cloud computing platforms. It also has been
important in re-engaging and attracting the developer community.
MS Azure Cloud
Microsoft has been developing its Azure cloud platform to compete
with AWS: Amazon Web Services. The benefits of speed and efficiency in conjunction with a reduced costs in cloud computing are
compelling reasons for organizational enterprise to forego making large capital investment in hardware, software, and data center plant; this is an attractive alternative to owning and managing servers and storage
arrays. According to IDC, cloud infrastructure will continue expanding at the rate of 30% through 2018
1. The Microsoft business model, marketing and distribution of bundled MS operating systems, servers, databases, and software in data centers was inadequate to
compete in cloud computing with Amazon and Google. Since 2015, Microsoft executives have responded by promoting a cloud-first mobile computing experience where there is the flexibility to interact and get
things done from anywhere on any device with Microsoft software.
Microsoft supports several distributions of Linux for its Azure cloud environment including CentOS, Oracle Linux, RHEL: Red Hat Linux, SUSE Linux, and Ubuntu. Supporting Linux and MS Windows equally, inclusive of integration, and open source software has allowed a client to select
the operating system and hardware. Moving to the cloud can eliminate the tasks and complexity in finding the right hardware drivers and BIOS updates and getting them to run properly. The capability to run Linux
containers in Azure allows MS Windows workloads to be integrated and extended with open source software with the Microsoft platform. Data marketing studies indicate a growing number of non-Windows workloads going up in Azure.
Microsoft continues to develop its cloud platform and both .NET and OSS: frameworks - DocumentDB, VM: virtual machines, MS hypervisor, container support, and key management encryption. Azure customers can use the Docker engine on Ubuntu images through the Azure Marketplace. Docker is supported in MS Windows 10 / MS Windows Server 12/16. There is key management for client centralized control to encrypt data with asymmetric keys in Hardware Security Modules. From 2015 to 2017, there has been a sizeable increase in MS Azure sales volume. In terms of market share, the Microsoft Azure platform is second to AWS: Amazon Web Service and ahead of the Google and IBM cloud platforms.
Mobile Devices - Windows Phone and Tablets
Microsoft has been criticized for its failure to read changing trends in the market and inability to deliver software and developer platforms
and meet consumer requirements. Microsoft introduced an app marketplace for the Windows Phone platform to compete with the Apple iPhone and Android operating systems. Towards that end, Microsoft
has been working with partner developers to build mobile applications for the new devices. The leading development platforms are Apple iPhone and open source Google Android. Both had a headstart on Microsoft in terms of applications already on the market, distribution channels, and market share. A high percentage of young software developers have elected to embrace free open source software.
From a practical standpoint, Microsoft has been attempting to catch up.
Microsoft has been committing resources to become a significant player in smartphone and tablet computing devices. There are hundreds of thousands of apps that run
on the Apple iOS iPhone and iPad platform and Google Android handset devices that will not work on phones that use Microsoftís Windows Phone operating system. In the fourth quarter 2011, Microsoft Phone 7 had minimal consumer acceptance and market share. There
was reluctance by third party developers to devote resources into coding phone apps for Microsoft smartphones. Often the issue was not outright refusal by a developer, but more that the Microsoft platform is not a bottom line priority. To address this problem, Microsoft has been using financial and promotional incentives to initiate the development of Windows Phone versions of well known apps. This tactic underscores the strong positions of Apple and Google, neither pay independent third parties for web app development. According to Microsoft marketing
executives, this was part of a commitment to expand its web app catalog. In April 2012, Apple Corporation had 600,000 apps and Google Corporation 400,000 apps in their respective app stores. Microsoft
only had approximately 70,000 apps in its app store. This position in mobile apps contrasts with Microsoft's marketing leading position in the 1980ís and 1990ís. Microsoft leveraged its MS Windows operating system for promoting independent software companies to
make Windows the primary operating system for application development. This influence began to weaken with the onset of the Internet era of web development as more companies began to design services and products that ran through web browsers. This trend accelerated as creative developer talent shifted toward smartphone and iPad applications.
In the first quarter of 2012, Microsoft bought a minority position in the Barnes and Noble Nook e-reader. The Nook utilizes a specialized version of the open source Google Android operating system. In 2014, Microsoft acquired the Nokia cell phone
division for $9.5 billion. The Nokia Lumia 900 smartphone featured the MS Phone operating system. Both were part of an effort to become a
major player in the market dominated by the Apple and Google. Microsoft efforts have had some impact, developers have reported that between 5 and 10 percent of total requests are now for Windows Phone apps. However, it did not translate into profitable market share in mobile devices. The decline in Microsoft's position in increasingly mobile information processing was reflected in the installed web browsers. At its peak, when IE: Internet Explorer was bundled in MS Windows
90% of desktops and laptops used the Microsoft web browser. With the explosive growth of mobile computing, Microsoft IE and Edge are installed on approximately 30% of all PCs, laptops, tablets, and smartphones. Open source and cross platform Google Chrome and Mozilla Firefox web browsers combined, have
a larger installed market share than the MS IE web browser.
The Microsoft strategy has been re-evaluated and modified by CEO Satya Nadella to concentrate on a handful mobile devices to demonstrate and promote its software platform for partner relationships and third party manufacturers. The release of the Windows 8 was a major problem which greatly contributed to its failure in the mobile device market. MS Phones and Windows 8 tablet sales were disappointing. The improvement and release of MS Windows 10, with the new Edge web browser and Surface tablet, was central to refocusing and positioning for gaining traction in mobile devices. This time it was targeted both to the Microsoft platform - software and hardware and the leading platforms - commerical Apple iOS, open source - Android, and hybrid cross development. Microsoft has written down almost its entire investment in Nokia. With Windows 10, applications written for Windows desktops also will work Microsoft smartphones and tablets.
In 2016, Microsoft acquired the Xamarin mobile app development platform. Xamarin enables developers to create native cross-platform apps for iOS and Android using C#. The Xamarin Live Player allows developers to connect a MS Windows PC to an Apple iPhone or iPad and test and debug the app natively. This removes the requirement to have the MS Windows PC on a WiFi network as a Mac
with the Xcode IDE: integrated development environment. The Microsoft .NET ecosystem is supported by IBM; this allows a large enterprise client base to use the Xamarin app-building toolset with IBM Mobile. Xamarin can be used in conjunction with the IBM Bluemix PaaS: platform as a service.
MS Visual Studio
Visual Studio device development is performed using data designers, user interface designers, and a debugger. Support is included for a developer to view application presentations across different screen orientations, resolutions, and devices. A consistent API in the Windows Mobile family allows a single application to run across Windows Mobile devices independent of the device manufacturer or mobile operator. All Windows Mobile devices have the .NET Compact Framework Service Pack installed in ROM. This provides a consistent target platform for managed application deployment. Most core device features expose managed APIs - messaging, telephony, and Outlook Mobile. This serves to make them directly accessible from managed code.
Testing can be performed at the device level; this includes emulation states such as transitions between AC power and battery power and changes in battery charge level. Applications can be tested across a range of device form factors without having to purchase the device. An application's behavior can be tested with Device Emulator in different cellular scenarios: incoming phone calls, incoming SMS messages, dropped phone calls, and dropped data connectivity. A GPS: Global Position System provides for the testing of location-enabled applications without needing access to a GPS device.
For Fortune 1000 companies, government municipalities, and healthcare providers, there are a number of considerations that need to be evaluated as part of expanding a Microsoft code base, updating an information technology infrastructure, and developing application software to meet client requirements.
Developing, Generating, and Deploying the Code
|Support for Multi-Monitor
||Provides an organized approach to using designers and editors simultaneously for writing application code.
||There are collaboration tools for web parts, lists, workflows, and events.
||Built-in tools are available for the MS Windows
||Web applications can be distributed into a production environment: the code, IIS: Internet Information Server settings, and database schema transferred to the target server.
Testing and Debugging
|Workflow and Guidance
||Test planning can be started in the architecture and designing stages. Test plans, test suites, and test cases with nesting capabilities can be created.
|Coded UI Testing
||Automates user interface testing in web and Windows-based applications. Regression tests can be used to ensure that subsequent changes to the code do not break sections that already work.
|Code Analysis Tools
||Tools can be used to ensure that common coding errors are identified and corrected. Code metrics lead to a reduction in the complexity of the code and improving maintainability.