This work illustrates techniques not only for designing GUI client/server applications, but also for managing complex application environments containing both legacy and new applications. Topics include coupling and dependency, and distributed application design alternatives for the enterprise.