A Microsoft que você não conhece.

by Ronaldo 29. setembro 2009 09:33

A turma que costuma ler os meus artigos na coluna "C#" do meu site www.detudoumpouco.com.br vai reconhecer este. Eu o publiquei lá no dia 12 de maio de 2009. Agora eu o reproduzo aqui, com pequenas adaptações, por entender que o assunto continua em voga. Ainda há muita gente que não sabe que a turma de Redmond não é mais a mesma...

Nestes muitos anos de estrada na área de Informática eu já vi "de tudo um pouco" (olha o jabá aí gente!). Vi gigantes sumirem do mercado num piscar de olhos, pequenas empresas transformarem-se em multinacionais, promessas de tecnologias que revolucionariam o mundo e que nunca passaram de promessas, a promessa de "um" grande sistema operacional transformar-se em uma gama de dialetos muitas vezes incomunicáveis entre si, enfim, lá se vai muito tempo.

No primeiro exemplo do parágrafo anterior, não me sai da mente as palavras proferidas pelo presidente da Netscape lá pelos idos de 1995: ”a Microsoft perdeu o trem da internet”. Naquela época a empresa por ele comandada, tinha o navegador mais usado no mundo e o controle do potencial mercado que surgia à frente. O que ele diria hoje? Tudo bem que, de fato, o Internet Explorer só se alavancou mesmo em função de já estar embutido no sistema operacional Windows. Não era mais cômodo usá-lo?

O fato é que a Microsoft foi crescendo juntamente com o crescimento do ódio daqueles que viam nela a "menina má” do mercado, personificada na figura de Bill Gates. A única pergunta que eu sempre me faço é: se estas pessoas estivessem no lugar do Bill Gates, será que elas fariam algo diferente pelo seu negócio? Sinceramente, acredito que não! O fato é que o mercado foi dividido entre os que amam e os que odeiam a Microsoft. E a turma que odeia é grande e barulhenta.

Apesar de ter uma posição pessoal bem conhecida pelos mais próximos, não quero tomar partido e ficar defendendo "A" ou "B". Quero apenas dizer que os tempos mudaram juntamente com as políticas de muitas empresas. E a Microsoft não ficou parada no tempo! Talvez pela necessidade de adaptar-se às novas realidades. Talvez pela necessidade de não perder dinheiro com a diminuição da sua participação no mercado. O fato é que ela mudou e muita gente não sabe disso.

Um dia desses, conversando com um amigo de trabalho que é um ”verdadeiro escovador de bits”, fiquei surpreso com a sua reação ao saber que o Microsoft Visual C# 2008 Express Edition era gratuito. Gratuito? Como assim? Não é da Microsoft? Amante e ”heavy user” do sistema operacional Linux, ele nem sequer olhava para produtos Microsoft. Não por não gostar ou estar fechado à mesma, mas sim, por ter aquele velho conceito de que tudo, simplesmente tudo, é pago em se tratando de Microsoft. É claro que não deixei passar a oportunidade! Falei sobre as mudanças nas políticas da Microsoft, das benesses advindas disso, da política agressiva de disseminação da plataforma .Net e, principalmente, da qualidade dos produtos. Quem conheceu o Microsoft Visual Studio antes da versão 2005 e nunca mais trabalhou com a ferramenta, não sabe da sua notória evolução. Se levarmos em consideração o Microsoft Visual Studio 2008, o salto qualitativo é muito maior. Quem associa o Visual Studio somente ao Visual Basic, não teve o prazer de conhecer o C#linguagem criada junto com a arquitetura .Net.

Depois de um bom papo, que não dá para ser transcrito em um artigo, o meu amigo foi ao site oficial da Microsoft e fez o download do Microsoft Visual Studio 2008. Já no dia seguinte eu ouvi o primeiro elogio vindo de alguém muito técnico e extremamente cético em relação à Microsoft: ”Gostei muito do ambiente de desenvolvimento! É muito bom mesmo! Já estou brincando com o C#!”.

Pode parecer besteira mas, para mim, foi ótimo ver alguém que nem sequer pensava em Microsoft, verdadeiramente entusiasmado com os horizontes oferecidos com a nova ferramenta. E não pensem os senhores que eu estou aqui para fazer propaganda da Microsoft! Como já disse ao iniciar este artigo, com tantos anos de estrada eu já vi “de tudo um pouco” (olha o jabá de novo!). Do Turbo Pascal, passando pelo Clipper, é claro, até o Eclipse, tudo já foi usado. Contudo, o melhor nível de desenvolvimento, produtividade, trabalho em equipe, integração e possibilidade de uso pesado de orientação a objeto, eu alcancei com o uso do C# no Visual Studio.

