Previous Section
 < Day Day Up > 
Next Section


Chapter-Wise Contents

In addition to the current overview chapter, the book’s contents are distributed across seven more chapters. Although the last four chapters are considerably longer than the first three, they were not divided into smaller chapters in order to maintain the flow of discussion. The book is divided into two parts. The first part, Linux Development Primer, constitutes Chapters 2 through 5. These chapters provide the necessary foundation for building applications on Linux and present a thorough discussion on the tools, techniques, and languages. The second part, Developing Desktop and Enterprise Applications, is intended to show the users how to build Enterprise-class desktop and client-server applications.

Chapter 2, Linux for Windows Programmers, is intended to familiarize the Windows-based developers with the Linux platform. The chapter begins with an introduction of the booting process in a personal computer and the sequence of steps that are performed while booting a typical Linux system and highlights the features noteworthy while installing a dual boot configuration. This is typically useful for developers, as most prefer to install Linux without losing their ability to boot and use the Windows operating system. Other features discussed in this chapter will focus on the prominent graphical desktops and some of the most commonly used tools, such as the file manager, administrative tools to maintain users and user groups, viewing system log files, monitoring running processes, and so on. This chapter also presents an in-depth discussion on the file systems, directory structures, and understanding and setting file permissions on the Linux system, which is very useful for novice Linux developers and users. Finally, the concepts of executable files, parent and child processes, threads and inter-process communication are covered at an introductory level. Overall, the chapter is intended to be helpful for people who would consider pursuing a Linux development career.

Chapter 3, Tools of the Trade, provides a very in-depth understanding of the two powerful text editors used in the Linux/UNIX world—the vi and Emacs editors—and the necessary pattern-matching techniques used in searching for specific text. The chapter also presents the sed stream editor and the gawk script editor. Because Linux core is designed on the concepts of UNIX, a combination of these four editors is very useful for a typical Linux user or developer, and this chapter serves as a ready reference of these editors for all such users. Even though the graphical desktops and development environments are equipped with editors having a graphical user interface (GUI), the command mode editors presented in this chapter are very widely used, as they consume the least amount of system resources compared to their graphical counterparts.

Chapter 4, Shell Scripting Explored, is intended to provide a handy reference to the powerful Linux shell scripting and focuses on the bash shell. However, some of the concepts and syntactical constructs might be useful in other scripting languages—such as Korn shell—due to the inherent similarities between them. It should be noted that scripting is inevitable in any operating system to couple the decoupled programs or entities and perform a complex service. Therefore, this chapter introduces the world of scripting concepts and syntactical elements to Linux newcomers. This chapter, together with Chapter 3, provides Linux—as well as typical UNIX users—with a ready reference for the most commonly used tools.

Chapter 5, Object Oriented Programming, is designed exclusively to discuss the object-oriented programming principles and should be very useful for new professionals pursuing a career in this field. In the current industry, most of the application development uses the object-oriented model, and there are several languages and tools that support this paradigm. This chapter primarily discusses three object-oriented languages: C++, Delphi, and Java. Although C++ is almost the standard for Linux development since its inception (even though many of the low-level programs are written in core C language), the Delphi language (Object Pascal) has been recently ported to Linux (by Borland) and is used by the Linux community when converting many of the currently existing Delphi-based Windows applications to Linux, or when developing platform-independent applications that could be run on both Windows and Linux. Java is the most recent addition to Linux and is very stable and useful for cross-platform development. The goal of this chapter is to prepare the developers to develop Enterprise-class applications discussed in the following chapters; therefore this chapter provides a thorough groundwork required for the second part of the book.

Chapter 6 is titled Desktop Application Development and presents a detailed discussion on the commercial rapid application development (RAD) tools available on Linux, Borland Kylix platform, and Sun Microsystems Java platform. The most recent version of Kylix is an IDE to develop C++ and Delphi applications that can run on Linux platform and are portable to the Windows platform. The chapter provides a very good introduction to Kylix and the associated CLX component library to the readers to build Enterprise-class desktop and database applications. Borland JBuilder™ platform is discussed for developing Java applications, along with examples for building multi-document interface applications and multi-threaded applications. This chapter, with Chapter 5, will provide the readers with complete details for building C++, Delphi, and Java-based applications.

Chapter 7, Building Distributed Java Applications, discusses the various distributed technologies supported by the Java platform, such as sockets-based applications, remote method invocation (RMI), Common Object Request Broker Architecture (CORBA)™, and Java Messaging Services (JMS)™. This chapter is very useful for developers who are building distributed systems using Java-based technologies.

Chapter 8, Web Development Using J2EE, provides a detailed discussion on the Java-based Web application development concepts such as Java Servlets, Java Server Pages, the open source Jakarta Struts package, which is an implementation of the Model View Controller (MVC) architecture, and the Enterprise JavaBeans (EJB). This chapter is very crucial for developers who want to make a quick start on these technologies.

Every effort has been made to make this book useful for a wide variety of developers and to help people in managerial positions make better decisions by identifying the strengths of the Linux operating system.



Previous Section
 < Day Day Up > 
Next Section