Siga-me

sábado, 6 de março de 2010

Corrigindo o Visual dos controles na interoperabilidade Windows Forms e WPF

O Windows Presentation Foundation - WPF tem sido uma teconologia muito comentada no mundo do desenvolvimento de aplicativos. Na busca de interfaces mais ricas e interativas, muitas software housers vêm iniciando projetos de migração gradativa de seus aplicativos e sistemas.
Essa migração, na maioria das vezes tem acontecido de forma cautelosa, pois o WPF ainda é uma tecnologia pouco difundida, mesmo que muito poderosa.
Nessa etapa, podem acontecer alguns problemas como o visual de alguns controles de interface sofrerem determinadas alterações em seus estilos, sendo exibidos de forma um tanto "pobre" na execussão de uma janela windows, por exemplo.
Então, como fazer para manter o visual de controles windows forms quando estiver janelas desse tipo de sistema em aplicação WPF (interoperando juntas)?
Bom, confesso que vasculhei muito a biblioteca de classes do DotNet em busca dessa informação, mas quem me ajudou foi o moderador do forum msdn. Basta apenas inserir a linha seguinte no construtor da janela principal em WPF:

Public MainWindow()
{
this.InicializeComponent();
//Habilitando o visual dos componentes
System.Windows.Forms.Application.EnableVisualStyles();
}

Pronto. Agora todas as janelas WindowsForms em suas aplicações WPF estarão com o visual padrão que você desenhar em tempo de compilação.

quarta-feira, 4 de fevereiro de 2009

Populando componetes de listagem (ComboBoxes, ListBoxes, DataGridViews, etc) com Arrays

Uma dúvida que tenho visto muito nos fórums de c# e outras linguagens do DotNet Framework é como popular componentes de listagens, como ComboBox, ListBox, DataGridView, com o conteúdo de Arrays criados pelo desenmvolvedor.


Fiz um pequeno vídeo demonstrando na prática como preencher esses componentes com o conteúdo de arrays.


Divirtam-se.


Link do vídeo

quinta-feira, 29 de janeiro de 2009

Por que desenvolver aplicações para Web?

O desenvolvimento de sistemas tem se intensificado nos últimos anos com o crescimento tecnológico das empresas, principalmente no Brasil. As “Software Housers” têm crescido e empregado um número grande de desenvolvedores. Os pré-requisitos, dentre vários, são a escolarização (curso superior na área de informática ou especialização na área), certificações, conhecimentos específicos e experiência de 2 a 6 anos com esta ou aquela tecnologia. Os salários giram em torno de 1.200,00 (desenvolvedor Junior) até 4.000,00 (desenvolvedor Senhor).

Contudo, a tecnologia também cresce e inova. Desde a década de 90, com os servidores UNIX rodando aplicativos CGI para responder a solicitações das aplicações mais simples até hoje, a história mudou muito. Existem servidores rápidos e com grande capacidade de armazenamento, aplicativos de comunicações com sistemas de alto desempenho como as DLLs ISAP que o servidor Microsoft IIS utiliza, e por aí vai.

Dessa forma, um novo paradigma vem surgindo e ganhando a atenção das organizações de todos os segmentos: as aplicações virtuais. Ter uma aplicação na internet/intranet não é uma coisa nova. Todavia, tecnologias e frameworks têm surgido para tentar igualar ao máximo as aplicações web das aplicações para desktop. Atualmente é possível camuflar os postbacks, renderizar a página de forma assíncrona, manter uma interface de alto nível como se o usuário estivesse em uma aplicação local. O desenvolvedor pode fazer uso do AJAX, XML, XAML, Flash, etc...

A segurança na rede atualmente é uma coisa mais controlada em nível de aplicações. Temos a criptografia no meio (certificações digitais, por exemplo) e o desenvolvimento seguro em nível de transporte (contra medidas que minimizam vulnerabilidades no sistema).

Mas nada disso responde à nossa pergunta inicial, isto é, não seria somente por alguma dessas razões que um desenvolvedor “for Windows”, que utiliza a IDE do Delphi para trabalhar, por exemplo, iria migrar seus conhecimentos e seus sistemas com foco na web. O que seria então? Com mais de 12 anos trabalhando com informática, utilizando tecnologias e linguagens de programação, tais como: Windows Server 2000/2003; Linux Debian, Ubuntu; Criando e gerenciando projetos de rede, de cabeamento estruturado, de sistemas de informação; desenvolvendo sistemas em Object Pascal, C, C++, Java, PHP, e atualmente C# e Asp.Net; utilizando IDEs como Delphi, NetBeans, Dreamweaver, Visual Studio, dentre outros; pude perceber que nenhuma dessas tecnologias sozinhas é capaz de conseguir o que a web pode provê de melhor para o usuário e para os empreendimentos. Ao contrário, uma gama dessas tecnologias unidas é que pode.

