MS .NET Programming - Educational Consultancy SYS-ED SYSED

Longstanding Expertise and Experience in Data Processing

Microsoft Platform and Open Source Software

MS Operating System Training Sitemap | .NET Training Sitemap

Submit .NET and MS FOSS Questions Knowledge Transfer .NET Schedule
Definition of Service Delivery Medium Web-based Training Services

Microsoft Platform and Open Standards

Scripting, Programming, and Big Data

Operational Challenge Microsoft - Open Source Model and Open Standards Microsoft Ecosystem and OSS
Pash Project Big Data and Hadoop Guidelines and Best Practices
Copyright Acknowledement

Operational Challenge

Microsoft is being forced to provide flexibility so that less expensive commodity hardware and OSS: open source software can be used place of Wintel - MS Windows and network operating system software and Intel hardware.

Application development with the MS AD: Active Directory software stack and .NET platform has been extended to include open source software. Microsoft investment in the use and integration of open source software continues to increase. It is an important component of its mobility, cloud, data insights, and Big Data strategies. These are all areas where Microsoft is not the market leader.

The issue of vendor-lockin is being addressed with open standards for promoting and growing its Microsoft Azure cloud platform; it is a requirement in order to compete and interoperate with the market leader AWS: Amazon Web Services and other cloud providers.

Microsoft - Open Source Model and Open Standards

Microsoft has been making targeted moves which bolster its open source reputation in response to demand in the market. GitHub is replacing CodePlex as Microsoft's open source software project hosting web site: tools, source code, and advanced platform. It provides open source software downloads for creating and sharing new projects, and providing feedback. The CodePlex Foundation encouraged development of open source initiatives to promote interoperability among the key components of cloud networks - data portability, standards-based technologies, migration, and cross network deployment. In December 2017, CodePlex was shut down.

Microsoft Open Technologies, Inc. was formed to facilitate the interaction between Microsoft Corporation proprietary development processes and innovation efforts and relationships with open source and open standards communities. In addition to promoting investment in interoperability, open standards, and open source software, it also is part of a strategy for intellectual property governance. In 2009, Microsoft transferred ownership of the ASP.Net AJAX project to the Outercurve Foundation and the project was then released under a standard BSD open source license. Ownership of Orchard and WebFormsMVP also was transferred to the Outercurve Foundation.

ASP.Net MVC was developed as a Microsoft Public License - MS-PL with Microsoft Corporation retaining ownership of the intellectual property. Microsoft Windows interoperability is supported with open source technologies including Drupal, Joomla, Hadoop, MongoDB, and Linux. Microsoft is working with the Distributed Management Task Force and OASIS on interoperable cloud technologies. The Microsoft Window Azure cloud computing platform supports multiple languages: Java, PHP, and Node.

Microsoft Corporation helped create OData, the Open Data Protocol based on web technologies; it has partnered with Citrix, which sells technology based on the Xen open source hypervisor. Microsoft ASP.Net MVC 3.0.included jQuery and Modernizr and ASP.Net 4.0 included the open source projects jQuery Mobile and JSON.NET.

MS Azure and Windows Server support both Docker containerizaiton and Kurbernetes orchestration.

Microsoft Ecosystem and OSS

Microsoft has been increasing support for Linux and FOSS with its commercial MS Windows SharePoint Stack. It is treating FOSS: Free open source software as an independent product to be incorporated into the Windows ecosystem through integration with Active Directory, Microsoft Office, Expression designer tools, System Center systems-management, and SQL Server database. Towards that end, Microsoft has released Linux device driver code to the Linux kernel community under the Linux preferred GPLv2 license. The Linux device drivers were designed in order that Linux can run in enlightened mode, thereby providing the same optimized virtual devices as a Windows virtual machine running on top of Hyper-V. Without this driver code, Linux can run within a Windows operating system namespace, but without the same degree of performance.  Microsoft has developed Linux versions of Visual Studio, .NET, and SQL Server. MS SQL Server on Linux will enable cloud or on-premises data exchange with Windows Server.

In response to charges of antitrust violations by a European court in 2004, Microsoft agreed to make the information on network authentication with Active Directory available on fair terms. The open source Samba project negotiated terms which allowed it to use Microsoft documentation created as part of the EU settlement to make the Samba 4 Active Directory Compatible domain controller code reliably interoperate with Microsoft AD domain controllers.

