Mostrando postagens com marcador IDE. Mostrar todas as postagens
Mostrando postagens com marcador IDE. Mostrar todas as postagens

quinta-feira, maio 21, 2009

Liberado Visual Studio 2010 Beta




Nessa segunda dia 19, foi liberado para download o Beta da nova versão da IDE de desenvolvimento de sistemas da Microsoft, o Visual Studio 2010.

Entre as novidades da nova versão estão:


  • Aprimoramento da interface gráfica: com uma organização mais clara, redução de complexidade, janelas e documentos flutuantes, editor melhorado.
  • Programação paralela: Agora disponível tanto para usuários de código nativo e gerenciado e com suporte embutido na própria IDE.
  • Gerenciamento do ciclo de vida de aplicações: Prometendo ferramentas para todos os envolvidos no projeto de software, desde arquitetos a programadores e testadores. Incluindo construção de novos tipos de diagramas com use cases e diagramas de sequência e atividade, um novo motor de testes e uma nova ferramenta de controle de workflow.

  • Desenvolvimento WEB: Novo motor de intellisense de Javascript,suporte a SilverLight,  "One click deployment" que permite publicar todo o site e suas dependências de uma só vez.
  • Cloud Computing: Windows Azure Tools já integradas por padrão na IDE.
  • Suporte nativo a mais Databases: Agora é possível utilizar as classes de acesso a dados nativos do .NET Framework para BDs baseados em IBM DB2 e Oracle.


Ficou interessado? Pode conferir o novo VS 2010 aqui.

domingo, maio 17, 2009

C# 4.0 - Acesso a tipos dinâmicos

Anteriomente falamos sobre o lançamento do C# 4.0, linguagem de programação para o .NET Framework da Microsoft que virá juntamente com o novo IDE da empresa para o desenvolvimento de aplicações para desktop e web.

Hoje, explicaremos um pouco mais sobre as modificações inerentes ao C#, especialmente em sua relação com produtos de outras linguagens.

Bom, estamos acostumados a utilizar atualmente classes tipadas estáticamente do próprio .NET framework e invocando seus próprios métodos. Por exemplo, tomemos o exemplo de uma classe que implemente uma Calculadora, segundo essa abordagem o código necessário para se executar uma operação de soma seria mais ou menos o seguinte:

Calculator calc = GetCalculator();
int sum = calc.Add(10, 20);



Já quando decidimos usar uma classe não tipada estaticamente, como as contruídas em COM, Ruby, Python ou até Javascript. Por não possuir um sistema de tipos reconhecido naturalmente pelo .NET Framework, devemos usar Reflection para descobrir os atributos de tipo em tempo de execução e dinamicamente invocar o método desejado como o mostrado abaixo:

object calc = GetCalculator();
Type type = calc.GetType();
object result = type.InvokeMember("Add",
BindingFlags.InvokeMethod, null,
new object[] { 10, 20 });
int sum = Convert.ToInt32(result);


Com o advento do .NET Framework 3.5, o tratamento do mesmo tipo de problema vindo de classes Javascript, poderia ser resolvido da seguinte forma:

ScriptObect calc = GetCalculator();
object result = calc.InvokeMember("Add", 10, 20);
int sum = Convert.ToInt32(result);


Agora, com o C# 4.0 o uso de classes dinâmicas tomará a seguinte forma:

dynamic calc = GetCalculator();
int result = calc.Add(10, 20);


Essa simplificação no uso de tipos dinâmicos torna-se possivel pela adição do novo tipo estático Dynamic que converte um objeto dinâmico em estático. Parece algum tipo de incoerência mas essa abordagem tem suas vantagens, principalmente por possibilitar uma maior interação entre os objetos estaticamente nativos do .NET e classes oriundas de diversas origens, bem como estimula o uso da codificação estática e seus benefícios pelo maior período de tempo possível.

Por hoje é só, logo voltaremos com novas informações a respeito das mudanças na linguagem C# e no próprio .NET Framework.

sexta-feira, maio 15, 2009

Validando Expressões Facilmente em ASP.NET

Se você é programador ASP.NET e costuma utilizar os componentes da aba validation da Toolbox do  MS Visual Studio, provavelmente já se deparou com o trabalho árduo de criar expressões de validação para campos de texto específicos como Data,Endereços, Telefones, CEP, CPF, CNPJ, etc.. Infelizmente, a IDE da microsoft possui poucas referências prontas e o trabalho de criação de novas expressões é, no mínimo, broxante.

