Diego's profileDiego NeufertPhotosBlogLists Tools Help

Diego Neufert

Sou nerd sim, e dae?
December 20

Questões do processo seletivo do Projeto Mono (.NET no Linux)

Ontem a noite fui apontado pelo colega Eduardo Belinat a um post no blog do Miguel de Icaza (GTK, Gimp e hoje em dia Mono), que falava sobre uma vaga na equipe do Mono na Novell. Neste post ele apontava para um outro post dele mesmo, com algumas questões aplicadas no processo seletivo para o devs no Mono Project.

O interessante é que estas questões podem ser resolvidas em casa, no seu tempo livre, e normalmente você tem uma semana para entrega-las. Ai você pensa "ahhh batata, o cara vai chamar o primo que manja ainda mais de programação pra ajudar...". Bom, quem pensou assim, de uma olhada nas questões e depois tente achar um primo para ajudar. :)

Link pras questões do processo seletivo do Mono: http://tirania.org/blog/archive/2007/Sep-05-2.html

December 18

HappyHour .NET em Curitiba

Aproveitando o final de ano e clima de festa, teremos o primeiro HappyHour.NET em Curitba nesta próxima quinta-feira. Se você estiver disposto a um papo sobre tecnologia, nerdisses e .NET em geral e estiver perto de Curitiba, apareça por lá, você será muito bem vindo.

Estamos aproveitando este gettogether para reunir os primeiros membros do futuro Grupo de Usuários .NET de Curitiba, que ano que vem se reunirá regurlamente nas instalações do MIC - Microsoft Innovation Center de Curitiba.

PS: O chope da Brahma já esta gelando. :D

Mais informações do evento logo abaixo neste post. E não esqueça de confirmar em http://happyhournet.events.live.com. Assim não corremos o risco de faltar mesa :)

Abraços!!

Quote

HappyHour .NET
HappyHour .NET
Hosted by: Grupo de Usuários .NET de Curitiba
Date and time: Thursday, December 20, 2007 at 7:00 PM
Location name: Av Agua Verde, 588, Curitiba - PR, 80240, Brasil
View this event on Windows Live

Herança de Web.config em diretórios virtuais no IIS

Batata! Você foi lá, todo feliz no IIS, criou um diretório virtual com seu próprio Application Pool, fez o upload de sua aplicação ASP.NET e acessou pelo IE pra testar. CRAAAAASHH!! Tela amarela da morte! Você vai verificar o erro e a infeliz aplicação esta "chorando" por uma DLL que você não usa e nem tem referência a mesma o seu web.config. E agora?

Ai você quebra a cabeça, raxa o côco, vira a madrugada e faz a super descoberta: "Caralho! Essa porra vem do web.config que esta no Web Site que hospeda este diretório virtual!!" (palavreado em homenagem ao Capitão Nascimento, pq desenvolvedor é Caveira!!)

E você, com o espírito Caveira, que só umas horas madrugada adentro proporcionam, continua divagando: "Mas esse muleke de ASP.NET ta lendo o Web.config da aplicação errada? Porra, mas eu configurei certo caralho!!! Pede pra sair Web.config!!! Pede pra sair!!!!"

O que rola é o seguinte, o IIS tem por padrão, quando você cria um Diretório Virtual, mesmo com um AppPool diferente, fazer herança de Web.config, ou seja, o que esta declarado no Web.config da aplicação raiz, é "injetado" automaticamente nas aplicações filhas, mesmo com diretório virtual próprio, mais ou menos assim:

image

Na figura temos um IIS com um WebSite configurado. Dentro deste Web Site temos 3 diretórios virtuais, cada qual com seu AppPool. Podemos perceber que o Diretório Virtual 3 tem o Dir. Virtual 2 como pai, que tem o WebSite 1 como pai. Em amarelo temos uma identificação dos web.config's. Sendo assim podemos perceber que o Dir. Virtual 1 herda o web.config do WebSite 1 ficando a hieraquia:

  • Web Site 1 -> Dir Virtual 1 : Web.config (2) herda o (1)
  • Web Site 1 -> Dir Virtual 1 -> Dir Virtual 3 : Web.config (4) herda o (2) que herda o (1)
  • Web Site 1 -> Dir Virtual 2 : Web.config (1) herda o (3)

 

E o que isso quer dizer?

