September 5, 2008

Elaborei uma pesquisa de 19 perguntas entre objetivas e descritivas para ser respondido por no mínimo 100 pessoas. Coloquei no ar dia 04/09/2008 através do Google Docs com o objetivo de pegar o máximo de informações, resultando em estatísticas para elaborar um post inédito –que já tenho começado- sobre nosso comportamento no ambiente de trabalho. Nesse post muitos outros assuntos acabam sendo comentados, como nossa vida particular, mas o foco é o ambiente de nosso trabalho. Vamos conversar sobre assuntos como nosso crescimento profissional, nossa conduta, nossas atitudes, visão e principalmente descobrir o que estamos buscando…
Clique no link abaixo e ajude essa pesquisa a tomar forma. Estarei postando o resultado junto com o post, e para quem preferir, estarei enviando por e-mail. Participe! Seu nome (somente nome) será publicado como quem contribuiu com a pesquisa.
CLIQUE AQUI E PARTICIPE
Posted in Blog, Coisas legais, Comportamento
Não há Comentários »
August 28, 2008
Como prometido, posto aqui a segunda parte da introdução que desenvolvi sobre o Framework .NET com foco no
grupo de estudo. Começo com as novidades da versão 3.5 e do SP1, logo em seguida. No final uma rápida explicação sobre WPF, WCF, WF, ASP.NET e as bibliotecas como um geral. E essa a subdivisão que a Microsoft coloca sobre a estrutura .NET. As informações sobre as novidades da versão são um pouco massante, mas é importante termos conhecimento do que mudou.
Veja aqui a primeira parte desse resumo.
Atualização 3.5, novidades
NET Framework 3.5 é criado de forma incremental com base nos novos recursos adicionados ao .NET Framework 3.0. Por exemplo, conjuntos de recursos no Windows Workflow Foundation (WF), Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF) e Windows CardSpace. Além disso, o .NET Framework 3.5 contém muitos novos recursos em várias áreas de tecnologia, que foram adicionadas como novos assemblies para evitar alterações com rupturas. Entre eles, estão:
Profunda integração entre LINQ (consulta integrada à linguagem) e reconhecimento de dados. Esse novo recurso permitirá que você elabore código em linguagens habilitadas para LINQ para filtrar, enumerar e criar projeções de vários tipos de dados dados SQL, coleções, XML e DataSets, usando a mesma sintaxe.
O ASP.NET AJAX permite que você crie experiências na Web mais eficientes, mais interativas e altamente personalizadas, que funcionam em todos os navegadores mais populares.
Novo suporte para protocolo Web com o fim de criar serviços WCF, inclusive AJAX, JSON, REST, POX, RSS, ATOM e vários novos padrões WS-*.
Suporte completo para ferramentas no Visual Studio 2008 para WF, WCF e WPF, inclusive a nova tecnologia de serviços habilitada para fluxo de trabalho.
Novas classes na BCL (biblioteca de classes básicas) do .NET Framework 3.5 que atendem muitas solicitações comuns dos usuários.
Atualização 3.5 SP1, novidades
O ASP.NET Dynamic Data fornece uma sofisticada estrutura de proteção, que permite o desenvolvimento rápido direcionado por dados sem a criação de código e uma nova adição ao ASP.NET AJAX, que oferece suporte ao gerenciamento do histórico do navegador (suporte ao botão Voltar). Para obter mais informações, consulte What’s New in ASP.NET and Web Development (em inglês).
Aprimoramentos importantes do tempo de execução de linguagens comuns que incluem um layout melhor de imagens nativas do .NET Framework, recusa de verificação de nomes fortes para assemblies totalmente confiáveis, desempenho de inicialização de aplicativos aprimorado, código com geração superior que aprimora o tempo de execução de aplicativos ponta a ponta e opção de código gerenciado para execução no modo ASLR (Address Space Layout Randomization), se houver suporte do sistema operacional. Além disso, aplicativos gerenciados que são abertos a partir de compartilhamentos de rede têm o mesmo comportamento que aplicativos nativos por meio da execução com confiança total.
Aprimoramentos de desempenho do Windows Presentation Foundation, incluindo um tempo de inicialização mais rápido e o desempenho aprimorado de efeitos de bitmap. A funcionalidade adicional do WPF inclui suporte aprimorado para aplicativos de linha de negócios, suporte à tela inicial nativa, suporte ao sombreador de pixel DirectX e o novo controle WebBrowser.
Os fornecedores de aplicativos ClickOnce podem decidir recusar assinaturas e hash, conforme apropriado para seus cenários, os desenvolvedores podem instalar programaticamente aplicativos ClickOnce que exibem uma marca personalizada e as caixas de diálogo de erros do ClickOnce dão suporte a links para sites de suporte específicos de aplicativos na Web.
O Entity Framework é uma evolução do pacote de tecnologias de acesso a dados ADO.NET existente. O Entity Framework permite aos desenvolvedores programar em bancos de dados relacionais em termos de modelos de domínio específicos de aplicativos, em vez dos modelos de dados subjacentes. Para obter mais informações, consulte Getting Started with the Entity Framework (em inglês). O Entity Framework apresenta alguns recursos adicionais, incluindo o suporte para novos tipos do SQL Server 2008, serialização gráfica padrão de entidades e o Entity Data Source. Com esta versão, o Entity Framework dá suporte aos novos recursos de fluxo de arquivos e datas no SQL Server 2008. O trabalho de serialização gráfica ajuda os desenvolvedores que desejam criar serviços do Windows Communication Foundation (WCF) que modelam gráficos completos como contratos de dados. O Entity Data Source fornece uma experiência de fonte de dados tradicional para criadores de aplicativos do ASP.NET que desejam trabalhar com o Entity Framework.
O LINQ para SQL inclui um novo suporte para os novos recursos de fluxo de arquivos e datas no SQL Server 2008.
O ADO.NET Data Services Framework consiste em uma combinação de padrões e bibliotecas que permite que os dados sejam expostos como um serviço de dados flexível baseado em REST (Representational State Transfer) e que pode ser utilizado por clientes Web em uma rede corporativa ou pela Internet. O ADO.NET Data Services Framework executa a criação de serviços de dados com qualquer fonte de dados. Um modelo de exibição conceitual do esquema de armazenamento subjacente pode ser exposto facilmente por meio da sofisticada integração com o ADO.NET Entity Framework. Os serviços criados usando o ADO.NET Data Services Framework, assim como os serviços do Windows Live (dev.live.com) compatíveis, podem ser acessados facilmente em qualquer plataforma. Para aplicativos cliente em execução em plataformas Microsoft, é fornecido um conjunto de bibliotecas de cliente, a fim de simplificar a interação com serviços de dados. Por exemplo, clientes baseados no .NET Framework podem usar o LINQ para consultar serviços de dados e uma camada de objetos simples do .NET Framework para atualizar dados no serviço.
Agora, o Windows Communication Foundation torna o DataContract Serializer mais fácil de usar através do suporte de interoperabilidade avançado, aprimorando a experiência de depuração em cenários de confiança parcial e estendendo o suporte ao protocolo de agregação para uso mais amplo em aplicativos Web 2.0.
O Provedor de Dados .NET Framework para SQL Server (SqlClient) adiciona um novo suporte para recursos de fluxo de arquivos e colunas esparsas no SQL Server 2008.
O .NET Framework inclui um Amplo conjunto de bibliotecas:
Windows Communication Foundation
Nova linhagem de infra-estrutura para comunicação criada a partir dos Web services. O conjunto de aplicativos das tecnologias .NET para criação e execução de sistemas conectados unifica uma ampla gama de recursos de sistemas distribuídos em uma arquitetura componível e extensível para oferecer um sistema de mensagens seguro, confiável e transacionado, além da interoperabilidade.
Windows Presentation Foundation
Tecnologia da Microsoft para a criação de aplicativos e experiências de alta fidelidade no Windows Vista, reunindo interfaces do usuário dos aplicativos, documentos e conteúdos de mídia, ao mesmo tempo em que explora toda a capacidade do computador. Veja laboratórios práticos, exemplos e muito mais.
Windows Workflow Foundation
Novo modelo, mecanismo e ferramentas de programação da Microsoft para o desenvolvimento rápido de aplicativos habilitados para fluxo de trabalho no Windows. O Windows Workflow Foundation inclui suporte a fluxos de trabalho do sistema e humano em uma ampla gama de cenários.
ASP.NET
Para aplicativos baseados na Web interativos e de alto desempenho;
Bibliotecas (outras)
Para lidar com XML, dados, E/S, criptografia, conversão de texto e muito mais.
Posted in Desenvolvimento Software, Organização, Tecnologia, Tendências
Não há Comentários »
August 21, 2008