A solução pode vir com o site RegExLib.com. Trata-se de uma biblioteca formada por Validations Expressions criadas por milhares de desenvolvedores em todo o mundo. Todas elas possuem o código disponível livremente, seguido por uma descrição a respeito da aplicação da expressão e exemplos de dados aceitos ou não pela expressão. Inclusive, caso você seja criativo ou tenha uma expressão de validação que deseja compartilhar, o sistema oferece a oportunidade de submeter o código para a rede em instantes. Vale a pena dar uma conferida.

terça-feira, abril 28, 2009

Migrando o desenvolvimento de aplicações para o mundo do software livre – Parte II

Mudando de paradigmas

Analisando a evolução do desenvolvimento de aplicativos dos sistemas operacionais Windows e Linux conforme visto na parte I desse artigo, pudemos perceber claramente como a forma de se pensar na programação (principalmente na etapa de implementação) do produto final varia de acordo com o S.O que utilizaremos como padrão para o nosso sistema. Por um lado temos o Windows e seus programas enormes e “auto-sustentáveis”, mas com IDEs que incrementam a produtividade dos programadores através de ferramentas que prezam pela facilidade de uso e grande quantidade de recursos e são financiadas por grandes empresas de software, enquanto do lado oposto temos o Linux, suas aplicações rápidas e leves, desenvolvimento consciente e independência de fornecedores e recursos necessários para sua execução supridas pelo sistema.

Tomando por experiência própria, uma das maiores vantagens encontradas em IDEs do sistema Windows é, sem dúvida, a usabilidade e quantidade de recursos disponíveis. Interfaces intuitivas e fáceis de configurar e uma infinidade de componentes que necessitam de pouca coisa além de arrastar, soltar e modificar alguns parâmetros para funcionar. Além disso, programas como o Delphi e o Visual Studio fornecem a possibilidade de se construir uma aplicação desde a etapa de modelagem até a distribuição, sem recorrer a outros recursos.

No Linux, por muito tempo predominava-se a adoção de uma diversidade muito maior de linguagens de programação, interpretadores e compiladores, estes muitas vezes embutidos dentro das próprias distribuições do S.O e poupando o usuário do tempo necessário para a busca do mesmo. Bastava (ou basta, considerando que esse cenário ainda é válido) o usuário iniciar qualquer editor de texto e descrever o código do programa na linguagem escolhida (C/C++, Perl, Java, PHP, Python, entre outros) e executar o interpretador/compilador através do Shell.

Entretanto, esse quadro mudou com o advento de ferramentas como o Kylix, um produto da Borland voltada para os usuários de Linux que também trabalhava com a linguagem Object Pascal como seu irmão para o Windows; Anjuta e o CMake, para desenvolvimento em C/C++; o KDevelop, ótima IDE gráfica baseada nas bibliotecas do KDE e Qt e que possibilita o desenvolvimento para uma infinidade de linguagens que variam do C/C++ (padrão do software) ao Java, passando pelo PHP e Python. Mais informações, podem ser encontradas no website do projeto.


Sem falar das famosas IDEs para o desenvolvimento Java como o NET Beans, distribuído e mantido pela própria Sun e o Eclipse, desenvolvido a princípio pela IBM e que mais tarde tornou-se open source onde apesar de ganhar notoriedade pelas ferramentas e recursos para desenvolvimento em Java, pode ser usada para o desenvolvimento em outras linguagem, desde que extensões compatíveis sejam instaladas. Ambas possuem, entretanto, a característica de serem modulares e adequarem-se as necessidades do usuário.



Se você ficou interessado em iniciar a programar em Linux, não perca o próximo post da série com uma lista de ferramentas disponíveis para o S.O tanto nas etapas de implementação de código, quanto em modelagem de sistemas e distribuição e seus similares no ambiente Windows.


quarta-feira, março 04, 2009

Migrando o desenvolvimento de aplicações para o mundo do software livre – Parte I

Entendendo as peculiaridades dos sistemas

Para quem está acostumado a desenvolver aplicações em ambiente Windows, mudar para sistemas de código livre, como o Linux, geralmente tende a ser uma barreira difícil de ser superada. O motivo principal de tal resistência remete à forma como o desenvolvimento de sistemas evoluiu ao passar dos anos em cada S.O e principalmente na forma como foram concebidos os principais IDEs (Integrated Development Environments) utilizadas.

