The development of distributed applications is an open area involving researchers from different communities. We propose an object-oriented approach to the development of distributed applications emphasizing separation of concerns. Our approach combines the needs of transparency, encapsulation of distribution issues, and support of non-traditional models, where cooperation and sharing are needed. The development process is constructive, thus allowing partial verification of results. We recognize seven concerns: fragmentation, replication, naming, concurrency, failure, configuration, and communication. cern is perceived in three levels of abstraction: models, policies and mechanisms. Besides a development centered on separation of concerns we propose another process centered on development stages. Both, concerns and stage perspectives, are part of an integrated and flexible development process.