<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1120470238724811704</id><updated>2011-07-28T04:34:35.863-07:00</updated><category term='.NET Javascript MasterPage Popup Opener Navigate'/><title type='text'>.NET Drome</title><subtitle type='html'>Pensamento .NET em Português de Portugal</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotnetdrome.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1120470238724811704/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dotnetdrome.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Guilherme</name><uri>http://www.blogger.com/profile/17457598562920662753</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-6JVY6IuWGVQ/TZRIA7o5FpI/AAAAAAAAANI/eP1Xl0jzCSQ/s220/nytmare_pic.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1120470238724811704.post-8986107023160125420</id><published>2010-02-09T04:20:00.000-08:00</published><updated>2010-02-09T04:32:56.928-08:00</updated><title type='text'>PLINQO, porque trabalhar?</title><content type='html'>Na última semana tive a oportunidade de testar o &lt;a href="http://plinqo.com/"&gt;PLINQO&lt;/a&gt;. Este é de facto um dos melhores templates de &lt;a href="http://www.codesmithtools.com"&gt;CodeSmith&lt;/a&gt; que já testei. Para quem não sabe, o &lt;a href="http://www.codesmithtools.com"&gt;CodeSmith&lt;/a&gt; é uma ferramenta que permite gerar uma panóplia de código automaticamente que, de uma outra forma teríamos de escrever, linha por linha.&lt;br /&gt;Ora, juntando a Framework 3.5 e CodeSmith toda a parte de criação de camadas de acesso a dados já se tinha tornado mais fácil. Agora com o PLINQO, as coisas tornaram-se canja!&lt;br /&gt;&lt;br /&gt;O PLINQO gera toda o acesso a dados usando o LINQ e apetrecha-o com uma serie de novas funcionalidades.&lt;br /&gt;O LINQ to SQL é completamente automático, a partir de uma base de dados existente.&lt;br /&gt;&lt;br /&gt;Bem, melhor do que vos explicar por palavras os pequenos aditivos que o PLINQO trás deico-vos um vídeo muito explicativo do mesmo:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="349"&gt;&lt;param name="movie" value="http://www.youtube.com/v/soNqQGEKqxA&amp;border=1&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/soNqQGEKqxA&amp;border=1&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Vejam, experimentem, e vão ver que depois de experimentarem, não voltam a escrever nem mais uma linha de acesso a dados!&lt;br /&gt;&lt;br /&gt;PLINQO Website: &lt;a href="http://plinqo.com"&gt;http://plinqo.com&lt;/a&gt;&lt;br /&gt;Codesmith Website: &lt;a href="http://www.codesmithtools.com"&gt;http://www.codesmithtools.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Um abraço a todos, e boas gerações de código!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1120470238724811704-8986107023160125420?l=dotnetdrome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdrome.blogspot.com/feeds/8986107023160125420/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1120470238724811704&amp;postID=8986107023160125420' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1120470238724811704/posts/default/8986107023160125420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1120470238724811704/posts/default/8986107023160125420'/><link rel='alternate' type='text/html' href='http://dotnetdrome.blogspot.com/2010/02/plinqo-porque-trabalhar.html' title='PLINQO, porque trabalhar?'/><author><name>Guilherme</name><uri>http://www.blogger.com/profile/17457598562920662753</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-6JVY6IuWGVQ/TZRIA7o5FpI/AAAAAAAAANI/eP1Xl0jzCSQ/s220/nytmare_pic.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1120470238724811704.post-5134044889894019584</id><published>2009-05-04T06:48:00.000-07:00</published><updated>2011-03-31T02:43:39.326-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Javascript MasterPage Popup Opener Navigate'/><title type='text'>1º Post - Javascript: Encontrar a janela Mãe no caso de existirem vários Popups</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;Olá.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Como programador, a minha, ferramenta "mais que tudo", é a Net. Durante os meus alguns anos de programação, tenho verificado que pouco ou quase nada existe, sobre desenvolvimento em  "Português de Portugal".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Assim, começo a deixar aqui o meu contributo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Se alguém estiver interessado em juntar-se a este pequeno projecto, contacte-me, terei todo o gosto em ter ajuda em contribuir ainda um pouco mais.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Agora, vamos ao que interessa:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Num dos meus últimos desenvolvimentos deparei-me com a necessidade de compatibilizar para o máximo de browsers o envio de uma página mãe (com uma ou mais janelas filhas ou child popups) para um endereço especifico enviado pela janela filha (child popup).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Numa situação em que teríamos apenas um popup, poderíamos chamar simplesmente em javascript o comando:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;opener.navigate("o nosso url");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Mas neste caso, acontece em certas situações que temos popups abertos a partir de outros popups, ou seja, teríamos que percorrer todas as janelas abertas associadas ao nosso site, e encontrar qual a principal, ou pretendida, para a enviarmos para o endereço em questão.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Dado que a plataforma ASP.NET, por defeito, dá o nome de 'aspnetForm' à Form da principal no nossa página usando uma MasterPage, este seria o nome a procurar. E assim cheguei ao seguinte código:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Consolas; font-size: 13px; color: rgb(241, 242, 243); background: none repeat scroll 0% 0% rgb(34, 40, 42);"&gt;&lt;span style="color: rgb(147, 199, 99);"&gt;function&lt;/span&gt; findMainForm(startForm) {&lt;br /&gt;    &lt;span style="color: rgb(147, 199, 99);"&gt;var&lt;/span&gt; win = startForm;&lt;br /&gt;    &lt;span style="color: rgb(147, 199, 99);"&gt;var&lt;/span&gt; doc, form;&lt;br /&gt;    &lt;span style="color: rgb(147, 199, 99);"&gt;do&lt;/span&gt; {&lt;br /&gt;        doc = win.document;&lt;br /&gt;        form = doc.forms[&lt;span style="color: rgb(255, 205, 34);"&gt;0&lt;/span&gt;];&lt;br /&gt;        &lt;span style="color: rgb(147, 199, 99);"&gt;if&lt;/span&gt; (form.id == &lt;span style="color: rgb(236, 118, 0);"&gt;'aspnetForm'&lt;/span&gt;) {&lt;br /&gt;            &lt;span style="color: rgb(147, 199, 99);"&gt;return&lt;/span&gt; win;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: rgb(147, 199, 99);"&gt;else&lt;/span&gt; {&lt;br /&gt;            win = win.opener;&lt;br /&gt;        }&lt;br /&gt;    }     &lt;span style="color: rgb(147, 199, 99);"&gt;while&lt;/span&gt; (form.id != &lt;span style="color: rgb(236, 118, 0);"&gt;'aspnetForm'&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Esta função será chamada ao invés do objecto da form, por exemplo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Consolas; font-size: 13px; color: rgb(241, 242, 243); background: none repeat scroll 0% 0% rgb(34, 40, 42);"&gt;&lt;span style="color: rgb(147, 199, 99);"&gt;function&lt;/span&gt; OpenPopUp(ID) {&lt;br /&gt;    findMainForm(window).location = &lt;span style="color: rgb(236, 118, 0);"&gt;'/urlExemplo?ID='&lt;/span&gt; + ID;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;É certo que ainda poderemos optimizar um pouco mais este algoritmo, mas por agora serve. :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;BRGDS&lt;/span&gt;&lt;br /&gt;&lt;img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDQvMDQvMDhrK9wWAAACMElEQVQ4ja3SP2gTcRQH8O8vvUtIGmkqTY3SaMVFz6KDW2ywg4s4dGgXp3SyVLIIthCKQxCCuoZaXaSO/ilKd4sSdXRL0EWtIRYaSkXsJTH33utwSZM01xo0D353v+N+97l33/upQCAwFgwGfehiFYtFUxsYGPCmUqmv3YQTicSwBgCapnXTBQBoSinout5VVCnVDr/44B/OZH0xs6KMThCfR3LRs+aTycjvbwfCmawvduZkn7EwN4TBfheY90fXN6uYuffdyGQRu3apkmyDmzM2K8pYmBvC6kcLK+/KMEsWLCIQMSyLULUIFhH0HsGNycNYnDuO6PRno9lQSsFVh+tDQSEY6MHymzJKFQILgxkgYhALmBnMDLNsIf1sA8cG3VDYYzhFAWWfRBjCAiIbIxYQE1ga17+2GSICKLQYznCtiATEDK6BIrU5MUhgd0+NH+AIt+5jshdqgkpVwEwNkBgs9lyE4XY3nnLMWNf13QEAG1uE2JVe9PUC5JCvCMPrVpifOor1YnW34/pw7NjvVbmZ+3ljcTaMq5EjbRFJ07Gw8QfTd9fg96rc3o7bMh4f9SytvDenLl7/ZADAl5cjWF7dwmy60PaSeiPjo56lv2Ycnzi0Fp9AEgAu39x8+urtT9x5/GP74a2++LlTuumo76kDd4W9ALj9qIDIiOfBhdO+jtB9O279TFcuet77fD7Wn+sU7ajj1+kTSccb/wv/aymloEKh0Fg4HPZ2E87n86Udvs4FoWqwSHUAAAAASUVORK5CYII=" style="position: absolute; visibility: hidden; z-index: 2147483647; left: 370px; top: 996px; font-family: trebuchet ms;" id="kosa-target-image" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1120470238724811704-5134044889894019584?l=dotnetdrome.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetdrome.blogspot.com/feeds/5134044889894019584/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1120470238724811704&amp;postID=5134044889894019584' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1120470238724811704/posts/default/5134044889894019584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1120470238724811704/posts/default/5134044889894019584'/><link rel='alternate' type='text/html' href='http://dotnetdrome.blogspot.com/2009/05/1-post-javascript-encontrar-janela-mae.html' title='1º Post - Javascript: Encontrar a janela Mãe no caso de existirem vários Popups'/><author><name>Guilherme</name><uri>http://www.blogger.com/profile/17457598562920662753</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-6JVY6IuWGVQ/TZRIA7o5FpI/AAAAAAAAANI/eP1Xl0jzCSQ/s220/nytmare_pic.jpg'/></author><thr:total>0</thr:total></entry></feed>
