Over the past few months my team at OutSystems has been focused on giving the best possible experience to newcomer developers, with minimal amount of training required. To do this, we keep a constant stream of feedback coming our way: from real world observation and usability tests, to the opinions of OutSystems community members, such as yourself.
For the upcoming release of OutSystems Platform (22.214.171.124) we took a few more steps in this direction.
We’ve made it simpler to leverage the natural and standard way of creating databases by allowing you to visually model your data. This means you can now add, edit, and connect entities without ever leaving the entity diagram. All of this while having instant feedback on the database relationships as you change them.
Our previous entity diagram was built using Windows Presentation Foundation (or WPF), a 9-year-old desktop technology that made it challenging to deliver polished visuals and animations swiftly. We have now rebuilt the whole thing from scratch using standard technologies like HTML and angular.js, which will enable us to keep innovating and bringing new functionality with much less effort. We also took the opportunity to revamp the look and feel of entities, relationships and comments.
We also looked at the path users take from entering the development environment until publishing their first page. We searched for hidden patterns and difficult interactions, especially for first time users. With those findings, we streamlined some of the action that weren’t that obvious or efficient.
In this new release, you will be able to generate List and Edit Screens directly from the Entity Diagram. This brings forth some of our hidden drag&drop scaffolding patterns into the context where data is modeled. It also allows a more natural leap from data modeling to interface building.
We also built it the other way around. Now you can add a list or detail screen to your Web Flow and bind it to the desired entity. This also means that you will be able to generate an Edit Screen without having to build a List Screen first.
For more information check out Creating Your First CRUD App.
You will be able to model your data in less time, with fewer clicks and while having instant visual feedback on the relationships between your entities. You will also change context fewer times, as the platform is better fit to deliver the results you expect where you need them.
Finally, making the platform easier for new users means less time to make a new member of your team fully productive, as well as a bigger community, which in turn results in more open source projects and richer discussions.
As always, we are here to grow with you, so keep that feedback coming our way.
Software Engineer at OutSystems R&D
My core project, required to work with external tools, I could have solved this problem by creating view tables and then spend a lot of time forever maintaining them but why add technical debt?
Just use something you already know! and something already solves the problem! In my case it made more sense to use 3rd party data modelling tool because it is currently more powerful than outsystems built in data modeller, I was more productive using a 3rd party data modeller for this project (I am saying this project, not every project is considered equal) - I could do what I wanted to do and get the results I needed, that is all it's about at the end.
How I think about solving problems? When attempting to solve a problem, I start with the customer first, and I use technology and tools to build products that solve the customers problems and I consider all factors and shakeholders involved.
Example of how I choose a technology
I love c#, but If I was to build an embedded system, I might consider alternative options since c# requires extra overhead to run the .NET framework, and extra overhead requires more powerful hardware, in turn this increases the cost of production, increasing cost of hardware production might not become a viable business venture any more, in engineering all factors, and shakeholders needs to be considered into project scope.
If cost and performance is a key factor for a viable and sustainable business, I would choose C programming language over c# in this case. I have came across micro controllers hardware that had only 128k of memory, where every character including spacing in your code would take up memory! you can't flush your code into ROM sometimes because your code was not optmised. There has been cases where I had to write assembly language for hardware optimisation as well, sometimes you just have to do it! because you are restricted by the hardware itself.
If I had to build a cross platform desktop application that runs on windows, and mac, I could use c# with xamarin/mono, and not make the project dependant on a extra framework. I love c# however a better choice would be to use Java for this cross-platform desktop app.
I treat all technologies as a tool, tools that I can use to solve everyday problems.
I wouldn’t use a sledgehammer to put a straight nail through a plank of wood, when a claw hammer is more suitable for the job!
I came from an engineering background my views and the way I think about solving a problem might be very different from how others think about solving problems! I will always consider all key factors and shakeholders involved, for me its never about the technology, its about using the right tool to get the job done (efficiently and in the most cost effective way as possible!).
If you are not a hacker yourself and never sat down to talk to a hacker and all you do is just ignore them, you will never understand them and they ill never love what you do.
It took 15 years to sign up 600 customers, something is very wrong here!
Outsystems can fix all of this and make the world love outsystems, it will sell like hot cakes but if only outsystems listen to a hacker.
Every idea I proposed to outsystems was heavily rejected, but many years later outsystems did exactly what I asked them to do and it worked out! from Outsystems enterprise cloud and free personal cloud these are just two of many proposed ideas at one meeting. I was never credited for this! but I don’t really care about that, its not about me anyways! it's about you the community the ecosystem the guys that actually use the outsystems product! And I just want to make outsystems product superior and more mainstream - I care about outsystems product, its future and what happens to this company!.
But do not listen to me, I’m just a hacker! I am no one - I know nothing anyways! (I'm only the primary user that use outsystems product)