Posts da categoria: 'Desenvolvimento'

Microsoft libera SP1 de Visual Studio 2008 e .Net 3.5


A Microsoft anuciou a liberação da versão final do Service Pack 1 das ferramentas .Net Framework 3.5 e Visual Studio 2008. Esses primeiros pacotes de atualizações são lançados nove meses após a chegada dos dois produtos ao mercado. Segundo a Microsoft, os pacotes incluem não apenas correções, mas também alterações que atendem a sugestões feitas por usuários.

    O SP1 do Visual Studio 2008, traz como novidades principais o suporte ao SQL Server 2008 – que está sendo lançado agora – e novos componentes, como o Ribbon, para incluir nos aplicativos faixas de opções no estilo das usadas no Office 2007. Esse último recurso está disponível para as linguagens Visual Basic e Visual C++.

    Ainda segundo a empresa, o SP1 do .Net Framework 3.5 oferece melhorias de desempenho de 20% a 45% para aplicações baseadas em WPF (Windows Presentation Foundation). Esse ganho, sustenta a Microsoft, é obtido sem nenhuma alteração no código existente. Os dois pacotes SP1 também incorporam mudanças que têm o objetivo de facilitar o desenvolvimento das aplicações Windows que utilizam ASP.Net.

    Os dois pacotes estão disponéveis nos seguintes endereços:

    Visual Studio Service Pack 1

    .Net Framework Service Pack 1

    Leia também:

    Blog: Live Mesh põe o Windows na internet

    MS corrige bugs no Windows e no SQL Server

    Blog: Windows XP SP3 em português vem em maio

    Análise de Sistemas - Modelo Transformacional (Tranformation Model)

    Este modelo é baseado na teoria da especificação formal, onde software é um sequência de passos especificados que gradativamente se transformam em implementação.

    Consistindo em 2 estágios principais este modelo prega:

    Analise e especificação de requisitos: como nos outros modelos, através da aplicação de várias técnicas onde se extrai a necessidade do negócio do cliente.

    Otimização: onde as especificações são trabalhadas e transformadas em artefatos de software, porém a cada novo ajuste nos requisitos deve-se atualizar as especificações antes das implementações de maneira religiosa, pois alterações na implementação pode gerar impactos custosos de serem resolvidos, uma vez estes impactos sendo descobertos na especificação a correção torna-se indolor.

    O processo  de transformação é controlado por 1 ou mais engenheiros (de software) para garantir a aplicação das técnicas empregadas.

    Além, este modelo prega o básico de reaproveitamento de código na forma de componentes, toda vez que um novo componente é desenvolvido pode/deve ser incorporado ao projeto (ou outros projetos) e pode ser armazenado em bibliotecas de componentes.

    Como não é novidade que requisitos inevitavelmente são alterados esta metodologia se mostra um tanto flexível nestes cenários.

    Yoomp

    Porque existem xiitas em tecnologia!

     

    Fanatismo infundado é ignorância, isso é fato, porém existem muitas discussões bem fundamentadas sobre qual tenologia é melhor, qual framework é mais produtivo, qual linguagem é mais "gostosa" de se programar, claro que às vezes os profissionais se empolgam em seus argumentos e está iniciada a batalha.

    Um profissional experiente em Java, certificado em diversos níveis, que trabalha no mínimo 8 horas por dia e não possui tempo nem motivação para se especializar em outras tecnologias dificilmente vai admitir que trabalha com uma tecnologia ruim ou defasada (nao que seja, é só um exemplo). Afinal é isso que paga suas contas e garante o leitinho das crianças.

    Um profissional Microsoft vislumbrado com as constantes novidades e facilidades (que as vezes dificultam e são um tiro no próprio pé), com centenas de coisas novas para estudar e dezenas de certificação a serem tiradas não consegue achar tempo e nem tem visão sobre outras tecnologias para poder ampliar seus horizontes.

    Uma analogia interessante seria relacionada a futebol, quem gosta jamais admite que seu time é ruim, por mais que caia para aterceira divisão a principal alegação é que é apenas uma fase e um dia volta a primeira divisão (programadores Cobol que o digam).

    Ser específico tem seus prós e contras, mas não é isso que esta em discussão, no entanto é necessário um mínimo de visão e estudo antes de opinar e formar opinião sobre outras tecnologias, proprietárias ou open, novas ou antigas.

    Apesar de muitos me considerarem "Microsoft fanboy" tento ser o mais flexivel possivel, apesar de .Net pagar minhas contas eu estudo Rails, Flex e também sou desenvolvedor PHP e posso afirmar que acho que Rails é melhor para web do que ASP.Net em vários quesitos.

    Tecnologia perfeita não existe, o que existe são excelentes profissionais e casos (cada caso é um caso) e para cada caso e recurso (humano) existe uma tecnologia melhor adequada e viável. fanatismo é ignorância e não leva a avanço algum.

    Análise de Sistemas - Modelo Evolutivo (Evolutionary Model)

    Neste modelo os estágios consistem em expandir ou incrementar o produto (software) gradativamente.

    Não se tem muito a falar sobre o mesmo, pois utiliza-se do modelo em cascata (Watrfall) para gerenciar seus processos porém com algumas resalvas. Antes de iniciar-se o desenvolvimento do produto propriamente dito este modelo prega que devemos esboçar nossa visão de solução em forma de um protótipo funcional para validação de requisitos junto ao cliente (após a análise e especificação).

    Protótipos basicamente são experimentos, modelos (rascunhos) de uma solução final que serve unicamente para se ter uma idéia de como prosseguir e logo em seguida ser descartado. Protótipos são feitos para não serem usados no produto final.

    De posse da validação dos requisitos e de um aceite do cliente (que provavelmente vai dizer que já quer usar o protótipo) pode-se iniciar o desenvolvimento seguindo as etapas após a análise e especificação. Prototipação traz alguns ganhos reais de visão de projeto, mas protótipos são um outro assunto que será abordado mais a frente.

    Modelos de desenvolvimento de software - Introdução

    Intende-se por modelo de desenvolvimento uma série de padrões e técnicas agrupadas que são aplicadas a um projeto, desde a idealização até a concepção do produto propriamente dito. É esse modelo que dita as regras de como o produto deve ser desenvolvido, passando por todas as etapas propostas e cumprindo-se as metas que o modelo determina.

    Modelos são importantes para organizar o processo de desenvolvimento de acordo com o proposto. Cada projeto pode necessitar de uma abordagem (e modelo) diferente, o que nos leva também a analisar qual a melhor tecnologia a se aplicar para cada situação específica.

    Existem diversas tecnologias no mercado, porém por mais que se esforçem pra isso não é possivel que uma tecnologia seja a melhor alternativa para todas as necessidades assim como os modelos não podem ser aplicados com eficácia em todo tipo de projeto.

    No decorrer desta série estaremos tratando das principais metodologias empregadas no modelo de desenvolvimento estruturado e quais os casos que as mesmas se aplicam melhor. aguardem.

    O que é Engenharia de Software

    A Engenharia segundo a Wikipedia "(<latim ingeniu = "faculdade inventiva, talento") é a arte, a ciência e a técnica de bem conjugar os conhecimentos especializados (científicos) de uma dada área do saber com a sua viabilidade técnico-econômica, para produzir novas utilidades e/ou transformar a natureza, em conformidade com idéias bem planejadas". Sendo assim Engenharia de Software é a aplicação dos conceitos de engenharia direcionados a desenvolvimento de software de qualidade, confiável e principalmente viável.

    Fritz Bauer disse em 1969: “O estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais”, como podemos ver este não é um conceito novo, assim como a busca de qualidade e melhores maneiras de se obter artefatos de softwares.

    Programadores apenas codificam, analiastas analisam e assim subsequentemente, porém o papel do engenheiro de software é um tanto mais amplo. Um engenheiro de software deve ser capaz de identificar um problema, levantar requisitos, especificar processos, propor soluções e implementa-las, ou seja, a especialização de cada individuo em uma determinada área não é mais vista com bons olhos pois limita a visão do todo somente a sua área de conhecimento específica, é importante que  alem da especialidade se tenha uma visão ampla do todo.

    Existem 3 aspectos bastantes importantes sendo: métodos (como fazer), ferramentas (apoio) e procedimentos (união de métodos e ferramentas) que proporcionam aos gerentes de um projeto de software controle dos processos e aos engenheiros uma imensa base para desenvolvimento de softwares de alta qualidade com produtividade.

    Projetos de softwares podem ser coisas simples e bastante especificas até sistemas complexos e bastante grandes, o que envolve metodolias diferentes aplicadas a grandes ou varias equipes, logo o conhecimento e aplicação de metodologias, processos e técnicas tornam-se indispensaveis para se manter um ambiente saudável. Enfim engenharia de software é uma maneira concentrada e objetiva de se desenvolver software usando de alguns artifícios para se chegar a um produto (software) de boa qualidade em tempo e custos viáveis.

    Melhores da semana #001 - Frameworks, produtividade, padrões, podcasts, miscelânia e más notícias

    Frameworks

    8 frameworks MVC que você pode usar em seu aplicativo Flex, se vc quer desenvolver em flex utilizando a metodologia MVC esse é o post ideal para você.

    Produtividade

    Produtividade pra programadores, é um post que fala sobre produtividade analisando o documento escrito pelo Élcio da Visie, vale a pena ler tanto o post quando o documento.

    Padrões

    KML agora é padrão de compartilhamento de mapas, noticiado pelo Henrique e UnderGoogle, para quem não sabe (ou não sabia assim como eu) KML (é, é baseado em XML) é um padrão criado pelo google para localização geográfica que acaba de ser reconhecido como um padrão propriamente dito.

    Podcasts

    Rails Podcast Brasil - Episódio #13, mais uma edição do melhor podcast sobre Rails do Brasil gravado por Carlos Brando e Fábio Akita sempre trazendo as novidades sobre Ruby, Rails, Git e muito mais.

    Podcast Digital Paper - Episódio #13, gravado na quarta-feira com participação especial de Jonny Ken, Amanda e Nagueva, vai ao ar dia 21/04, ótima pedida para o feriado.

    Miscelânia

    Instant Messaging e Ruby, veja como criar um Instant Messager utilizando Ruby.

    Relacionamento muitos-para-muitos com ActiveRecord no Rails, Entenda como funciona este tipo de relacionamento e como aplicar algumas técnicas melhoradas.

    Domínios .com.br agora podem ser registrados somente com CPF, essa notícia foi a mais esperada durante anos, não se faz mais nece´´ario o uso de CNPJ para registrar-se dominios .com.br.

    Más Notícias

    Sun começa a fechar o MySQL, como nem tudo são rosas a Sun anuncia que vai dividir o MySql em uma versão para acomunidade e uma nova versão Enterprise fechada e comercial.

    Instalando Ruby On Rails 2.0.2 no Linux (Ubuntu)

    aguinelomaluco

    Não há muitas dúvidas e discussões sobre que Mac Os[bb] e Linux são sistemas[bb] muito melhores para se trabalhar com Rails do que Windows, porém esta semana fui instalar a nova versão do Rails (2.0.2) no Ubuntu 7.10 e descobri que os pacotes estavam (estão) deatualizados ainda com a versão antiga, então ai vai uma dica de como instalar a última versão do Rails não só no Ubuntu, mas em qualquer linux.

    Primeiro precisamos do Ruby instalado, então podemos fazer isso com o comando:

    sudo apt-get install ruby rubygems irb ri rdoc ruby1.8-dev build-essential

    Se seu linux não tem suporta a apt-get pode utilizar seu gerenciador de pacotes preferido ou ainda instalar a partir de pacotes .tar.gz, no entanto tenha em mente que vai precisar instalar nesta ordem:

    • Ruby
    • Rubygems
    • Irb
    • Ri
    • Rdoc

    Todos disponíveis no RubyForge

    Tenho tudo instalado é só utilizar as gems dos frameworks do Rails e instalar nesta mesma ordem.

    • sudo gem install rake-0.8.1.gem
    • sudo gem install activesupport-2.0.2.gem
    • sudo gem install activerecord-2.0.2.gem
    • sudo gem install actionpack-2.0.2.gem
    • sudo gem install actionmailer-2.0.2.gem
    • sudo gem install activeresource-2.0.2.gem
    • sudo gem install rails-2.0.2.gem

    Logo depois basta rodar o seguinte comando para atualizar a localização da instalação e registrar no ambiente do sistema:

    export PATH=$PATH:/var/lib/gems/1.8/bin

    Pronto, pra facilitar sua vida ainda mais eu reuni as gems num pacote e criei um .sh de instalação inclusive do Ruby, se seu sistema for baseado em Debian ou suportar apt-get não terá maiores problemas:

    icone_download

    Para verificar se o Rails esta instalado e na versão correta basta executar o comando:

    rails -v

    É isso ai gente, go :to => rails-2.0.2!

    Microsoft Windows 2008 Server - Evolução de conceitos

    hero_hhh-28

    Como ja disse foi lançada recentemente a linha Microsoft 2008, o importante a dizer é que o protagonista dessa nova linha com certeza é o Windows Server 2008 que conta com diversos recursos novos e "facilitadores" para a vida do profissional de infra-estrutura.

    Cada vez mais a Microsoft vem adotando padrões, sejam Web, de mercado ou formatos já utilizados nas ferramentas disponíveis no mercado, muito mais do que cópia simplesmente é uma tentativa de tornar menos dolorosa a vida de profissionais que trabalham com diversas plataformas.

    Esta nova versão traz consigo, além de atualizações dos recursos já existentes, novos recursos que com certeza serão uma "mão na roda" dos setores de TI como:

    • Novas versões do sistema incluindo uma chamada Server Core que nada mais é do que o Windows sem interface gráfica para servidores com um hardware modesto, gerenciado somente por linha de comando, mas pode ser gerenciado graficamente através de outra station com Terminal Server.
    • Power Shell - Nova linguagem script semelhante (e concorrente) ao Shell Script do Unix, compátivel com Bat e VbScript, pode se executar comandos em todas as máquinas de uma rede através do WinRtm, mantém compatibilidade com Shell Script incorporando recursos do mesmo como os comandos Ls, cat e concatenações com Pipe "|".
    • IIS 7 - Administração melhorada, ciclo otimizado, possibilidade de dar permissão ao desenvolvedor configurar somente sua aplicação sem ter acesso total ao IIS, suporte a linha de comando (PowerShell), novas ferramentas e GUI, administração remota segura, configuração do IIS em XML (portabilidade simplificada entre servidores).
    • Event Viewer - Novos filtros e separações, resumo de logs, melhor detalhamento de erros,
    • Monitor de Confiabilidade e Desempenho - Permite a possibilidade de traçar média de desempenho, uso de recursos, máximo de processamento utilizado, tempo médio de uso de recurso, movimentação de rede e disco.
    • Active Directory Somente Leitura - Aplicável para escritórios remotos, permite somente leitura e envio de informações, comunicação rapida, segura e confiável.
    • BitBlocker - Sistema de encriptação de discos e partições, caso algum hardware seja extraviado os dados estão inacessíveis, mesmo que o disco seja instalado em outro servidor.
    • WSUS 3.0 - Windows Software Update Service com melhor gerenciamento, porem não foi totalmente otimizado.
    • Firewall - Completamente reformulado e melhorado, com filtragem de portas e permissões, restrições e filtros por protocolo, rede baseada em regras, proteção contra acesso a rede, filtro de áaquinas atualizadas e com determinado sistema, ou seja, somente uma máquina com os sistemas operacionais permitidos instalado e os devidos patches e serviços de segurança habilitados tem acesso a rede.

    As novidades não param por ai, ainda existem diversas atualizações de segurança e reformulação de outros seviços secundários, mas inormações podem ser obtidas aqui.

    Como se pode ver a Microsoft tem se preocupado com a otimização, compatibilidade e portabilidade de suas ferramentas e quem só tem a ganhar somos nós, desenvolvedores, administradores e usuários que podemos ter serviços de melhor qualidade com menos esforço.

    Segurança - Paranóia com Senhas!

    ilustracao_seguranca

    Recentemente na empresa que trabalho rolou uma discussão sobre o quanto uma senha no estilo a6HtI8&j*%FvCl$ é "mais forte" que outra no estilo aguinelo123, os argumentos utilizados eram que senhas com caracteres são muito mais difíceis de serem quebradas do que senhas numéricas ou alfanuméricas, no entanto esqueçeram de alguns poréns.

    Do ponto de vista de tentativa e erro sem dúvida senhas mais complexas são mais dificeis de advinhar, contudo advinhação não é mais um artifício muito utilizado nos dias de hoje. Quando alguém mal intensionado pretende descobrir uma senha pode utilizar outros métodos como uso de softwares, neste caso a complexidade da senha só interfere no tempo que tal software leva para fazer a analise e "montar" a senha descoberta.

    O fator que realmente devemos dar importância é o método de criptografia utilizado na encriptação da senha. O que realmente lhe da segurança é a capacidade de seu sistema de armazenamento de senha manter seus dados escondidos e protegidos de bisbilhoteiros.

    Um caso clássico que identifica muito bem o que citei acima são os Access Point que podem utilizar mais de um sistema de criptografia de dados, o mais fraco deles é o WEP, onde é necessario inserir uma senha de 26 caracteres (encriptação em 128bits), uma senha bem grande que teóricamente seria segura mas não leva mais que 5 segundos para ser quebrada, ao contrário do WPA que utiliza um nível se segurança muito mais complexo (mas não impossível) de ser quebrado.

    Recomenda-se sempre que ao criar uma senha não se utilize nenhuma informação relacionada diretamente a você como datas importantes, fragmentos de nome e sobrenome, mas o mais importante é estar ciente se o meio em que esses dados são armazenados é realmente seguro, cuide bem dos seus dados :=).

    Página Seguinte »