Re : Integration with AngularJS

Re : Integration with AngularJS

  
Hi, 

has anyone ever attempted integration between Outsystems and AngularJS (or any other Javascript MV* frameworks)?
If so, could you share how.

I wonder if this thing is possible within reasonable efforts? and what is the downside of doing so

background: I am thinking of designing an application with much more complex user interaction than what OutSystems could possibly offer (assuming I have read all that I can do with Interface portion of outsystems). 
Hi Aditya,

It's possible to integrate OutSystems with almost any javascript/css based framework.

Personally don't know if someone has already made an integration with AngularJs. But looking at the site it looks pretty simple.

Something like (in teory):
  • Use AddJavascriptTag action from HttpRequestHandler to add the angular javascript link or include it on a block javascript. (read this topic for more context: http://www.outsystems.com/NetworkForums/ViewTopic.aspx?TopicId=7548&Topic=Integration-of-jQuery )
  • When you need to add a html custom attribute, use the "Extended Properties" of the widgets
  • When you need a class, just write it in the "style" property of the widgets
  • If you need to add any extra javascript/css (like that Todo.js example on the AngularJs homepage), add that as javacript of the page or a block that you put on the page.
That should be enough for the main uses.
Just be carefull if you use it to do things like repeaters with inputs inside. The platform won't recognize correctly the input/variable mappings since they were constructed by the javascript libraries.
In those cases it may be sometimes needed the use of the "FakeNotifyWidget" block from RichWidgets (check it's description to know how to use). It allows passing explicit values from javacript to screen actions.

Regards,
João Rosado
Hi Joao,

Thank you for the response.

I am thinking of using AngularJS's service layer (e.g. http://docs.angularjs.org/tutorial/step_11 or any other js framework xhr call) for this kind of integration.

My initial intention is to ignore Outsystems interface layer as much as possible. Is there any way for me to achieve similar objective of avoiding interface layer (via JS MV* or anything else)?

thank you
wait, what?

why on earth would you use Outsystems at all then if you are planning to skip the interface-layer?
It is one of the greatest advantages of using Outsystems!

greatest advantages and in some cases bottleneck when you want to make UI that is not so standard.

the main reason is to develop a proof of concept that Outsystems logic layer can indeed work with JV* framework without the need of working with interface layer similar to e.g. Angular-Node/Express (see link) architecture where most of the user interactions are done at the client level (where our designers / ux engineers can develop out of the box user interactions using technology they are familar with e.g. pure html,css and js) and logic/workflow are done by Outsystems (where our developer can maintain and develop easily). 

while I agree that outsystems can probably do 99% of what we want to do (assuming you tinker with it long enough), we want to see the feasibility of doing so with basic html/css/js. 

e.g. http://briantford.com/blog/angular-express.html
Hello,

Angular can be integrated with OutSystems. You can have best of both worlds. 

I am facing some issues with angular binding using Ajax update but other than it looks promising

https://pravinsable.outsystemscloud.com/AngularJSTest/ 


Thanks
Pravin

Aditya L wrote:
Hi Joao,

Thank you for the response.

I am thinking of using AngularJS's service layer (e.g. http://docs.angularjs.org/tutorial/step_11 or any other js framework xhr call) for this kind of integration.

My initial intention is to ignore Outsystems interface layer as much as possible. Is there any way for me to achieve similar objective of avoiding interface layer (via JS MV* or anything else)?

thank you
 
 

HI Pravin,


Can you please provide an exact example. I tried to look your application and it's not working.




Pravin Sable wrote:

Hello,

Angular can be integrated with OutSystems. You can have best of both worlds.

I am facing some issues with angular binding using Ajax update but other than it looks promising

https://pravinsable.outsystemscloud.com/AngularJSTest/ 


Thanks
Pravin

Aditya L wrote:
Hi Joao,

Thank you for the response.

I am thinking of using AngularJS's service layer (e.g. http://docs.angularjs.org/tutorial/step_11 or any other js framework xhr call) for this kind of integration.

My initial intention is to ignore Outsystems interface layer as much as possible. Is there any way for me to achieve similar objective of avoiding interface layer (via JS MV* or anything else)?

thank you
 
 



Unfortunately, I had lost that code when platform was updated to v10. I would advise against using angular with Outsystems. I eventually abandon the project due to binding issue. I believe v10 works better with react.js so you could it a try.

I have not seen a single post where this has been told that how to implement Angular Library, Call your app.js, call controller, file hierarchy to download third party plug-ins like routing etc. If you find anything then please post.


Thanks for quick reply

Anuj Rastogi  

I have been down this path and would like to advise against using angular with OutSystems.

Pravin Sable wrote:

I have been down this path and would like to advise against using angular with OutSystems.

Hi Praveen, I got the way of implementation. So a big thanks for your help.


Thanks

Anuj Rastogi


I have also been involved on a project that used an Angular library to build an offline solution and it has proven to not scale, the code is not maintainable, it is not being optimised for the platform and is hogging resources on the server side.

Lessons learnt:

  • Think OutSystems First
  • Avoid complex coding that cannot be widgetised and made reusable
  • Do not try and run a framework on the platform that fights against the optimisation and strengths that the platform brings to delivery and maintainability

Make an informed decision before trying to utilise the platform in a manner that would best make use of the framework that is being selected.

Any framework can be implemented on the platform but that does not mean that one should implement any framework because that is their comfort zone or it is the latest fad.

Angular and OutSystems - Comparing Approaches

Slim/AngularJS versus Outsystems, an personal experience

This talk is very biased Angular and OutSystems - Comparing Approaches

I have been using Angular on separate project and it's a great framework. So is outsystems. They just don't play together well.