Isto nos diz que se você tem uma referência a um assembly no web.config de seu Web Site, esta referência vai ser herdada para os diretórios virtuais, e se você não tiver esses assemblys no Bin de seu diretório virtual, você verá a nossa amada tela:

image

 

E agora? Quem poderá nos defender?

A tag <location> é nossa super heroina! Mas ela só vira super-herói quando você adiciona um atributo mágico não documentado a ela:

<location inheritInChildApplications="false">

Basta você colocar as diretivas do web.config de seu Web.site, ou seja, o web.config que esta sendo herdado nos diretórios virtuais, dentro da tag <location> com este atributo especial, vale lembrar que este cara só é valido dentro da diretiva <configuration>, fica assim nosso web.config:

<?xml version="1.0"?>
<configuration>
  <location inheritInChildApplications="false">
    <connectionStrings>
        <add name="SQLSERVER" connectionString="..."/>
    </connectionStrings>
    <system.web>
      <customErrors mode="Off"/>
      <compilation debug="true">
        <assemblies>
          <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, 
               PublicKeyToken=31bf3856ad364e35"/>
          <add assembly="Microsoft.Web.Preview, Version=1.1.61025.0, Culture=neutral, 
               PublicKeyToken=31bf3856ad364e35"/>
          <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, 
               PublicKeyToken=B03F5F7F11D50A3A"/>
          <add assembly="eWorld.UI.Compatibility, Version=2.0.6.2393, Culture=neutral, 
               PublicKeyToken=24D65337282035F2"/>
          <add assembly="eWorld.UI, Version=2.0.6.2393, Culture=neutral, 
               PublicKeyToken=24D65337282035F2"/>
        </assemblies>
        <buildProviders>
          <add extension="*.asbx" type="Microsoft.Web.Preview.Services.BridgeBuildProvider"/>
        </buildProviders>
      </compilation>
    </system.web>
    </location>
</configuration>

Pronto, agora seus diretório virtuais não herdam mais o conteúdo que esta dentro desta tag location. :)

Isto é um belo de um RTA "Recursos Técnico Avançado", mais conhecido como xunxo! Seria bacana termos uma maneira de "desligar" essa herança através de uma flag no IIS ou até mesmo apenas uma diretiva no web.config no lugar desse bloco location. Mas o importante é que resolve. :D

Se alguem souber de uma maneira mais elegante de resolver o problema, por favor, deixe comentário. :D

Boa programação :)

Espero ter ajudado,

Diego

December 13

Como foi o TechEd 2007 Brasil?

Consegui um tempo pra postar minhas impressões sobre o TechEd Brasil, quase uma semana depois do evento, o que é quase uma eternidade pra nossa era digital. :P

 teched poster

Minha Palestra

Este foi o segundo TechEd em que palestrei, minha primeira experiência foi ano passado. Estava bem mais tranquilo esse ano, acho que o cara acaba se acostumando, mas é sempre uma baita responsabilidade apresentar pra um público de quase 400 desenvolvedores top do Brasil e do mundo. O ínicio da palestra é sempre um momento tenso, você fica apreensivo até receber os primeiros feedbacks da galera a ai o negocio flui de boa e é só curtir. :)

É sempre muito bom poder compartilhar com a comunidade algum assunto que você tenha estudado, e também aprender truques novos com palestras e com toda a galera que rola oportunidade de conhecer num evento desses.

O PPTX e Demo você pode baixar em post anterior.

Organização

Só tenho que parabenizar a toda equipe do MSDN e TechNet pela organização, cada ano esta melhor, apesar de ser apenas meu terceiro TechEd, o que pude perceber nestes três foi evolução.

 

HOLs

Acabei não tendo tempo para fazer Hands On esse ano, mas com as pessoas que falei a respeito, todas gostaram. Apesar disso achei a participação da galera pequena, todas as vezes que passei pela sala do HOL tinham poucas pessoas, talvez a sala tenha ficado um pouco fora de contexto, escondida no andar de baixo perto da sala dos palestrantes. Ano passado o HOL ficava do lado do Community Lounge o que deu uma boa visibilidade. Se o TechEd 2008 for no mesmo local, fica a sugestão de colocar o HOL na sala de vidro (ao lado do Community Longe) e passar essa sala de palestras lá para baixo. Como o cara seleciona a palestra que vai assistir on-line, antes do evento, não fará tanta diferença a sala ser em cima ou em baixo. Já pro Community Longe a diferença pode ser crucial.

 

