Trying to get a 50,000 ft. overview on how Xojo works

Hi guys, just trying to get a handle on how Xojo works. So let me explain what I want to do and how I’m hoping Xojo can help. So basically I want to write an LOB style app that targets Windows, Mac and the browser. Of course I would love to have a single source code base to support all of this (or as close as possible to a single source code base). So here are my questions.

  1. Can I use a single source code base to support both Windows, Mac and the browser? Or is it more like you can share biz logic code but must have separate UI code?
  2. Do web apps run on the server or client-side? I’ve seen mention that xojo apps are compiled so I’m kinda confused as to how they would run client-side, the page life-cycle, etc. A brief run-down on these points would be great.
  3. Examples are always nice, can someone point me to some web-sites built with Xojo?
  4. I apologize if it is rude to bring up competition but I don’t know any other way to phrase this. But what is the advantage of using Xojo over something like Xamarin?

You can share business logic code, but UI code for Web/Desktop will need to be separate. The code will be very similar, however.

Both. They primarily run on the server, but there is a Javascript framework that runs in the browser to facilitate communication with the server and other tasks. All this uses AJAX.

There is a long converstation here:

I doubt there are many people here all that familiar with Xamarin to answer. Xojo costs less than Xamarin and is much easier to get started with. And I don’t think Xamarin can make web apps.

@Paul Lefebvre - thanks for the quick reply Paul. One more question (last one I promise), can UI code be shared across desktop apps or do they use different object models?

I wrote a blog post about this a few months ago. Obviously it’s from the perspective of a long-time Xojo user so my bias shows. :slight_smile:

We also offer over 56 hours of video training for Xojo. Of the 125+ videos nearly all of them come with an example project with source that you can use in your own projects. We have two complete start-to-finish desktop projects and one complete start-to-finish web app project.

Ask as many questions as you like!

For desktop apps, you share all code across OS platforms because desktop projects use a single project format. To create desktop app for any OS, you create a Desktop project and then simply check the OS’s you want from OS X, Windows or Linux. When you build your project, you’ll get separate executable files for each platform that you can then copy to their respective platforms.

@Paul Lefebvre - thanks again Paul - that’s definitely a point in Xojo’s favor!

@Bob Keeney - going thru your blog post now, that is exactly the kind of point-for-point comparison I was looking for! Btw, hands-down the absolute best software development company name I’ve come across in 20 years!

Xamarin in theory is an amazing product. The idea is simple, .NET everywhere.

The problem is .NET is HUGE. So in reality very little of .NET is working on mobile devices. Some generic libraries work but you have to do all the hard work of figuring it out. Plus Xamarin is just the mobile part of the equation. You have to think about ASP.NET on the web and oh by the way, Xamarin.Mac uses native Mac API’s.

What I mean by that is if you write a nice looking desktop app, you have to do it again on the Mac with their API’s. It’s all c# but essentially none of your UI code carries over. Your apps also require the .NET framework be embedded or available (not that its a major hurdle but just FYI). .NET apps are very easy to reverse engineer meaning your source code is not safe. For a LOB application used internally that is not very worrisome. That’s one reason .NET is great in the enterprise where everyones computers are roughly the same.

In the real world your customers will use a hodge podge of $10,000 Mac Pro’s and 2007 eMachines using IE9. Your time is better spent on engineering a great product/service those customers want to sign up for and use. Xojo offers a product where another group of people with more patience than I do figure out the nuances of each platform for me. I like that. Even if its not always the best tool for the job, nor well suited for the task, my first desire is always to try it in Xojo first.

While your UI will be different, you can have all four Mac, Win, Linux and Web calling the same external method within a module, thus maintaining only one code base. This is best for long and complex methods.