Maturidade CLR .Net x Arquitetura com camada de prevalencia

31 views
Skip to first unread message

Kemps Almeida Vieira

unread,
Jan 26, 2010, 6:56:42 PM1/26/10
to .Net Architects
Boa noite pessoal, gostaria de criar um nova "Thread" sobre um assunto
que ultimamente tem me deixado um pouco em dúvida sobre o nível de
maturidade da plataforma .Net.
Serei simples e breve:

Cenário:
- Imaginem o seguinte cenário: O sistema precisa ter alta
disponibilidade, performance, gerenciamento de estado em memória e
lidar com algoritmos de cálculos a todo tempo. O sistema tem uma grade
de inicio e fim para funcionamento durante o dia e os clientes se
conectam à ele sob demanda.
Arquitetura:
- * Núcleo (C#), WCF, Modelagagem DDD, Windows services e MSMQ para
persistência assincrona no SQL.
- Servidores WinServer2003 (64Bits), 8 processadores, 32GB Ram
(inicial - porém expansivel para 32 processadores e mais alguns Gigas
de RAM)
Plataforma:
- VStudio 2008, C#, SQL Server 2005

A questões são?
1 - O .Net, especificamente o CLR suporta uma arquitetura como essa?
2 - Será possível definir um arquitetura em C# que surporte uma
"camada de ** prevelancia"?
3 - É possível controlar o GC para que ele não afete o gerenciamento
de estado dos objetos na memoria?
4 - Como o CLR e o Windows se comportariam num cenário multi-
processado?

* Os núcleos podem ser "levantados" em memória sob demanda.
**Prevalencia nesse caso, não siginifica ter um sistema 100% OO e sem
o banco de dados, mas sim o conceito da prevalencia para o
gerenciamento do estado em memoria dos objetos e o MSMQ para
persistencia assync no SQL Server!

Pessoal, a principio é isso, gostaria de compartilhar com voces essa
dúvida...o que posso dizer é que esse cenário existe....

[]s!

Jeferson Spencer Chaves

unread,
Jan 26, 2010, 8:37:00 PM1/26/10
to dotnetar...@googlegroups.com
Eu sei que eu posso estar falando e bobagem mas ai vai quem sabe voce verifica o CCR & DSS. Achei muito boa a ideia e eles pretendem incluir estes recursos diretamente no framework.


[]s,
Jeferson

2010/1/26 Kemps Almeida Vieira <kemps....@gmail.com>

--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br



--
------------------------------------------------------------
Jéferson Spencer Chaves

André Nobre

unread,
Jan 27, 2010, 7:13:11 AM1/27/10
to .Net Architects
Ol� Kemps,

1 - O .Net, especificamente o CLR suporta uma arquitetura como essa?

Sim. A maior limita��o seria hardware, e n�o do CLR.

2 - Ser� poss�vel definir um arquitetura em C# que surporte uma "camada de
** prevelancia"?
Sim. Claro que voc�s j� devem saber dos riscos deste tipo de abordagem, mas
pelo cen�rio provavelmente n�o h� outra sa�da.

3 - � poss�vel controlar o GC para que ele n�o afete o gerenciamento de

estado dos objetos na memoria?

Qual � sua necessidade para esta quest�o? O GC altera o estado daqueles
objetos que n�o ser�o mais utilizados, marcando-os para "descarte" posterior
ou movendo-os para uma outra gera��o. J� me adiantando: sim, � poss�vel
evitar por mais tempo o deslocamento entre as gera��es, o que poder� te
auxiliar na performance caso suas necessidades cheguem a este n�vel (o que
eu acho pouco provavel) - neste ponto o risco seria maior que o benef�cio
(talvez). Controlar qualquer ponto do GC pode ser a morte para qualquer tipo
de aplica��o, portanto seria muito interessante saber ao m�ximo seu ponto de
vista para esta quest�o.

4 - Como o CLR e o Windows se comportariam num cen�rio multi- processado?
Sim, basta voc� utilizar os recursos que permitem esta utiliza��o, como
Paralelismo
(http://www.msteched.com/online/view.aspx?tid=40858c4c-9624-4912-8b6c-f6b85db9bf7b)

Kemps,
1. Mais de um servidor? Voc�s j� pensaram na solu��o da aplica��o para este
cen�rio?


--------------------------------------------------
From: "Kemps Almeida Vieira" <kemps....@gmail.com>
Sent: Tuesday, January 26, 2010 9:56 PM
To: ".Net Architects" <dotnetar...@googlegroups.com>
Subject: [dotnetarchitects] Maturidade CLR .Net x Arquitetura com camada de
prevalencia

> Boa noite pessoal, gostaria de criar um nova "Thread" sobre um assunto

> que ultimamente tem me deixado um pouco em d�vida sobre o n�vel de


> maturidade da plataforma .Net.
> Serei simples e breve:
>

> Cen�rio:
> - Imaginem o seguinte cen�rio: O sistema precisa ter alta
> disponibilidade, performance, gerenciamento de estado em mem�ria e
> lidar com algoritmos de c�lculos a todo tempo. O sistema tem uma grade


> de inicio e fim para funcionamento durante o dia e os clientes se

> conectam � ele sob demanda.
> Arquitetura:
> - * N�cleo (C#), WCF, Modelagagem DDD, Windows services e MSMQ para
> persist�ncia assincrona no SQL.


> - Servidores WinServer2003 (64Bits), 8 processadores, 32GB Ram

> (inicial - por�m expansivel para 32 processadores e mais alguns Gigas


> de RAM)
> Plataforma:
> - VStudio 2008, C#, SQL Server 2005
>

> A quest�es s�o?


> 1 - O .Net, especificamente o CLR suporta uma arquitetura como essa?

> 2 - Ser� poss�vel definir um arquitetura em C# que surporte uma


> "camada de ** prevelancia"?

> 3 - � poss�vel controlar o GC para que ele n�o afete o gerenciamento


> de estado dos objetos na memoria?

> 4 - Como o CLR e o Windows se comportariam num cen�rio multi-
> processado?
>
> * Os n�cleos podem ser "levantados" em mem�ria sob demanda.
> **Prevalencia nesse caso, n�o siginifica ter um sistema 100% OO e sem


> o banco de dados, mas sim o conceito da prevalencia para o
> gerenciamento do estado em memoria dos objetos e o MSMQ para
> persistencia assync no SQL Server!
>

> Pessoal, a principio � isso, gostaria de compartilhar com voces essa
> d�vida...o que posso dizer � que esse cen�rio existe....
>
> []s!
>
> --
> Voc� recebeu esta mensagem porque faz parte do grupo .Net Architects

> hospedado no Google Groups.
> Para postar envie uma mensagem para dotnetar...@googlegroups.com
> Para sair do grupo envie uma mensagem para
> dotnetarchitec...@googlegroups.com

> Para mais op��es visite o grupo em
> http://groups.google.com/group/dotnetarchitects?hl=pt-br

Kemps Almeida Vieira

unread,
Jan 27, 2010, 9:01:00 AM1/27/10
to .Net Architects
Fala Andre,

Com relação ao GC, o meu ponto de vista seria, o sistema precisa estar
no "ar" durante a grade inicio e fim. Ao longo desse período,
provavelmente o sistema irá no banco uma única vez, no inicio da grade
pra obter os dados, e traz para a memória todos os objetos e
referências, gerencia essas referencias e faz as persistência assync
no SQ, ao longo do dia.
Uma vez feito isso, o sistema irá trabalhar nessa camada de
prevalencia controlando o estado dos objetos, porém, todavia, contudo
o GC por algum motivo marca alguma referência ao longo do dia para ser
descartada e num instante seguinte o sistema tenta obter a mesma
referência e recebe um NullReferenceException....
Suponhamos que isso aconteça esporadicamente, mas como controlar esse
cenário?

Qdo vc diz paralelismo, vc quer dizer o .net 4 ou o .Net parallel? Uma
vez que já se tem um ambiente paralelo de 8 processadores, mas o SW é
feito em .net 3.5 e não possue recursos de programação paralela!
O .net 4 nem foi lançado ainda, mas milhões de dolares já foram gastos
com SW e HW...e no olhos dos executivos é isso que importa, qual o meu
custo e qual o meu ROI?....

O fato é o seguinte, um cenário semelhante a este e uma arquitetura tb
semelhante a esta foram postas em "cheque". Um sistema projetado e
arquitetado junto com a MS está indo por agua abaixo devido à
problemas que o proprio time da MS e do .net framework não conseguiram
resolver. Um deles é esta questão do CG e outro é a questão de que o
aumento de HW o sistema ficou pior e mais lento. Tudo foi projeto e
arquitetado conforme as melhores práticas e o pior, com os próprios
arquitetos da MS.

Onde está o problema? O nível de maturidade nesse caso é do SW ou do
ser humano que estuda a tecnologia e projeta sistemas, sejam eles, um
simples CRUD ou um sistema de missão critica?

Até qdo iremos ficar ansiosos com as evoluções do .net? Agora em Abril
de 2010 o VS e o .net 4 serão lançados, provavelmente esse sistema que
irá por agua abaixo, não se beneficiará com essas evoluções, uma vez
que ele será substituido pela plataforma rival e open source...! Como
justificar aos executivos, que os milhoes de dolares serão recuperados
com o .net 4 e o Windows Server 2008!

Pessoal, desculpem o desabafo...eu ainda acredito na plataforma .net!

[]s!

On 27 jan, 10:13, André Nobre <an...@andrenobre.com.br> wrote:
> Ol Kemps,
>
> 1 - O .Net, especificamente o CLR suporta uma arquitetura como essa?
> Sim. A maior limita o seria hardware, e n o do CLR.
>
> 2 - Ser poss vel definir um arquitetura em C# que surporte uma "camada de
> ** prevelancia"?
> Sim. Claro que voc s j devem saber dos riscos deste tipo de abordagem, mas
> pelo cen rio provavelmente n o h outra sa da.
>
> 3 - poss vel controlar o GC para que ele n o afete o gerenciamento de
> estado dos objetos na memoria?
> Qual sua necessidade para esta quest o? O GC altera o estado daqueles
> objetos que n o ser o mais utilizados, marcando-os para "descarte" posterior
> ou movendo-os para uma outra gera o. J me adiantando: sim, poss vel
> evitar por mais tempo o deslocamento entre as gera es, o que poder te
> auxiliar na performance caso suas necessidades cheguem a este n vel (o que
> eu acho pouco provavel) - neste ponto o risco seria maior que o benef cio
> (talvez). Controlar qualquer ponto do GC pode ser a morte para qualquer tipo
> de aplica o, portanto seria muito interessante saber ao m ximo seu ponto de
> vista para esta quest o.
>
> 4 - Como o CLR e o Windows se comportariam num cen rio multi- processado?
> Sim, basta voc utilizar os recursos que permitem esta utiliza o, como
> Paralelismo

> (http://www.msteched.com/online/view.aspx?tid=40858c4c-9624-4912-8b6c-...)


>
> Kemps,
> 1. Mais de um servidor? Voc s j pensaram na solu o da aplica o para este
> cen rio?
>
> --------------------------------------------------

> From: "Kemps Almeida Vieira" <kemps.vie...@gmail.com>

> >http://groups.google.com/group/dotnetarchitects?hl=pt-br- Ocultar texto das mensagens anteriores -
>
> - Mostrar texto das mensagens anteriores -

Juan Pedro A. Lopes

unread,
Jan 27, 2010, 9:14:49 AM1/27/10
to dotnetar...@googlegroups.com
O GC somente coleta objetos se nenhum item de pilha referenciar um certo objeto ou conjunto de objetos na heap, i.e. mesmo que exista uma thread em sleep, se no contexto dela existir algum registro de ativação que aponte pra um determinado objeto (com strong references), direta ou indiretamente, ele não é coletado.

Até onde eu saiba, a finalização de um item é não-determinística, mas os critérios de não-seleção de um objeto são determinísticos. Ou seja, não existe isso de um objeto "sumir" da memória, a menos que ele seja uma WeakReference.


2010/1/27 Kemps Almeida Vieira <kemps....@gmail.com>

--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.

Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br



--
Kind regards,
Juan Lopes

juanp...@gmail.com
con...@juanlopes.net
http://juanlopes.net
http://twitter.com/juanplopes

"E se o mundo não corresponde em todos os aspectos a nossos desejos, é culpa da ciência ou dos que querem impor seus desejos ao mundo?" - Carl Sagan

fabioma...@gmail.com

unread,
Jan 27, 2010, 10:19:55 AM1/27/10
to .Net Architects
Olá, boa tarde.

Tenho um cenário muito similar no setor bancário.

1 - O .Net, especificamente o CLR suporta uma arquitetura como essa?

Sim suporta. A disponbilidade não é garantida apenas com .net, é
necessário pensar em falhas de hardware. Para escalar a aplicação e
deixá-la disponível, utilizamos NLB(Network Load Balance) com 5
máquinas. Outro ponto, é definir o significado de alto desempenho para
você, ou seja, quais os requisitos de tempo de resposta em diversos
cenários, de preferência o pior, no caso de n usuários utilizando
concorrentemente. Vale uma POC para provar a arquitetura escolhida.

Com relação a estado em memória, caso quisesse usar um produto, havia
Velocity, que mudou para appFabric Caching(http://msdn.microsoft.com/
en-us/library/ee790942.aspx), que é o cache distribuido da Microsoft,
mas está em Beta. O legal destes framework é que o cache fica fora do
processo da sua aplicação e é comportalhido peloservidores do cluster,
fora que pode ser distribuído.

Outra opção, seria utilizar o mecanismo de caching do proprio Asp.net.

Terceira opção seria comprar um produto de cache. Há o NCache que é
muito bom(http://www.alachisoft.com/ncache/)

Como quarta opção, criar um cache custom, mas não sei se vale apena
devido ao tempo que será gasto, visto que há n variável relevantes na
construção de um cache corporativo.

2 - Será possível definir um arquitetura em C# que surporte uma
"camada de ** prevelancia"?

Não entendi este item.

3 - É possível controlar o GC para que ele não afete o gerenciamento
de estado dos objetos na memoria?

O GC mata objetos que não possuem nenhuma referencia. Se houver
qualquer tipo de referencia a eles, por exemplo, o objeto está em uma
lista, o gc não o afetará.

4 - Como o CLR e o Windows se comportariam num cenário multi-
processado?

http://blogs.msdn.com/pfxteam/

[]'s
Fabio Margarito

André Nobre

unread,
Jan 27, 2010, 10:56:42 AM1/27/10
to dotnetar...@googlegroups.com
Kemps,
não podemos pensar somente na "limpeza" dos objetos. Como o processo é longo é possível que a "movimentação" de uma geração para outra também não seja desejável, visto que, por exemplo, transferir objetos da Gen 1 para Gen 2 é um processo caro, imagine então se envolvermos o LOH, etc. Como o pessoal já disse, basicamente o GC considera objetos para limpeza quando não existem raízes na aplicação que cheguem neste objeto (para não entrarmos tanto em detalhe). Mas se as operações do GC são um problema, é possível aumentar o tamanho dos Heaps, configurar corretamente a utilização da memória, a associação com as threads, etc, etc.
 
O fato é o seguinte, um cenário semelhante a este e uma arquitetura tb semelhante a esta foram postas em "cheque". Um sistema projetado e arquitetado junto com a MS está indo por agua abaixo devido à problemas que o proprio time da MS e do .net framework não conseguiram resolver. Um deles é esta questão do CG e outro é a questão de que o aumento de HW o sistema ficou pior e mais lento. Tudo foi projeto e arquitetado conforme as melhores práticas e o pior, com os próprios arquitetos da MS.
 
Se este cenário já existe seria interessante que você passasse os problemas encontrados com o GC, ou qualquer outro problema. Sinceramente, pela experiência que tenho com post-mortem debugging, windbg, etc, etc, acho dificil o GC ser um problema que impeça a aplicação de ser um sucesso. O que temos que ter em mente que trabalhar com hardware 64-bit em uma aplicação de altíssima performance e com estes detalhes realmente exige atenção em alguns aspectos da memória.
 
Onde está o problema? O nível de maturidade nesse caso é do SW ou do
ser humano que estuda a tecnologia e projeta sistemas, sejam eles, um
simples CRUD ou um sistema de missão critica?
 
Encontrar soluções que se encaixem perfeitamente com a necessidade de negócio não é simples. O conjunto software + conhecimento técnico faz o sucesso, e não somente um ou outro.
Claro que não temos detalhes da sua solução ou da necessidade do cliente, mas talvez a plataforma .NET na versão utilizada não seja a melhor opção. Talvez um C++ ou até Managed C++, quem sabe?
 
Abraços.

Kemps Almeida Vieira

unread,
Jan 27, 2010, 2:32:22 PM1/27/10
to .Net Architects
Mas esse é ponto X da questão, concordo com todos os argumentos postos
aqui....não acredito que o problema seja totalmente do .net framework,
muito menos do GC, é tudo um conjunto e esse conjunto muitas vezes
depende de um nível de maturidade em todos os sentidos.
Se nao houver o minimo de equilibrio pode por o projeto por agua
abaixo, equilibrio esse que depende de Intelecto Humano + SW + HW!
Porém no mundo .net, muitas coisas não estão no nosso controle e fica
dificil explicar para um diretor de TI ou para um diretor excecutivo
que aquele SW que ele tanto sonhou e que pode alavancar a empresa,
precisa esperar mais 2 ou 3 anos (imaginem isso no final de 2007) para
que a tecnologia tenha um nível de maturidade aceitável para um
sistema com essas características de requisitos não funcionais, pois
vc terá no framework 4.0 com cache distribuido, programação paralela,
velocity, IIS 7.5 e uma nova arquitetura de servidores com o Windows
Server 2008.

Ou como vc bem disse, pode ser feito em C++ ou Managed C++, só que vc
precisar dizer para o diretor que para ter um sistema com essa
tecnologia vc precisa elevar o custo do projeto para mais alguns
milhões, pois vc precisa do intelecto humano especialista em C++ e uma
equipe com mais de 50 pessoas.

O fato é que pelo menos (das que eu tenho conhecimento) duas grandes
empresas estão migrando seus sistemas de core business para plataforma
rival open source...devido ao fato do mundo Windows e Intel não
estarem suportando tais sistemas de missão critica com grandes volumes
de transações online.

Foi por isso que lancei esse post no fórum...não estou aqui para
criticar a plataforma .net, mas sim para compartilhar das dúvidas
sobre a tecnologia com que trabalhamos...posto isso, não preciso dar
nome aos bois, o fato é que isso aconteceu e está acontecendo....

[]s!

On 27 jan, 13:56, André Nobre <an...@andrenobre.com.br> wrote:
> Kemps,
> não podemos pensar somente na "limpeza" dos objetos. Como o processo é longo é possível que a "movimentação" de uma geração para outra também não seja desejável, visto que, por exemplo, transferir objetos da Gen 1 para Gen 2 é um processo caro, imagine então se envolvermos o LOH, etc. Como o pessoal já disse, basicamente o GC considera objetos para limpeza quando não existem raízes na aplicação que cheguem neste objeto (para não entrarmos tanto em detalhe). Mas se as operações do GC são um problema, é possível aumentar o tamanho dos Heaps, configurar corretamente a utilização da memória, a associação com as threads, etc, etc.
>
> O fato é o seguinte, um cenário semelhante a este e uma arquitetura tb semelhante a esta foram postas em "cheque". Um sistema projetado e arquitetado junto com a MS está indo por agua abaixo devido à problemas que o proprio time da MS e do .net framework não conseguiram resolver. Um deles é esta questão do CG e outro é a questão de que o aumento de HW o sistema ficou pior e mais lento. Tudo foi projeto e arquitetado conforme as melhores práticas e o pior, com os próprios arquitetos da MS.
>
> Se este cenário já existe seria interessante que você passasse os problemas encontrados com o GC, ou qualquer outro problema. Sinceramente, pela experiência que tenho com post-mortem debugging, windbg, etc, etc, acho dificil o GC ser um problema que impeça a aplicação de ser um sucesso. O que temos que ter em mente que trabalhar com hardware 64-bit em uma aplicação de altíssima performance e com estes detalhes realmente exige atenção em alguns aspectos da memória.
>
> Onde está o problema? O nível de maturidade nesse caso é do SW ou do
> ser humano que estuda a tecnologia e projeta sistemas, sejam eles, um
> simples CRUD ou um sistema de missão critica?
>
> Encontrar soluções que se encaixem perfeitamente com a necessidade de negócio não é simples. O conjunto software + conhecimento técnico faz o sucesso, e não somente um ou outro.
> Claro que não temos detalhes da sua solução ou da necessidade do cliente, mas talvez a plataforma .NET na versão utilizada não seja a melhor opção. Talvez um C++ ou até Managed C++, quem sabe?
>
> Abraços.
>
> From: Juan Pedro A. Lopes
> Sent: Wednesday, January 27, 2010 12:14 PM
> To: dotnetar...@googlegroups.com
> Subject: Re: [dotnetarchitects] Re: Maturidade CLR .Net x Arquitetura com camada de prevalencia
>
> O GC somente coleta objetos se nenhum item de pilha referenciar um certo objeto ou conjunto de objetos na heap, i.e. mesmo que exista uma thread em sleep, se no contexto dela existir algum registro de ativação que aponte pra um determinado objeto (com strong references), direta ou indiretamente, ele não é coletado.
>
> Até onde eu saiba, a finalização de um item é não-determinística, mas os critérios de não-seleção de um objeto são determinísticos. Ou seja, não existe isso de um objeto "sumir" da memória, a menos que ele seja uma WeakReference.
>
> Mais detalhes em:http://msdn.microsoft.com/en-us/library/0xy59wtx.aspx
>

> 2010/1/27 Kemps Almeida Vieira <kemps.vie...@gmail.com>

>   > >http://groups.google.com/group/dotnetarchitects?hl=pt-br-Ocultar texto das mensagens anteriores -


>   >
>   > - Mostrar texto das mensagens anteriores -
>
>   --
>   Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
>   Para postar envie uma mensagem para dotnetar...@googlegroups.com
>   Para sair do grupo envie uma mensagem para

> ...
>
> mais »

Eduardo Miranda

unread,
Jan 27, 2010, 3:25:06 PM1/27/10
to dotnetar...@googlegroups.com
Kemps,
 
Não há dúvidas que um projeto deste porte exige um conjunto de conhecimento + tecnologia. No entanto, acredito que a tecnologia para atender os seus requisitos já está disponível há algum tempo. Lógico que novas tecnologias surgem diariamente que visam facilitar a implementação, elevando o nível de abstração. O que é ótimo, mas cabe ao time do projeto fazer o trade-off entre tecnologias comprovadas e conhecidas versus tecnologias mais novas e menos testadas em cenários reais.
 
Para entender melhor o seu caso, que é interessante, eu tenho algumas dúvidas.
 
Vc acredita que o mesmo projeto utilizando outra tecnologia teria outro resultado? Em que pontos isto mudaria utilizando estas tecnologias alternativas?
 
Até que ponto o .Net Framework não estar em seu controle tem te atrapalhado? Que outras tecnologias vc teria acesso/controle nestes pontos?
 
 
2010/1/27 Kemps Almeida Vieira <kemps....@gmail.com>
Mas esse é ponto X da questão, concordo com todos os argumentos postos
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br

Kemps Almeida Vieira

unread,
Jan 27, 2010, 6:26:58 PM1/27/10
to .Net Architects
Eduardo, eu não participei do projeto diretamente, o que eu conheço do
sistema são as apresentações em PPT do projeto e da
arquitetura...tenho amigos que estão trabalhando no projeto e
corrigindo os problemas que acontecem esporadicamente....maiores
detalhes eu nao tenho. O que sei é da visao geral da arquitetura e que
alguns bugs a propria MS nao conseguiu corrigir até o presente
momento.

Com relação a suas perguntas, nao sei responder se fosse escrito em
outra plataforma teria outro resultado, seja para melhor ou pior, o
fato é que o recente e atual sistema será substituido por uma outra
plataforma, que possui benchmark comprovados de alto throughput em
ambientes multi-processados e com alta disponibilidade...

Eu acredito que pelo fato do Windows e o do proprio .net nao serem
open source, isso pode limitar o desenvolvimento de sistemas de alta
performance e disponibilidade. Acredito tb que a MS está ciente desses
problemas e que talvez seja necessário mudar um pouco paradigma de
desenvolvimento de sistemas de missão critica.

[]s!

On Jan 27, 6:25 pm, Eduardo Miranda <duda...@gmail.com> wrote:
> Kemps,
>
> Não há dúvidas que um projeto deste porte exige um conjunto de
> conhecimento + tecnologia. No entanto, acredito que a tecnologia para
> atender os seus requisitos já está disponível há algum tempo. Lógico que
> novas tecnologias surgem diariamente que visam facilitar a implementação,
> elevando o nível de abstração. O que é ótimo, mas cabe ao time do projeto
> fazer o trade-off entre tecnologias comprovadas e conhecidas versus
> tecnologias mais novas e menos testadas em cenários reais.
>
> Para entender melhor o seu caso, que é interessante, eu tenho algumas
> dúvidas.
>
> Vc acredita que o mesmo projeto utilizando outra tecnologia teria outro
> resultado? Em que pontos isto mudaria utilizando estas tecnologias
> alternativas?
>
> Até que ponto o .Net Framework não estar em seu controle tem te atrapalhado?
> Que outras tecnologias vc teria acesso/controle nestes pontos?
>

> 2010/1/27 Kemps Almeida Vieira <kemps.vie...@gmail.com>

> ...
>
> read more »

Raphael Molesim

unread,
Jan 27, 2010, 8:46:27 PM1/27/10
to .Net Architects
Para mim isso cheira Scala ou Erlang com CouchDB....

Como o F# ainda não tá pronto, o Scala ou Erlang resolveria muito
processamento matemático e facilitaria o paralelismo.

Para o Banco de Dados, vc pode escala fácil com CouchDB, o que é bem
diferente com qualquer banco de dados objeto-relacional.

Eu acho que você pode muito bem forçar o C#, Windows, MSMQ e bla bla
bla...

Mas para mim faz mais sentido utilizar tecnologias que foram criadas
para resolver especificamente este tipo de problema...

> ...
>
> mais »

Laercio Simões

unread,
Jan 27, 2010, 11:18:35 PM1/27/10
to dotnetar...@googlegroups.com
Kemps, eu trabalho em sistemas semelhantes a esse. Já trabalhei com 12 processadores, nas maquinas que tinha 2 GB de RAM, mas o conceito é o mesmo.
 
Neste tipo de aplicação as arquiteturas "convencionais" de web que estamos acostumados não se aplicam totalmente, sendo necessárias algumas adaptações.
 
Uma solução interessante da Microsoft é o Microsoft HPC, http://www.microsoft.com/hpc/en/us/default.aspx onde voce pode montar um cluster e submeter os jobs e usar o MPI para a comunicação intraprocessos.
 
Com o Velocity (http://msdn.microsoft.com/en-us/magazine/dd861287.aspx) voce consegue uma boa persistencia de dados entre maquinas diferentes no cluster. Nos testes que fiz ele se comportou muito bem.
 
Se tiver pensando em apenas 1 maquina com 8 processadores em uma unica CPU, voce pode pensar nela como uma SMP (http://en.wikipedia.org/wiki/Symmetric_multiprocessing) voce não precisa fazer muita coisa com C#, basta usar as Parallel Extensions (http://msdn.microsoft.com/en-us/concurrency/default.aspx) que sua aplicação fica adapdata para usar todos os processadores. A performance não fica tão boa, mas voce tem a vantagem de ser bem facil a implementação e a Microsoft estar melhorando a cada versão a performance.
 
Em uma arquitetura NUMA (http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access) pelo que me lembre o C# não dá suporte direto, voce teria de usar algum codigo em C++ para acessa-lo com eficiencia.
 
O que tem se falado mais na comunidade de Supercomputação é o uso de GPGPU (http://en.wikipedia.org/wiki/GPGPU) usando placas graficas da NIVIDIA ou ATI. Nesse cenarios voce pode usar o CUDA (http://www.nvidia.com/object/cuda_home.html) e o OpenCL (http://ati.amd.com/technology/streamcomputing/opencl.html). CUDA tem melhor performance mas roda somente em NVIDIA, OpenCL roda em NVIDIA e AMD.
 
O Visiual Studio não tem suporte direto a estas tecnologias, tem alguns projetos na Microsoft Research que dão este suporte. Na SC09 em Portland tinha uma apresentação de um debugger para CUDA com o Visual Studio muito bom.
 
Agora respondendo diretamente as suas perguntas:
 
1 - O .Net, especificamente o CLR suporta uma arquitetura como essa?
 
O CLR é agnóstico em relação a plataforma, ele vai suportar virtualmente qualquer arquitetura, a questão é se ele vai se aproveitar da vantagem da arquitetura. Só existira vantagem se voce modificar o seu código para que ele tome proveito desse ambiente.

2 - Será possível definir um arquitetura em C# que surporte uma "camada de ** prevelancia"?
 
É possivel definir a arquitretura de Prevalencia, para obter uma boa performance voce tem que analisar bem "onde" e "quais" dados estarão armazenados nessa camada, O fato de ter memória não é o unico indicador, as vezes pode ficar mais lento o sistema pois voce cria um gargalo no acesso a sua RAM, tudo depende da sua aplicacao.
 

3 - É possível controlar o GC para que ele não afete o gerenciamento de estado dos objetos na memoria?
 
Sim é possivel controlar o GC. Normalmente eu não me preocupo com o GC e uso o comportamento padrão que funciona de forma adequada

4 - Como o CLR e o Windows se comportariam num cenário multi-processado?
 
Tanto o CLR quanto o Windows são agnósticos a arquitetura utilizada, mas nem sempre tiram proveito de algumas vantagens. Para determinados aspectos eu não usaria o CLR e criaria componentes em C++ que acessassem diretamente alguns recursos do hardware.
 
Espero ter ajudado.
 
 
Laercio H. Simões
Research
University of Sao Paulo
High Performance Consulting

Kemps Almeida Vieira

unread,
Jan 29, 2010, 12:27:08 PM1/29/10
to .Net Architects
Laercio, muito bom os links e bem interessante os assuntos abordados
neste forum!!
Eu acretido e concordo com quase todos os itens postados. Também já
trabalheis com sistema de missão critica, mas nao com essas
caracterisiticas, etc...tenho bastante experiencia com sistemas de
mensageria e contingencia, sistemas esses que também trabalham com
volumes grandes de transação online, mas tudo de forma assincrona e
contingenciada, bem mais fácil de gerencia o estados dos objetos e
dados em memória!

Com relação ao .Net e em especifico ao CLR, ele ainda está evoluindo a
cada versão novas "features" surgem com algum proposito de correção e
melhorias das versões anteriores. O windows também está evoluindo e a
propria MS já percebeu a importância da interoperabilidade entre as
plataformas, principlamente dos sistemas em .net, serem portáveis para
outras plataformas que não e somente o Windows....!

[]s!

On 28 jan, 02:18, Laercio Simões <netl...@gmail.com> wrote:
> Kemps, eu trabalho em sistemas semelhantes a esse. Já trabalhei com 12
> processadores, nas maquinas que tinha 2 GB de RAM, mas o conceito é o mesmo.
>
> Neste tipo de aplicação as arquiteturas "convencionais" de web que estamos
> acostumados não se aplicam totalmente, sendo necessárias algumas adaptações.
>

> Uma solução interessante da Microsoft é o Microsoft HPC,http://www.microsoft.com/hpc/en/us/default.aspxonde voce pode montar um

André Silva

unread,
Jan 29, 2010, 2:42:42 PM1/29/10
to dotnetar...@googlegroups.com
Apenas pra citar um DB que funciona em memória... tem o Oracle Times Ten (não usei, mas já conversei com o PM da oracle responsável pelo projeto nos USA que jurou de pé junto que funciona rs). Mas serviria para cenários como o seu. (como disse nunca usei só estou citando como referência caso ache interessante dar uma olhada - http://www.oracle.com/timesten/index.html).
 
 
Abraço
 
André Silva


 
--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br



--
André Luiz de Oliveira Silva

Laercio Simões

unread,
Jan 29, 2010, 3:39:06 PM1/29/10
to dotnetar...@googlegroups.com
Dados in-memory quase todos os grandes bancos de Dados tem esta solução, inclusive voce pode marcar que certas tabelas fiquem sempre online na memoria. O problema é quantos dados voce tem de gerenciar, por exemplo se seus dados ocupam  1GB de espaço e a sua maquina tem 16 GB de RAM, voce facilmente consegue deixar todos os dados em memória, tem várias opções.
 
Porém se voce tiver 1 TB de dados, jamais conseguirá deixar todos os dados em memória. Uma camada de prevalencia pode ser util para deixar algumas estruturas de dados in-memory, o livro The Art Ofd Concorrency http://www.amazon.com/Art-Concurrency-Monkeys-Parallel-Applications/dp/0596521537 um bom ponto de partida para pensar sobre estes problemas.
 
Att
 
 
Laercio

Eduardo Miranda

unread,
Jan 29, 2010, 6:29:53 PM1/29/10
to dotnetar...@googlegroups.com
Kemps,
 
Afirmativas tão graves precisariam de informações um pouco mais consistentes. Não estou duvidando da percepção que vc passou para nós, mas as vezes percepções são formadas por informações incompletas e meias verdades. Sendo muito sincero é muito fácil dizer que nem a MS consegue colocar o projeto para funcionar do que admitir decisões mal tomadas. Como não temos detalhes, não podemos nem discutir se a minha percepção está certa ou não :)
 
Existem sim casos comprovados e maduros de projetos com requisitos de escalabilidade e performance significativos. O caso mais óbvio é o MSN, mas alguém vai dizer "não vale porque é da MS", mas então a MS consegue fazer um projeto com requisitos absurdos funcionar :)
 
Você pode também procurar ler sobre o Greg Young e o Udi Dahan e suas experiências com soluções de alta escalabilidade. Nenhuma delas é super complexa nem exige conhecer o código-fonte do .Net framework ou do Windows.
 
 Eu acredito que pelo fato do Windows e o do proprio .net nao serem open source, isso pode limitar o desenvolvimento de sistemas de alta performance e disponibilidade
 
Eu discordo fortemente desta afirmativa, simplesmente porque não acredito que seja necessário modificar o SO ou o .Net para conseguir performance e escalabilidade. Pelo contrário, a MS há anos vem elevando o nível de abstração com que lidamos com o SO e tem feito isto com muito sucesso. Esta é a melhor solução, não abrir o código-fonte e deixar o desenvolvedor "se virar".
 
Sem saber que outras alternativas estão sendo estudadas é dificil dar uma opinião. Mas uma coisa é certa, nestes momentos é que surgem idéias geniais de pessoas que querem conhecer novidades e colocar no currículo nomes pomposos, mesmo que tenham que sacrificar um projeto para tal. Não que outras tecnologias não atendam, mas para um projeto como este é necessário conhecimento profundo, seja qual for a tecnologia.
 
Caso contrário, daqui um ano outro participante, de outro fórum, estará iniciando uma outra thread afirmando que um projeto está naufragando porque uma tal tecnologia não atende os requisitos de performance e escalabilidade.

2010/1/27 Kemps Almeida Vieira <kemps....@gmail.com>
Eduardo, eu não participei do projeto diretamente, o que eu conheço do

--

Eduardo Miranda

unread,
Jan 29, 2010, 6:33:27 PM1/29/10
to dotnetar...@googlegroups.com
Raphael,
 
Como o F# ainda não tá pronto, o Scala ou Erlang resolveria muito processamento matemático e facilitaria o paralelismo.
 
Não é apenas processamento matemático. O Erlang realmente é uma plataforma excelente para alta escabilidade, não apenas por causa da linguagem e do paradigma, mas também pelos frameworks disponíveis. Porém ... Achar alguém que domine a plataforma é muito difícil, e provavelmente caríssimo. Se vc pensar na manutenção do projeto, talvez fique financeiramente inviável.

2010/1/27 Raphael Molesim <raphae...@gmail.com>

Kemps Almeida Vieira

unread,
Feb 1, 2010, 8:01:51 AM2/1/10
to .Net Architects
Eduardo,
Existem projeto e projetos. Cada um com sua característica e
requisitos (funcionais e nao funcionais). Assim como o MSN tem o seu,
os outros projetos também possuem, porém com expectativas, prazos e
custos totalmente singulares. Queiramos ou não, é muito mais fácil
para uma empresa como o MS controlar o projeto do MSN, do que qq outra
empresa controlar o seu próprio, principalmente qdo envolve muita
expectativa dos "sponsors" e "stakeholder".
O objetivo do forúm foi discutir o nível de maturidade da
platafarma .net sob o ponto de vista de projetos com essas
características e como disse anteriormente, não participei do projeto,
não era recurso do mesmo, etc...logo, não tenho detalhes das
infromações e mesmo que tivesse talvez nem poderia estar expondo,
etc...O que sei é que o projeto foi concebido através de um conceito,
no qual pessoas participaram em conjunto desde o inicio com a MCS
(Microsoft Consulting Services) e depois com o proprio time da MS. As
pessoas são passíveis de decisões, planejamento, estratégia e tudo
isso está ligada a erros e riscos, principalmente na tomada de
decisão, seja de algo simples ou complexo....Não vou entrar no nível
de maturidade das pessoas nesse caso, porque é como você mesmo disse,
é muito fácil para as pessoas se vislumbrarem com projetos desse porte
e virem com idéias genias para colocar depois no CV e se auto
afirmarem com o EGO, etc...O fato em questão é que tentei expor, até
que ponto a plataforma .net é madura o suficiente para suportar alto
nível de escalabilidade, seja ele vertical ou horizontal em projetos
de missão critíca.
Assim como outras pessoas já colocaram no fórum, e concordo, muitas
tecnologias novas irão ajudar nesses cenários, como o próprio Windows
Server 2008, o IIS 7.5, o WAS, o WCF NetTcp e NamedPipe, o Velocity, o
F#, o .net Parallel, etc...porém alguns anos atrás, essas tecnologias
nem existiam ou existiam com outros condinomes, mas ainda eram somente
tendências e pesquisas cientificas dos engenheiros.....

Com relação ao Open source, tb acho que a MS precisa cada vez mais
elevar o nível de abstração e melhorar o .net a cada nova versão,
porém é importante tb levar em consideração conceitos de "plugin" e
que muitos cenários especificos de projetos, precisam ser tratados de
forma especifica, para que os recursos da máquina, do Windows e do
próprio .net sejam exclusivos daquela aplicação, etc....Com certeza
isso elevará o nível de maturidade das pessoas e somente os gênios e
especialistas de verdade existirão!

[]s!


On 29 jan, 21:29, Eduardo Miranda <duda...@gmail.com> wrote:
> Kemps,
>

> 2010/1/27 Kemps Almeida Vieira <kemps.vie...@gmail.com>

> ...
>
> mais »- Ocultar texto das mensagens anteriores -

Alexandre Valente

unread,
Feb 1, 2010, 8:23:26 AM2/1/10
to dotnetar...@googlegroups.com
Oi Kemps,

Pode ser somente a minha impressão, mas vc parece dar a entender que na sua opinião a plataforma MS não é tão "madura/escalável" quanto outras open source.... 

Esta discussão é tão antiga quanto a própria MS. Eu ouvia, quando ainda existiam mainframes (sou velho! rsrs) que computadores pessoais não eram tão "maduros/escaláveis" quanto mainframes, logo nunca uma aplicação crítica seria feita neles...  Alguns anos depois, o mesmo papo, de que aplicações windows nunca seriam tão "maduras/escaláveis" quanto a contrapartida em RISC/Uniux... Ou mais recentemente, que só o ORACLE suporta grandes aplicações, SQL Server não... e assim por diante.... Vez por outra isto surge novamente, felizmente com cada vez menos frequencia.

Concordo com os vários comentários feitos em resposta pra vc. A plataforma MS é tão madura/escalável quanto as pessoas que estiverem sendo responsáveis por fazer o software que a usa. E acho que isto vale para qualquer plataforma, não somente .NET.

Vc coloca o pessoal da MS Consulting como semideuses.... Eles são arquitetos como nós, sujeitos a todo tipo de falhas. Minha experiência com a MS Consulting é que eles são uma mão na roda para resolver problemas específicos mas como não conhecem o negócio, na hora do projeto da aplicação, um arquiteto experiente da "casa" é normalmente uma escolha mais apropriada, no mínimo para trabalhar em conjunto. Eu já participei de projetos de grande porte desta forma com eles (usando .NET 2.0), em ambiente massivamente multi-usuário com transações longas, que gerou um excelente resultado.

Assim, também não conheço o seu projeto mas com base na minha experiência, acho que o motivo de eventuais falhas foi muito mais erro humano do que qualquer deficiência da plataforma. Como já foi citado, .NET é uma plataforma de alto nível e em situações específicas vc pode ter que acabar usando coisas como componentes em C++ (eu já participei de projetos que faziam isto muito bem) ou com outras bibliotecas/componentes/tecnologias, para atingir um determinado nível de serviço ou performance. De novo, a experiência é tudo, pois só com isto vc vai saber o que é melhor usar em que situação. Acho que em um projeto complexo, o sucesso está intimamente ligado ao conhecimento do negócio e à experiência dos arquitetos em situações similares.

Quanto à evolução, não sou um fã incondicional da MS... Mas acho que a plataforma windows e o .NET em si são fantásticos e que estamos muito bem servidos, comparando com qualquer solução open source.

abs,

Alexandre Valente
MCSE+I, MCSD, MDCBA, ITIL, CSM

 

2010/2/1 Kemps Almeida Vieira <kemps....@gmail.com>
--

Kemps Almeida Vieira

unread,
Feb 1, 2010, 10:03:51 AM2/1/10
to .Net Architects
Alexandre, em nenhum momento disse que o pessoal MS Consulting são
semideuses, muito pelo contrário, muitas vezes eles são contratados
para dizer a mesma coisa que nós arquitetos já estamos falando para os
nosso gerentes e diretores, porém a empresa ou os gerentes de TI acham
que é melhor pagar a hora do consultor para ter o carimbo da
MS....muitas vezes, o seu carimbo não é suficiente, vc arquiteto
senior e especialista em .net.

Com relação a plataforma, acredito que a cada versão do .net, ela se
torna mais madura do que a versão anterior, assim como o próprio
Windows Server...tudo é um conjunto, e esse conjunto precisa evoluir!

O objetivo do forum não foi polemizar com relação a arquitetura
Windows X RISC/Unix, muito menos SQL X Oracle!! mas sim do ponto de
vista do próprio .net em relação a arquiteturas que trabalham com uma
camada de prevalência e o seu nivel de maturidade sobre essa
arquitetura! É lógico que esse tema sempre vai nos remeter ao OS e ao
gerenciamento de memória, etc, etc....

[]s!

On 1 fev, 11:23, Alexandre Valente <alexandre.g.vale...@gmail.com>
wrote:

> 2010/2/1 Kemps Almeida Vieira <kemps.vie...@gmail.com>

Eduardo Miranda

unread,
Feb 1, 2010, 3:26:13 PM2/1/10
to dotnetar...@googlegroups.com
Kemps,
 
Há alguns anos era comum escutar que "para uma solução enterprise era necessário utilizar Java", seja lá o que quer dizer enterprise. Mas a falácia era mais ou menos a mesma, será as outras plataformas são maduras para o nível de requisitos necessários?
 
O Facebook é em PHP, o MSN em .Net, o twitter em Ruby, o MySpace também em .Net. Todos com um nível de requisitos não funcionais altíssimos, todos tem sua particularidade, todos com seus problemas, mas todos resolvendo os problemas a que se propõem a resolver.
 
Então talvez a pergunta seja até que ponto a plataforma precisa de maturidade, até que ponto o time precisa de maturidade e até que ponto a empresa precisa de maturidade. Não é apenas a plataforma, mas um misto de tudo.
 


 
--

Cássio Rogério Eskelsen

unread,
Feb 2, 2010, 6:48:56 AM2/2/10
to dotnetar...@googlegroups.com
Só um detalhe: Facebook possui um backend Java utilizando Hadoop.

Cássio Rogério Eskelsen
http://www.cassio.tel



2010/2/1 Eduardo Miranda <dud...@gmail.com>

Juan Pedro A. Lopes

unread,
Feb 2, 2010, 7:41:30 AM2/2/10
to dotnetar...@googlegroups.com
E o Twitter usa backend em Scala.




--

Eduardo Miranda

unread,
Feb 3, 2010, 5:41:58 PM2/3/10
to dotnetar...@googlegroups.com
E estes detalhes apenas reforçam o meu argumento que é possivel fazer em diversas plataformas, não é? :)

Kemps Almeida Vieira

unread,
Feb 4, 2010, 12:41:36 PM2/4/10
to .Net Architects
Sim, com certeza....mas dependendo da empresa onde se trabalha, vc
fica limitado a usar as tecnologias que são padrão da "casa",
dificilmente vc irá conseguir propor mudanças de paradigmas ou
plataformas...!!

On 3 fev, 20:41, Eduardo Miranda <duda...@gmail.com> wrote:
> E estes detalhes apenas reforçam o meu argumento que é possivel fazer em
> diversas plataformas, não é? :)
>
> Em 2 de fevereiro de 2010 10:41, Juan Pedro A. Lopes

> <zerova...@gmail.com>escreveu:


>
>
>
> > E o Twitter usa backend em Scala.
>
> >http://www.artima.com/scalazine/articles/twitter_on_scala.html
>

> >  2010/2/2 Cássio Rogério Eskelsen <eskel...@gmail.com>


>
> > Só um detalhe: Facebook possui um backend Java utilizando Hadoop.
>
> >> Cássio Rogério Eskelsen
> >>http://www.cassio.tel
>

> >> 2010/2/1 Eduardo Miranda <duda...@gmail.com>


>
> >>  Kemps,
>
> >>> Há alguns anos era comum escutar que "para uma solução enterprise era
> >>> necessário utilizar Java", seja lá o que quer dizer enterprise. Mas a
> >>> falácia era mais ou menos a mesma, será as outras plataformas são maduras
> >>> para o nível de requisitos necessários?
>
> >>> O Facebook é em PHP, o MSN em .Net, o twitter em Ruby, o MySpace também
> >>> em .Net. Todos com um nível de requisitos não funcionais altíssimos, todos
> >>> tem sua particularidade, todos com seus problemas, mas todos resolvendo os
> >>> problemas a que se propõem a resolver.
>
> >>> Então talvez a pergunta seja até que ponto a plataforma precisa de
> >>> maturidade, até que ponto o time precisa de maturidade e até que ponto a
> >>> empresa precisa de maturidade. Não é apenas a plataforma, mas um misto de
> >>> tudo.
>
> >>> Em 1 de fevereiro de 2010 11:01, Kemps Almeida Vieira <

> >>> kemps.vie...@gmail.com> escreveu:

Laercio Simões

unread,
Feb 4, 2010, 1:47:01 PM2/4/10
to dotnetar...@googlegroups.com
Como empresário eu penso muito na questão de manutenabilidade, pois usar uma tecnologia / linguagem diferente do que a maioria das empresas estão utilizando pode te dar uma vantagem competitiva ou como ocorre na maioria das vezes te arrumar uma grande dor de cabeça para conseguir manter o projeto.
 
Recenetemente estava conversando com um amigo que desenvolveu o projeto de uma start-up com python e ruby, usou diversos conceitos inovadores no seu projeto e ele avançou muito rapidamente e conseguiu um bom aporte financeiro p/ o projeto. Ocorre que agora que o projeto avançou e ele precisa de muitos profissionais trabalhando com o seu código ele está desesperado pois não encontra mão de obra qualificada no mercado e está muito dificil treinar os profissionais que foram contratados... ele esta num dilema e pensando seriamente em converter tudo p/ Java e dar alguns passos p/ trás p/ poder administrar a equipe mais tranquilamente. Hoje ele ve que o tempo que ganhou com python está perdendo agora e se tivesse começado com Java desde o começo o projeto estaria muito mais adiantado hoje.
 
Enfim quando se fala de um projeto grande e complexo eu usaria algumas destas novas linguagens apenas se fosse extremamente necessário, penso hoje em lingagens fucionais como F#, por permitir modelar melhor alguns problemas matematicos, mas só essa por enquanto.
 
Att
 
Laercio H. Simoes
HPC - High Performance Consulting

--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br



--

Eduardo Miranda

unread,
Feb 4, 2010, 3:52:50 PM2/4/10
to dotnetar...@googlegroups.com
Laercio,
 
Vc está totalmente certo, sempre aparece alguém sugerindo usar aquela tecologia maravilhosa, que mais ninguém conhece.
 
Mas o seu amigo está com um problema bom, pois o negócio dele deu certo :)
 
Eu tenho causo até engraçado, nada a ver com a nossa realidade. Conheci um cara que tinha bastante dinheiro, uma enorme biblioteca e várias secretárias e um faz tudo de informática. Ele queria um sistema para controlar os livros dele, ao invés de ir na banca procurar, pediu para o micreiro faz tudo.
 
Hoje acho que ele é o único sujeito que tem um sistema de biblioteca escrito em MUNPS!! Nem é do meu tempo, mas parece que já foi uma linguagem considerarda avançada e cheia de novidades :)

Reply all
Reply to author
Forward
0 new messages