Ask The Experts

O Ask the Experts pra mim foi a grande decepção do evento. Onde o público se enfiou? Durante as palestras sempre surgiam muitas e muitas dúvidas, várias delas sem relação qualquer com o assunto da palestra. Mas na hora do Ask não apareceu quase ninguem, acabou virando um encontro de amigos, MVPs, MCTs e funcionários MS. Foi muito bom pra fazer networking, dar belas risadas, reencontrar amigos de outras datas. Mas dúvidas do público foram poucas, pelo menos no Ask the Experts dos Desenvolvedores. Fiquei sabendo que o pessoal de infra compareceu mais. Dado o número de posts nos forums da Microsoft sobre desenvolvimento, quero deixar uma pergunta as pessoas que estavam no evento mas não foram ao Ask the Experts; "Qual o motivo de você não ter comparecido ao Ask the Experts?". Acho que esse feedback pode ajudar a MS para os próximos TechEd.

 

Palestrascenario

Show! Show! Show! Infra das palestras estava fantástica, vi pouquíssimas demos darem pau, palestrantes super bem preparados. Esse ano só faltou a menina avisar o tempo restante da palestra com as plaquinhas de "Faltam 20 minutos" como sempre aconteceu. Alguns palestrantes foram pegos de surpresa com um final subito de sua palestra.

Vejam que show o cenário da sala 7, com direito a dois telões, plano de fundo e bancada exclusiva. :)

 

Público

O que falar sobre o público? 1.200 pessoas, mais 400 na lista de espera e pela primeira vez na história, 15% de participação de público feminino (número da MS, mas acho que eles contaram as atendentes e recepcionistas, hehehe). O saguão e corredores do evento, como já era de se esperar, ficou pequeno pra tanta gente porque todos se concentravam no mesmo lugar, bem em frente ao stand do TechNet. Logo abaixo você vai descobrir o pq de todos ficarem em frente a este stand. :)

Ponto Alto do Eventoloira teched

Como dizem, uma imagem vale mais do que mil palavras, portanto, segue uma foto do ponto alto do evento, stand do TechNet! :D :D (Foto por Arthur Higashiyama)

Só tenho uma coisa a dizer: "Ai que diliiiiiiiicia!!!"

 

Vivendo e Aprendendo

 

O fuzue, comentarios e entusiasmo gerado pelo que vocês veem ao lado só confirma algo que o pessoal da indústria automobilísca já sabe a décadas. Tecnologia é coisa de homem, e homem gosta de tecnologias como essa ao lado, vejam só que lindo monitor de LCD de 19", e o notebook? Perceberam? Processador Core 2 Duo 2Ghz, ultima geração!!! :D :D :D

Que os próximos TechEd tenham cada vez mais tecnologias como essa, assim como já fezem as feiras de automóveis! ;) Garanto que o público vai aumentar.

 

 

Evento fantástico, pena que durou só três dias. Que tal uma semana no próximo? :D :D :D

Deixo um super agradecimento ao Cezar Guimarães, responsável pela track web, pelo convite para participar como palestrante novamente este ano, e a equipe da MSDN Brasil por todo apoio, em especial para Renata Rochel, Rogério Cordeiro e Daniel Ferreira.

Abraço a todos os colegas que conheci e reencontrei neste TechEd. Espero reencontrar todos ano que vem.

-Diego Neufert

December 09

Demos e PPTX - Palestra TechEd 2007 - Entendendo o ASP.NET

Muito obrigado a todos que tiveram a oportunidade de participar do TechEd 2007 e compareceram a minha palestra. Conversamos sobre a infraestrutura do ASP.NET, ciclo de vida de uma aplicação ASP.NET e também do WebForms com demos sobre HttpRuntime, HttpModules, HttpHandlers e Server Controls.

TechEd2007_1 
*Demo de HttpHandlers (foto por Renato Haddad)

 

Como prometido, segue o pptx (Office 2007, quem estiver com o 2003 baixe o plugin aqui) e as demos (VS2008).

 

Espero que a palestra tenha ajudado e que o material permita vocês se aprofundem no assunto.

Abraço,
Diego Neufert
Microsoft MVP

 

Diego Neufert

Occupation
Location
Photo 1 of 10