Mostrando postagens com marcador Configuração. Mostrar todas as postagens
Mostrando postagens com marcador Configuração. Mostrar todas as postagens

3 de ago. de 2011

Deletar arquivo do dia anterior

pinky-e-cerebro

Dica rápida…

A alguns dias dias atrás a equipe de desenvolvimento com a qual estava trabalhando decidiu persistir o Viewstate do ASP.NET no HD do servidor.

Após implantar as configurações, rotinas e afins, ficou a dúvida se as rotinas de exclusão dos viewstates antigos estava funcionando corretamente.

Um desenvolvedor deu a ideia de criar um .exe que excluísse os arquivos do dia anterior. Logo pensei: que mania de desenvolvedor de achar que o mundo pode ser resolvido com um .exe. (Falo isso com toda a autoridade de ser um desenvolvedor também!)

Então eu intervi, dizendo que apenas persistissem, e eu agendaria uma tarefa no servidor Windows para apagar os viewstates do dia anterior.

Mas… #comofaz?

Como estou trabalhando bastante com Poweshell ultimamente, pensei que não seria difícil desenvolver um script assim.

Após pesquisar um pouco descobri o comando "forfiles" do prompt do Windows mesmo. Essa belezinha lista arquivos, podendo aplicar alguns filtros. O filtro para os dias é o parametro "D", onde nesse caso, defini –1, veja:

image

#Maravawonderfull, listei os arquivos, mas e agora, como deletá-los? Já pensou que agonia, colocá-los em variáveis  de script basic/bat!?

#Esgurmita!

Puxei um help do comando e loco descobri que havia como passar um comando para aplicar a cada item listado.

Com mais alguns parâmetros consegui gerar um .bat e agendar no Windows a rotina para executá-lo diariamente:

forfiles /P "C:\Users\Spoky\AppData\Local\Temp" /S /M *.txt /D -1 /C "cmd /c del @file"

Onde:

  • P: Diretório da da listagem.
  • S: Busca recursiva pelos diretórios a dentro.
  • M: Aplica a máscara *.txt.
  • D: Data da modificação.
  • C: Aplica algum comando para cada resultado da listagem.

Então #FicaDica Smiley piscando

31 de mai. de 2010

IntelliTrace no VS 2010 – Vontando no Tempo #copamicrosoft

image

Pessoal, como um dos 60 finalistas da Copa de Talentos Microsoft, tive a oportunidade de produzir um vídeo, átipicamente divertido, sobre uma novidade do Visual Studio 2010: O IntelliTrace.

Para quem não conhece, o IntelliTrace é uma ferramenta que incrementa o Debugging de código, de tal forma que você pode avançar e também retroceder a execução da aplicação. Além disto éla rastreia toda a execução de threads e eventos dentro do código (como lançamento de exceptions, execução de códigos remotos, execução do asp, etc.).

Me classificando, ou não, para a final, vale a pena dar uma conferida nesta primazia da tecnologia, que agiliza, e muito, a detecção de adversidades dentro dos códigos. Gostaria então de compartilhar com vocês este vídeo:

Gostaria de agradecer minha namorada (Thaisa Silva), minha família e amigos colaboradores da WRA, pelo apoio.

Por enquanto é isso pessoal… be happy ^^

19 de abr. de 2010

.NET Client Profile: Distribuindo Aplicações

Pessoal, com a chegada da nova versão do .NET 4, o pessoal da Microsoft se atentou a um detalhe interessante: A otimização do .NET Framework, ou seja, as bibliotecas necessárias na máquina(s) onde a aplicação irá executar.

A instalação chegava a ter mais de 250Mb na versão 3.5 SP1 do .NET Framework! Lembro-me de um amigo me questionando: “Nossa, para distribuir minha app de 5mb para meu cliente vou ter que gerar um setup com mais de 200mb”.

Mas: “Seus problemas acabaram”!

Acompanhe o gráfico da evolução da “Máquina Virtual” do .NET:

image

Realmente, tivemos ganhos na versão 3.5, mas estava vergonhoso ter uma plataforma base tão grande assim.

Hoje o .NET 4 roda todas as aplicações das versões anteriores (2 à 3.5 SP1) tranquilamente e seu tamanho gira em torno dos 40Mb, acompanhe:

image

Além disso temos mais uma novidade, a versão Client Profile. Esta é a versão para aplicações de Desktop. Ela contém o essencial para uma aplicação WPF ou WinForms funcionar. Além disso ela é menor (obviamente) e mais rápida. Basicamente o que ela faz é eliminar as “coisas” da web (ASP.NET e afins), isto a torna mais segura, pois há uma quantidade reduzida de bibliotecas de execução remota na máquina de execução. Esta versão também é atualizada pelo Windows Update.

E vamos combinar, porque o usuário da aplicações de winforms iria querer as assemblies do ASP.NET na máquina dele!?

