모질라 애플리케이션 프레임워크(Mozilla Application Framework)는 모질라 응용 프로그램을 구성하는 크로스 플랫폼 소프트웨어 컴포넌트의 꾸러미이다. 네트워크를 기반으로 한 응용 프로그램 개발을 쉽게 할 수 있도록 다양한 기술이 포함되었다. Gecko라는 레이아웃 엔진과 XUL(XML User Interface Language)을 통해 GUI를 구성할 수 있으며 JavaScript와 XPCOM이라는 컴포넌트 기술을 이용해서 코딩을 할 수 있다. 그 밖에 Necko, XBL, XPConnect, XPInstall과 같은 기술을 제공하고 있다.
제공되는 기술
Gecko
성능과 이식성을 위해 설계된 표준기술 기반의 레이아웃(layout) 엔진이다. 단순히 HTML을 위한 레이아웃 엔진이 아닌 대화상자, 위젯과 같이 브라우저를 구성하는 기본 GUI까지 표시할 수 있다. 현재 다음과 같은 표준기술을 지원한다.
XPCOM은 크로스 플랫폼 컴포넌트 모델이다. 코바(CORBA)나 마이크로소프트 COM가 유사하다고 보면 된다. XPCOM은 다중언어바인딩과 IDL을 제공하여 개발자로 하여금 자신이 만든 기능을 프레임워크에 끼워 넣고 다른 컴포넌트와 연결시킬 수 있도록 한다. 이 기술은 Gecko의 모든 기능을 가상적으로 컴포넌트화하여 브라우저나 다른 모질라 애플리케이션에서 스크립트를 이용해서 접근할 수 있도록 한다. 다양한 모질라 XPCOM 라이브러리(네트워킹, 보안, DOM, 등)에 접근하려면 XPConnect라는 XPCOM의 레이어를 사용하면 된다. XPConnect를 이용하면 자바스크립트로 XPCOM 라이브러리를 이용할 수 있다. XPCOM 컴포넌트는 C,C++, Java Script로 개발할 수 있다.
XUL(XML User Interface Language)
모질라 애플리케이션 프레임워크에서 사용되는 사용자 인터페이스 기술 언어이다. XML로 작성되었으며 대화상자, 위젯, 템플릿 등 다양한 사용자 인터페이스 구성 요소를 정의할 수 있다. CSS, 자바스크립트, DTD, RDF와 같이 이미 존재하는 표준 기술을 사용하여 웹개발이나 디자인 배경을 가진 사람들이 쉽게 배울 수 있도록 하였다.
Necko
Necko는 네트워크 프로토콜과 파일 시스템 접근을 다루기 위한 추상 레이어를 제공하는 역할을 한다. 이 역시 크로스 플랫폼을 지원하기 위해 개발되었다. 개발자는 운영체제에서 제공하는 네이티브 인터페이스를 고려하지 않고 Necko에서 제공하는 API를 이용해서 네트워크나 파일에 접근할 수 있다.
XBL(XML Binding Language)
사용자는 XBL을 이용하여 XUL 위젯의 모습과 동작을 새로 정의할 수 있다.
XPInstall
XPInstall는 XPI라고 알려진 설치 아카이브 형식으로 확장기능과 테마와 같은 작은 패키지를 모질라에 설치하기 위한 기술이다.
웹서비스
모질라 애플리케이션 프레임워크에서는 XML-RPC, SOAP(그란 파라디소 알파 7부터 지원 중단[1]), WSDL와 같은 여러 다양한 웹서비스 표준을 기본 지원할 뿐만 아니라 인터넷 익스플로러와 유사한 XMLHttpRequest 개체도 지원하고 있다. 이들 표준 기술 지원을 통해 서버와의 XML 데이터 연동 기능을 지원하고 있다.
기타
그 밖에 DTD, RDF, XSLT/XPath, MathML, SVG, JavaScript, SQL, LDAP 등과 같은 표준 기술을 지원하고 있다.