quarta-feira, 21 de março de 2012

Visual Studio 11 Beta

Instalei a última versão do Visual Studio 11 e estou utilizando como única versão para desenvolvimento, nem cheguei a instalar o Visual Studio 2010.

image

A instalação foi tranquila tanto do Visual Studio 11 quanto dos componentes que utilizo, como por exemplo, os da Developer Express.

Alguns problemas…

A opção “Track Active Item in Solution Explorer” vem desmarca por padrão, como utilizo muito o Solution Explorer, ficar sem essa opção marcada me deixa perdido as vezes por isso gosto de deixa-lá marcada, mas não sei por que nessa versão do Visual Studio ela vem desmarcada por padrão.

Erros de referência aparecem do nada e sem motivo, algumas vezes efetuando um Rebuild All ele volta ao normal. Algumas vezes aparece erro de interface não implementada em algum método, para corrigir o “erro” tenho que reimplementar o método novamente e com a mesma assinatura já implementada!

Concluindo

Gostei das novas opções de navegação e pesquisa, principalmente de poder voltar ou refazer a navegação, utilizando os botões de navegação na barra de ferramentas ou através das teclas de atalho (CRTL+- e CTRL+SHIFT+-), algo muito útil quando estou com várias abas de código abertas ao mesmo tempo.

image

Quanto ao fato do tema padrão e dos ícones serem acinzentados isso não me incomodou, na verdade já me acostumei e estou gostando dessa nova roupagem.

Windows 8 CP

Após instalar o Windows 8 Consumer Preview em uma VM e fazer alguns testes, resolvi instalar na minha máquina de desenvolvimento, que atualmente usa o Windows 7 x64. Como também tenho o notebook que posso utilizar para desenvolvimento, mesmo que algo de errado, eu não fico na mão. A configuração do computador é:

  • Intel Core i7 950 @ 3.07GHz
  • 12GB de DDR3 PC3-10700
  • NVIDIA GeForce GTX 460
  • 2 x HD 250GB em RAID 0
  • 2 x HD 1.5GB

A instalação foi tranquila, só deu um pouco de trabalho para instalar a impressora, uma HP Photosmart 2610 AiO.

Não tive muito problema também para instalar os softwares, só é ruim ficar organizando o menu iniciar após a instalação de algum software que não é Metro.

Alguns problemas…

No Chrome todas as senhas salvas ficaram vazias, o login permaneceu. Mas não está abrindo os links magnet do uTorrent e edk2 do Emule.

Em relação a segurança do Windows, algumas pastas deram alguns erros estranho quando fui abri-las, aparentemente a mudança de proprietário só ficou no primeiro nível de subpastas.

As vezes após instalar um aplicativo o Windows não o reconhece como padrão para abrir arquivos do tipo suportado pelo aplicativo, tive que fazer a ligação manualmente via Open With > Choose default program. Isso ocorreu por exemplo com o Google Picasa, o Windows não deixou o Picasa ser o visualizar padrão dos arquivos de imagem, mesmo executando como administrador, só funcionou via o método anterior.

Algumas vezes, quando um aplicativo trava ou por que está processando, a janela do aplicativo começa a piscar feito louca, creio que isso está relacionado ao driver da placa de vídeo.

Algo que sempre incomoda é o fato de normalmente a opção de remoção segura não funciona, não dá aviso nenhum, apenas fica travado.

Concluindo (por enquanto)

Estou gostando do Windows 8, mesmo estando em inglês, dá pra usar sem problemas.

Com relação os itens que estão incomodando muita gente: Menu Iniciar e Ribbon, eu não tenho do que reclamar, o menu iniciar é prático e customizável, você só precisa se acostumar e o Ribbon também é muito bom, ao contrario do que muitos andam dizendo por aí, ele á mais prático e rápido do que os tradicionais menu e barras de ferramentas.

Vou continuar a utilizar o Windows 8 CP em minha máquina principal, mais pra frente posto mais sobre ele.

segunda-feira, 13 de fevereiro de 2012

Venda ou aluguel de software?

Como desenvolvedor de software essa pergunta quase sempre é feita pelo cliente, que normalmente prefere “comprar” o software do que alugar, já que o aluguel remete a aluguel de algo que não será nunca seu, como um imóvel por exemplo.

Software é licenciado

No caso de software, só existe a posse se o usuário possuir acesso contratual o código fonte e todos os recursos necessários para gerar o aplicativo final. Como essa não é situação na grande maioria do software disponibilizado no mercado, salvo a categoria de software livre, o que existe é a cessão direito de uso de uma versão de software.

Como exemplo cito o contrato de licença do Adobe Photoshop CS5, ênfase minha:

