Extensions offer upgrades to the parent application, extending the features and functions of the primary application to fit specific needs. You could even call them small applications built within the parent application's parameters. Due to the wide range of features and functions extensions can offer, it's fair to assume building an extension requires strong coding...