I want to hear from you

aeric

Expert
Licensed User
Longtime User
1. Do you build server apps?
2. Do you use B4J to do it?

If you answered Yes for both questions, then:

3. What do you think about my past projects for developing web server apps?
4. Which "framework" do you like?

5. What are the things you don't like?
6. What are your suggestions to improve them?
 
Last edited:

amorosik

Expert
Licensed User
1 Do you build server apps?
2 Do you use B4J to do it?
3 What do you think about my past projects for developing web server apps?
4 Which "framework" do you like?

5 What are the things you don't like?
6 What are your suggestions to improve them?

1 Yes (socket server for communication mobile terminals with central management)
2 No (c#)
3 It's a very very interesting project, but for a neophyte of these topics it's very difficult to exploit these environments
4 None

5 For me it's difficult to understand how it works
6 Documentation + example
 

aeric

Expert
Licensed User
Longtime User
3 It's a very very interesting project, but for a neophyte of these topics it's very difficult to exploit these environments
4 None

5 For me it's difficult to understand how it works
6 Documentation + example
3. I think most members develop for B4A, B4i and B4J UI/client apps. B4J server apps is not popular. The more popular choice is ABM.
4. Why?
5. Unfortunately too little discussion in public forum.
6. There are already some documentation and examples. I wish I get more motivation to produce better documentation.

I thought to start to create new videos on web server app. Now I want to think again.

2 No (c#)
Ok, I am not a fan of C#. hate it to be honest. 😄
 

Johan Hormaza

Well-Known Member
Licensed User
Longtime User
1. Do you build server apps?
Yes

2. Do you use B4J to do it?
Yes

3. What do you think about my past projects for developing web server apps?
I find them very interesting

4. Which "framework" do you like? Web API Server 2
Web API Server 2

What are the things you don't like?
Maybe the structure could be a little simpler


What are your suggestions to improve them?
The structure of jServer is very simple and powerful, with which a Web App having a good HTML template would be achieved with fewer steps.
 

aeric

Expert
Licensed User
Longtime User
Maybe the structure could be a little simpler
I tried to make project EndsMeet more simpler (v0.18 beta) in terms of routing. The element index structure is now gone.
I wish someone can totally replace my approach with a new approach such as using Regex or template.

I want to make EndsMeet more of a MVC framework instead of just for creating an API server.
Where Web API Server uses Controllers, EndsMeet can have extra Models and Views.
I also aim the framework to be more decouple or less dependencies.
Someone can use it without relying on JSON API, such as using websocket or HTMX for the front end interactivity.
I also don't want it depends on a specific templating engine, database ORM and security.
 

AHilton

Active Member
Licensed User
Longtime User
1. Do you build server apps?
2. Do you use B4J to do it?

If you answered Yes for both questions, then:

3. What do you think about my past projects for developing web server apps?
4. Which "framework" do you like?

5. What are the things you don't like?
6. What are your suggestions to improve them?

1. Yes. Many.

2. Yes. Not all of them are B4J based, but Many. Clients include: B4J, B4A, B4I and B4R, the regular assortment of "common" web-based clients, and C# so far.

3. I already had my own B4J framework well established before you started posting your projects so I look at your projects from the perspective of seeing what someone else is doing and how they're doing it. Occasionally, I'll think to just use one of your frameworks because it might be closer to what I'm wanting to achieve rather than just use my own and add functionality. However, I get frustrated with yours and just go back to my own. I pick up some interesting tidbits, sometimes, from yours but overall I just find yours, well, have a different way of doing things that I don't get behind. I can't offer anything more concrete or detailed; sorry. They just don't fit my needs or my programming.
 

amorosik

Expert
Licensed User
3. I think most members develop for B4A, B4i and B4J UI/client apps. B4J server apps is not popular. The more popular choice is ABM.
4. Why?
5. Unfortunately too little discussion in public forum.
6. There are already some documentation and examples. I wish I get more motivation to produce better documentation.

I thought to start to create new videos on web server app. Now I want to think again.


Ok, I am not a fan of C#. hate it to be honest. 😄

4- Because I don't fully understand them and therefore I can't use them

"..Ok, I am not a fan.." 🤣
 

Magma

Expert
Licensed User
Longtime User
1. Do you build server apps?
2. Do you use B4J to do it?

If you answered Yes for both questions, then:

3. What do you think about my past projects for developing web server apps?
4. Which "framework" do you like?

5. What are the things you don't like?
6. What are your suggestions to improve them?
1. Yes... but for local network use - hope in future make them more secure to use them at internet / cloud !
2. " "

3. They are the BEST !
4. Trying to use your API - but i think you need to make it simplier, I am sure that you can !

5./6. Well i hate garlic/onions where is in full of use - they are better in small portions... :) Your apps in general have the best structure (already told you) but sometimes simplicity is better than complex-apps...

I hope have the time continue some projects started and create more... but the Time pass too FAST !
Also I hope soon continue the B4X Open Source Projects...
 

aeric

Expert
Licensed User
Longtime User
4- Because I don't fully understand them and therefore I can't use them

"..Ok, I am not a fan.." 🤣
I tried my best to make it (them) as simple as possible.
I want to make it for more general use But there is always a trade-off.
I believe the newer versions I created, it has become more simpler than before in terms of the core But then I added more new features which make it more complex. 😆
 

tufanv

Expert
Licensed User
Longtime User
1. Do you build server apps?
2. Do you use B4J to do it?

If you answered Yes for both questions, then:

3. What do you think about my past projects for developing web server apps?
4. Which "framework" do you like?

5. What are the things you don't like?
6. What are your suggestions to improve them?
1) yes
2)no. there are so powerful tools for backend operations, I don't use it anymore for backend.
 