In 2014, support was added for several distributions of Linux for MS Azure; support for Red Hat was added in 2016. Azure supports eight Linux distributions, including CentOS, Oracle Linux, SUSE, and Ubuntu . Nearly one in three VM: virtual machines on Azure are Linux. Nearly 60 percent of third-party IaaS offered in the Azure Marketplace is open source software. Alternative programming language support includes Node.js, Python, and Java.

Microsoft is expanding its contribution and participation in open source industry projects: OpenSSH, FreeBSD, Mesos, and Docker. As part of extending choice to its customers, Microsoft is using open source software to advance industry partnerships: Apple, Google, IBM, Oracle, Samsung, and others.

Pash Project

The Pash Project is an open source and cross-platform implementation of Microsoft PowerShell using the Mono framework. The term Pash is an acronym - Posh = PowerShell and bash = UNIX shell. Written in C#, Pash was released under the GNU General Public License. Its primary design goals were allowing the rich applications hosting PowerShell to run on any other operating system. It provides a shell environment for other operating systems and a hostable scripting engine for rich applications. The user experience should be functionally comparable to MS Windows PowerShell. When MS Windows-specific functionality is not being used, the scripts, cmdlets, and providers should run as-is.

The scripts implement the Microsoft security model and run across machines and different operating systems. The current implementation of Pash is written using .Net 2.0. It compiles on Visual Studio 2008 and higher as well as on Mono. The developer selects the operating environment and produces assemblies which would execute on MS Windows, Linux, Macintosh without additional recompilation. Pash development ceased in 2008. The consensus is that it works reasonably well under Mono. Pash is a partial open source equivalent for MS PowerShell. There is a scarcity of reliable Pash documentation; nor is there is a reliable website.

In August 2016, Microsoft released PowerShell for Linux; it provides tools that manage systems outside the Windows environment.

Big Data and Apache Hadoop

Big Data technologies are open source and inexpensive in terms of licensing and hardware compared to commercial systems. Hadoop has established itself as the standard for unstructured and semistructured Big Data in analytics. It is a reliable distributed processing and storage framework for very large datasets and is being used to distribute processing jobs across low-cost servers. Hadoop is comprised of two core components: HDFS: Hadoop File System and MapReduce HDFS handles storage, and MapReduce processes data. Hadoop provides builtin redundancy to hardware failure; processing and tasks are allocated across a cluster of low-cost servers / nodes. This removes from the application developer the responsibility of managing the scale-out infrastructure and increasing the number of nodes.

Hadoop was developed for use on the Linux platform, Microsoft had been working to port the Hadoop platform to its Windows operating system; management's stated strategy is then to release it back to the open source community.  However, there now is a Hadoop platform partnership bewteen Hortonworks and Microsoft. Its cloud-based Azure HDInsight managed service has been developed for Big Data on top of HDP: Hortonworks Data Platform.

Guidelines and Best Practices

MS PowerShell - Parameters Design and Usage

A cmdlet needs parameters that receive the data on which it must operate, and parameters which indicate information used to determine the characteristics of the operation. There is no limit to the number of parameters that a cmdlet can define.

Windows PowerShell provides a common set of parameters to all cmdlets, plus additional parameters for specific situations. Use standard, singular, Pascal case for parameter names. These names can not be used: Confirm, Debug, ErrorAction, ErrorVariable, OutBuffer, OutVariable, WarningAction, WarningVariable, WhatIf, UseTransaction, and Verbose.

MS Azure and Apache Hadoop

A data platform is required for managing data type, structured data, unstructured data, and scalability in order to realize the full value of Big Data. Microsoft accommodates Apache Hadoop by distributing enterprise class on both Windows Server and Windows Azure. The Windows Azure Platform API for developing applications is built on REST, HTTP, and XML and services interaction.

The Microsoft client-side managed class library encapsulates the functions for interaction with the services and integrates with MS Visual Studio, GIT, and Eclipse to develop and publish Azure-hosted applications. Scale and extend applications into the cloud using Microsoft SQL Server and integrate Active Directory, System Center, and Hadoop.

The Apache Hadoop team development and documentation effort centered on the Linux platform. Win32 is supported as a development platform. However, distributed operation has not been thoroughly tested on Win32 as a production platform. MS Windows should not be used as a Hadoop production environment. Hadoop commands are created with Linux syntax and shells. It will be necessary to install an emulator for the Linux environment under MS Windows.

Copyright Acknowledgement

Computer Education Techniques makes no representations of ownership on the software reviewed in this technology assessment. It is aggregating information in the public domain and performing an independent review of mobile devices: hardware, development platform, database, and development tools.