“…A ADOBE E SEUS FORNECEDORES POSSUEM TODOS OS DIREITOS DE PROPRIEDADE INTELECTUAL SOBRE O SOFTWARE. O SOFTWARE É LICENCIADO, NÃO VENDIDO. A ADOBE PERMITE QUE VOCÊ COPIE, FAÇA DOWNLOAD, INSTALE, USE OU BENEFICIE-SE DE ALGUMA OUTRA FORMA DA FUNCIONALIDADE OU DA PROPRIEDADE INTELECTUAL DO SOFTWARE SOMENTE EM CONFORMIDADE COM OS TERMOS DESTE CONTRATO….”

Praticamente todos os contratos de licença de software possuem clausulas semelhantes a esta, onde fica explicito que o software é cedido na forma de aluguel e não de venda. O valor pago é para o aluguel da versão específica do software, no caso citado acima, o Adobe Photoshop CS5, e não dá direito a outras versões, somente a correções de erros dessa versão.

Sendo assim não existe software comprado e sim licenciado, o que nos leva ao próximo ponto.

Software como organismo

Atualmente o software é tratado não como algo estático, que tem a versão final e definitiva, e sim como algo orgânico, que está sempre em evolução, e por isso o mais natural e tratar o software como um serviço que está sempre recebendo correções e melhorias. Pois as empresas, usuários, clientes, leis, governos, relatórios, ambiente não são estáticos, sempre existe mudança e o software tem que acompanhar essas mudanças.

Assinatura ou licença única

Eu prefiro o termo assinatura ao aluguel, pois a palavra trás uma conotação melhor do que aluguel, remetendo a assinatura de serviços úteis, como por exemplo o serviço de acesso à internet. Para melhor entendimento, no quadro abaixo faço um comparativo entre a assinatura e a licença única usando como base um software que lançamos recentemente:

image

Fica evidente no comparativo que apesar da licença única ter como vantagem o pagamento único, nos demais itens na assinatura o cliente leva muito mais vantagem, até por que como a fonte de renda do desenvolvedor no caso da licença única é por versão/cliente, quanto mais versões lançadas, maior a receita, o que leva o desenvolvedor a focar no software e não no cliente, assim colocando os recursos da empresa no desenvolvimento de novas versões em detrimento do atendimento ao cliente.

No nosso caso específico, e para o software recém lançado, elaboramos duas tabelas de preços, a primeira utilizando o licenciamento através de assinatura e a segunda utilizássemos a licença única:

image

image

Os valores da tabela de licença única, se somados, dão um valor muito maior do que a de assinatura, pois como a receita é única por venda é preciso equalizar em valores que não tragam prejuízo a longo prazo, e que ainda possam sustentar o desenvolvimento de novas versões com um suporte de qualidade. Após muita ponderação, decidimos então optar pela assinatura, que nos permite oferecer aos clientes um software de qualidade, sempre atualizado e por um custo acessível até para as empresas com menor poder aquisitivo.

Software como serviço

Acredito que o software deve ser visto como um serviço que traz benefícios aos usuários, e não como uma ferramenta estática, que após ser comprada só recebe remendos quando dá problema. A assinatura de um software traz benefícios não só para o desenvolvedor, mas também para o cliente que recebe um software de maior qualidade, que está sempre atualizado sem custo adicional, com ótimo suporte e ainda cria uma relação mais estreita entre o desenvolvedor e o cliente, beneficiando ambos no processo.

terça-feira, 7 de fevereiro de 2012

Automatizando a geração de patchs

Tenho um projeto que está na fase final para lançamento da versão 1.0, mas sempre que é necessário a geração de uma nova versão/patch eu tenho que efetuar vários passos manualmente.

O fluxo é basicamente o seguinte:

Fluxo Desenvolvimento Versão

Cada um desses passos é uma sequencia repetitiva e propensa a erros, que podem ser somente descobertos já no cliente. Para resolver esse problema desenvolvi um aplicativo que faria todos esses passos de forma automática, utilizando parametros configuráveis.

O aplicativo

O aplicativo atualmente é bem simples:

Atualiza Versão

Escolhi fazer como WinForms em vez de console, utilizando os componentes DevExpress. A sequencia é a mesma do fluxo mostrado acima, com a opção de pular algum passo se preciso. É a primeira versão desse aplicativo e por isso optei por deixar algumas coisas fixas no código por enquanto, como por exemplo a solução a ser atualizada.

No próximo post eu darei mais detalhes sobre esse aplicativo.

quarta-feira, 1 de fevereiro de 2012

Snapshots no VMware

Hoje percebi que estava ficando sem espaço no disco C: no meu desktop, usei o SpaceSniffer, um ótimo programa gratuito para visualizar o espaço utilizado, e descobri o culpado: VMware Workstation.

Algumas VM's estavam ocupando muito espaço, principalmente as de Windows XP, que normalmente não utilizam muito espaço para os discos virtuais. Ao analizar os arquivos percebi arquivos vmdk duplicados, que na verdade estão ligados aos arquivos de snapshot. Como utilizo muito a função snapshot no VMware, principalmente no XP, os arquivos estavam diminuindo drasticamente o meu espaço livre no disco.

Agora estou removendo os snapshots que não estão sendo utilizados para recuperar um pouco de espaço.