E por que tudo isso foi colocado novamente? Porque na minha coluna no DETUDOUMPOUCO, tratamos exclusivamente da plataforma .Net e os nossos exemplos são, em sua grande maioria, escritos em C#. Desta forma, como focamos os resultados, será mais produtivo se você tiver na sua máquina o ambiente para reproduzir os exemplos e testar suas próprias implementações. Ainda mais sabendo que não há custo para isso. Portanto, não perca tempo!  Visite o site oficial da Microsoft, baixe o Microsoft Visual Studio 2008 e seja mais um a divulgar esta boa nova.

Acabaram as novidades? Não! Até aqui eu só falei do Microsoft Visual Studio. Contudo, ao visitar o site para download do produto, você verá que também está disponível, para download gratuito, o SQL Server Express 2008. Isso mesmo! O SQL Server também tem uma versão gratuita e totalmente funcional! Das poucas restrições existentes em relação à versão comercial, deve-se destacar que o tamanho máximo permitido para uma base de dados no SQL Server Express é de 4GB. Se lhe parece pouco, saiba que não é! A capacidade de 4GB comporta facilmente todo o volume de dados existente em muitos bancos de dados de pequenos e médios negócios espalhados mundo a fora.

Para encerrar este artigo, é importante ressaltar que as ”novidades” aqui apresentadas só são novidades de fato para pessoas que, como o meu amigo, não sabiam deste novo cenário. Para muitos outros, porém, não há nada de novo aqui e este cenário já é conhecido e explorado há muito tempo.

Até breve!

Tags:

C#

Conversor Bytes

by Ronaldo 23. setembro 2009 15:18

Olá pessoal!

Depois de algum tempo distante, afinal de contas, estou curtindo muito a gravidez da minha esposa, eu voltei a escrever algo para a nossa coluna.

Sem muita teoria vou apresentar e disponibilizar para download o Conversor Bytes. Este conversor é um pequeno programa, que eu desenvolvi em C#, que permite conhecer a equivalência do valor de bits, bytes, kilobytes, megabytes, gigabytes, terabytes, petabytes, exabytes, zettabytes e yottabytes. Desta forma, você poderá saber, sem utilizar a calculadora, quantos megabytes são, por exemplo,  243.269.632 bytes, ou quantos bytes pussui um petabyte.

Um byte, frequentemente confundido com bit, é um dos tipos de dados integrais em computação. É usado frequentemente para especificar o tamanho ou quantidade da memória ou da capacidade de armazenamento de um computador, independentemente do tipo de dados armazenados.

A codificação padronizada de byte foi definida como sendo de 8 bits. O byte de 8 bits é, por vezes, também chamado de octeto, no contexto de redes de computadores e telecomunicações.

Deixando a teoria de lado, o Conversor Bytes pode ser baixado aqui ou a partir da coluna C# no site: www.detudoumpouco.com.br. O aplicativo é muito simples. Tudo o que você precisa fazer é informar um valor e a sua respectiva unidade. Ao clicar no botão calcular o software apresenta os respectivos valores correspondentes em bits, bytes, kilobytes, megabytes, gigabytes, terabytes, petabytes, exabytes, zettabytes e yottabytes. A imagem abaixo ilustra a utilização do software.

O Conversor Bytes é totalmente gratuito! Contudo, o código-fonte não está disponível.

Acredito não ser preciso lembrar que para rodar o aplicativo você precisa ter instalado o .NET Framework versão 2.0 ou superior.

Tags: , ,

C#

Apresentando o C#

by Ronaldo 26. fevereiro 2009 12:25

A linguagem C# foi criada junto com a arquitetura .NET. Embora existam várias outras linguagens que suportam essa tecnologia, como VB.NET, C++ ou J#, o C# é considerada a linguagem símbolo do .NET pelas seguintes razões:

  • Foi criada praticamente do zero para funcionar na nova plataforma, sem preocupações de compatibilidade com código de legado;
  • O compilador C# foi o primeiro a ser desenvolvido;
  • A maior parte das classes do .NET Framework foram desenvolvidas em C#.

A criação da linguagem, embora tenha sido feita por vários desenvolvedores, é atribuída principalmente a Anders Hejlsberg, hoje um Distinguished Engineer na Microsoft. Anders Hejlsberg era desenvolvedor de compiladores na Borland, e entre suas criações mais conhecidas estão o Turbo Pascal e o Delphi.

Características

C# (pronuncia-se "cê chárp" em português ou "cí charp" em inglês) é, de certa forma, a linguagem de programação que mais diretamente reflete a plataforma .NET sobre a qual todos os programas .NET executam. C# está de tal forma ligado a esta plataforma que não existe o conceito de código não-gerenciado (unmanaged code) em C#. Suas estruturas de dados primitivas são objetos que correspondem a tipos em .NET. A desalocação automática de memória por garbage colletor além de várias de suas abstrações tais como classes, interfaces, delegados e exceções são nada mais que a exposição explicita recursos do ambiente .NET.