Para você usar esta versão, você pode configurar no target framework do seu projeto:

image

Além disso, ela já vem setada por default em aplicações desktop (WPF e Winforms). E as assemblies que aparecem para referência já são filtradas:

image

Espero que isto ajudem vocês a conhecerem melhor o .NET e projetar adequadamente suas aplicações, e sejam felizes: agora sua aplciação + o .NET Framework podem ter menos de 30Mb :)

Abração, até mais!

27 de out. de 2009

Compreendendo um Release

Após a finalização do desenvolvimento de um app , ou a finalização de um ciclo de desenvolvimento, a aplicação tem de ser distribuída.

A distribuição pode ser feita de várias maneira como web, installer ou ClickOnce e é necessário preparar um build.

Quando se prepara um build da sua aplicação, devemos nos atentar em alguns detalhes para distribuir uma aplicação winforms...

Debug ou Release:

image

Release! Por que!? Simples, o Release é uma compilação totalmente otimizada e não contêm nenhuma informação dos símbolos para debug. Isto torna o software mais leve e muito mais rápido.

O Debug por sua vez é uma versão da aplicação que é compilada com a informação completa dos símbolos para debug e não é realizada nenhuma otimização. A otimização dificulta o debug, já que a relação entre o código fonte e as instruções geradas são mais complexas. Por não ter a otimização o programa se torna mais lento e perceptivelmente maior (em um a solução de porte razoável observe a diferênça dos tamnhos de arquivos gerados).  

Vale nos atentar que ambas as distribuições ficam em suas respectivas pastas dentro do diretório Bin do projeto principal (pastas Release e Debug).

Além de uma limpa do código e das anotações de debug, aqui vai um exemplo de otimização que estava exlorando no mestrado:

void FuncaoA()
{
    int a = 10;
    int b = 0;

    for (int i = 0; i < 10; i++)
    {
        int c = FuncaoB(a);
        b = i + c;
    }
}

Ao debugar, podemos colocar um ponto de debug na chamada da FuncaoB() e entrar na mesma. Logo o compilador não pode comprometer este código. Mas ao deixar o compilador otimizar, uma das estratégias que o proprio compilador poderia adotar seria a distribuição das constante e tirar as funções de loops, des de que as mesmas só causem processamento repetido e desnecessário, sem afetar o comportamento da aplicação veja:

void FuncaoA()
{
    int a = FuncaoB(10);
    int b = 0;

    for (int i = 0; i < 10; i++)
    {
        b = i + a;
    }
}

Espero ser de grande ajuda!

T+

16 de out. de 2009

Publicar uma App ASP.NET ao fazer build

Um amigo de trabalho meu, Diego Naujalis (www.naujalis.com.br), questionou-me sobre como publicar um site ASP.NET em um outro servidor (de testes, com IIS) quando ele gera-se um build.

Então eu pensei: ele compartilha a pasta do servidor, se quiser pode até mapear o diretório, e usa o asp compiler para compilar a solução no diretório desejado com o evento de compilação do projeto.

Fiz este teste e funcionou:

- Clique com o botão direito na sua app ASP.NET > Properties

image

- Vá na aba Build Events, e no campo “Post-build event command line” e digite

 

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -f -p "$(SolutionDir)$(SolutionName)" -v / "D:\Temp\spokymvc"

 

image

Salve e compile!

Pronto, tudo funcionando, vamos compreender.

O Build Events de um projeto são “coisas” que acontecerão antes e depois do projeto ser construido/compilado. é um prompt de comando e tem algumas variáveis, como as que usei: $(SolutionDir) e ($SolutionName). A primeira me retorna o diretório da solução (ex: D:\Projetos\Site\), a segunda o nome da solução, ficando assim então quando junta tudo: D:\Projetos\Site\spokymvc.

Como pode ser observado o comando foi colocado no campo post-build, ou seja, depois de compilado.

E eu user o aspnet_compiler.exe, que se encontra no diretório visto (se você preferir pode coloca-lo no Path do Windows). Passei para ele os parametro:

-f = Deleta os arquivos antigos e copia os novo

-p = diretório fisico da app.

-v = diretorio virtual, ou de destino da aplciação se assim preferir

Pronto!?

image

Pronto!

Desculpem a correria, qualquer dúvida perguntem!

24 de set. de 2009

Colocar o MSN em um Site ou Blog

Se você quiser disponibilizar um serviço gratuíto para que as pessoas entrem em seu site ou blog e se comuniquem direto contigo via MSN, a Microsoft disponibiliza este serviço:

image

Este serviço é muito interessante em sites de relacionamento com o cliente, como o de imobiliárias por exemplo.

Acesse: http://settings.messenger.live.com/applications/WebSettings.aspx

e configure este serviço. Será fornecido um código html (um iframe) para você colocar em seu site, blog etc.

23 de set. de 2009

Desbloqueando arquivo via prompt no VSTF