Mashiane

Expert
Licensed User
Longtime User
1. Do you build server apps?
2. Do you use B4J to do it?

If you answered Yes for both questions, then:

3. What do you think about my past projects for developing web server apps?
4. Which "framework" do you like?

5. What are the things you don't like?
6. What are your suggestions to improve them?
Phew, time, time, time. I have been promising myself to make time to look into your projects, it's been very hectic, but I will soon.

At the back of my mind I was saying I need to ask you to write an ebook. I would be willing to buy, into this whole concept of B4J Web Apps, with an approach of "Explain it like I'm 5" methodology. My mind has not wrapped itself around the concepts as yet and I want to as much as I want to learn and know. I have some ideas that I want to explore at some stage.

Let me digress a little if you don't mind. One of the things I like much about the following server approaches is simplicity when it comes to back-ends, plug and play and auto-generated REST API.

PHP-CRUD-API (with additional middleware, you add some security on top, you only specify connection paramaters and have a full functional CRUD REST API.

PocketBase (whilst it comes with an automatic CRUD REST API), you can extend it simply by adding code like this.

B4X:
routerAdd("POST", "/api/qry", (c) => {
    try {
        const data = $apis.requestInfo(c).data
        const qry = data.qry
        const tbl = data.tablename
        const collection = $app.dao().findCollectionByNameOrId(tbl)
        const records = arrayOf(new Record(collection))
        if (qry.length > 0) {            
            $app.dao().db()
                .newQuery(qry)
                .all(records)
            return c.json(200, { "data": records })
        } throw new BadRequestError("The qry has not been specified!")
    } catch (err) {
        return c.json(400, { "data": records, "error": err })
    }
}, $apis.activityLogger($app))

With this said, the superiority and security of Java based applications can never be ignored, case in point my willing ness to learn what you are providing and yet still hoping for simplicity and a smooth learning curve.

Yes, getting to a plug n play state in anything means a lot of investment in code refactoring and re-writing, ensuring that it works as expected. All the best my friend, you are doing awesome work, keep it up.
 

aeric

Expert
Licensed User
Longtime User
the superiority and security of Java based applications can never be ignored
I agree. Java has better performance compare to Python. I think it is faster than PHP and JavaScript based (node) server too.
For me, writing B4J server apps in B4X is much more simpler than using frameworks like Django and Laravel.
Bonus point is B4J is already installed on my PC and it is super lightweight.

auto-generated REST API
There is HelpHandler in Web API Server template that auto generate swagger-like page.

automatic CRUD REST API
For working on db or CRUD, I already have MiniORM library that is "plug-and-play". Alternatively, you can also choose to use SD_SQL or raw SQL.
There is Controller library to quickly generate the common sub routines (GET, POST, PUT, DELETE).

For security, I can use JWT Token, access token/API key, Basic Auth and/or sessions.
For templating engine, there are Velocity, FreeMarker, Markdown, Thymeleaf, Jinjava and (mini) Template Engine.
For interactivity, you can use jQuery/Websocket, HTMX, any JavaScript library like Vue, Angular, React, Svelte or BANano.
 

Magma

Expert
Licensed User
Longtime User
I agree. Java has better performance compare to Python. I think it is faster than PHP and JavaScript based (node) server too.
For me, writing B4J server apps in B4X is much more simpler than using frameworks like Django and Laravel.
Bonus point is B4J is already installed on my PC and it is super lightweight.


There is HelpHandler in Web API Server template that auto generate swagger-like page.


For working on db or CRUD, I already have MiniORM library that is "plug-and-play". Alternatively, you can also choose to use SD_SQL or raw SQL.
There is Controller library to quickly generate the common sub routines (GET, POST, PUT, DELETE).

For security, I can use JWT Token, access token/API key, Basic Auth and/or sessions.
For templating engine, there are Velocity, FreeMarker, Markdown, Thymeleaf, Jinjava and (mini) Template Engine.
For interactivity, you can use jQuery/Websocket, HTMX, any JavaScript library like Vue, Angular, React, Svelte or BANano.
...help handler was a little difficult to understand it...

But sure this swagger style is very helpful...


About templates you are saying... is there a way to build them with b4x code or using for example b4x designer to design them... or fast way to assign with code??
Htmx seems the better for b4x as it is something like Ajax with the help of server easy to understand...

My problem with all these frameworks is the design and the assignment because are different platforms 🙃
 
Top