Fui apresentado a esse termo recentemente. Logico que ja ouvi falar em aplicacao corporativa, mas agora estou comprometido a desenvolver um sistema desses.A empresa onde estou trabalhando montou uma equipe para ter uma area pioneira em desenvolvimento de sistemas corporativos.Meu mundo caiu e estou acordando em outro, completamente diferente. O foco mudou.Antes, no meu ponto de vista, o desenvolvedor sentava com o cliente, ouvia suas necessidades e montava o programa conforme o entendimento do problema.Ainda nesse cenario, o programador nao tinha codigos prontos e nenhuma facilidade. O proprio desenvolvedor analisava as necessidades do cliente, montava a estrutura do programa e ainda codificava e testava a aplicacao.Esse cenario mudou. Hoje em dia, o desenvolvedor recebe do arquiteto a aplicacao pre-montada. Em rapidas reunioes tecnicas sobre problemas especificos, o arquiteto e o desenvolvedor alinham o entendimento geral do projeto e seguem em frente.Nesse novo cenario, o cliente nem sabe da existencia do programador. E este ainda conta com muitas facilidades, como frameworks especificos para abstrair partes complicadas de se fazer na mao. Resumindo, o programador hoje em dia tem muitos blocos de codigo prontos para utilizar em sua programacao, facilitando assim o que chamamos de "trabalho sujo" ou ainda "trabalho pesado".Um exemplo disso e o NHibernate. Este framework se propoem a montar todas as querys SQL para voce, independente do banco de dados que voce utiliza, seja ele Sql Server, Oracle, MySql etc.Isso facilita muito as coisas, pois basta mapear as tabelas do banco em um formato especifico do NHibernate e criar classes que representam as tabelas dentro da aplicacao, e o framework cuida do resto.Mas nao para por aqui. Existem ainda programas como o MyGeneration que auxiliam na criacao de codigos repetitivos. Atraves de templates programados pelo proprio desenvolvedor, ou mesmo baixados da internet, podemos criar arquivos de mapeamento e classes inteiras com apenas alguns cliques.Resumindo mais uma vez, hoje em dia basta voce ter bons templates para implementacao de codigo repetitivo, alguns frameworks para fazer o trabalho sujo e voila: voce pode se tornar um otimo programador!Veja que com essa mudanca na forma de programar, mudou tambem o foco da aplicacao. A programacao nao e mais voltada para o objeto, para o metodo ou mesmo para o evento. Agora e voltada para o aspecto da aplicacao, ou para o servico a ser prestado, para o dominio do negocio, ou ainda para os testes de sistema.Isso mesmo, o objeto nao e mais o foco do problema. Foi natural durante um tempo que a programacao orientada a objetos permanecesse como motivo de preocupacao. E realmente dificil aprender orientacao a objetos. A curva de aprendizado no inicio e muito ingreme. Leva-se muito tempo para comecar a desenvolver alguma coisa ate pegar o jeito.Mas o tempo foi passando e os desenvolvedores foram ficando habituados a esse tipo de programacao. Isso fez com que o foco mudasse, ou seja a preocupacao mudasse. Ja que nao era mais segredo desenvolver aplicacoes orientadas ao objeto, qual era a preocupacao entao?Isolar os objetos em containers. Imagine que voce tem um objeto muito valioso e delicado. Por exemplo um lenco para