hello Koon MIng Fong,
To expose the data in json format we have two methods, the first created in uniBASIC from scratch long before UDOs and secondly, the use of UDOs.
We are exposing views and not tables, which means that the exposed data comes from direct dynArray (am / vm / svm) but also from indirect IType / SBexpression values. In addition, these views allow n-level nesting well beyond SVMs. We can aggregate data from multiple db files into a single json-schema.
So, in performance, we must consider on the one hand the selection into db, on the other hand the extraction and formatting of the data and finally the json serialization.
We find that the performance is impacted if the collections are very large (> 500 records ~ 50 nodes / record ~ 1kbytes / json record).
On a 'Support Ticket' application, we see, on average, per request 20 records of 50 nodes / 1k served in 200ms.
Requests on 1 record consume an average of 30ms.
We always try to stay below 500 milliseconds for a request. Then we have optimized in several ways:
- the data extractions are converted into basic which we compile,
- if necessary, the json representation of the dynArray is preconstructed (cached) in a db file on the db trigger, therefore, only the initial selection and aggregation of records in json array is to be done on demand.
- the collections are paginated by 250 records, or according to a parameter
At this stage, it is still in front of a webservice that we needed this format.
At this stage, I think that the serialization is not the heaviest but the overall processing of a request should be considered.
- selection
- extraction / transformation
- serialization
- transport
Hope these considerations help you in the decision.
------------------------------
Manu Fernandes
------------------------------
Original Message:
Sent: 07-28-2021 22:50
From: Koon MIng Fong
Subject: UniVerse & .NET 5.0
Hi Manu,
During your evaluation roughly how many AM, VM or SVM are involved ?
I am trying to avoid webservices call...the latency will be too big..
------------------------------
Koon MIng Fong
Mr
P & O GLOBAL TECHNOLOGIES SDN BHD
KUALA LUMPUR Malaysia
Original Message:
Sent: 07-28-2021 02:07
From: Manu Fernandes
Subject: UniVerse & .NET 5.0
is it slow ?
So far, I evaluate it really quick.
I do not know the design of your app.
If you do it into uniBASIC you need to work node by node but you can target a businees transaction and/or specific json-schema.
Maybe the MVIS can be a solution to expose your db via webservice, MVIS works via a map definition (dicts from/to nodes) but you are limited to the 'record' level AM,VM,SVM.
Have a nice day
------------------------------
Manu Fernandes
Original Message:
Sent: 07-28-2021 01:41
From: Koon MIng Fong
Subject: UniVerse & .NET 5.0
Hi Manu,
Will this udoObject be slow?
Cause I plan to convert the whole record when reading out (and also in)..maybe will have few hundreds attributes...(and many more multivalues)
------------------------------
Koon MIng Fong
Mr
P & O GLOBAL TECHNOLOGIES SDN BHD
KUALA LUMPUR Malaysia
Original Message:
Sent: 07-28-2021 01:29
From: Manu Fernandes
Subject: UniVerse & .NET 5.0
Hello
Yes, we exchange and convert from/to json but we do it into UNIBASIC subr with udoObject/functions.
Really useful.
Have a look at the uniBASIC extensions chapter 10 (udoRead, udoWrite, etc...).
Regards
------------------------------
Manu Fernandes
Original Message:
Sent: 07-27-2021 23:09
From: Koon MIng Fong
Subject: UniVerse & .NET 5.0
Hello Manu,
Ok thanks for the info..
So they are targeting the 4th quarter of 2021..
To my 2nd Question.
Do you guys convert dynArray to JSON ? This is important..(I guess) cause most front end technology (JS) is using JSON now....
Thank you again.
------------------------------
Koon MIng Fong
Mr
P & O GLOBAL TECHNOLOGIES SDN BHD
KUALA LUMPUR Malaysia
Original Message:
Sent: 07-22-2021 08:51
From: Manu Fernandes
Subject: UniVerse & .NET 5.0
Hello
Please have a look at these thread.
https://community.rocketsoftware.com/forums/forum-home/digestviewer/view-question?ContributedContentKey=a9e117bc-35a8-4c02-8726-6448c77a13d0&CommunityKey=dd45d00d-59db-4884-b3eb-2b0647af231b&tab=digestviewer
Rocket U2 | UniVerse & UniDataRocketsoftware | remove preview |
|
------------------------------
Manu Fernandes
Original Message:
Sent: 07-22-2021 08:15
From: Koon MIng Fong
Subject: UniVerse & .NET 5.0
Hi Manu,
I have tested the U2 Toolkit on .NET core 3.1, the connectivity works, but unfortunately the DynArray is not working. I understand from Rocket support that it only supports .NET framework 4.X.
------------------------------
Koon MIng Fong
Mr
P & O GLOBAL TECHNOLOGIES SDN BHD
KUALA LUMPUR Malaysia
Original Message:
Sent: 07-21-2021 07:51
From: Manu Fernandes
Subject: UniVerse & .NET 5.0
Hi Koon MIng Fong
I suggest you looks to Rocket U2 Toolkit for .NETRocket Software | remove preview |
| Rocket U2 Toolkit for .NET | Speed development efforts Rocket U2 Toolkit for .NET Developer speeds development efforts. Use Microsoft Visual Studio to build applications and take advantage of the Microsoft .NET Framework and CLR. U2 Connection Pools, designed for high-performance web applications, complete the solution. | View this on Rocket Software > |
|
|
Another option is the MVIS interface
Rocket MultiValue Integration ServerRocket Software | remove preview |
| Rocket MultiValue Integration Server | Leverage modern languages and frameworks to access MultiValue data and business logic with the new Rocket® MultiValue Integration Server (MVIS). Rocket MVIS is the next step on the upgrade path for Web DE and U2 REST users, and comes loaded with new features that make your job easier. | View this on Rocket Software > |
|
|
------------------------------
Manu Fernandes
Original Message:
Sent: 07-20-2021 22:51
From: Koon MIng Fong
Subject: UniVerse & .NET 5.0
Some Background.
Have been developing in UV platform since VB6 and asp class
Now I would like to move on to the latest .NET 5.0 (and future)
2 Issues/Question:
1. Which client/connectivity should I use..?
2. Is there any tool/library where I can convert UniVerse Dynamic String to/from Poco (Plain old Clr Object) or JSON string ?
Thank you.
------------------------------
Koon MIng Fong
Mr
Rocket Forum Shared Account
------------------------------