New to AgilePlatform

This is my first post in the community so I hope everyone excuses my ignorance of the rules or the protocol of behavior. Apologies in advance for the lenghthy post.

I am a veteran .NET developer on the WinForms and before that I had developed several applications on the Access platform some of which are still running till date. Missing the RAD convenience of Access in .NET is what attracted me to AgilePlatform in my search for a more efficient way of prototyping and building web-based business applications. I have invested some time in going through the HowTo's and also the videos on YouTube. I must say that indeed I am both impressed and excited about AgilePlatform. I have 3 main points that I hope the community can give me some guidance and advise about:

1-Database connectivity and ORM 
Running the HowTo's, I could not figure out how Service Studio created the SQL database and its tables from the Entities created in the studio. I went to SQL Management Studio and did not find any SQL database named as my application. 
- Is the Service Studio using a different SQL instance than the default I have installed in my development machine?
- Does AgilePlatform's ORM create a real SQL Database with Tables named and mapped to each Entity I create in the Service Studio?

2- Web UI 
In Kuwait, I need to create applications that have Arabic UI. Both Arabic and Hebrow languages are displayed and read Right-To-Left opposed to Latin based languages that are displayed and read Left-To-Right.
- Is there a way to change web-pages in Service Studio to be right-to-left same as we can do in Ms Visual Studio?
- Does Service Studio use some sort of templates to auto-magically generate these CRUD screens? if Yes, can we customize these templates so they are right-to-left?
- To build applications that support multiple localizations (Arabic and English), what is AgilePlatform's philosophy? Is it the same as Microsoft .NET depending on resource files or is it different? 

3- Reports
AgilePlatform seems to address building web-based business applications specially serving the CRUD logic.
What is the platform’s approach for reports like printing the current invoice or printing current contact’s details?
Hi Shrain,
and welcome to the Agile Platform community.


Assuming you installed the Community Edition, the installer tried to reuse the existing default instance of MSSql already present in your machine.
If for some reason if fails to do that it creates a new instance and/or database catalog. The default catalog name it creates is outsystems, and if a new instance is installed it will be called OUTSYSTEMS.
If you want you can change all the database settings you want If you want to do a custom install. In this post from Miguel you can see how to manually install a platform.
All of that was already done already on your machine by the installer (the tutorial is for users that have problems with the installer), but gives you some of the important links, requirements and installer checklist.

You can execute the Start Menu -> Programs -> OutSystems -> Administration Tools -> ConfigurationTool and check/change all the settings.

All entities are modeled as database tables.
There naming convension on the table names that include the name of the Entity. This conversion is not direct if there are nameclashing between entities of different eSpaces.


There is no "by default" setting to make it right-to-left in service studio, and the editor works but has some visual problems with the overlay positions.

If the pages are always to be displayed in rtl direction I recomend adding to your espace theme stylesheet the following rule

body, .rtl {

This will make the pages display with right-to-left in the browsers but not in Service Studio. To see how it looks in service studio, remove the "-servicestudio-direction:ltr;" line.

If that is an exception then remove the "body," part, and then in the screens or elements you want to have the right-to-left behavior either set the Style property to "rtl" or add an extended property with name "class" and value "rtl".

The templates are not currently customizable. But I think that with just css tweaking you can do the job without much page modifications :)
What I explained above is just one of the many ways to do it. But I don't have any rtl experience to know how pages should actually look like.

Also since 6.0+ with the introduction of Themes you can define your layouts in the main eSpace of your Application and it the crud will use the as baselines for the pages. So most of the work can probably be done on the common/layout pages.

(Sorry if I'm being too technical, just trying to give some keywords/ideas for you to followup)

First of all, note that expressions inside service studio do not handle arabic characters. But translations do support them fine.
To do translations you add the languages you want in Interface->Multilingual Locales, then rightclick on it and click "Edit Translations"
In that screen you can fill the translations for all the strings in your eSpace. Just don't forget to make them as Translate / Do not translate also on that screen. (Not Defined means you didn't decide it yet, but are treated as Do not translate)
You can also use the eSpace -> Import/Export menu to use excel or resX files to translate them instead of using the window (but they still need to be marked to translate!).

It's possible, but I'm probably not the best to answer that ...lets see if someone else can reply to you on that.
I've seen integrations with html2pdf, word, ...and some of them are available in the components (Forge). Just don't know myself what is the best solution.

Anyway just think like this: In terms of integrations, if it's possible in .net, then it's possible in OutSystems. Anything that you can't do within the tool you can use the Integration Studio and do a little extension with .net code for it.

João Rosado

Thank you so much João. Hands down your answer was very thorough and reflects yet another value of AgilePlatform that is making more convinced to adopt it for my team's work.
The two follow up points I wish to further discuss are:

1- Since AgilePlatform promotes the metaphor of Model first where I can build my Entities in Service Studio, can I assume the following:
- I can control the SQL Server connection string (including the Catalog/Database name)
- Any Entities I create in ServiceStudio will be created/updated in the SQL database
- I can create/update tables in the SQL database and refresh them back in the Service Studio as New/Updated Entities

2- For reports you explain that " if it's possible in .net, then it's possible in OutSystems". I and my team have grown accustomed to FastReports as our choice for .NET applications reporting. Does this mean:
- Integration Studio will allow me to somehow reference a .NET Assembly in which I have created my FastReport reports and then display these reports in WebScreens
- FatsReports has a WebViewer it uses to display its reports in .NET WebPages. Can the same be used in AgilePlatform WebScreens?
- The last question opens to the another issue of possibility of using .NET 3rd party UI controls like this report web control and many others in the ServiceStudio
Hi again!

-You can check the database options and configure them in ConfigurationTool. Just note that the platform itself uses the database for internal meta-information storage, so be carefull when switching databases around.
-In the application itself you don't get direct access to connections strings and such since all the work is done transparently for you.
-Yes, all changes you do in ServiceStudio are done to the tables in the database when you publish the eSpace.

Oh well maybe I raised your expectectations too much there.
Custom server side controls are not supported. I woudn't say that they are impossible, but never seen an integration made with them.
But you still have options with client side controls, like the sugestions made here:
Or with an iframe  to a external url containing the viewer.

João Rosado
Thank you again João. I will start experimenting with AgilePlatform to get a clearer picture after having your answers.
With regards to support for 3rd party ASP.NET controls in Service Studio and after reading the thread you provided I want to confirm with you the following.
Any “pure” client side control (usually purely javascript) can be easily used in Service Studio wrapping it in a web block. It is server side ASP.NET controls that are not straight-forward to integrate in that way and need a more manual approach using iFrames.

Thanks again for truly great support
@João: great tip about the stylesheet rule -servicestudio-direction Thanks!
@Omar: nice to see you again!

Just to let everyone know about a new post that provides guidelines and a sample app illustrating how to deal with Right-To-Left scripts (e.g. Arabic):