dotnet / core

.NET news, announcements, release notes, and more!
https://dot.net
MIT License
21.03k stars 4.9k forks source link

Why Can't There Be One .NET framework that's xplatform with all the bells. #388

Closed mrpastewart closed 7 years ago

mrpastewart commented 7 years ago

Please don't take this wrong and I'm not trying to start a flame war but, It puzzles me why Microsoft has chosen to have multiple frameworks other than the fact that the full framework is years in the making and obviously still in heavy use. But, Why in the world would you not have a roadmap to make a better framework that can eventually replace both the full windows only versions and mono.

Clearly cross platform is the BOMB and There are plenty of API's that can be wrapped to provide Native UI and OS libraries that can be accessed in both Mac, Linux and mobile devices in addition to what works on windows. Just look at AvaloniaUI, ETO.Forms and Xamarin.Xwt and Xamarin.Forms all prove that a consistent method can provide desktop application and mobile capability to .NET that will be consistent looking native interfaces across major OS's including mobile devices.

Why not capitalize on this concept port System.Xaml and System.Drawing and once and for all provide a cross platform solution that allows developers to get things done. Why can't we write apps on any OS that can work anywhere including IOT and mobile devices with one unified framework.

Also it IMHO is a crime that Microsoft has not embraced the entire .NET ecosystem which would in my opinion provide them with a clear winner for example, there have been many of languages ported or created to run on the platform, Boo, Java, Python, Ruby, PHP, Cobra, Cobol, Typescript, Javascript and several others. It baffles me why Microsoft does not officially support these efforts so that .Net can attract more usage.

I suspect many developers of PHP or Java or Ruby would love to be able to maintain their skill set using the dotnet core as it provides many benefits and allows for seamless integration not to mention it opens up a whole lot of mature code that has been written over the years to the dotnet ecosystem. It actually makes me upset to see addins and plugins for these languages fall unmaintained and become not usable in monodevelop, sharpdevelop and even VS has seen some come and go. And, not because people don't use them mainly because the developers running the IDE projects chose to stop maintaining them.

It would be awesome to be able to have multiple language projects using one framework to maximize the best of the entire development ecosystem not just one companies vision of languages. It's easier to convert a developer to the CLR if their language is supported then to tell them to switch to my language.

Now that .Net is opensource it would be wonderful to see these efforts united to bring the framework inline with what it should be (IMHO) and see these languages being ported to Roslyn and brought inline with the current modern direction and standards of the .net core as a whole. It's totally possible and as example php is currently being ported to the Roslyn stack and dotnet core it's called peachpie and is the natural evolution of the Phalanger project.

How come nobody tries to embrace a community instead of just their vision? Why can't we use the .NET Foundation as a way to bring a team together that consist of these projects spearheaded by a common goal for example we have the ASP.Net team, The Roslyn Team the .NET Core team how come we can't extend an offer and official support to the developers of relevant projects like Boo, PeachPie, IronPython, IronRuby and the many others including ETO.Forms and AvaloniaUI to become a unified foundation with the goal of making dotnet core a defacto standard with all the love bells and jingles of a xplat framework that supports not just C# and VB.Net but all the other languages that have already been proven to run on the CLR with full development capabilities including a UI kit, Web, API, Mobile and IOT out the box. It's a shame...

I can totally see this:

DotNet Foundation Roslyn Team .NET Core team ASP.NET Team GUI Team OS Integration Team Language Teams C# Team VB Team Python Team Ruby Team Etc...

By bringing these isolated projects together and defining standards and goals officially supported.

What better way to try and set the standard then thru the foundation.

And please don't treat Linux as a second class citizen make it so we can create iOS and Android apps there to it has already been proven that mac apps can be developed in windows and debugged on a Mac using remote technology same for developing mono apps on windows debugging in a Linux VM why not use this knowledge to allow a unified experience across all platforms why should Linux developers be deprived of being able to use Xamarin tools it makes no sense conquer the game don't tease it.

I here the talk of windows forms does not make a good UI kit for xplat apps and that is true but it does make sense for developers using windows and should be in the stack for just that reason other UI kits can be abstracted for use on other systems like has been done already. If windows forms are deeply tied to the win32 api as many suggest, mono's windows form implementation can be picked up ported and extended to come inline with production standards and has already been partially ported to dotnet core as a test.

Sure i wouldn't want to run a winform app on my linux or mac box but i could code and test their and know it would run on windows any production deployment on Linux for me would most certainly use the GTK bindings and on Mac well that's been covered to by Xamarin. Bottom-line for me as a dotnet lover is bring it quit playing. And please if Microsoft embraced the projects that can offer a clear path to help push the new efforts to it's maximum and provided official support you would gain the man power needed to make all this happen just by supporting and consuming the projects already in motion.

Just my opinion, i mean am i the only person thinking that now that Microsoft is embracing opensource and supports the dotnet foundation and has purchased Xamarin that creating a vibrant community and bringing some of these isolated project teams under one theme all pushing to make the new core a truly available option for all developers regardless to their language roots and making it so we only have one cross platform framework complete with UI support would be a game changer.

richlander commented 7 years ago

That's quite the write-up! Thanks for taking the time.

I took away the following:

These are great suggestions and goals. I met with a big European banking customer yesterday who had some of the same feedback, mostly wanting the UI stack.

I think that two things are likely to happen, in no particular order:

richlander commented 7 years ago

Please re-activate if you would like to discuss further.