1. David Peace (Powersoft)
  2. SnapDevelop
  3. Friday, 27 May 2022 16:16 PM UTC

Hi Everyone

It's late frinday afternoon and I have spent the day musing an idea:

Can I use the Snap Develop C# migration tools to rapidly migrate a PB application to Web using Blazor Server and .Net Datastore for the data access layer?

Obviously the answer is Yes for the data access layer and probably yes to use the .Net datastore in the Blazor C# @Code sections.

Then perhaps I could also use the C# Models with validation code to drive the Blazor validations.

Finally can I develop a program to Parse the Windows & Datawindows to generate the @page data for the Blazor code and probably the data managemnt from the DW models too. I this this is possible, we have tested the idea of scafolding code from PB UI with Angular and TypeScript and that worked for simple screens and tab interface screens too. I'm thinking that using Blazor will be much easier as the @Code section for servier side C# is in the same file and does not require generating numerious files and keeping track of them all.

So what do people think about my crazy idea and do you think Blazor has a future.... after all Microsift changes with the wind! I'd be interested in Appeon's oppinion about this being a possible roadmap to get to Web from PB, using all the great tools to preserve the business logic and is it something they would consider?

Cheers

David

Alexander Strelkov Accepted Answer Pending Moderation
  1. Thursday, 2 June 2022 12:03 PM UTC
  2. SnapDevelop
  3. # 1

Hi David,

May be this help you. MIT license.

 

 

 

Comment
  1. Andreas Mykonios
  2. Thursday, 2 June 2022 12:42 PM UTC
This is interesting.
  1. Helpful
  1. Miguel Leeuwe
  2. Friday, 3 June 2022 12:04 PM UTC
Looks very promising. Is there any link to powerbuilder datawindows, or is this completely something else?
  1. Helpful
  1. Alexander Strelkov
  2. Monday, 6 June 2022 06:23 AM UTC
Miguel,

This is a "completely something else". No powerbuilder at all, pure JavaScript.
  1. Helpful
There are no comments made yet.
Marco Meoni Accepted Answer Pending Moderation
  1. Saturday, 28 May 2022 08:23 AM UTC
  2. SnapDevelop
  3. # 2

Hi David,

I went through that exercise of building cross-platform UI for Snap-built API two years ago in my Elevate video.

At that time I motivated my choices with a number of market and programming reasons that imho are still solid.

Im taking this to the next step, in fact I am working at a Vue.js library that quickly scaffolds common tabular, master/detail, crosstab DWs hiding the underlying auth and data provider Vue.js code.

More maybe during Elevate 2022.

Best,

.m

Comment
  1. Arnd Schmidt
  2. Sunday, 29 May 2022 14:38 PM UTC
Always good to remember: The HTML5 Datawindow announcement (2011) .. SAP/Appeon gave up on this one.

https://www.brucearmstrong.org/2011/09/friday-morning-sessions-at-pbtechwave.html

I do not know why :-( The legal HTML Datawindow was not so bad, but they missed to make the Javascript stuff open source and to communicate that technology.

Sure with old browser technology and the PowerBuilder Community widely ignoring this chance ( 1 1/2 decade ago) it was hard to believe that this (HTML / CSS / Javascript) might become the future.

  1. Helpful
  1. Marco Meoni
  2. Sunday, 29 May 2022 16:26 PM UTC
Future is hardly predictable, especially in terms of frontend.

I don't know whether HTML, CSS and JS aren't going anywhere or not. I only know they are by far the leading frameworks today.

And to me, that is enough to use them in projects where UI and zero-plugin is strategic.



Any smart support that will be included to that extent in Snapdevelop is welcome.

I don't mean a mere syntax editor, but rather component generator from DW definition, likewise C# models for REST API.
  1. Helpful 2
  1. David Peace (Powersoft)
  2. Tuesday, 31 May 2022 10:44 AM UTC
I remember your Elevate presentation. We are looking at ways to scaffold the UI layer too. We have developed an app to parse Windows, DataWindows and VisualObjects to generate UI HTML and TypeScript as a proof of concept for a customer. It works but the target of Angular is not really appealing to us.



Looking at Blazor and that code structure I think it woud be a cleaner process to scaffold that code, but I always worry with MS removing tech just after you get used to using it! We'll probably end up changing the app to be configurable as to what output you require. Then we can quickly adapt to the customer requirements too. Most people we are talking to have chosen a different framework and are certainly not using JavaScript. It's this lack of consistancy that it worrying me.



It's always good to float these discussions.



Cheers

David
  1. Helpful
There are no comments made yet.
Armeen Mazda @Appeon Accepted Answer Pending Moderation
  1. Friday, 27 May 2022 16:30 PM UTC
  2. SnapDevelop
  3. # 3

Hi David,

There is no automatic migration of the UI and related logic.  You can only salvage the non-visual layer of your PB app, and that's not 100%.  So there is time savings compared to a complete rewrite from scratch, but it's far from quick and easy.

Now in terms of UI technology, Microsoft is constantly changing as you pointed out.  It's very hard to forecast the future, but the UI technologies we are prioritizing for SnapDevelop are Vue.js and React.  For server-side we are sticking to our initial direction of C#/.NET Core, which we also use for our other cloud products such as PowerServer.

Best regards,
Armeen

Comment
  1. David Peace (Powersoft)
  2. Tuesday, 31 May 2022 10:35 AM UTC
We did a proof of concept for a customer earlier this year where we developed an app that parsed the Window, DataWindow & Visual Object code to scaffold HTML and Angular code. We achieved near 80% conversion on simple data maintenance windows and around 50% for complex tabbed UI windows. The idea being that we can use the SnapDevelop tools to migrate the data access layer and even most of the PowerScript business logic to C# then generate the UI in HTML and TypeScript. Given that the customers PB application is over 400 windows the saving in time and cost was enormous.



I'm toying with the idea of extending this code to produce Blazor code but am torn because we can use the C# migration tools to move the business logic to the @Code element of the page and reinventing the wheel seems such a waste.



It's really great to have options and I thank Appeon for that! To quote my QA manager "it's almost nearly very good!", we just need to join some of the loose ends.



Cheers

David
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.