Java or .Net Platfom

Java or .Net Platfom

We are just starting with Outsystems and have to decide whether to go for Java or .Net. We are primarily a Java company. Windows and .Net are not as widely spread. Our Java community is about 10x bigger than the .Net community.

So in theory I would say the Java version, but it has a smaller amount of available components in the Forge library. 

In general how often does one have to make extra components?

Imho, especially since you are Java go for Java.

In general I would say you rarely have to make extra components, why?

The components in the forge are basically 2 types:
- UX, which means jquery or other fancy stuff. doesn't matter if it's java or .NET (imho 75% of the components)
- Other stuff, integrations to exotic databases, special webservices, file handling etc.
well, those are actually pretty easy components so, if they are not available, it's pretty easy to make them yourself.

so, unless you have to create connections with, Btrieve, Dbase or some other vague obsolete antic sources, you will have to have the knowledge to create the extension anyways, so it's wise to take advantage of the already existing knowledge in the company.

HOWEVER, it's also a pitfall as well. Since people are handy in Java, they tend to make extensions quicker, because Outsystems is an unknown factor and people like to stay in their comfort-zone.
It's a common trap I have encountered too many times.

This is a  great answer!

Thank you for that. We use Oracle databases with a lot of packages, views and functions. Any thoughts on that? I have seen forge components in .Net but not in Java. Or can you use those also with  the default connectors?

Views yes
Functions and packages depends, you will have to create a component for that.
(since outsystems (and me ;) ) prefer the logic in outsystems itself)

you can use them inside advanced queries with some custom stuff.
If it's a simple, execute procedure-X

The forge-component you are talking about is consisting of a couple of wrappers that will be able to call all procedures and functions from outsystems by providing the structures in outsystems.
this should be a one-time creation in java so you don't have to worry about that anymore.(*)

(*)always take not that you are "obviously" not able to pass objecttypes/rowtypes or other specific types from Oracle to Outsystems, because Outsystems doesn't support them.
if you have those, you also have to create some custom stuff (question is ofcourse, why return rowtype anyways, since it's not really handy to be used in an api-way of talking between systems)

Last note, there are,  sadly enough, differences between the java and .net stack for outsystems itself, so you also should check that out as well.

and another note I forgot.. The components rarely consists of more than 2 classes and not even rocket-science code :)