#WebObjects

Johannes Brakensieklazarus@fosstodon.org
2025-04-04

It looks and works way better than LibreOffice Base (sorry) and it's real client-server architecture. Yes, it isn't #FLOSS, which would be too awesome.
It's still from Apple, you know. (They probably still regret they wrote this in #Java in their early naive childhood days, not doing peek capitalism.)

#JavaClient #WebObjects

Johannes Brakensieklazarus@fosstodon.org
2025-04-04

It's just so awesome. You lay out a database schema, import it to EOModeler, fix a few data types, set some rules (GUI! no freaking XML writing, simple syntax if you want to write) and the GUI looks exactly like you want a database app to look like.

#JavaClient #WebObjects

Johannes Brakensieklazarus@fosstodon.org
2025-03-31

In later times #Apple probably didn't want to accept they really reimplemented the whole (?, at least a lot of) Foundation in pure portable Java (this is not the Cocoa-Java bridge!). But they did. This is the removed doc: "The Foundation Framework". 378 pages.

leopard-adc.pepas.com/document

#WebObjects #Java #Foundation

Johannes Brakensieklazarus@fosstodon.org
2025-03-31

Looks like I got it running without errors from #Eclipse now. Two example frameworks, included into two example apps and clients. Server and client classes and resources both distributed correctly.
Still impressed by its beauty. Both optical as well as conceptual.

#WebObjects #D2JC #Java

Johannes Brakensieklazarus@fosstodon.org
2025-03-30

Those guys called Apple's #JavaClient their "best kept secret" in 2009. Quite understandable why.

mail-archive.com/webobjects-de

#WebObjects

Johannes Brakensieklazarus@fosstodon.org
2025-03-30

#Swing #Cocoa: It isn't suprising when you look into it. For #WebObjects #Apple not only reimplemented #Foundation in #Java (com.webobjects.foundation), they also made a #Cocoa abstraction layer that mimics layout and behaviour in #Swing (com.webobjects.eointerface.swing).

That one still works (fosstodon.org/@lazarus/1142527), while the bridge to Cocoa has been deprecated with WebObjects 5.4 (and thus is not part of its docs anymore).

Compare leopard-adc.pepas.com/document to leopard-adc.pepas.com/document.

Johannes Brakensieklazarus@fosstodon.org
2025-03-30

Probably doing #Cocoa in #Swift is nice. But it wasn't that bad in #Java either. Somehow this tech was deprecated. This client-server database app runs on any desktop operation system having a regular JVM. Crazy stuff, #Apple did, huh?

#WebObjects #D2JC

Johannes Brakensieklazarus@fosstodon.org
2025-03-28

I mean, it doesn't look as gorgeous on #elementaryOS, but still, it works.

#Java #WebObjects #D2JC

The same screen as shown above. This time taken on elementary OS, Linux instead of Mac OS X.
Johannes Brakensieklazarus@fosstodon.org
2025-03-28

Ok, it even works using JDK 17 when you add `--add-exports java.base/sun.security.action=ALL-UNNAMED` as JVM option.

#WebObjects #Java #D2JC

Johannes Brakensieklazarus@fosstodon.org
2025-03-28

It‘s just lovely how they made these #Swing apps look like #Cocoa .

#Java #WebObjects

Johannes Brakensieklazarus@fosstodon.org
2025-03-27

Think I got it running. It is aged. But aged very well. The client of this almost 30 years old example runs quite nicely, errors only point to SQL/model setup.

#WebObjects #D2JC

Screenshot showing a beautiful database view. Selected are customers, able to rent a movie. It's a Swing Java desktop application on Mac OS X 10.15.Screenshot showing a beautiful database view. It's a main/detail view for one customer showing it's current video rents (one) in the detail view. It's a Swing Java desktop application on Mac OS X 10.15.
Johannes Brakensieklazarus@fosstodon.org
2025-03-25

Think I‘ll reread that #WebObjects Desktop Application docs. They are just delicious.

Johannes Brakensieklazarus@fosstodon.org
2025-03-24

Hm, really tired of this #MSAccess, #LibreOfficeBase database application stuff. I need a quick way to create a "main/detail" GUI from a database.

There once was #WebObjects and that really nice #JavaClient stuff.

Is there anything else, existing to this day?

I know of
- #Apache #Cayenne (only ORM, no GUI generation)
- #ManyDesigns #Portofino (very close, but only web GUI. Thanks to @peter for that hint some time ago).

Do you know of anything? @helge

#Boost

A screenshot from an old Project Builder (former XCode) assistant dialogue providing templates to easily create GUI app views from database schema. Naming is quite similar from what you'd expect from Access or LibO Base, only it's beautiful.
2025-02-14

Seeing these screenshots from #DOGE on their website and reposted by MAGA folks. Many look like they have the MacOS Aqua appearance. Does TPS use... #FileMaker 6 or #WebObjects or something?

Helge Heßhelge
2025-02-06

I think for that you don’t want structural identity because the structure will eventually change.
But assigning global identity (like a DOM id) conflicts with componentization. There has to be something in the middle, a path builder that is not tied to the exact structure.

Helge Heßhelge
2025-02-06

It’s not usually an issue in SwiftUI because an app upgrade implies a restart, but I wonder whether such things leak in for stuff like state restoration

Helge Heßhelge
2025-02-06

Do you remember those links like “http://Dodge.woa/wo/2.3.2.4.1.1.1.1.2.3.4.5”? Those (usually numeric paths) are essentially a representation of the thing that is called “structural identity” in .
I.e. the button in the pic would produce a link like `.woa/wo/2.2` to represent a click on the second item in the `ForEach`.
It's problematic on the web, because links can be long-living, but the server may upgrade and have a different structure.

```swift
struct ContentView: View {
  
  var body: some View {
    Text("Hello") // id .0 (TupleView!)
    Text("World") // id .1
    ForEach([ 1, 2, 3 ]) {
      Button("Click", action: doIt) // id .2.[1...3]
    }
  }
}
```
2024-12-26

Lately I was thinking why #SwiftUI ecosystem does not have many open-source reusable extensions. (The first framework with reusable components I did contribute was MiscKit for AppKit, ca 1991). Still, the best example is #WebObjects

I think the reason is the inability to parametrise. Like configure a reusable view with external data (e.g. JSON, XML). The focus of the most reusable frameworks is on developing controllers that use an external data dynamically configure the reusable components.

Helge Heßhelge
2024-11-22

That was a fun one, I couldn't press the "Logs" tab in an installation, or "Configuration" buttons. Everything else worked. It turned out that the frontend proxy had mod_security enabled. The URL for the logs tab is the usual crazy link: "/OpenGroupware.woa/wo/00B300B30167410612/0056741063353276880.19.1.1.1.h.11.log".
This was treated by mod_security as an attempt to download a log file and made it block it, i.e. it consideres `.log` as a file extension 🙂

Screenshot of the OGo log tab

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst