Microsoft Development Platforms
A fundamental shift is underway at Microsoft
Corporation. Changes in customer computing requirements, advancements in
technology, software being marketed in conjunction with vertically
integrated hardware in global markets with different regulations in
countries to ensure competition and data privacy, have all contributed to a decline in the
relative position and impact of several Microsoft software products. Unlike its first quarter century of business where Microsoft was looking to aggressively acquire and control a well defined market for its software, it 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 flexible parallel paths with its software and service initiatives based upon an entirely new set of assumptions. Its strategy is a competitive response to the viability and growth of freeware and open source software, increased use of software as a service, the emergence of cloud computing as new market, and the
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 or open source Java. In conjunction with manual coding, refactoring tools are being used. Visual Studio was a significant application development initiatives undertaken by Microsoft.
The assumption is that Microsoft will use SharePoint 2016 and Windows Server 2016 to leverage and extend acceptance of these platforms.
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 incremental 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 a variety of 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. It 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. GitHub is a repository for open source projects, Microsoft has a large number of contributors.
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 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 supports both Docker and Kubernetes container management. MS SQL Server on Linux will enable data to be exchanged with Windows Server on premises or through the cloud.
This has led increased interoperability with
other software and products offered by hardware and commerical and open
source software companies.
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/meet the evolving and
new requirements of MS Windows and .NET users.
Microsoft has been responding to changes in the market and its own client base. It increasingly has been offering choice 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 and use Linux tools alongside Windows utilities without a reboot or launching a
virtual machine. Layers are being separated to ensure choice at each layer. IBM, Hewlett Packard Enterprise, and Oracle have been offering proprietary solutions 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 now 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 the new versions
of 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 which meets consumer requirements. Microsoft stated strategy
was to introduce 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. Even for Microsoft, this
has been challenging and for the most part disappointing. The leading development platforms are Apple iPhone and open source Google Android. Both have a significant 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 catchup.
Microsoft has been committing resources to become a significant player in smartphone and tablet devices and the consumerization of information technology. 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 is part of a commitment to expand its web app catalog. In April 2012, Apple Corporation had approximately 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 in mobile devices. The decline in Microsoft's
position in increasingly mobile information processing was reflected in
the changes 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 in the 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 marketing 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 and 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.
Developing, Generating, and Deploying the Code
||Device development can be 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.
|API: Application Programming Interface
||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.
|NET Compact Framework Service Pack
||All Windows Mobile devices have the .NET Compact Framework Service Pack installed in ROM. This provides a consistent target platform for managed application deployment.
|Core Device Features and Managed APIs
||Most core device features expose managed APIs - messaging, telephony, and Outlook Mobile. This serves to make them directly accessible from managed code.
Testing and Debugging
||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.
|Coded UI Testing
||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.
|Code Analysis Tools
||A GPS: Global Position System provides for the testing of location-enabled applications without needing access to a GPS device.
MS Visual Studio
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
||The capability is provided to automate 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 measure the complexity of the code leading to a reduction in the complexity of the code and improving maintainability.
Microsoft Development Platform Training
SYS-ED's cadre of system consultants designed and coded the first generation of C, C++, and Visual Basic programs. This foundation and expertise is used to train employees from Fortune 1000 companies, government municipalities, and healthcare providers to upgrade and migrate an existing investment in client/server infrastructure to .NET, and mobile device web apps.
Where SYS-ED excels is in providing educational consultancy - code reengineering, structured analysis, structured design, and structured programming. We provide coding, debugging, and optimization guidelines which are essential for meeting project deadlines. SYS-ED receives requests from software companies to train their software engineers and clients. Consulting companies have called upon SYS-ED training services for guidelines in repurposing information technology infrastructure to new development platforms. We selectively accept these assignments. It is our standard policy to qualify an assignment; review client documentation and standards, and incorporate that content into code snippets, examples, skeleton programs, and hands-on exercises. Few software or consulting companies have been teaching Microsoft development platforms longer or better in hybrid information technology than SYS-ED.