Mostrar mensagens com a etiqueta .Net Framework 2. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta .Net Framework 2. Mostrar todas as mensagens

sexta-feira, 28 de novembro de 2008

Cábulas de .Net (e não só)

Caros colegas, quantas vezes a nossa produtividade se resume à (rápida) acessibilidade da informação?

Várias vezes dou por mim à procura, pela centésima vigésima primeira vez, daquele help porreiro de JavaScript, ou, a dizer: “onde é que eu tenho aquele snippet para escrever o raio de um DOCTYPE de xhtml…será que está na pen ou no computador de casa…”

Isto é típico das matérias que não usamos todos os dias, mas só dia-sim, dia-não :-).

Por isso achei um espectáculo encontrar um post que faz um apanhado de várias “cheat sheets”, de várias tecnologias, a maioria, prontas a imprimir numa folha A4, ou ver no Acrobat:

http://john-sheehan.com/blog/index.php/net-cheat-sheets/

É claro que as cábulas só interessam a quem sabe mais do que aquilo que elas tiverem, resultado da elevada compressão (com perdas) da informação constante :-)

terça-feira, 4 de novembro de 2008

Fazer tijolos ou juntar tijolos, eis a questão ...

Apôs tanto tempo a dizer que iria começar a escrever no blog, aqui vai a meu 1º input.Antes de mais nada atenção que isto pode ir com algumas gralhas.Porque além de ser burro e preguiçoso, não vou andar a fazer revisão.

Bem o meu titulo é estranho! Mas se o analisarem com alguma abstracção, se calhar conseguem ver aquilo que eu escondi nele.
Actualmente os programadores debatem-se com o constante trabalho de "fazer tijolos" e perdem pouco tempo a procurar os que já estão feitos. Uma das razões é porque para alguns nunca existe o "tijolo" exactamente como eles querem, outros preguiça de procurar, outros não têm tempo, outros não gostam, etc. Existe sempre uma razão.

No meu trabalho do dia a dia, verifico que cerca de 75% do nosso tempo consiste em refazer o que já esta feito, muitas vezes mal.Mais tarde verificamos que já alguém o fez e bem melhor. Existem alguns que ao fim de algum tempo tem os seus "private tijolos". Então já passam para a fase de os "juntar". Mas muito poucos na realidade utilizam conscientemente "tijolos" de outros para atingir o seu objectivo.

Chega de falar em tijolos e vamos falar do problema em si. Ao fim de algum tempo muitos dos problemas na programação já foram resolvidos por alguém. As vezes essas soluções estão padronizadas e disponíveis para nós utilizarmos. O problema é saber que existem e como utilizar.

Para já vou falar de um conjunto de soluções que a Microsoft disponibiliza para uma série de situações, o Enterprise library.

O Enterprise library não é mais do que um conjunto de unidades "application blocks" configuraveis que podem ser utilizados para resolver uma série de problemas comuns.



Como podem verificar na imagem existem uma série de problemas comuns as aplicações.
Em cada nova aplicação lá vamos nós resolver aquilo que "n" vezes já resolvemos.
Ora com esta solução a Microsoft tenta dar mecanismos que possam ser adaptados as nossas aplicações e que permitam uma forma padrão de resolver os problemas mais comuns.

Inicialmente em janeiro de 2005 a microsoft disponibilizou os seguintes "Apllication Blocks", na versão 1.0.
• Configuration Application Block
• Data Access Application Block
• Caching Application Block
• Exception Handling Application Block
• Logging and Instrumentation Application Block
• Security Application Block
• Cryptography Application Block

Com a versão 2.0, actualizou para a framework 2.0 e alterou os modulos de
• Data Access Application Block
• Caching Application Block
• Exception Handling Application Block
• Security Application Block

E

. O Logging and Instrumentation Application Block , passou so a ser o Logging
Application Block

. O funcionalidade de Instrumentation que existia no "Logging and Instrumentation Application Block" como o Configuration Application Block passaram a ser tranversais as "Application Blocks".

Com a versão 3.0 passou a coexistir com novas funcionalidades da framework dot net.
• Windows Presentation Framework
• Windows Communication Framework
• Windows Workflow Foundation
• Windows CardSpace

Novos "Apllication Blocks" apareceram.
• Validation Application Block
• Policy Injection Application Block

E outros estão disponiveis mas não são oferecidos no core.

• Composite UI Application Block:
• Updater Application Block:
• CompositeWeb Application Block
• Page Flow Application Block
• Mobile Composite Application Block
• Mobile Data Access Block
• Mobile Configuration Block
• Mobile Connection Monitor Block
• Mobile Data Subscription Block
• Mobile Disconnected Service Agent Block
• Mobile Endpoint Catalog Block
• Password Authentication Block

E ainda existe a versão 4.0, que aborda a framework 3,0/3.5, que falarei mais a frente.

No fundo interessa saber é que existem muitas coisa já feitas que podem ser aproveitadas.E o meu objectivo será nestes "posts", falar das principais e se possível de todas.

Agora para terminar, porque ja escrevi muito, deixo só a nota que o próximo post irá falar de como instalar e usar em desenvolvimento e produção estes "Applications Blocks". Se possível falar em detalhe de um, talvez o de "LOG", senão fica no "post" seguinte.

Sabem a vontade é muita o tempo é que não abunda.

Um abraço, comentem ...

quinta-feira, 3 de abril de 2008

Curiosidade C#/ Windows Forms

Viva,

este post é sobre algo curioso que encontrei hoje no código :)

Imaginem que tinham este código para gravar as settings do utilizador no ficheiro App.Config
de uma aplicação Windows forms em .net Framework 2.0.


System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
try
{
System.Xml.XmlNode xmlTreeDepth = xmlDoc.SelectSingleNode("configuration/Configuration/TreeDepth");
xmlTreeDepth.InnerText = tBoxPArvore.Text;
ApplicationConfig.TreeDepth = Convert.ToInt32(tBoxPArvore.Text);
xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
}
catch (Exception) { ..... }

Agora, vejam esta maneira diferente de gravar exactamente o mesmo parâmetro mas num ficheiro de settings, que permite exactamente o mesmo:

Properties.Settings.Default.TreeDepth = Convert.ToInt32(tBoxPArvore.Text);

Está longe de ser um post completo, contudo levanta aqui uma questão, será que exploramos de forma conveniente o que a Framework nos coloca disponível ?

:)