June 2019 Update
It’s only been a few weeks since my last check-in. Hey, I’m getting pretty good at this. 😆
What’s Up Now, Doc?
In my last update, I left you with the impression that I was working on the Super.NET serializer. This is still the case. However, I have landed on a rather meaningful discovery that I wanted to share.
Achieving the Ubiquitous (!)
For those keeping score at home, this is exactly what I had envisioned with this project.
I cannot begin to describe how elated that makes me as I no longer have to “eat the world” with the amount of code I would have to write to make this a reality. 😇
So, to me, we’re here! 🎉 We’re finally to a point where a viable solution can be made in .NET and used everywhere.
I am a firm believer that progressive web applications are the future, and Blazor caters to this quite nicely. With native store-hosted development, you are required to install ginormous SDKs and are confined to the policies and limits of the hosted store – for each platform.
With HTML5/web-based development, there is none of that. The only requirement is to install a browser, and with a modern device, that is already taken care of for you as the developer.
Blazor finally fixes this. However, there is a caveat.
Eating the Ugly
The only misgiving that remains is that Blazor’s syntax – the Razor syntax and engine – isn’t Xaml. It’s a templating engine that intermixes HTML and .NET, the results of which are documents that look Frankenstein in nature, mixing views with code and looks nothing like Xaml.
However, all things considered, I am OK with this. It is at least in a place where it is palatable. The Razor engine is powerful, and there is a lot to be said about its Razor Component model. In fact, when you add in components from a framework like Blazorise or PatternFly, the markup looks more Pascal-cased and Xaml-like.
One could even take this a step further and introduce more
ComponentBase’s, and replace the
Paragraph. At least, I am considering as a personal endeavor.
These developments sort of put me in a bind, because now, the point of a serializer is – at this point – moot and non-obvious. Recall that the serializer was meant to be able to describe POCOs that later get emitted as HTML. This is no longer necessary as Blazor templating will take care of that problem space altogether.
The major consideration is that .NET Core 3.0 and Blazor will not be released until November. That is still a lot of time to work out major issues and bugs – bugs that one would have to be working with during that time. I am inclined to continue work on the serializer during this time anyways as I would like something in my back pocket to know that I serialize any .NET object in case that I need to do so.
It also gives me time to start thinking about the first client application to build.
Speaking of which, a solid shout of respect to Juan Blanco for his overwhelmingly impressive Nethereum project. He actually has a working Blazor application that is available here and I have been exploring it. Ethereum is one of the blockchain technologies that I have been researching, along with EOS. I would like to build an application (or two 😁) on these platforms.
It’s great to see Mr. Blanco’s work and efforts established and already taking hold. Check it out and star his repo!
Having Nethereum along with Blazor is a boon, as now all major the pieces are in place to develop a client application and really start creating again.
Now that Blazor has arrived and a ubiquitous .NET solution is (finally!) upon us, I am not sure of my efforts here with Super.NET at the moment. Perhaps I will make it a generalized framework around Blazor, perhaps I might close it altogether. I still have not marketed or promoted this project and to be honest, I am sort of glad I haven’t.
All that said, I am not sure when the next update will arrive. I know it seems like I say that with every post, haha. But, if I do have something interesting to say, I will be sure to post it here. Maybe I will get into serialization and make a few posts around that.
Stay tuned. 🎉