1. A computer-implemented method for allowing direct access to functionality provided by an application, the method comprises: obtaining a description for each task that is provided by an application; wherein each task relates to a unit of functionality provided by the application; creating a task manifest using the description for each task; wherein the task manifest describes the tasks provided by the application; creating an executable for each of the tasks; wherein the executable refers to code that is instantiated when the associated task entry point is invoked; reading the task manifest to obtain task information; registering the task information obtained from the task manifest into a task store; exposing an entry point for each of the tasks in response to information registered in the task store; wherein the entry point for each of the tasks launches the executable relating to the entry point for the task; and when the entry point for one of the tasks is invoked by a direct command to invoke the task that is received independent of a user interface of the application: launching the application when the application is not already running in response to a request to the invoke of the entry point; and launching the task.