App vs. .NET Applications App & .NET apps

In the traditional world an application refers to a set of code written in a programming language like Python or C#. You as a user would then put this app to some practical use.

What is a app?

In our world, an app is conceptually the same as an app in the traditional world – i.e. software program which interacts with the database and allows you to carry out a business function.

However, from a functional perspective, an app in is a group of tabs in the top navigation menu in your page. Each of these tabs maps to a specific object you have created. These tabs can also map to external websites or other elements like custom pages in (created using HTML like syntax called VisualForce).

So is an app just a set of tabs?

Yes & no. Functionally yes – an app is a set of tabs. However behind the scenes the keeps track of all dependencies in your app. If you use the packaging tool to package the app – either to migrate it to another Org, or sell it on AppExchange – will automatically identify all the objects, menu-tabs and code which are a part of your app. In a metadata based architecture – all parts of your app – your code and database are aware with each other. If you modify your objects, will prevent you from making a change which will lead to run-time errors. Platform & .NET Frameworks

The automatic validation by the Platform because of its unified metadata – goes much beyond what is possible by any framework. Typically .NET frameworks like ASP.NET MVC, ASP.NET WEBAPI, SignalR, Redis provide quick-start libraries, design patterns and templates – however since the UX, programs and database do not have a unified metadata – dependency management is extremely difficult if not impossible.

Another very exciting capability of platform is zero-calorie effort needed for mobile app. The mobile app itself is generated from the unified metadata and you don’t have to worry at all about form factors for devices. So in effect when you create an app on – a hybrid mobile version of that app is automatically generated for you. You can now with Winter ’16 release of Salesforce, enhance that mobile app very quickly through new tools in the platform like the Lightning App Builder. platform not only provides a design surface for creating your app – it provides the entire infrastructure for creating test cases, provisioning sandboxes, tamper-proof auditing, user directory, monitoring tools, connectors, DR & HA – in one integrated environment.

In a nutshell

Overall, because of these and more capabilities of the platform, tools are less important in than in frameworks like .NET. The ease of use and rapidity of development in the platform comes, not only from the GUI tools – but from the integrated design of the platform.

Since you need to write so little code, traditional ways of continuous integration, version management and change management are no longer applicable – so much so that, projects are almost exclusively done using fast, sprint based agile project management methodologies. Roles have been redefined, and core developers are primarily responsible for “stringing together APIs”, while most parts of the app are created by business analysts and sys admins.