Já se pegou na situação: Um colega de trabalho seu faz checkout de um arquivo que ele não alterou e não fez checkin para o servidor, ele não esta por perto e você precisa de trabalhar em cima deste arquivo!?

Use o comando “undo” do TF que ele desbloqueia ele.

Exemplos:

c:\projects>tf undo 314.cs

c:\projects>tf undo /recursive c:\projects

c:\projects>tf undo /workspace: SeuWorkpace; User $/Projeto/Arquivo.cs

c:\projects>tf undo /workspace: SeuWorkpace; User $/Projeto/*

Ele retorna para a versão do servidor!

image

 image

Para usá-lo você deve ter permissão para tal no workspace.

image

Mais info em:

http://msdn.microsoft.com/en-us/library/c72skhw4(VS.80).aspx

Trocar Serial Visual Studio Team Foundation (VSTF)

image

Uma vez me perguntaram como trocar o serial do Visual Studio Team Foundation (VSTF – O Servidor do Visual Studio), pois muitas pessoas, inclusive Empresas, adotam em um critério de teste e depois não conseguem mais largá-lo :D

Sua versão de teste é excelente. Completa, ela expira em 180 dias.

Após este periodo e avaliação, se desejar adota-lo, basta ir no Add/Remove Programas (Programas e Recursos nos Windows mais novos). Localize o VSTF e mande reparar sua instalação. Logo nas primeiras telas ele já apresenta a tela de seriais para que você possa adotar sua mais nova aquisição/licença/investimento.

Bom projeto a todos!

image

22 de set. de 2009

Themes: Temas para o Visual Studio

image

image

image

Estes são apenas alguns exemplos…

No Visual Studio é possível criar e usar Temas Exportando/Importando as configurações de cores e fontes do Editor!

Como vocês viram no meu post anterior, eu uso um tema mais escuro, cansa menos a vista na minha opinião…fiquem 14 horas diante de uma tela branca *dor nos olhos* X.x

aqui tem alguns temas: http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx

Divirtam-se!

Obs: para importar os temas, após baixá-los, abra o Visual Studio, vá no menu Tools>Import and Exporting Settings…

image

21 de set. de 2009

Colocando o Compilador C# no Path do Windows

Vamos colocar po compilador do c# no path do Windows... como assim?

O Path do Windows é uma linha que contém diretórios de executáveis que podem ser iniciados em qualquer lugar do sistema, simplesmente digitando o nome do aplicativo, ex:

vá em iniciar>executar e digite "cmd", abre-se o prompt de comando!

Isto porque ele está no path do Windows (na verdade o diretório onde ele se encontra está no path do Windows).

Outro teste:

No prompt que você acabou de abrir digite "calc", e a calculadora se abriu sem necessáriamente você navegar até o diretório dela!

Agora que sabemos o que é o path, vejamos o que é o compilador...

Todos estão acostumados a apertar o F5 do visual studio?

Lembrem-se é possível compilar um arquivo.cs (até mesmo vários deles) via linha de comando com o aplicativo csc.exe, e é justamente ele que vamos colocar no path.

O csc vem com a SDK do .NET C#, é o compilador C#, você pode fazer praticamente toda a parte de compilação via linha de comando, inclusive scripts de compilação/build automática! ;)

E para quem usa outras ferramentas que não seja o Visual Studio para desenvolver, provavelmente terá de recorrer a ele.

O problema é que para acessá-lo ou você terá de navegar até o diretório dele (ex: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727), ou pelo menu iniciar (Algo como: Iniciar>Programas>Visual Studio>Visual Studio Tools>Visual Studio Command Prompt).

Vamos colocar no path do windows então:

1. Click no ícone Meu Computador com o mouse da direita e selecione propriedades.

2. Selecione a aba Avançado e click no botão Variáveis de Ambiente.

3. Click no list box Varáveis do Sistema.

4. Adicione no final da linha o path C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 separado por ponto e virgula, dependendo da versão que estiver usando do .NET Framework.

Se você configurou corretamente, digite csc /? e verá a lista de comandos do csc.

Se funcionou teste algo como escrever no bloco de notas uma app de console:

using System;

class TesteApp
{
   public static void Main()
   {
       Console.WriteLine("Testando! 1, 2, 3");
   }
}

Uma vez que tenha finalizado, salve o arquivo em uma pasta (ex: C:\CscExemplo) como TesteApp.cs.
Para compilar TesteApp.cs em uma aplicacão Console chamada TesteApp.exe, estando no diretorio C:\CscExemplo, digite o seguinte commad-line:
csc TesteApp.cs

As possibilidades são muitas, você pode ter preferência de usar outra ferramenta de desenvolvimento, sem precisar necessáriamente que seja o Visual Studio.

Além disto, é possível disparar rotinas de compilação automática mais faculmente… enfim espero que ajude! Abraços...

Referência: http://www.devmedia.com.br/articles/viewcomp.asp?comp=3995&hl