Eu e mais alguns profissionais da área criamos recentemente um grupo de estudo
.NET C# para entendimento mais aprofundado da plataforma. Pois bem! Estamos num ritmo excelente. Este grupo foi inicialmente criado internamente com reuniões semanais.
O motivo deste post é disponibilizar o conteúdo que desenvolvi com informações básicas garimpando dados do site da MSDN. Esse primeiro documento é um resumo rápido sobre o framework .NET e seu funcionamento.
Separei em duas partes para facilitar a leitura, até final de semana insiro a segunda parte.
Microsoft .NET é uma iniciativa da Microsoft em que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para .NET, pode ser executado em qualquer dispositivo ou plataforma que possua um framework: a “Plataforma .NET” (.NET Framework). Com idéia semelhante à plataforma Java, o programador deixa de escrever código para um sistema ou dispositivo específico, e passa a escrever para a plataforma .NET.
O .NET Framework é um modelo de programação de código gerenciado da Microsoft para criar aplicativos em clientes, servidores ou dispositivos móveis. Os desenvolvedores podem usar o .NET para criar aplicativos de vários tipos: aplicativos Web, aplicativos para servidores, aplicativos de cliente, aplicativos de console, aplicativos de banco de dados e muito mais.
A plataforma .NET é executada sobre uma CLR (Common Language Runtime — Ambiente de Execução Independente de Linguagem) interagindo com uma Coleção de Bibliotecas Unificadas, que juntas formam o framework. Esta CLR é capaz de executar, atualmente, mais de vinte diferentes linguagens de programação, interagindo entre si como se fossem uma única linguagem. Estas são:
APL
Boo
COBOL
Component Pascal
C#
C++
Eiffel
Forth
Fortran
Haskell |
Java
JScript
J#
Lua
Mercury
Mondrian
Oberon
Object Pascal / Delphi Language
Oz
Pascal |
Perl
PowerBuilder
PowerShell
Python
RPG
Ruby
Scheme
SmallTalk
Standard ML
Visual Basic |
O framework é instalado junto com o Visual Studio. A versão 1.1 (segunda versão) é instalada junto com o XP SP1. Usamos o Visual Studio (IDE) somente como uma interface de programação das bibliotecas .NET. Podemos usar também o software Web Matrix para desenvolver aplicações ASP.NET, que faz uso do .Net para entendimento das classes.
CLR (Common Language Runtime)
O coração da plataforma .NET é o CLR (Common Language Runtime), que é uma aplicação similar a uma máquina virtual que se encarrega de providenciar a execução das aplicações para ela escritas. São oferecidos a estas aplicações numerosos serviços que facilitam seu desenvolvimento e manutenção que favorece sua confiança e segurança. O CLR é o verdadeiro responsável pela integração entre as linguagens suportadas pela plataforma .NET. O compilador de cada linguagem segue uma série de padrões (Common Language Specification - CLS) para compilar seus códigos, por isso as outras linguagens conseguem “entender” as classes e os métodos, dentre outras informações, que essa linguagem definiu. Por exemplo, quando escrevo uma classe em SmallTalk.NET e a compilo, o compilador de SmallTalk não irá compilá-la da mesma forma que compilaria fora da plataforma, esse a compilará segundo uma série de especificações que gerará o IL (Intermediate Language - IL). Quando essa classe tiver que ser acessada por uma outra, escrita em C#, por exemplo, a plataforma .NET se encarregará de ler a IL gerada e expôr a classe que foi criada.

