Skip to main content

Microsoft in the Open-Source World


As we all know, the open-source project exists from the moment when the first line of code was written. In this post we will see what open-source meant for Microsoft in the past and what is the relationship between open-source community and Microsoft nowadays.

How everything started
The open-source community in one way or another appeared for the first time in 1950-1960. In those days, the code was usually written by researchers from universities, in colaboration with corporations. The IT industry was alone at the beginning and the accent was put on collaboration. Why? First of all, when a discovery was made, people tend to share it. In that period of time, people were open to collaboration and to share their ideas with the rest of the world. Also, each hardware device was different and if someone wanted to run an application on a different device he had to make some changes on the application. Because of this people used to share their code.
A good example of the collaboration is from 1960, when a lot of researchers worked to define the communication protocols. The output of this collaboration is the internet that we know nowadays. Officially, the internet appeared in 1969 through ARPANET (Advanced Research Projects Agency Network).
From 1970, applications began to be more and more complex. Different companies started to invest a lot of money in the software research and development of new software products. In time, this led to the appearance of new notions like license, trademark and copyright. Besides Microsoft, there were other companies that started to use licensing system. A good example is AT&T, that decided to make profit from UNIX system – and they started to sell it.

Open-Source and Microsoft before 2000
In the first part of the period, Microsoft had a rejection position. In 1970, Microsoft didn’t used to sustain open-source projects. From their perspective, open-source projects could not bring any kind of value or revenue. From their perspective, the quality and the performance of an open-source project was questionable.
In 1976, Bill Gates writes an essay about open-source. The name of this essay was “Open Letter to Hobbyists”, where the Altair BASIC community is indirectly attacked and people using software without license. From a corporation point of view, open-source represents a threat, especially from the financial perspective.   
With or without Microsoft, the open-source community goes forward and in 1983 they launch the GNU project. The scope of this project was to develop an open-source operation system that is free to everyone and without any kind of dependency to different companies. All the code would be open-source and anybody could change it and use it.
This project leads to a new form of licensing, because of the need to license open-source projects. In 1989, the GNU General Public License appears. After this different operating systems and products appeared under this kind of license.
In the last 20 years, a lot of open-source projects had a real success on the market. A perfect example is Apache. Also, around Netscape we have a pretty interesting story. At the beginning, Netscape was not an open-source project. After Netscape became open-source project, the code source was used for different projects. For example the Firefox browser and Thunderbird.
Meanwhile, Microsoft remains the enemy of open-source projects. The quality of the open-source projects is putted under question. In 1998 a series of articles named “Halloween Documents” appeared. In these articles, the open-source is seen as a bad thing and is compared to a cancer. During the years, there were a lot of lawsuits between Microsoft and different companies because of the patents.

Open-Source and Microsoft after 2000
After 2000, Microsoft position against open-source starts to change. With the entrance in the new era, Microsoft started to sustain and work at open-source projects – directly or indirectly. In the meantime a part of Microsoft projects become open-source.
A good example of collaboration between Microsoft and open-source community is related to Hiper-V. At this open-source project, Microsoft works on drivers. Another example is jQuery where Microsoft sustains the project and works directly with jQuery team.
A big change was made in 2006, when an open-source portal was launched by Microsoft. Codeplex is the name of the portal and during the years, it becomes an important site in the open-source world. The community of Codeplex is large and very active. This portal is used by Microsoft to publish their open source projects.
One year later, even if the relationships between open-source community and Microsoft were pretty tense, Microsoft launches two types of licenses for open-source:
  • ·  Microsoft Public License
  • ·        Microsoft Reciprocal License

This is the real turning point, when open-source projects are seen like something good, that can have a business potential and the quality of them is extremely good.
Date
Event
31 October 1998
A first memo appears under the name of „Halloween Memo”. Open-source is seen as a threat because of the licensing mode
May 2001
A message appears which gives the example of companies that had provide the source code hoping to earn some money and failed
June 2001
B. Gates describes the Generic Public License as Pac-Man-Like
June 2001
S. Ballmer says that if you write an open source operating system then you need to provide everything related to that project (source code, documentation etc.)
June 2005
S. Ballmer says that Microsoft works every day to carry out projects and doesn’t compete with movements (Linux and open source community)
June 2006
Codeplex is released
October 2007
Two license modes for open-source
Now
There are many open source projects supported by Microsoft
Tabel 1 Open-source și Microsoft

