Some personal thoughts/feedback on the initial Growing the .NET Ecosystem document...
Observation: The document appears to have a high level hypothesis and a number of supporting arguments…
Hypothesis: Customers demand features from Microsoft because they do not trust third party solutions. This results in negative consequences to the .NET ecosystem.
Supporting Arguments ( ie. reasons why customers do not trust third party solutions ):
- Product quality
- Long term stability
- Lack of support
- Low visibility in official channels
- Provenance between source code and binary
- Cross platform support
Some of the topics above do resonate with me; however, I do question if the hypothesis is in fact the root problem. I question it because there is plenty of evidence from the past 2 decades that customers do trust third party solutions.
- customers trust commercial vendors ( ie. Progress Telerik, Infragistics, DevExpress, etc… )
- customers trust front-end open source frameworks ( React, Angular )
- customers trust many open source third party libraries ( Automapper, Serilog, Castle, Moq, Xunit )
- customers trust open source libraries officially endorsed by Microsoft ( JSON.NET, ImageSharp, IdentityServer )
So if customers do trust third party solutions, then what is hampering the growth and innovation in the third party .NET ecosystem? I believe the document touches on some of these issues already – especially in the “Critical opinions on the Microsoft OSS ecosystem” section. As an independent software developer who created a commercial open source company, I am intimately familiar with some of these challenges. I personally believe the bigger issue is not a lack of trust by customers of third party solutions, but a lack of trust of Microsoft by the potential creators of third party solutions in the ecosystem. The fear of Microsoft “eating its own young”, employing the 3E strategy ( Embrace, Extend, Extinguish ), and creating downward pricing pressure in the market are all barriers to entry for the third party ecosystem.
The other problem when it comes to trust that I have seen is Microsoft’s unwillingness to trust third party solutions and make official endorsements or recommendations to customers. Perhaps this is for reasons of legal liability. And some of the arguments in this document seem to be solutions specifically designed to try and solve this problem. Improving product quality, providing support, ensuring provenance between source code and binary, and ensuring cross platform support all appear to be items that are more important for Microsoft to reduce risk than they are for actual customers. I am sure customers would appreciate these items to some degree as well, but third party solution maintainers will view these as heavy handed requirements being imposed upon them. This was partly the problem with the original Maturity Ladder as well… and anything which appears to reduce freedom is not going to be well accepted.
The following diagram attempts to explain the challenges I outlined above. Each arrow represents a trust relationship and the color signifies its strength ( ie. green = strong, yellow = neutral, red = weak ). And like I said earlier, this is my personal opinion on the current state of .NET. Other folks will certainly have different perspectives. This is exactly why collaboration will be crucial in solving some of these challenges.

Some personal thoughts/feedback on the initial Growing the .NET Ecosystem document...
Observation: The document appears to have a high level hypothesis and a number of supporting arguments…
Hypothesis: Customers demand features from Microsoft because they do not trust third party solutions. This results in negative consequences to the .NET ecosystem.
Supporting Arguments ( ie. reasons why customers do not trust third party solutions ):
Some of the topics above do resonate with me; however, I do question if the hypothesis is in fact the root problem. I question it because there is plenty of evidence from the past 2 decades that customers do trust third party solutions.
So if customers do trust third party solutions, then what is hampering the growth and innovation in the third party .NET ecosystem? I believe the document touches on some of these issues already – especially in the “Critical opinions on the Microsoft OSS ecosystem” section. As an independent software developer who created a commercial open source company, I am intimately familiar with some of these challenges. I personally believe the bigger issue is not a lack of trust by customers of third party solutions, but a lack of trust of Microsoft by the potential creators of third party solutions in the ecosystem. The fear of Microsoft “eating its own young”, employing the 3E strategy ( Embrace, Extend, Extinguish ), and creating downward pricing pressure in the market are all barriers to entry for the third party ecosystem.
The other problem when it comes to trust that I have seen is Microsoft’s unwillingness to trust third party solutions and make official endorsements or recommendations to customers. Perhaps this is for reasons of legal liability. And some of the arguments in this document seem to be solutions specifically designed to try and solve this problem. Improving product quality, providing support, ensuring provenance between source code and binary, and ensuring cross platform support all appear to be items that are more important for Microsoft to reduce risk than they are for actual customers. I am sure customers would appreciate these items to some degree as well, but third party solution maintainers will view these as heavy handed requirements being imposed upon them. This was partly the problem with the original Maturity Ladder as well… and anything which appears to reduce freedom is not going to be well accepted.
The following diagram attempts to explain the challenges I outlined above. Each arrow represents a trust relationship and the color signifies its strength ( ie. green = strong, yellow = neutral, red = weak ). And like I said earlier, this is my personal opinion on the current state of .NET. Other folks will certainly have different perspectives. This is exactly why collaboration will be crucial in solving some of these challenges.