<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Profissionais TI - Pra quem respira informação &#187; Marcelo Bernart Schmidt</title>
	<atom:link href="http://www.profissionaisti.com.br/author/marcelo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.profissionaisti.com.br</link>
	<description>Pra quem respira informação</description>
	<lastBuildDate>Fri, 10 Feb 2012 16:02:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Futuro ASP.net: WebForms ou MVC?</title>
		<link>http://www.profissionaisti.com.br/2011/01/futuro-asp-net-webforms-ou-mvc/</link>
		<comments>http://www.profissionaisti.com.br/2011/01/futuro-asp-net-webforms-ou-mvc/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 11:09:11 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Webforms]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=14809</guid>
		<description><![CDATA[Olá e um feliz ano novo caros amigos do PTI! O post de hoje é sobre a mais nova discussão dos programadores .Net. Amigos, essa discussão é tão épica quanto as tradicionais Pelé ou Maradona para os futebolísticos (eu),  Ragnarok ou Priston Tale para os Old Geeks (eu) ou ainda férias no ap. de NY [...]]]></description>
			<content:encoded><![CDATA[<p>Olá e um feliz ano novo caros amigos do <strong>PTI</strong>!</p>
<p>O post de hoje é sobre a mais nova discussão dos programadores .Net.</p>
<p>Amigos, essa discussão é tão épica quanto as tradicionais Pelé ou Maradona para os futebolísticos (eu),  Ragnarok ou Priston Tale para os Old Geeks (eu) ou ainda férias no ap. de NY ou Miami (piada, né?).</p>
<p>Eu, como desenvolvedor desktop há quase 5 anos, não posso deixar de exaltar a mão na roda que o WebForm foi pra mim. Arrasta aqui, cria DataSource ali, pagina o grid, Membership control lá e Validation Controls acolá. Fim. Engraçado Marcelo, você fala de WebForms e tem a covardia de não citar os controles Ajax. O que é melhor do que escrever uma tag HTML que tudo que estiver dentro dela funcionará de forma assíncrona com o servidor? E ainda por cima, ao invés de eu escrever Javascript, escreverei C# manipulando o JSON apenas no retorno e só quando for preciso. Eu lhe respondo: melhor que isso, é ter controle de tudo isso.</p>
<p>Baseado nas leituras/experiências que venho tendo nos últimos raros projetos WEB que participo, compartilharei com vocês algumas observações sobre WebForms e MVC:</p>
<ul>
<li> Nunca tenha um projeto parte MVC, parte WebForm. Ponto de vista técnico: OK. Ponto de vista de manutenção: Catástrofe de proporções bíblicas;</li>
<li>Se o projeto é novo e a sua equipe não está acostumada com linguagens gerenciadas pelo .Net (vide C#, C++ e VB), aconselho o uso de WebForms. O framework MVC foi programado em C# e faz uso extensivo de recursos complexos da plataforma, como Delegates e Events, Métodos de Extensão (lembre-se dos HtmlHelpers), Lambda Expressions etc. Observe, <strong>não </strong>estou encoranjando você de não aprender estes termos, estou apenas sendo realista. Os projetos sempre são pra <strong>ontem</strong> e quanto mais conhecimento você adquire em menos tempo, melhor. E acredite amigo, são assuntos complexos (para de se achar leitor .Net, admita que você comeu unhas ao ver estes termos pela primeira vez);</li>
<li>Uso intenso de Ajax? WebForms por favor. <strong>Atenção: </strong> Essa minha afirmação tende a ficar arcaica a cada minuto que passa.</li>
<li>O WebForms foi destinado a programadores Desktop. Se você conhece C# e já está acostumado a lógica HTTP &#8211; Request e Reponse, Client e Server,  feche os olhos para WebForms e caia de cabeça no MVC. A learning Curve é rápida, a padronização é séria e você tem controle <strong>total</strong> do html gerado. </li>
<li>Necessita de modularização total no seu software? Use MVC. A microsoft seguiu a risca a programação para interfaces e abstract classes. As classes são todas fechadas para modificação e abertas para extensão, de forma que todo o Framework é plugável. </li>
<li>No MVC você pode utilizar Design Patterns com mais naturalidade. As  Views não são engessadas que nem os aspx dos WebForms. Em contra partida,  diga adeus a aqueles seus &#8220;Server Controls&#8221; favoritos.</li>
<li>Marcelo! Minha página tem 9845104 kbytes! Apesar de poder desabilitar o ViewState, o WebForm faz uso de uma sequência absurda de eventos e roundtrips client/server. <strong>Atenção:</strong> não estou afirmando que o MVC roda mais rápido que o WebForms, apenas que as páginas ocupam menos espaço. Se você acha que estou sendo ambíguo, saiba que o MVC usa reflection com manipulação de strings pra alcançar as páginas, enquanto no WebForms é simplesmente escolhido o arquivo o que é anos luz mais rápido.</li>
<li>O MVC foi projetado para adequar cada partezinha a um Test Unitário. Ponto final.</li>
</ul>
<p>Amigo leitor, estas foram algumas breves observações trazendo alguns prós e contras destes caras.</p>
<p>Se você leu tudo e entendeu, tenho três teorias :</p>
<p>1)Você não tem mais nada pra fazer.<br />
2)Você vai esquecer tudo isso e vai pro PHP. <br />
3)Você vai aprender <strong>AGORA </strong>mesmo <strong>MVC</strong> e vai jurar nunca mais adiar aquela semaninha de estudo do Design Pattern mais admirado e usado no mundo.</p>
<p><em>&#8220;Eu devia ter sido fazendeiro, assim como meu pai me disse.&#8221;</em></p>
<p>Um abraço</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2011/01/futuro-asp-net-webforms-ou-mvc/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Otimize suas aplicações usando Threads</title>
		<link>http://www.profissionaisti.com.br/2010/10/otimize-suas-aplicacoes-usando-threads/</link>
		<comments>http://www.profissionaisti.com.br/2010/10/otimize-suas-aplicacoes-usando-threads/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 09:59:17 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Papinho de TI]]></category>
		<category><![CDATA[Utilidades]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Threads]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=13546</guid>
		<description><![CDATA[Salve amigos do PTI! Bem, serei direto. Thread pra quem não conhece é um stream independente a qual implica em conjunto de instruções que rodam em paralelo. Existem diversas situações onde é extremamente necessário o uso de Threads como, por exemplo, situações onde a UI deve ser responsiva enquanto o servidor não responde, ou ainda [...]]]></description>
			<content:encoded><![CDATA[<p>Salve amigos do PTI!</p>
<p>Bem, serei direto.  Thread pra quem não conhece é um stream independente a qual implica em conjunto de instruções que rodam em paralelo. Existem diversas situações onde é extremamente necessário o uso de Threads como, por exemplo, situações onde a UI deve ser responsiva enquanto o servidor não responde, ou ainda em situações que requerem uma espera de recursos, como uso de arquivos ou um fetch do banco de dados.</p>
<p>Outra grande utilização é para threads que necessitam altíssima performance com cálculos matématicos.  O motivo que venho a escrever este artigo, é para alertar a todos do mal uso de Threads. Vejo uma série de práticas mal formuladas e gostaria de compartilhar com vocês algumas dicas. Lembrando que estas dicas são mais voltadas a plataformas Desktop e servem para qualquer programador que faz target a windows e usa suas API&#8217;s, seja programado em delphi, vb, c, c++, java, c# etc..</p>
<ol>
<li><strong>Evite criar Threads sem motivos aparentes.</strong> Um programa com um número alto de threads sobrecarrega o escalonador que ficará mais tempo trocando a linha de execução do que realizando o processamento propriamente dito.</li>
<li><strong>Evite de mudar a prioridade da threads.</strong> Isso é tarefa do sistema operacional, é ele que deve ditar o time slice de processamento. Com raras exceções, troque a prioridade da thread, mas depois retorna a sua opção default.</li>
<li><strong>Evite usar objetos Kernel (Mutex, Semaphore)</strong>, com exceção da necessidade de uso de cross-processing messages, ou seja, quando as threads precisam conversar entre processos diferentes. (Lembrando que as threads são criadas &#8220;dentro&#8221; dos processos e que compartilham a pilha de memória, mas não conversam entre processos, a não ser que Kernel Objects sejam usados)</li>
<li><strong>Evite o uso de Foreground Threads.</strong> OH MY GOD, WHAT THE HELL IS THAT?! Foreground threads são as threads que continuam a executar quando a &#8220;main&#8221; thread termina. Um exemplo claro disso é o Outlook, que continua a rodar a thread de organizar a agenda mesmo quando o programa é fechado. Uma alternativa para isto é utilizar background threads, que finalizam a execução assim que a main thread termina. Exemplo: Spell-Checker do Word, que realmente não faz sentido continuar a execução após o usuário fechar o winword.exe.</li>
</ol>
<p>Seja qual for a linguagem, ou qual for a API que vocês utilizarem, tomem atenção nestas dicas. Eu garanto pra vocês que o programa rodará mais rápido e que ações inusitadas ocorrerão com menos frequência <img src='http://www.profissionaisti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Plante uma árvore <img src='http://www.profissionaisti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Forte abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2010/10/otimize-suas-aplicacoes-usando-threads/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ajax/Javascript orientado a objeto com Asp.Net 3.5</title>
		<link>http://www.profissionaisti.com.br/2010/04/ajax-javascript-orientado-a-objeto-com-asp-net-3-5/</link>
		<comments>http://www.profissionaisti.com.br/2010/04/ajax-javascript-orientado-a-objeto-com-asp-net-3-5/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 11:12:42 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=8140</guid>
		<description><![CDATA[Para os que ja sabiam, nenhuma novidade. Para os que estão migrando de forms para web somente agora, um espanto! Como todos nós sabemos, é completamente impossível criarmos um grande web project com lógica apenas do lado do servidor. Sempre vai ter aquele javascript besta pras tarefas mais pentelhas do mundo e não incluo apenas [...]]]></description>
			<content:encoded><![CDATA[<p>Para os que ja sabiam, nenhuma novidade. Para os que estão migrando de forms para web somente agora, um espanto!</p>
<p>Como todos nós sabemos, é completamente impossível criarmos um grande web project com lógica apenas do lado do servidor. Sempre vai ter aquele javascript besta pras tarefas mais pentelhas do mundo e não incluo apenas validações mais também JSON (JavaScript Object Notation). Para os mestres do php como o grande idealizador do nosso site, Jackson Caset, &#8220;frameworks&#8221; como JQuery são triviais devido as funções de Ajax/DOM, compatibilidade entre navegadores e melhor implementação de css&#8217;s1/2/3. O php é direto, rápido e produtivo e o jquery combina com tudo isso, apesar deste último possuir uma learning curve um pouco maior que a do php.</p>
<p>Porém, para os javeiros e programadores .Net, que entraram no ciclo interminável de criação de milhares de classes, cada uma com suas responsabilizações, o uso do JQuery e em si do próprio Javascript, tem se tornado difícil e despadronizado, afinal não é uma linguagem orientada a objeto, sem recursos de herança(classes, interfaces, eventos, delegates).</p>
<p>Para resolver este problema, a Microsoft criou o Microsoft Ajax Library, uma biblioteca javascript que permite que seus aspx contenham arquivos javascript embutidos orientados a objeto e que possuem total compatibilidade com user controls.</p>
<p>O arquivo javascript é todo baseado em namespaces (packages do java), e cada necessita registro via classe type, ou seja até para as tarefas mais triviais o conceito de métodos e referência ja deixa qualquer desenvolvedor OO com carinha de bobo.</p>
<p>Demonstraremos agora, um exemplo simples de um componente que realiza a verificação da segurança da senha do usuário baseada na quantidade de caracteres. Claro, via ICallbackEventHandler podemos obter este comportamento, mas lembrando que esta interface nos permite que apenas uma string seja setada (não vale serializar em XML haha!!!)</p>
<pre class="brush: jscript;">
Type.registerNamespace(&quot;AjaxOrientadoObjeto&quot;);
//cria constructor de um componente
AjaxOrientadoObjeto.ComponenteDeSenha = function() {
AjaxOrientadoObjeto.ComponenteDeSenha .initializeBase(this);
}
</pre>
<p>Aqui registramos o nosso namespace e criamos uma definição de construtor de um componente. Ali dentro, chamamos o construtor da classe pai do componente a qual estamos herdando.</p>
<pre class="brush: jscript;">
//define a classe e suas propriedades
AjaxOrientadoObjeto.ComponenteDeSenha .prototype = {
initialize: function() {
//inicialização
AjaxOrientadoObjeto.ComponenteDeSenha .callBaseMethod(this, 'initialize');
},
returnPasswordStrength: function(password) {
var strPass = new String(password.toString());
if (strPass.length &lt; 5 ) {
return &quot;Senha fraca&quot;;
}
else {
if (strPass.length &lt; 8 ) {
return &quot;Senha média&quot;;
}
else {
return &quot;Forte&quot;;
}
}
},
dispose: function() {
//adiciona código para liberação de recursos
AjaxOrientadoObjeto.ComponenteDeSenha .callBaseMethod(this, 'dispose');
}
}
</pre>
<p>WoW! Temos um dispose, um initialize, propriedades e método implementado.</p>
<p>O ultimo passo agora é registrarmos no namespace Sys.Component (que diz a respeito do Control que iremos atribuir funcionalidade).</p>
<pre class="brush: jscript;">
AjaxOrientadoObjeto.ComponenteDeSenha .registerClass(
'AjaxOrientadoObjeto.ComponenteDeSenha ', Sys.Component);
//este bloco é necessário para notificar que o script foi realmente carregado
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
</pre>
<p>Feito isso, crie seu aspx e adicione o ScriptManager (dentro do form, é claro) a qual referenciará seu javascript.</p>
<p>Feito isso, vamos a marcação aspx!</p>
<p><code>&lt;div style="font-size: large; font-weight: bold"&gt;User Login&lt;/div&gt;</code><br />
<code>&lt;hr /&gt;</code><br />
<code>&lt;br /&gt;</code><br />
<code>User Name:</code><br />
<code>&lt;br /&gt;</code><br />
<code>&lt;asp:TextBox ID="TextBoxUserName" runat="server" Width="200"&gt;&lt;/asp:TextBox&gt;</code><br />
<code>&lt;br /&gt;</code><br />
<code>Password:</code><br />
<code>&lt;br /&gt;</code><br />
<code>&lt;asp:TextBox ID="TextBoxPassword" runat="server"</code><br />
<code>TextMode="Password" onkeyup=”_OnKeypress()” Width="200"&gt;&lt;/asp:TextBox&gt;</code><br />
<code>&lt;asp:Label runat="server" Text=""&gt;&lt;/asp:Label&gt;</code><br />
<code>&lt;br /&gt;</code><br />
<code>&lt;input id="Button1" value="Submit" /&gt;</code></p>
<p>Repare que a TextBoxPassword, apesar de estar marcada como controle do servidor, usa um evento onkeyup, pois sua<br />
renderização html será um input type=&#8221;text&#8221;.</p>
<p>E agora, chegou a hora. O grande momento em que o programador asp.net pode criar tags script usando código orientado a objeto.</p>
<pre class="brush: jscript;">
function _OnKeypress() {
var checker = new AjaxEnabled.PasswordStrengthComponent();
var pass = document.getElementById(&quot;TextBoxPassword&quot;).value;
var strength = checker.returnPasswordStrength(pass);
document.getElementById(&quot;LabelStrength&quot;).innerText = strength;
}
</pre>
<p>É eu sei. Não é muito diferente do que você esperava. O grande poder desta library só é visto quando a complexidade do ambiente é alta, mas de qualquer forma, criamos classes, métodos, propriedades, variáveis, disposes, initializations, e overrides.</p>
<p>Espero que tenham gostado. E como diz o grande Macoratti :<br />
Eu sei, é so asp.net. Mas eu gosto <img src='http://www.profissionaisti.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Fortíssimo abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2010/04/ajax-javascript-orientado-a-objeto-com-asp-net-3-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Certificação .NET: O caminho das pedras</title>
		<link>http://www.profissionaisti.com.br/2010/02/certificacao-net-o-caminho-das-pedras/</link>
		<comments>http://www.profissionaisti.com.br/2010/02/certificacao-net-o-caminho-das-pedras/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 09:00:08 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Certificação]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=5555</guid>
		<description><![CDATA[QUAIS AS VANTAGENS EM SER UM PROFISSIONAL CERTIFICADO? Segundo estudos realizados pelo instituto de pesquisas International Data Corp (IDC) e pela Universidade de Southern Illinois, nos EUA, mostram que os profissionais certificados pela Microsoft (Microsoft Certified Professional, ou MCP) foram considerados mais produtivos que outros não-certificados, atendendo 30% mais das requisições de help desk e [...]]]></description>
			<content:encoded><![CDATA[<p>QUAIS AS VANTAGENS EM SER UM PROFISSIONAL CERTIFICADO?</p>
<p>Segundo estudos realizados pelo instituto de pesquisas International Data Corp (IDC) e pela Universidade de Southern Illinois, nos EUA, mostram que os profissionais certificados pela Microsoft (Microsoft Certified Professional, ou MCP) foram considerados mais produtivos que outros não-certificados, atendendo 30% mais das requisições de help desk e reduzindo os custos dos departamentos de informática em aproximadamente US$ 2,530 ao ano, por servidor. Para 84% dos empregadores entrevistados, os MCPs são mais produtivos em sua área de certificação. Além disso, a certificação Microsoft oferece aos indivíduos credibilidade profissional e melhores salários, já que algumas empresas pagam cerca de 20% a mais aos profissionais certificados.</p>
<p>&#8220;Um meio eficaz de comprovar o sucesso do programa de certificação é através de estudos confiáveis que exploram e apontam os resultados positivos&#8221;, destaca Rebecca Segal, diretora de serviços de consultoria corporativa do IDC. &#8220;Recente estudo do IDC confirma que as empresas que admitem profissionais certificados pela Microsoft garantem maior produtividade no help desk e menor tempo de manutenção do servidor. Isso se traduz em economia de custo aos empregadores, que compensam treinamento, testes e custos indiretos associados à certificação. O processo de certificação representa um ganho para ambos, empregado e empregador&#8221;.</p>
<p>Fonte: microsoft.com</p>
<p>O CAMINHO DAS PEDRAS</p>
<p><strong> </strong> Para todo e qualquer profissional que deseja certificar-se na tecnologia .Net, o mesmo deve começar pela 70-536. Após concluir com êxito o exame, você se torna um Microsoft Certified Partner, mas ainda não tem direito há nenhum certificado. A Microsoft possui uma hierarquia de certificação .Net e todas começam pela mesma.  Após adquirir a mesma, você pode se especializar nas áreas :</p>
<p>Desktop :</p>
<ul>
<li>Windows Forms</li>
<li>WPF</li>
</ul>
<p>Web :</p>
<ul>
<li>Asp.net</li>
</ul>
<p>Aplicação Distribuída</p>
<ul>
<li>Aplicação Distribuída</li>
<li>WCF</li>
<li>WWF</li>
</ul>
<p>Banco de dados</p>
<ul>
<li>ADO.NET</li>
</ul>
<p><strong> </strong></p>
<p>POR QUE É OBRIGATÓRIO TER A 70-536?</p>
<p><strong> </strong> A certificação 70-536 trata o framework como um todo. Todos os tipos de desenvolvedores estarão aptos a encarar esse desafio. Desenvolvedores juniores, seniores e até mesmo plenos, nas áreas WEB, Desktop e aplicação destribuída. Esta exame ficou disponível em março de 2006. e está disponível em Inglês, francês, alemão, japonês e chinês (simplificado). A 70-536 foi projetada para medir o conhecimento dos fundamentos NET e não está vinculado a uma versão específica do. NET. Desde que o exame passou a ser aplicável tanto para a Microsoft. NET Framework 2.0 e Microsoft. NET Framework 3. Se você é um desenvolvedor NET 2.0, você não precisa aprender. NET 3.5 para passar no Exame 70-536, inversamente, se você for um. 3,5 desenvolvedor NET, você não precisa de revisão. NET 2.0 para passar no exame.</p>
<p><strong> </strong></p>
<p>QUAL É A NOVA GERAÇÃO DE CERTIFICAÇÃO E TECNOLOGIA?</p>
<p><strong> </strong> A nova geração de certificações ainda se baseia na 70-536. As “evoluções” consistem nas tecnologias WPF, WCF, LINQ etc como mostra a figura a seguir, que representa as novas camadas da plataforma:</p>
<p><img src="http://guy.dotnet-expertise.com/content/binary/DotNetFramework35.png" alt="certificacao " width="550" height="337" /></p>
<p>E lembrem-se, faculdade e certificações estão transitando de diferenciais para requisitos de um profissional.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2010/02/certificacao-net-o-caminho-das-pedras/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Programas úteis para o dia-a-dia</title>
		<link>http://www.profissionaisti.com.br/2009/07/programas-uteis-para-o-dia-a-dia/</link>
		<comments>http://www.profissionaisti.com.br/2009/07/programas-uteis-para-o-dia-a-dia/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 09:00:11 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Dia-a-Dia]]></category>
		<category><![CDATA[Utilidades]]></category>
		<category><![CDATA[Programas]]></category>
		<category><![CDATA[Utilitários]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=3564</guid>
		<description><![CDATA[Olá pessoal do PTI! Indo à casa dos meus tios ao Sábado de manhã, eu esperava ter um dia de sussego. Porém, ao chegar lá me deparei com meus 6 primos(sim, você leu seis) perguntando mil e uma coisas sobre computador, bem no estilo de: &#8220;Como eu arrumo isso?&#8221; ou ainda &#8220;Como eu baixo isso?&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Olá  pessoal do PTI!</p>
<p align="justify">Indo à casa dos meus tios ao Sábado de manhã, eu esperava ter um dia de sussego. Porém, ao chegar lá me deparei com meus 6 primos(sim, você leu seis) perguntando mil e uma coisas sobre computador, bem no estilo de:  &#8220;Como eu arrumo isso?&#8221; ou ainda &#8220;Como eu baixo isso?&#8221;. Acabei passando o dia inteiro baixando diversos programas pra resolver o problema do pessoal. O serviço acabou satisfazendo a manada, o que resultou em mais trabalho no dia seguinte, o tão então sagrado domingo. Portanto, decidi fazer uma lista com os programas mais úteis na minha opinião, todos é claro, voltados ao uso doméstico.</p>
<p align="justify">1) <strong>DAEMON TOOLS</strong>.   Esse ai é tão útil, mas tão util que devia vir com o Windows. Aos leigos como eu, imagine que ele simplesmente &#8220;passa a perna&#8221; no sistema operacional fazendo com que você emule a imagem de um cd ou dvd. Logo, você pode rodar aqueles executáveis que vivem te pedindo &#8220;INSERT CD&#8221;.  Existe até um plugin chamado ISO MAKER PLUGIN  que é um add-in para o daemon tools criar imagens de disco!</p>
<p align="justify">2) <strong>REVO UNINSTALLER</strong>.  Indispensável.  Como todos sabem, o Desinstalador do Windows apenas executa o desinstalador do software. E os registros? E os arquivos extras criados pelo programa? O REVO UNINSTALLER é um software de desinstalação, que além de executar o desinstalador padrão, retira informações do sistema operacional excluindo assim 99% dos arquivos e registros. Abaixo, observe o dano causado pelo desinstalador do Visual Studio 2005, que é invocado pelo desinstalador do Windows. Nestas figuras temos respectivamente os arquivos que sobraram, e em seguida os registros. Veja que insanidade:</p>
<p align="justify"><img class="aligncenter size-full wp-image-3566" title="Tela 1!" src="http://www.profissionaisti.com.br/wp-content/uploads/2009/07/programas1.jpg" alt="Tela 1!" width="563" height="373" />992 Arquivos&#8230;</p>
<p align="justify"><img class="aligncenter size-full wp-image-3567" title="Tela 2!" src="http://www.profissionaisti.com.br/wp-content/uploads/2009/07/programas2.jpg" alt="Tela 2!" width="566" height="357" />9736 Registros&#8230;</p>
<p align="justify">3) <strong>IMAGE CONVERTER PLUS</strong>. Na minha opinião, apesar de ser o mais pesado, é a mais poderosa ferramenta gratuita de conversão de imagem. Não há muito o que falar, mas só de saber que existem mais de 30 formatos e entre esses umas 50 transformações de um formato para o outro e vice-versa, já se fica claro que esse software é poderosíssimo. </p>
<p align="justify">4) <strong>HAMACHI</strong>.  Imagine um arquivo de 800kb que você baixa da internet, instala em 12 segundos e a partir dai se tem um emulação de conexão física entre computadores, sem necessidade de cabos ou roteadores. Você pode administrar um sistema, com pessoas de outro mundo, com as mesmas opções de uma rede normal! É indispensável também aqueles que adoram um joguinho online, sem necessidade de baixar um servidor para se jogar. É incrivel como você configura tudo em menos de 1 minuto. </p>
<p align="justify">5) <strong>Icon Processor</strong>.   Cria Icones ao se informar uma imagem. Aceita mais formatos do que o PI aceita casas decimais. </p>
<p align="justify">6) <strong>CCleaner</strong>.  Limpador de registro e arquivos temp. Ainda possui opção de reparar registros!  Baixe-o e execute a limpeza. Se é a primeira vez que estás usando, espere limpar mais de 1GB de dados inúteis que você nunca vai utilizar e que estão ali..sobrando. </p>
<p align="justify">7) <strong>Advanced SystemCare Free</strong>  </p>
<p align="justify"> <img src='http://www.profissionaisti.com.br/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> <strong>BumbTop</strong></p>
<p align="justify">Esses ai não basta falar, é preciso baixar. </p>
<p align="justify">E nossa lista fica por aqui! Com certeza alguns de vocês lerão e dirão  &#8220;Meu Deus, esse dromedário esqueceu de falar do software xyz!!&#8221;. Isso com certeza vai existir. Mas para dar um upgrade no conhecimento de todos, postem o software que vocês acham útil, que é free e para uso geral nos comments e vamos compartilhar conhecimento!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2009/07/programas-uteis-para-o-dia-a-dia/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>.NET no Vale do Itajaí, por que não migrar?</title>
		<link>http://www.profissionaisti.com.br/2009/07/net-no-vale-do-itajai-porque-nao-migrar/</link>
		<comments>http://www.profissionaisti.com.br/2009/07/net-no-vale-do-itajai-porque-nao-migrar/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 01:47:34 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tendências]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[migração]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=3250</guid>
		<description><![CDATA[A princípio, para esclarecimento geral, este texto refere-se a migração de sistemas atuais que implementam .Net 1.0 e 1.1 para seus &#8220;updates&#8221; e não migração de outras linguagens de programação para .Net. Cada linguagem é específica para certos contextos, seria arrogante julgarmos qual linguagem é a melhor de todas, pois não há. Nos dias de [...]]]></description>
			<content:encoded><![CDATA[<p>A princípio, para esclarecimento geral, este texto refere-se a migração de sistemas atuais que implementam .Net 1.0 e 1.1 para seus &#8220;updates&#8221; e não migração de outras linguagens de programação para .Net. Cada linguagem é específica para certos contextos, seria arrogante julgarmos qual linguagem é a melhor de todas, pois não há.</p>
<p>Nos dias de hoje, a tecnologia atingiu níveis extraordinários em todos os pontos. E a economia é um deles, tanto que entre as cinco empresas que possuem o maior produto interno bruto, três são da área de informática. A líder absoluta é a Microsoft com 84,6 bilhões de dólares, quase cinco vezes mais que o Google, segundo colocado. Tal empresa, na era em que vivemos, onde software vale mais que hardware, criou em 1999, uma idéia que unia interoperabilidade, facilidade, desempenho de aplicação, e abstração com o uso da orientação a objeto : Microsoft .NET Framework.</p>
<p>A idéia de Framework orientado a objeto denomina-se um conjunto de classes com objetivos de reutilização de design, o qual supre a necessidade de uma arquitetura em um domínio de certo software.</p>
<p>O Microsoft .Net Framework em termos de usabilidade, anda crescendo em média, 6% ao mês desde o início do primeiro Framework, o 1.0. Após tal versão, as versões 1.1, 2.0, 3.0 e 3.5 foram lançadas e bem aceitas no mercado. Porém, problemas relacionados à compatibilidade foram surgindo perante versões.</p>
<p>A medida que as empresas foram aderindo a tecnologia .Net, a Microsoft percebendo tal crescimento não parou na produção do Framework, a qual é programado 99% em C#. Tal linguagem se dissipou e hoje é uma das potências. O grande problema nascia quando testes internos na própria Microsoft foram constatando elementos deprecados/obsoletos em seu código fonte, e certamente atualizados em versões sucessoras, ou seja, os novos frameworks, além de diversas outras qualidades, possuem um grau elevadíssimo de tratamento de falhas. A produtividade foi outra que se pode dizer, evoluiu exponencialmente.</p>
<p>Se são tantas as vantagens, porque não atualizar a &#8220;fortaleza do código fonte&#8221;? As dúvidas existem e motivos, muitas vezes mal formulados acompanham tal teoria sobre não evoluir.</p>
<p>O problema é, na real, uma questão didática.</p>
<p>É de se esperar que o mercado careça de especialistas no assunto, pois é uma tecnologia nova. Se as empresas necessitam de lucro para sobreviver, não há motivos para não adotar o que a empresa mais rica do planeta tem a nos oferecer em suas novas versões, pois de dinheiro, infelizmente ela entende.</p>
<p>E é por toda essa confusão na era informática que deveria ter sido fazendeiro, assim como meu pai me disse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2009/07/net-no-vale-do-itajai-porque-nao-migrar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Desenvolvedor ou Usuário?</title>
		<link>http://www.profissionaisti.com.br/2009/05/desenvolvedor-ou-usuario/</link>
		<comments>http://www.profissionaisti.com.br/2009/05/desenvolvedor-ou-usuario/#comments</comments>
		<pubDate>Fri, 01 May 2009 10:10:15 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dia-a-Dia]]></category>
		<category><![CDATA[Usuário]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=2249</guid>
		<description><![CDATA[Olá amigos do PTI! Esses dias andava vendo algumas matérias sobre compiladores e algumas das mais novas ferramentas de desenvolvimento que estão chegando ao mercado. E é claro, não pude deixar de olhar a ferramenta mais esperada por mim. E falando nela, alguém aí já viu alguma matéria sobre o Visual Studio 2010? Para não [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Olá amigos do PTI!</p>
<p style="text-align: justify;">Esses dias andava vendo algumas matérias sobre compiladores e algumas das mais novas ferramentas de desenvolvimento que estão chegando ao mercado. E é claro, não pude deixar de olhar a ferramenta mais esperada por mim. E falando nela, alguém aí já viu alguma matéria sobre o Visual Studio 2010?</p>
<p style="text-align: justify;">Para não desfocar do enredo principal, vou direto ao ponto. Qualquer, mas <strong>qualquer um</strong> conseguirá criar um formulário naquilo. E não é só no VS não.</p>
<p style="text-align: justify;">Todas as ferramentas de hoje em dia estão oferecendo o famoso &#8220;arrasta-e-solta&#8221;. O VS, por exemplo, permiti-lhe criar mais de 12 componentes e quase 500 linhas de código, todas documentadas, na criação de uma base de dados. É DataSource pra cá, TableAdapter pra lá, OleDbConnection acolá e SqlCommand pra não sei quantas mil linhas.</p>
<p style="text-align: justify;">Qual o objetivo disso tudo? Praticidade.</p>
<p style="text-align: justify;">Isso é tão verdade, que as empresas estão criando seus próprios frameworks, para muitas vezes, espantar a demanda de serviços considerados repetitivos, como arrastar um botão e dar-lhe uma função. Está deprecado! As ferramentas estão fazendo tudo, e não se costuma demorar mais de 5 minutos para tais tarefas. O mercado não aceita mais que isso. O mercado NÃO se adapta a isso. Por isso que snippets e frameworks estão cada vez mais sendo utilizados, para que a idéia de reinventar a roda seja banida dos conceitos contemporâneos. </p>
<p style="text-align: justify;">Agora paramos para pensar. Um usuário um pouco mais &#8220;metido&#8221;, já cria um form, arrasta botões, define propriedades, monta wizards e até Windows Services se souber por onde começar. E isso tudo sem uma linha de código sequer. </p>
<p style="text-align: justify;">E onde ficará nossa função de programadores? Onde nós, os OSP &#8211; Old School’s Programmers &#8211; iremos parar?</p>
<p style="text-align: justify;">Fico feliz em dizer que é na regra de negócio, na engenharia de software e em todas as camadas que demonstram o <em>core</em> do Sistema. Essas ferramentas estão eliminando cada vez mais a chatice, e por sua vez, o mercado sofre com isso. &#8220;Programadores de Interface&#8221; estão deixando de existir, e o pulo do gato está sendo o conhecimento, a lógica e o desenvolvimento das técnicas programáticas.</p>
<p style="text-align: justify;">Será que o termo &#8220;programador&#8221; é bem empregado agora? Será que Desenvolvedor não seria a palavra certa? </p>
<p style="text-align: justify;">É pensando nisso tudo que acho que eu deveria ter sido fazendeiro que nem meu pai me disse.</p>
<p style="text-align: justify;">Um grande abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2009/05/desenvolvedor-ou-usuario/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Engenharia de Software: Ferramentas de Design de Software</title>
		<link>http://www.profissionaisti.com.br/2009/04/engenharia-de-software-ferramentas-design-software/</link>
		<comments>http://www.profissionaisti.com.br/2009/04/engenharia-de-software-ferramentas-design-software/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 11:59:00 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[Métricas]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=2122</guid>
		<description><![CDATA[Após ler a matéria do diretor da Phidelis, o grande Alisson Vale, da revista Mundo.Net, a qual questiona o porquê de se medir softwares (referente a design de código fonte), acabei chegando a uma conclusão semelhante a ele. Não importa quantas ferramentas de análise de código ou Refactoring você disponha, nem quantos diagramas, tabelas, gráficos [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Após ler a matéria do diretor da Phidelis, o grande Alisson Vale, da revista Mundo.Net, a qual questiona o porquê de se medir softwares (referente a design de código fonte), acabei chegando a uma conclusão semelhante a ele.</p>
<p align="justify">Não importa quantas ferramentas de análise de código ou Refactoring você disponha, nem quantos diagramas, tabelas, gráficos ou estatísticas você tenha a disposição para modelagem correta da orientação a objeto. Nada, mas nada mesmo substituirá a <strong>intuição humana</strong>! </p>
<p align="justify">Que fique claro que não queremos desmerecer nenhum <a title="Conteúdos relacionados ao desenvolvimento de softwares!" href="http://www.profissionaisti.com.br/tag/software/">software</a> do <a title="Mercado de TI!" href="http://www.profissionaisti.com.br/category/mercado/">mercado</a>, inclusive o SourceMonitor, programado em C++, a qual checa milhares de linhas de código por segundo, retornando estatísticas como por exemplo: porcentagem de código comentada, número de métodos na classe, grau mais profundo da aninhação de blocos, valor da complexidade (esse dado é computado através da contagem de estruturas de controle if, while, else, switch, for, somada com número de combinações bitwise, incluindo OR, XOR, AND, NOT e por ai vai) , entre outros, sendo que a ferramenta lê códigos em C++, C#, Delphi, Java, VisualBasic etc.</p>
<p align="justify">O problema é, na verdade, uma questão didática. Pense um pouco caro leitor do PTI. O que vai acontecer se somente usarmos as novas ferramentas de design de código fonte para modelarem, ou ainda gerarem componentes, ou seja, utilizarmos dessas técnicas para &#8220;popular&#8221; nosso código fonte?</p>
<p align="justify">Futuramente, quem fará essas ferramentas? Quem fará se todos nós desconhecemos detalhes?</p>
<p align="justify">E agora eu pergunto, por que eu vou reformular meu código de acordo com normas da abstração de objetos se eu posso gerá-lo? A resposta é simples. Você vai gerá-lo, mas você vai revisá-lo, e entender o porquê da estrutura gerada, e o que acontece debaixo do pano, pois futuramente, seremos <strong>NÓS</strong> que faremos tais ferramentas, que, como ditas, não geram código propriamente dito (elas geram, mas será que vale a pena?), mas sim nos auxiliam a entender qual a melhor forma de programar.</p>
<p align="justify">Concluindo, quero novamente salientar que de forma alguma estou criticando qualquer ferramenta de desenvolvimento, a questão discutida são as ferramentas de design de software, que por sinal são muito convincentes desde que os desenvolvedores, analistas e &#8220;programalistas&#8221;, saibam o que a ferramenta faz debaixo dos panos, pois se o software alterou seu código, é porque algo estava errado.</p>
<p align="justify">E você não quer continuar errando não é mesmo?  </p>
<p align="justify">Um grande abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2009/04/engenharia-de-software-ferramentas-design-software/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Desenvolvimento Consciente</title>
		<link>http://www.profissionaisti.com.br/2009/04/desenvolvimento-consciente/</link>
		<comments>http://www.profissionaisti.com.br/2009/04/desenvolvimento-consciente/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 09:00:29 +0000</pubDate>
		<dc:creator>Marcelo Bernart Schmidt</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dia-a-Dia]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=1988</guid>
		<description><![CDATA[Vamos conferir abaixo o artigo do mais novo colaborador do PTI, Marcelo Bernart Schmidt. Interessante notar, o quão indignado meus colegas de trabalho ficavam ao notar minhas permanentes estadias na frente do computador em horário de almoço. Tudo bem que às vezes o trabalho atrasa e etc, mas o que mais os surpreendia era no [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Vamos conferir abaixo o artigo do mais novo colaborador do PTI, Marcelo Bernart Schmidt.</strong></p>
<p><img class="alignleft size-full wp-image-1989" title="Programador Feliz?!" src="http://www.profissionaisti.com.br/wp-content/uploads/2009/04/programador_feliz.jpg" alt="Programador Feliz?!" width="219" height="225" />Interessante notar, o quão indignado meus colegas de trabalho ficavam ao notar minhas permanentes estadias na frente do computador em horário de almoço. Tudo bem que às vezes o trabalho atrasa e etc, mas o que mais os surpreendia era no foco do meu trabalho: Uma aplicação console!</p>
<p>Sim&#8230; Aquela telinha preta nojenta que todos nós já usamos para escrever &#8220;Hello World&#8221; e depois, já extremamente angustiados, chamamos nossa mãe/esposa/irmã e falamos: &#8220;Sou o cara! Montei um sistema!!!&#8221;. Se isso nunca aconteceu com você, aposto que algo semelhante tenha acontecido. Mas afinal, você deve estar se perguntando por que existe tal aplicação se no mercado de trabalho nem se quer há templates de aplicações console? E minha dedicação a tal aplicação é em virtude do que?</p>
<p>Diferente de tempos atrás onde a demanda era por hardware robusto, a qualidade de software robusto, rápido e confiável se tornou a chave de sucesso para grande parte das empresas de tecnologia. Quaisquer usuários querem um sofware que não trave, que apresente algum feedback, seja seguro e acima de tudo VELOZ!</p>
<p>Mas como garantir que seu software supra todos esses requisitos?</p>
<p>Penso que para atingir tal sucesso, o primeiro passo obviamente é; que funcione. Se quiseres algo muito bom, primeiro torne-o bom, e depois aperfeiçoe-o. </p>
<p>Desenvolvimento consciente nada mais é do que a utilização das melhores práticas de programação, as quais variam desde endentação e comentários até o conhecimento dos diversos &#8220;tendões de Aquiles&#8221; da linguagem/plataforma a qual se está desenvolvendo, assim como os pontos fortes e práticas que otimizam o processamento sem ferir a integridade dos dados. Entende-se por tendões de Aquiles, os problemas que mais acarretam prejuízo.  Por exemplo: o tendão de Aquiles do C# são as strings as quais acarretam em milhares de referências e sobrecarga em Garbage Collector (coletor de lixo) se usadas de forma incrementativa, já no Java por exemplo, temos o problema com SOAP (protocolo de troca de informações estruturadas baseados em XML) a qual possui desempenho de processamento de 200% inferior a outras tecnologias, etc.</p>
<p>Responda rápido: Quanto tempo você demora para compilar uma aplicação gráfica? Muito mais tempo do que aplicações console certo? Não há sobrecarga de bibliotecas, não há forms, não há espera de compilação, enfim é papo reto, tornando-se assim ambiente perfeito para simulação de casos e testes específicos, onde pode-se praticar, atraves de pequenas estruturas, a melhor forma, e consecutivamente, a mais correta forma de se programar. Programar é uma arte, é necessário amor pelo que se faz, mesmo que tal sentimento leve-o ao desespero.</p>
<p>O software é o que é por causa do código fonte, e é VOCÊ, o PROGRAMADOR, que faz a magia acontecer! Cabe a VOCÊ transformar informações em resultado. Portando, estude, leia, alías&#8230;leia MUITO, teste, pratique, CERTIFIQUE-SE, cresça! Se tem uma coisa que nunca é demais é informação. Com certeza seu árduo trabalho será recompensado com software de qualidade, ao qual está dentro dos parâmetros de segurança e desempenho, atributos fortemente requisitados perante vasta concorrência tecnológica.</p>
<p>Um grande abraço</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2009/04/desenvolvimento-consciente/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