Open-source project developed by Microsoft
There are a lot of open-source projects that came from Microsoft world. We don’t talk about small projects. Projects like Entity Framework, ASP.NET MVC, ASP.NET Razor, ASP.NET Web API is open-source. Anybody can inspect this code. Every day, a new project that came from Microsoft world become open-source.

In the last period of time, there was some news announcing that Git will be integrated in IDE of Visual Studio. In this moment Git is consider one of the best and used source-control mechanism. People react in different ways, but what is important for Git is that more people will be able to use it. By this integration, Microsoft will need also to offer maintenance for Git. Because of this we could expect that bugs that are discover on Git to be resolved by Microsoft. The integration of Git in Visual Studio IDE was made some time ago. If we look over the check-ins that were made on Git, we can observe that name of Microsoft employees appear.
Another interesting project that has all the API documented and can be used by the open-source community is VM Depot. This is a service where people can share, rate and use different images of operating systems (including Linux).

Project Name
Description
Reactive Extension
Common interface for different data sources
(FB, Tweeter, NetFlix, GitHub, etc)
Reactive Extension
Allows working with different asynchronous data streams
Phone Gab, jQuery Mobile, SQLite, Senqua Touch
Different frameworks supported by Windows 8
SQL Server Connector for Apache Hadoop
Allows data transfer between SQL Server and Hadoop
EF, ASP.NET, MVC, WebPI
Well known frameworks have become open source
VM Depot
A catalog of virtual machines for Windows Azure
Type Script
Is a superset of JavaScript that complies to normal JavaScript.
Tabel 3 Open-source projects sustained by Microsoft

 

Microsoft Open Tech Hub
For an easier collaboration between Microsoft and the open source community, Microsoft Open Tech Hub appeared. In this hub there are people paid by Microsoft to contribute to open source projects. Through this hub they are hoping that people will be more involved, the communication between open-source community and Microsoft to be much better and easier and to facilitate the development of various standards.

We need to understand that open source doesn’t mean only sharing source code. It means more than that. In addition to the code share, information sharing is also important, perhaps even more important. We can have available the source code containing 20 million lines of code if there isn’t any documentation. Is exactly the same as having more than one assembly.  From this point of view, Microsoft is trying to bring value by providing not only the source code but also the documentation for it.

Conclusion
An open source project should be more than a source code you put on a server and share it. You need to provide documentation, support and be careful to be functional.
The future seems to be quite promising for the open source community. Microsoft has come to recognize the value the community and began to sustain it.
In conclusion we can say that until a few years ago open source didn’t existed for Microsoft, but now these things have changed enormously and in the future we might have some more surprises.



Comments

Popular posts from this blog

Windows Docker Containers can make WIN32 API calls, use COM and ASP.NET WebForms

After the last post , I received two interesting questions related to Docker and Windows. People were interested if we do Win32 API calls from a Docker container and if there is support for COM. WIN32 Support To test calls to WIN32 API, let’s try to populate SYSTEM_INFO class. [StructLayout(LayoutKind.Sequential)] public struct SYSTEM_INFO { public uint dwOemId; public uint dwPageSize; public uint lpMinimumApplicationAddress; public uint lpMaximumApplicationAddress; public uint dwActiveProcessorMask; public uint dwNumberOfProcessors; public uint dwProcessorType; public uint dwAllocationGranularity; public uint dwProcessorLevel; public uint dwProcessorRevision; } ... [DllImport("kernel32")] static extern void GetSystemInfo(ref SYSTEM_INFO pSI); ... SYSTEM_INFO pSI = new SYSTEM_INFO(

Azure AD and AWS Cognito side-by-side

In the last few weeks, I was involved in multiple opportunities on Microsoft Azure and Amazon, where we had to analyse AWS Cognito, Azure AD and other solutions that are available on the market. I decided to consolidate in one post all features and differences that I identified for both of them that we should need to take into account. Take into account that Azure AD is an identity and access management services well integrated with Microsoft stack. In comparison, AWS Cognito is just a user sign-up, sign-in and access control and nothing more. The focus is not on the main features, is more on small things that can make a difference when you want to decide where we want to store and manage our users.  This information might be useful in the future when we need to decide where we want to keep and manage our users.  Feature Azure AD (B2C, B2C) AWS Cognito Access token lifetime Default 1h – the value is configurable 1h – cannot be modified

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine: threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration: TeamCity .NET 4.51 EF 6.0.2 VS2013 It see