Create a Ubiquitous .NET Client Application Development Model
This vote is for developers who wish to see the idea of a ubiquitous .NET client application development model created by Microsoft and the Visual Studio team.
A ubiquitous .NET client application development model is a model that is defined in .NET-based technologies and is able to run in a multitude of runtime environments -- both native-compiled (store-hosted) and web-hosted.
A *very* rough image of the vision can be found here:
The goal is to enable *one* .NET Client Application Project to build deliverables for the following platforms:
1) Windows 10
2) Legacy Windows
3) *nix (Unix/Linux)
8) ??? (Extendible to different, future platforms)
In order to achieve the above, a ubiquitous .NET client application development model should strive to possess the following qualities:
1) Native Cross-Platform Capable - For native-compiled/store-hosted scenarios (iOS/Droid/Windows Store)
3) Consistent User Experience - For brand recognition, reinforcement, and optimal usability across all known scenarios
4) Cross-Boundary Accessibility - For shared code/assemblies between server and client boundaries
5) Xaml-Powered - Harnessing one of the greatest inventions in Microsoft's great history
6) Object Serialization Congruence - Markup used to describe serialized objects is what is created in memory
7) Holistic Development Consistency - The same guidelines and conventions are used in both client and server scenarios
For more information around this idea and the qualities above, a series of articles has been created to discuss the notion of a ubiquitous .NET client application development model at length. You can view that series here:
Finally, this is intended to be a starting point for discussion, and not a final solution. THAT is meant for the experts there at Microsoft. :) Thank you for any support, dialogue, and feedback around this idea!
@mike what I meant it that my solution uses standard HTTP protocol over ASP.NET and IIS in order to get and send information to the client with the latest framework therefore I am limited to those abilities. If IIS can support Millions concurrent users so do I,
I have an actual application with Hundreds concurrent users. It installed on a single IIS server on a virtual machine and work fine.
I don't familiar with the server load/scale problem that you asked about.
Hey good to hear @Oliver. Many others have said the same. We should start pestering Telerik at some point. :)
@Anonymous, I am sure we are going to see more projects like that. However the problem remains that you now have at least 2 different code bases (or view bases) that you have to develop and maintain. The goal here is to have ONE code (or view) base that used and from there (via theming, etc) have it adapt to the hosting environment/platform.
library to run xamarin.forms on web:
Just had a full play with Noesis that now supports 99% WPF!
It bloody good... it's super fast and easy to work with.
They got binding and support for .NET core.
I'd say the only missing components are Telerik controls or other.
If Noesis had these we'd start building in it tomorrow.
We're going to look how possible it is to convert UWP controls to work with Noesis.
I also really like Avalonia and it'll interesting to see who wins support from Telerik first!
Well you say no problem, but how many concurrent users have you actually had to prove this? Several hundred might work, but thousands? Hundreds of thousands? Millions? Also, when you reference ASP.NET are you talking the old or the new re-written ASP.NET Core? The performance comparison between the two are staggering.
If you have found some way to legitimately cater the server load/scale problem then more power to you, otherwise, I reserve judgement until I see this ****** in the wild working as described under cloud scale/load. :)
No problem to address these two aspects and it is proven with solutions I delivered.
1) Is the same scaling as ASP.NET – see no problem with big solution – and also can be installed on IIS server farm.
2) The same code run for Windows, iOS, Android and HTML. I am sure Avalonia and Noesis worked hard to achieve it because they need to compile the code to different platforms, for me it is easy – the code run on the same server for all platforms.
Ah yes, there have been some attempts at what you are describing. There are two problems with this, however:
1) Scale. Since you are placing the work in the server, this places the processing within the server and struggles with scaling out the solution.
2) Sharing code. Are you able to say that the same code that works in your scenario is the exact same code that works on iOS, Droid, and Windows platforms? This is what Avalonia and Noesis offer, as they allow you to use the same code and each of the platforms are merely relegated as rendering hosts.
If you are able to address these two aspects, then I wish you the best of luck!
BTW, for those watching at home, this issue has now reached 8,000 votes.
@Mike I took a different approach, I developed a library of client controls that run on the server.
Programmers work with the whole .NET framework and are able to combine client and server components – for example in the onClick handler you can use sqlConnection and a TextBlock – The code run on the server.
My controls do not render graphics instead they send information to the client. It is similar to WebControls of ASP.NET but with different way of rendering and sending information.
In order to run the app - in the client machine I have a generic native app or JS that can translate the information into native UI or HTML and send back to the server information about the client's events.
For you question whether my is better the answer is depended. For games and real-time I will not use my solution yet. But for enterprise solutions and web sites it is not just better it is a game changer.
@Yoram what we're looking for at this point is a .NET runtime/environment that will execute within a browser-hosted context, either via JS or WebAssembly. At this point, it should be .NET Standard 2.0 compatible, wherein you are able to share code cleanly and effortlessly between server and client (whether it be iOS, Droid, Windows, and/or web page).
They do not work in a webpage yet however, so if you got something that is better than that, and works within a web context (in addition to iOS, Droid, and of course Windows) and is .NET Standard 2.0 compatible, then I will be the first to see your demo which is no doubt hosted on a webpage somewhere, right??? :) :) :) :)
Mike-EEE, maybe one day I will get mass following/branding/awareness – I am building now an online multi-platform application and database generator. I have other projects for paying customers and it will take some time.
I develop my concept as addon for VS and am using it for some time, am sure it is the "real deal", it is not just the multi-platform ability it is far beyond that and if MSFT will not even review – it is their lost.
I am posting it to this forum in order to find the right person in MSFT
Indeed, Tom_W, anything out of the UWP group (currently) does not work within the context of a web browser host.
With the exception of item 2) in the list above, I think that the Windows Template Studio addresses this issue. Am I wrong in this assumption?
LOL 1998 called and wants its code back, Yoram. ;) It's 2017 and open source is where it's at. MSFT isn't going to adopt anything that doesn't have mass following/branding/awareness. Put it on GitHub, buddy!
I already develop project like this, it works and already delivered solutions, just searching the right person from Microsoft to review and adopt.
My project offers more than just generic client that can run in many platforms.
There are logical objects on the server that represents UI and other equipment on the end device.
The result is a single logical object that include the whole application including the exact design, events and business logic.
The development process become significantly easier because programmers are not required to separate front-end and backend any more.
It opens endless new abilities for developing powerful stuff that combine client and server resources (like MS-Access).
For me it is a proven concept I work years on this and had delivered dozens of solutions some of them are big and sophisticated.
For demonstration or any question email@example.com
At least EDGE could have some XAML support. The WPF XBAP should evolve into UWP. UWP should do everything, and more than WPF did. The Windows Store should deploy the App in few minutes.
You're not alone in your disdain for Xamarin, Oliver. Well, Xamarin.Forms, that is. You can read the storied history of this issue to see that XF is very much disliked, whereas -- in alignment with your input -- Avalonia and Noesis is prized.
As for WebAssembly, the pendulum swings back to the web these days. That is probably why all 3 big shots in MSFT, GOOG, and AAPL support the WebAssembly initiative in their respective browsers. I know, hard to believe, but it's there, available, and the specification is moving forward. Even FireFox is in on the gig!
Think problem is that Google, Apple and MS won't want people avoiding their stores with apps in browser so they'll find someway to prevent this. Wouldn't you?
Avalonia UI will be apps and download via their stores. This is why it's so important and why I can't understand why MS aren't backing it heavily! Also, why they back Xamarin I'd guess.
Wow, some nice WebAssembly demos coming out already: https://www.funkykarts.rocks/demo.html
The big boys will wall garden their native development.
What us innovators require is a nice well constructed tunnel beneath the walls.
Avalonia and Neosis are two of the best bets out there. With a bit more time we have our tunnels. There is also wine bottler and crossover for Mac that has potential.
We have to be careful that these tunnels are not simply crushed by Apple and Google.
In some ways I feel sorry for Microsoft - they lost the web browser, search, mobile, mapping, the web and now they are losing native and OS. They did have most of these sorted at one point or another.
Their attempt to push Silverlight cross browser was both brave and slightly desperate. Quashed quickly by Google and Apple under the guise of security and legal.
My thought is - in a world where Avalonia and Neosis are production ready for LOB. What can Apple and Google do to squish them out of existence and why are Microsoft not simply working with these guys to get a win?
Microsoft if you keep head in sand and don't sort this the OS will end up in the cloud and so will all the new apps. Why do we need Windows at this point? You make Avalonia in house and offer better performance than web, plus maybe use it to build the windows store for other platforms - you get a lot of your previous control back.
I'd probably try employ many people from this forum to inject the nessercary passion into the project.
Luckily the company I work for still sells both Silverlight and WPF apps with great success. It would put us in a awesome winning position to port to a production Avalonia or equivalent.
Luke McDougald commented
Would really like to see dotnet-core static compilation support generating .wasm as a target in order to complete this goal.