Typical examples of standard Joomla modules are the following. As we can see the function of each of the modules mentioned is quite restricted.

Main / User / Top and other menus

Latest News

Popular Articles

Polls

Login Form

Syndication Details

etc...

3rd Party Modules include

Modules for displaying AdSense code

Modules for displaying featured articles

Modules for rotating images / scrolling images etc.

Installed modules can be found in the Modules > Site Modules menu, or Installers > Modules. Configuration of modules is typically very easy, and is done by clicking on the module in Site Modules page.

Components

On the other hand, a Joomla component is typically more complex, with extensive functionality and capabilities. A component can only be displayed in the main area of a page, and can only be displayed in a single page (usually). Links to components are usually done by creating menu items as shown in the image below. Components usually have a particular page or pages for their configuration.

Standard Joomla Components

FrontPage component - this is used to display the contents in the frontpage. One can decide how many items to show in the frontpage, in how many columns, how many articles to have an intro only or not and various other options. To place a content item in the frontpage, the frontpage option must be checked on.

WebLinks - this is a component where the user can configure different link categories and add items to each category.

Banners - allows a Joomla website to create and display banners for advertising purposes

3rd Party Components

Mafia Icons - a component which is used to turn favicons into ads.

Mafia Headlines - this component is used to give google XML sitemaps for Google News and Google Search Engine Crawler.

JoomlaCloner - allows you to backup and restore your Joomla website

Image Gallery Components - various image gallery components exist for Joomla

The Joomla Extensions site lists an extensive number of free and commercial templates. There are also reviews and voting mechanisms to help you decide exactly what extensions are best for your needs. Also the Components section of this site, describes a number of extensions which we have found to be very useful.

Warning: 3rd party extension may compromise your site's security. Always make sure that your code comes from a trusted source.

Some people want to call joomla out for components not being SEF but did you know, its not joomlas fault that the person who coded the component did not use the router that makes the component sef?

Routing - Joomla! Documentation - http://docs.joomla.org/Routing
Joomla Routes and SEF - Joomla! Documentation - http://docs.joomla.org/Joomla_Routes_and_SEF

API Reference Project - Joomla! Documentation - http://docs.joomla.org/API_Reference_Project
Using the installer API to support package installation - Joomla ... - http://docs.joomla.org/Using_the_installer_API_to_support_package_installation

How to use the database classes in your script - Joomla! Documentation - http://docs.joomla.org/How_to_use_the_database_classes_in_your_script
Routing - Joomla! Documentation - http://docs.joomla.org/Routing
Joomla 1.5 API http://api.joomla.org/

You can find all the above at http://docs.joomla.org/Category:Development
Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present lots of data to the user, one often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface do not impact the data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller. It is common to split an application into separate layers: presentation (UI), domain, and data access. In MVC the presentation layer is further separated into view and controller. MVC encompasses more of the architecture of an application than is typical for a design pattern.

Read more: Model-View-Controller (MVC)

Heres a bit of information on module development.

Screen.modules.edit.15 - Joomla! Documentation - http://docs.joomla.org/Screen.modules.edit.15
Screen.modules.15 - Joomla! Documentation - http://docs.joomla.org/Screen.modules.15
See also Components VS Modules Joomla Core Parameters
Available extension parameter types and how to use them When you create an extension (component, module, plugin or template) you can implement parameters in the .XML file. With this parameters you can set options, and use them in the main file, the .PHP file. There are 20 extension parameter types available in Joomla! 1.5. You can use them easily and in this document you will find a description for all of them. You can also add your own parameters, but this will not be described in this article.

Read more: Joomla Core Parameters

Page 1 of 10