É quando chegamos realmente à nossa resposta: INDEPENDÊNCIA DE PLATAFORMA!!!. Vamos destrinchar melhor essa afirmação. Imagina que uma empresa possui um ERP enorme, com todas as informações importantes e processos complexos da organização, tudo sobre a plataforma Microsoft. Devido a uma crise financeira, o investimento de 200 computadores foi feito, porém sem plataforma, pois ficou acordado com o setor de TI que utilizariam uma plataforma livre devido ao valor das licenças. Até aí tudo bem, mas e em relação ao ERP? Não existe uma versão para Linux...

Neste ponto é que entra a vantagem de se desenvolver aplicações para web. Imaginemos que este mesmo ERP fosse desenvolvido sobre o paradigma web. A Troca de plataforma é instantânea, isto é, é transparente para o usuário e sem acréscimo financeiro para a empresa... O sistema é acessado por um navegador de internet que tenha suporte ao HTML 1.0 ou superior e a parte mais árdua fica com a infra-estrutura de servidores e com a equipe de TI. Essa é uma vantagem muito significativa associada a web, pois o sistema sai das fronteiras da empresa e pode ser acessado em qualquer localização geográfica, com a devida segurança; ou ainda pode ser trafegado apenas na intranet da empresa, sem estar na grande rede, mas usufruindo de todos os recursos do TCP/IP; ou na extranet da empresa favorecendo ainda a troca de informações com outros sistemas da mesma ou de outras empresas parceiras com o uso do XML.

Atualmente é mais viável e rentável para ambos os lados desenvolver sistemas para web. Além de tudo, é ainda o futuro das atividades de computação para as organizações atuais. Mantendo-se a compatibilidade entre os navegadores, tudo pode ser migrado para web, desde simples sistemas de cadastro até grandes ERPs. Muitas áreas de conhecimento têm alinhado seu cerne para o foco neste paradigma e muitos profissionais já vislumbram um horizonte repleto de conquistas para esse tipo de mercado.

Não perca tempo, corra o quanto antes, pois na informática, tudo que é novo já é passado!

segunda-feira, 8 de dezembro de 2008

Eventos do Proinfo - MEC

EM 2008 foi convidado pela UNDIME-ES para coordenar o Proindo - Programa de Informática nas Escolas, em âmbito municipal no Espírito Santo. Após muitas viagens e reuniões, algumas ações estão sendo tomadas para que os municípios se integrem com o programa que visa informatizar as escolas do país.

Semana retrasada estivemos em Belo Horizonte para capacitação do Curso de 100 Horas que professores das redes municipal e estadual receberão sobre como trabalhar com as Tecnologias Educacionais.

Dias 08, 09 2 10 de dezembro (período em que esta postagem foi escrita) estive em Brasília, onde os estados apresentaram ações de sucesso nos seus municípios com o curso de 40 horas, ministrado anteriormente, além de oficinas técnicas para técnicos dos Núcleos de Tecnologia Educacional.

Várias tecnologias foram apresentadas, tais como o Arthur: uma espécie de projeto com SO embutdo, além de projeção em leds e outras funcionalidads. Este protótipo irá estar na mesa do professor como ferramental de suas aulas.

As escolas deverão receber um link full de 1 Mega até 2010 com prazo de utilização de até 2025. Aliás, várias escolas de Linhares-ES já receberam , bem como escolas de outros municípios. Este é um projeto chamado Internet Banda Larga nas Escolas do Governo Federal.

Outro projeto apresentado foi o UCA - Um Computador por Aluno. Na prática, em uma sala de aula, cada aluno irá dispor de um notebook construído com o objetivo educacional onde as barreiras geográficas poderão ser quebradas, dentre outras estratégias pedagógicas.

Dessa forma, o Governo Federal está demonstrando um amadurecimento muito grande na utilização da tecnologia em função do Ensino Aprendizagem, além de propor novos horizontes pelos quais o professor pode vislumbrar em seu contexto educacional. Da mesma forma em que demonstra efetividade nas ações, capacitando multiplicadores e professores com metodologias pedagógicas e tecnológicas.

A educação é, sem dúvidas, o rumo de nossas crianças e a tecnologia está inserida no mundo como aliada para que possamos unir essas esferas na melhor forma possível.

quarta-feira, 19 de novembro de 2008

Curso de Desenvolvimento de Sistemas para Web com c# e Visual Studio 2008

Dia 05/01/2009 terá início o cusdo de Desenvolvimento de Sistemas para Web com todo o poder da tecnologia Microsoft: Visual Studio 2008 e a linguagem de programação c#. O curs é uma iniciativa da Escola Tecnica Cristo Rei - CETEC e será ministrado por mim com uma carga horária de 80 horas, divididas de segunda a sexta, das 19:00 às 22:30 e aos sábados, das 14:00 às 17:30.

O conteúdo programático do curso abordará os assuntos listados no índice da apostila do curso, disponibilizado aqui no blog, no final desta postagem, para que os interessados possam analisar.

Não é um cuso preparatório para certificação e sim um curso voltado ao real aprendizado da tecnologia e das etapas de desenvolvimento de um sistema de informação a ser trafegado via internet.