Common Language Runtime (CLR)

Common Language Infrastructure (CLI)
Plataformas suportadas
- Win 2000, WinXP, Win2003, Vista, Win2008, WinCE, Windows Mobile
- Linux e Solaris através do Mono
(Basicamente um plataforma que integra o framework com o Linux/Solaris. Não há uma distribuição da Microsoft.)
Histórico de versões
| Versão |
Número |
Data |
| 1.0 |
1.0.3705.0 |
05/01/2002 |
| 1.1 |
1.1.4322.573 |
01/04/2003 |
| 2.0 |
2.0.50727.42 |
07/11/2005 |
| 3.0 |
3.0.4506.30 |
06/11/2006 |
| 3.5 |
3.5.21022.8 |
09/11/2007 |
O mais importante aqui é sabermos sobre CLR, CLS e IL, ou seja, como tudo funciona.
Veja aqui a segunda parte do resumo.
Posted in Desenvolvimento Software, Tecnologia, Tendências
Não há Comentários »
August 8, 2008
Com uma série de comandos simples conseguimos fazer um script um tanto que ousado, bom…nem tanto assim, mas o que vale aqui é a idéia. Tenho um Server pessoal para garantir a execução de muitas rotinas, há vários meses configurei para me ajudar em alguns processos rotineiros (ou não). Foi legal!
Bom, aqui envio um dica bem interessante para você que não possui um IP fixo em casa/escritório mas que gostaria de estar consultando informações remotamente sem precisar ficar consultando o IP todos os dias, interessante hein? Simule um IP fixo, depende muito em como vamos criar nossa solução.
Usei aqui um “.VBS”, executado pelo WSH (Windows script host), padrão do Windows. Se você notar, quando se instala o IIS verá que alguns VBS de controle do Server são instalados juntos. Esses VBS são excelentes para execução de rotinas sem interação com usuário e que precisam ser executados em tempos determinados (agendamento). Um exemplo de um bom VBS é a veiculação de um e-mail marketing todo dia 15, por exemplo. Quem aí recebe e-mails do Submarino?
Seguindo este conceito que vamos criar um script para ser executado diariamente. Afinal, o que pretendemos fazer? Primeiro criamos uma rotina para coletar através de uma página o IP da máquina na qual está acessando. Buscamos através de um serviço, exemplo do site MeuIP. Mas não usaremos este para não recebermos junto informações desnecessárias. Então usaremos uma página muito simples (1 linha) desenvolvida por mim, em ASP (http://www.ciin.com.br/pegaIp.asp). Claro que, se acessar agora, vai pegar seu IP nesse momento.
Em seguida criamos um arquivo HTML e jogamos em seu conteúdo o resultado da consulta acima, ou seja, o IP. Então fazemos a conexão FTP de um de nossos sites para conseguirmos disponibilizar o IP via WEB, assim, ao acessarmos um endereço configurado por você, teremos o IP do Server onde quer que estejamos. Detalhe, no script é gerado um TXT com a configuração completa e a execução de todos os comandos necessários para conexão e envio via FTP.
Por último é executada uma rotina para enviar o IP por e-mail, o seu e-mail ou de quem você deseja manter atualizado.
No final do script, por motivos de segurança os arquivos gerados são apagados.
Sim, faltou muitos detalhes na explicação do script, mas considero o conhecimento básico do caro leitor. Para conseguir enviar o e-mail, a máquina que vai executar o script precisar estar com o IIS + SMTP configurado.
Abaixo o código:
‘———————————————–
‘ ———- CAPTURA IP E CRA HTML ————-
sSource = “http://www.alvoconhecimento.com.br/pegaIp.asp”
sDest = “ipGrava.html”
set oHTTP = WScript.CreateObject(”Microsoft.XMLHTTP”)
oHTTP.open “GET”, sSource, False
oHTTP.send
tStart = timer()
set oStream = createobject(”adodb.stream”)
Const adTypeText = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
oStream.type = adTypeText
oStream.open
oStream.write oHTTP.responseBody
oStream.savetofile sDest, adSaveCreateOverWrite
set oStream = nothing
tElapsed = timer() - tStart
set oHTTP = nothing
WScript.Echo “1. IP capturado e arquivo gerado em ” & tElapsed & ” segundos…”
‘——————————————————————-
‘—– ENVIAR O HTML PARA O SERVER E REMOVE TODOS OS ARQUIVOS ——
Const HOSTNAME = “URL FTP”
Const USERNAME = “LOGIN”
Const PASSWORD = “SENHA”
Const CONFIGFTP = “configFTP.txt”
Set WshShell = CreateObject(”WScript.Shell”)
Set objFso = CreateObject(”Scripting.FileSystemObject”)
Set objFile = objFso.CreateTextFile(CONFIGFTP)
With objFile
.WriteLine “open ” & HOSTNAME
.WriteLine USERNAME
.WriteLine PASSWORD
.WriteLine “cd web/” (padrão Locaweb)
.WriteLine “put ” & sDest
.WriteLine “quit”
.Close
End With
strFTP = “%systemroot%\System32\ftp.exe -s:” & CONFIGFTP
strFTP = WshShell.ExpandEnvironmentStrings(strFTP)
WshShell.Run strFTP,1,true
WScript.Echo “2. IP Enviado para o server. ” & sDest
‘——————————————————————–
‘——————— ENVIAR POR E-MAIL O IP ———————–
Const cdoOutlookExvbsss = 2
Const cdoIIS = 1
Set Message = CreateObject(”CDO.Message”)
Set objFile = objFso.OpenTextFile(sDest)
Do Until objFile.AtEndOfStream
txtCorpo = txtCorpo & objFile.Readline
loop
With Message
.Configuration.Load cdoIIS
.To = “SEU EMAIL”
.Subject = “[SERVER IP]”
.HtmlBody = txtCorpo
.From = “SEU EMAIL”
.Send
End With
objFile.Close
WScript.Echo “3. IP enviado por e-mail.”
‘—————————————————————
‘—————— APAGA OS ARQUIVOS GERADOS ——————
objFso.DeleteFile CONFIGFTP, vbTrue
objFso.DeleteFile sDest, vbTrue
WScript.Echo “4. Todos os arquivos gerados foram apagados. Fim do processo.”
set objFile = nothing
set objFso = nothing
Grave o arquivo com uma extensão “.vbs”: “mandaIp.vbs” execute em prompt de comando: “cscript mandaIp.vbs”.
Até a próxima.
Posted in Coisas legais, Desenvolvimento Software, Tecnologia, Tutoriais
Não há Comentários »
May 7, 2008
Nessa semana fui contatado para uma reunião extremamente urgente com um cliente. Essa iniciativa dele me deixou um pouco pensativo, afinal, “urgente”? Só pelo título deste post você já deve estar desconfiado do se trata. É importante sabermos que nossos clientes, depois de certo -e bom- tempo buscam muitas vezes um bate-papo fora do profissional. Isso é fato e ressalto que este não é um caso isolado.
Recebi a ligação, aceitei a urgência e nos encontramos em seu escritório. Ao entrar percebi certa agitação entre os funcionários. Algo estava acontecendo então comecei a acreditar que de fato era urgente. Fazendo um parêntese, eu disse “acreditar que de fato era urgente”, pois cliente que é cliente diz que tudo é urgente, ainda mais quem trabalha com serviços, como eu. Voltando… Entrei na recepção e cumprimentei a todos (pelo menos tentei) e fui direto para a sala do “Senhor Proprietário”.
Vamos chamá-lo de Carlos, pois bem, entrei na sala e pude reparar sua cara de preocupação, tive a impressão que estava me aguardando, digo, aguardando mesmo, sem nada fazendo enquanto espera. Iniciamos a conversa, coisa básica, coisas da vida, só para não ficar maçante, aliás, é uma ótima dica para quem deseja um excelente relacionamento com seus clientes, inicie suas reuniões comentando sobre outras coisas, tudo, menos trabalho.
Começamos então a discutir o projeto em andamento, nada em especial foi comentado, apenas repetições de outras reuniões e de contatos por telefone. Estávamos combinando ações já acertadas e até mesmo já executadas, foi então que decidi finalizar e verbalizar o famoso “então ta!” de encerramento, claro, tudo com muita educação. Não é que ele continuou a falar? Foi então que comecei a entender porque eu estava ali.
- Daniel, está difícil, estou com problemas e passei o maior transtorno esse ano de 2007, quase fechamos as portas.
Sim, essas foram suas palavras, entendi! Dei trela e continuei:
- Carlos, o que houve? Percebi desde o momento que entrei aqui que algo está errado.
- Sim! Como se não bastasse estou trocando minha funcionária que está aqui praticamente desde o começo. Treinando outra pessoa. Ela recebeu uma proposta melhor. Fico feliz por ela, claro!
Ele continuou:
- Fomos roubados praticamente o ano todo. Nossos vendedores armaram uma maneira de desviar informação e consequentemente os produtos.
Prefiro não comentar por completo, mas meu cliente teve um baita prejuízo. Para recuperar o dinheiro vai usar o ano de 2008 inteiro somente para tal objetivo. Enfim, continuamos a conversa sobre o caso, fiz perguntas e ele foi respondendo numa boa. Contei também de meus problemas para trazer aquele clima de companheirismo… E o papo desenrolou.
Afinal
Responda, percebeu a urgência? O que você faria nesse caso? Será que diria: “Pô Carlos! Era essa a urgência?”. Lembre-se, a princípio fui para resolver coisas do projeto. Confesso que pensei nesse “Pô!”, até um “Perdi um almoço!”. Mas não, graças a Deus tive consciência naquele momento e dei a devida importância.
Saiba que o que aconteceu foi mais importante do que fechar um “negócio da china”. O cliente espera que você o receba de braços abertos. Não se limite em ações profissionais, claro que 90% de suas reuniões dizem respeito a projetos e negócios, mas o que estou querendo dizer é que, seja sensível o suficiente para detectar essas situações, seja você um vendedor ou o proprietário.
Veja que interessante, sai de lá com a sensação de missão cumprida. Considerei uma ótima “reunião”. Cliente satisfeito, projeto organizado, indicações na certa e dinheiro no bolso. Pense bem! Mas cuidado com a picaretagem, não use isso para ganhar à custa do problema de seu cliente, apenas esteja antenado nas possibilidades. E o principal, seja honesto.
Posted in Comportamento, Comunicação, Relacionamento
Não há Comentários »
May 5, 2008
Um post bem rápido! Não pude deixar de divulgar com grande alegria a última da blogosfera! Agora quem vai administrar o maior indexador de blog do Brasil, Blogblogs, é o Manoel Netto da Tecnocracia. Pois é, aquela novidade que Manoel Lemos estava aguardando para divulgar agora foi publicado.
Manoel Netto, blogueiro bem conhecido no meio e sempre em busca de sucesso profissional, mudou-se de Salvador para Londrina tentando novas oportunidades. Foi aí que recebeu a grande proposta. Veja em seu post todos os detalhes e algumas fotos.
Parabéns Manoel, fica aí minha homenagem através desse post.
Posted in Blogosfera, Coisas legais, Comportamento, Off Topics
1 Comentário »
Comentários