Quando comparada com C e C++, a linguagem é restrita e melhorada de várias formas incluindo:

  • Ponteiros e aritmética sem checagem só podem ser utilizados em uma modalidade especial chamada modo inseguro (unsafe mode). Normalmente os acessos a objetos são realizados através de referências seguras, as quais não podem ser invalidadas e normalmente as operações aritméticas são checadas contra sobrecarga (overflow);
  • Objetos não são liberados explicitamente, mas através de um processo de coleta de lixo (garbage collector) quando não há referências aos mesmos, previnindo assim referências inválidas;
  • Destrutores não existem. O equivalente mais próximo é a interface Disposable, que juntamente com a construção using block permitem que recursos alocados por um objeto sejam liberados prontamente. Também existem finalizadores, mas como em Java sua execução não é imediata;
  • Como no Java, não é permitida herança múltipla, mas uma classe pode implementar várias interfaces abstratas. O objetivo principal é simplificar a implementação do ambiente de execução;
  • C# é mais seguro com tipos que C++. As únicas conversões implícitas por default são conversões seguras, tais como ampliação de inteiros e conversões de um tipo derivado para um tipo base. Não existem conversões implícitas entre inteiros e variáveis lógicas ou enumerações. Não existem ponteiros nulos (void pointers) (apesar de referências para Object serem parecidas). E qualquer conversão implícita definida pelo usuário deve ser marcada explicitamente, diferentemente dos construtores de cópia de C++;
  • A sintaxe para a declaração de vetores é diferente ("int[] a = new int[5]" ao invés de "int a[5]");
  • Membros de enumeração são colocados em seu próprio espaço de nomes (namespace);
  • C# não possui modelos (templates), mas C# 2.0 possui genéricos (generics);
  • Propriedades estão disponíveis, as quais permitem que métodos sejam chamados com a mesma sintaxe de acesso a membros de dados;
  • Recursos de reflexão completos estão disponíveis.

Apesar de C# ser freqüentemente tido como similar a Java, existem uma série de diferenças importantes, tais como:

  • Java não implementa propriedades nem sobrecarga de operadores;
  • Java não implementa um modo inseguro que permita a manipulação de ponteiros e aritmética sem checagem;
  • Java possui exceções checadas, enquanto exceções em C# são não checadas como em C++;
  • Java não implementa o goto como estrutura de controle, mas C# sim;
  • Java utiliza-se de comentários Javadoc para gerar documentação automática a partir de arquivos fonte. C# utiliza comentários baseados em XML para este propósito;
  • C# suporta indexadores e delegados.

Bibliotecas de códigos

Ao contrário das outras linguagens de programação, nenhuma implementação de C# atualmente inclui qualquer conjunto de bibliotecas de classes ou funções. Ao invés disso, C# está muito vinculada ao framework .Net, do qual C# obtém suas classes ou funções de execução. O código é organizado em um conjunto de namespaces que agrupam as classes com funções similares. Por exemplo: System.Drawing para gráficos, System.Collections para estrutura de dados e System.Windows.Forms para o sistema Windows Form.

Um nível de organização superior é fornecido pelo conceito de montador (assembly). Um montador pode ser um simples arquivo ou multiplos arquivos ligados juntos (como em al.exe) que podem conter muitos namespaces ou objetos. Programas que precisam de classes para realizar uma função em particular podem se referenciar a montadores como System.Drawing.dll e System.Windows.Forms.dll assim como a biblioteca core (conhecida como mscorlib.dll na implementação da Microsoft).

Exemplo

Segue abaixo um pequeno exemplo de programa C#:

1: public class ClasseExemplo
2:
{
3:    
public static void Main()
4:    
{
5:        
System.Console.WriteLine("Olá mundo!");
6:    
}
7: }

O código acima escreve o texto Olá mundo! na console. Agora vamos examiná-lo linha por linha:

1: public class ClasseExemplo

Esta linha define a classe ClasseExemplo como pública (public), ou seja, objetos em outros projetos podem utilizar esta classe livremente.

3: public static void Main()

Este é o ponto de entrada do programa quando executado a partir da console. Este método também pode ser chamado de outro código utilizando-se a sintaxe ClasseExemplo.Main(). A definição public static void indica que o método Main é público (public), que pode ser acessado diretamente através da classe (static) e que não retorna nenhum valor (void).

5: System.Console.WriteLine("Olá mundo!");

Esta linha escreve a mensagem na console. Console é um objeto do sistema que representa a linha de comando, e através da qual o programa pode obter e mostrar texto. O método WriteLine (EscreverLinha) de Console é executado, acarretando que o literal passado como parâmetro seja mostrado na console.

Fonte: Wikipédia

Tags: , ,

C#

Calendar

<<  maio 2012  >>
seteququsedo
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar

Últimos Comentários

Comment RSS
Atenção
As opiniões aqui expressas, por mim ou por colaboradores, são de cunho estritamente pessoal e não representam em hipótese alguma a opinião de nossas empresas, marcas ou empresas coligadas.

© Copyright 2012 Ronaldo Cesar