The emergence of wireless and mobile networks has made possible the introduction of electronic commerce to a new application and research subject: mobile commerce. Understanding or constructing a mobile or an electronic commerce system is an arduous task because the system involves a wide variety of disciplines and technologies and the technologies are constantly changing. To facilitate understanding and constructing such a system, this article divides the system into six components: (i) applications, (ii) client computers or devices, (iii) mobile middleware, (iv) wireless networks, (v) wired networks, and (vi) host computers. Elements in these components specifi- cally related to the subject are described in detail and lists of current technologies for component construction are discussed. Another important and complicated issue related to the subject is the mobile or electronic commerce application programming. It includes two types of programming: client-side and server-side programming, which will be introduced too.