O Turbo Pascal desenvolvido pela Borland que unia em uma única interface orientada a menus um editor de programas, um compilador e um depurador foi o grande pioneiro da IDE para DOS, entretanto programar para o sistema da Microsoft não era nada fácil. Algumas limitações daquele S.O incluíam: Limite de 640KiB de RAM, modelo de memória segmentado do 8086, aritmética de 16bits, ausência de mecanismos de proteção de memória, systemcalls primitivas e a falta de bibliotecas padronizadas.

Com a saída do Windows 3.0, novos recursos de desenvolvimento foram incluídos de modo a tornar o sistema mais atrativo aos usuários e desenvolvedores, com novas systemcallse conjuntos de bibliotecas para gráficos, multimídia e impressão. Além disso, surgiu o Visual Basic, um novo IDE que incorporou bibliotecas de níveis mais altos e a possibilidade de se desenhar formulários interativos visualmente, o que ajudou na automatização da geração de código de interface.

Foi então que a Microsoft utilizando um padrão bastante conhecido do mundo Linux, o Micro-Kernel, Arquitetura baseada em camadas e orientação a objetos conseguiu construir uma arquitetura de S.O inteiramente novo e não mais apenas uma simples extensão do DOS. Isso decorreu em vantagens significativas tais como a possibilidade de se executar aplicações escritas primariamente para outro sistema operacional e uma melhor gerência de memória, só para citar algumas. Ao mesmo tempo, com o aumento no número de systemcalls e a popularização dos IDE se fez necessário a criação de mecanismos que facilitassem a construção de novos componentes e a Microsoft respondeu com os OLE Controls (OCX), módulos de software que se baseiam nas tecnologias OLE e COM que, quando chamados por uma aplicação, produzem controles que acrescentam algum recurso interessante à aplicação. Apesar de representar um marco no reuso de componentes, abriu margem para diversos problemas de segurança, conhecidos largamente como DLL hell.

Tal problema fez com que cada ferramenta fornecesse suas próprias bibliotecas e incompatibilidades surgissem entre diversas versões de um mesmo IDE. Assim, as ferramentas de desenvolvimento tornaram-se de certo modo “inchadas” por incorporar todas as características dos programas e de tecnologias necessárias, além de ter que executar todas as tarefas e integrar os componentes do programa.

Em contraponto, o desenvolvimento em Unix, bem como do próprio kernell do S.O era realizada em C, logo possuíam vantagem de serem bem mais amigáveis aos programadores que o assembler usado no Windows, além de que era possível criar aplicações sem construtores visuais de formulários devido ao fato das bibliotecas gráficas não serem de baixo nível. Entretanto, o Linux teve como demanda inicial principalmente os ambientes multiusuários e servidores de rede, onde para este último a confiança das rotinas das bibliotecas e ferramentas de apoio importavam mais do que a criação de IDEs gráficas, além disso, a necessidade de suportar diversas plataformas de hardware dificultavam a construção de ferramentas visuais.

Somente com a união entre Linux e GNU, o S.O livre obteve acesso a uma porção de ferramentas de desenvolvimento como editores, compiladores, depuradores. Foi o inicio da popularização do Linux entre os usuários finais, um fenômeno que trouxe como benefício direto uma gradual melhora na usabilidade do S.O e o provimento de um sem número de aplicações, através do trabalho de dedicadas comunidades de desenvolvedores.

Entretanto as IDEs disponíveis para Linux em geral seguem um conjunto de características similares que os distinguem do padrão encontrado no Windows. Primeiramente, os recursos necessários à construção de aplicações (bibliotecas, componentes, etc) são fornecidos pelo S.O, logo, as ferramentas de desenvolvimento tendem a ser mais leves que as encontradas no sistema proprietário. Além disso, os IDEs não englobam todas as tarefas do processo de desenvolvimento, elas atuam mais como ponto de integração entre diversas aplicações e tecnologias de terceiros e a performance das aplicações está condicionadas às próprias aplicações e não ao sistema e normalmente são bem leves e rápidas.

Por fim, nesse texto espero que tenham entendido um pouco de como decorreu a evolução do desenvolvimento de sistemas usando IDEs entre os S.Os Windows e Linux, bem como um pouco das peculiaridades de cada sistema e como elas interferiram na arquitetura dos atuais ambientes de desenvolvimento que temos à nossa disposição hoje em dia.

No próximo post, abordarei as principais dificuldades encontradas no processo de migração de um desenvolvedor Windows para o ambiente livre.

Até Mais!

Para saber mais:
Meio bit
http://pt.wikipedia.org/wiki/Windows_NT
http://www.netpedia.com.br/MostraTermo.php?TermID=4761
Por Janio N. Lima