Olá a todos

 Quando lidamos com o desenvolvimento de projetos utilizando .Net Framework, alguns termos são amplamente utilizados em documentações, comentários de códigos e até em conversas informais. Se você é um líder de equipe ou um desenvolvedor sênior ou simplesmente um novato é importante saber o significado destes termos para que o processo de comunicação seja algo fluente e acessível para todos os profissionais envolvidos na equipe de projeto.

Application:  Refere-se a um assembly que tem um ponto de entrada. Quando um aplicativo é executado, um novo Application Domain é criado. Várias instâncias diferentes de uma aplicação pode existir na mesma máquina, ao mesmo tempo, e cada uma tem o seu Application Domaino próprio.

Application Domain:  Uma entidade que permite o isolamento de aplicativos, agindo como um Container para o estado do aplicativo. Um Application Dommain atua como um Container para os tipos definidos na aplicação e as bibliotecas de classe que ele usa. Tipos carregados em um Application Dommain são distintos do mesmo tipo carregado em outro Application Dommain e instâncias de objetos não são diretamente compartilhadas entre Application Dommain. Por exemplo, cada Application Dommain tem sua própria cópia das variáveis estáticas para estes tipos, e um construtor estático para um tipo é executada no máximo uma vez por domínio de aplicativo.

Assembly: Refere-se a um ou mais arquivos de saída resultantes da compilação de um programa. Um assembly é um conjunto de módulos de código configurado carregáveis e outros recursos que, juntos, implementam uma funcionalidade. Um assembly pode conter tipos, o código executável usado para implementar esses tipos, e referências a outros assembly. A representação física de um assembly não é definido por esta especificação. Essencialmente, um assembly é a saída do compilador.

Namespace: Um sistema de organização lógica que oferece um caminho para a apresentação de elementos de um programa que serão expostos a outros programas.

Programs: Refere-se a um ou mais arquivos de origem que são apresentados para o compilador. Essencialmente, um programa é a entrada para o compilador.

Programs, assemblies, applications and class libraries: Esta definição de programa difere de uso comum. Em C #, um programa é apenas a entrada para o compilador. A saída do compilador é um conjunto, que pode ser um aplicativo ou uma biblioteca de classes.

Por hora paramos por aqui. Existem outros termos que iremos abordar em um outro artigo.

Obrigado e até a próxima.