Os cursistas receberão uma apostila e um dvd com todo o conteúdo do curso, inclusive os programas demostrativos que a Microsoft disponibiliza, bem como os laboratórios com as respostas das atividades.
Para se inscrever o interessado deve procurar a Coordenação do CETEC. As vagas são limitadas a 20 cursistas.
Segue os itens aborados no índice da apostila do curso:
1 Nota de Abertura
2 A Web 2.0 e as Aplicações Atuais
3 Introdução ao Transact-SQL
3.1 DDL
3.2 DCL
3.3 DML
3.4 Instrução SELECT
3.5 Instrução INSERT
3.6 Instrução DELETE
3.7 Instrução UPDATE
3.8 Views e Stored Procedures
3.9 Implementando um banco de dados utilizando a IDE do Visual Studio 2008
3.10 Laboratório.
4 Programação Estruturada com C#
4.1 Introdução
4.2 Hello World em c#
4.3 Variáveis
4.4 Tipos por Valor e Tipos por Referência
4.5 Conversão de Tipos
4.6 Operadores
4.7 Arrays
4.8 Estruturas de Controle
4.8.1 Estruturas de Decisão
4.8.2 Estruturas de Repetição
4.9 Laboratório
5 Conhecendo o Visual Studio e a Plataforma .Net
5.1 Common Language Runtime
5.2 .NET Framework Class Library
5.3 Como o .Net funciona
5.4 Visual Studio 2008
6 Orientação a Objetos com C#
6.1 Orientação a Objetos (OO)
6.1.1 Atributos e Métodos
6.1.2 Herança
6.1.3 Construtores e Sobrecarga
6.1.4 Polimorfismo
6.1.5 Propriedades
6.2 Laboratório
7 Modelo em Camadas
7.1 O Modelo Tradicional em Três Camadas
7.2 O Modelo de Cinco Camadas
8 Utilização de AJAX
8.1 AJAX no ASP.NET 3.5 e Visual Studio 2008
8.2 AJAX Extensions
8.3 Usando o Controle UpdatePanel
8.4 Usando o Controle Timer
8.5 Usando o Controle UpdateProgress
8.6 Instalação do Ajax Control ToolKit
8.7 Implementando o controle Accordion
8.8 Implementando o controle MaskedTextBox
8.9 Implementando o controle AlwaysVisibleControl
9 Web Forms (Criando aplicações componentizadas)
9.1 Componentes e Propriedades
9.2 Construindo Um Interface com os Controles da Paleta Standard e Validation
9.3 Tratamento de Exceções
9.4 Trabalhando com Sessions
9.5 MasterPages e os Controles da Paleta Navigation
9.6 Laboratório
10 Web Forms (Acesso a Dados com ADO.Net)
10.1 Desmistificando o ADO.Net
10.2 Codificando o Acesso a Dados com ADO “na Unha”
10.3 Usando ADO com DataSet Tipado e TabelAdapters
10.4 Laboratório
11 Distribuindo uma Aplicação Web
11.1 Debug de Aplicação no Visual Studio 2008
11.2 Deployment de Aplicação
11.3 Configuração do Internet Information Service - IIS
Referências

quinta-feira, 31 de julho de 2008

Iniciando os estudos em SQL Server 2005

Estou iniciando o curso de SQL 2005, na Mindworks, em Vitóris-ES. Pretendo ampliar meus estudos nessa ferramenta e fortalecer os laços entre o desenvolvimento das camadas do sistema, inclusive a camada de dados. Acredito que todo desenvolvedor de sistemas, seja ele para web ou windows, deve ter conhecimentos de banco de dados. Na maioria das vezes, no pequeno empreendimento que desenvolve sistemas é o próprio desenvolvedor que põe a mão na massa e acaba também desenvolvendo o bando. Por outro lado, tendo esses conhecimentos, melhoro um pouquinho mais meu currículo invadindo novos horizontes. Mas pretenções à parte, o que desejo mesmo é ter subsídios para dialogar com os DBAs que possivelmente poderei estar trabalhando, falar a mesma lingua ou a que eles entendam.

Serão 12 sábados de informações sobre o Microsoft SQL Server e a linguagem T-SQL. Após o curso pretendo fazer a prova de certificação e tentar alcançar o TS tambem nesse segmento.

Em breve escreverei mais informãções sobre o curso.

quarta-feira, 21 de maio de 2008

Alcançada a Certificação MCTS

Olá pessoal,

Hoje, dia 21 de maio de 2008, fui aprovadoem mais uma prova rumo a certificação MCPD. Passei na prova 70-528, com 947 pontos de 1000, o que me dá o título de Microsoft Certified Technology Specialist em Desenvolvimento de Sistemas para Web.

A prova segue os mesmos parâmetros da anterior, porém trata mais da criação do sistema web em si, questionando sobre assuntos bem práticos como MasterPages, Custom Web Controls, Administração do sistema, configuração do sistema, gerenciamento do sistema, arquivos xml, utilização dos controles web, etc...

Dia 31 próximo, estarei participando de uma mesa redonda sobre os assuntos do TechEd e estarei também fazendo o último exame para alcançar a MCPD em Web Developer.

Quero agradecer primeiramente a Deus por me dar a sabedoria e a vontade de crescer, à minha linda e amada esposa Danielle Brandão (te amo amor) e a todos que direta e indiretamente contribuiram para este sucesso.

Até mais...