January 2006 - Posts
Pois é, o frio era esperado mas a neve não! Em Leiria a neve não chegou a acumular, mas muito perto, segundo amigos madrugadores, o cenário era inesperado e deslumbrante! Seguindo as instruções deles, segui de Leiria em direcção a Fátima, por Santa Catarina da Serra. Almoçámos em Fátima e seguimos até ao Castelo de Ourém, ali relativamente perto, após o que voltámos a Fátima, para regressar a Leiria pela N. Sra. do Monte (Cortes). Só ao final da tarde olhei para a TV para constatar que a situação foi quase generalizada em todo o país.

O trajecto está documentado em http://photos.yahoo.com/albertosilvapt , na pasta Neve 2006.
Vários sites relacionados com mobilidade têm vindo a noticiar uma aplicação que supostamente permite gravar chamadas realizadas em SmartPhones ou dados das mesmas. Movido pela curiosidade, visitei o website e não posso evitar deixar aqui um 'alerta', mesmo que possa vir a caír no ridículo.
Ao visitarem o website vão verificar que existe uma certa colagem aos websites da Microsoft, na escolha de cores e imagens. No topo da página, surge uma informação a referir 'CONFIDENTIAL, NOT FOR PUBLIC DISPLAY. DEMO SITE ONLY.'. Mais sensacionalista não poderia ser.
Os links redireccionam para o site da Microsoft dedicado à mobilidade.
Eu pessoalmente tendo a ser um pouco criterioso a escolher os websites onde coloco informação pessoal e ainda mais de onde descarrego software que deixarei ser executado incondicionalmente nos meus computadores, sejam de mesa, sejam de bolso. Neste caso, estamos a falar de uma aplicação que guardará nos seus próprios servidores muita informação pessoal dos seus utilizadores.
Fica o alerta.
Há 2 anos fui ao MDC (Mobile Developers Conference) a São Francisco. A minha participação resumiu-se a estar presente em sessões 'Ask the Experts', a promover a comunidade MVP e a guiar alguns Hands-On Labs, bem como assisti ao maior número de sessões que pude, para além de partilhar alguns serões com outros MVP e pessoal da Microsoft, fosse em actividades oficiais, fosse em não oficiais, como levar o Philippe Majerus e o Dwayne Lamb a provarem um rodízio brasileira, versão americanizada, of course.

Desde o ano passado que o evento se chama MEDC (Mobile and Embedded Developers Conference) do lado de lá do Atlântico, mas do lado de cá tem sido integrado numa versão mais reduzida no Tech-Ed, ou até resumidos a 1 dia, como aconteceu com o MEDC o ano passado em Inglaterra.
Este ano teremos direito a este evento numa versão de 3 dias entre os dias 6 e 8 de Junho em Nice, França, sensivelmente um mês depois do MEDC 2006 em Las Vegas, que decorrerá entre 8 e 11 de Maio.
Contará com 4 tracks ao longo de 3 dias, num total de cerca de 60 sessões e será uma oportunidade de assistir a algumas apresentações de grande valor técnico feitas por grandes profissionais, seja da Microsoft, sejam MVP ou de parceiros.
Ainda não foi disponibilizada nenhuma informação sobre o registo para o evento. Ainda encho o Discovery de malas... depois divulgo detalhes sobre a venda de lugares :D
Vai ter lugar na manhã do próximo dia 8 de Fevereiro em Lisboa um evento que promove a visão da Sybase e da Optimus sobre o tema da mobilidade, onde serão abordados assuntos como:
- Casos de Sucesso
- Mobility: Future Directions
- Acesso a dados corporativos (CRM, ERP, XML, BD, Intranet)
- Acesso a sistemas Lotus Notes e Microsoft Exchange
- Convergência fixo/móvel
- Gestão remota, backups e segurança de dispositivos móveis
- RFID
- Dispositivos móveis: têndencias do mercado (HP)
- Soluções Sybase e Optimus
- Montra Tecnológica: Optimus, Sybase, HP
A agenda do evento e respectiva inscrição (gratuita) estão disponíveis a partir da seguinte página:
II Fórum de Mobilidade Empresarial Sybase/Optimus
http://www.sybase.pt/gvsview/gvs/sybase-pt/eventos/eventos_detail.htm?id=44
A Microsoft acaba de actualizar este toolkit, que reune um conjunto de ferramentas e documentos que visam facilitar a entrada no mundo do desenvolvimento para dispositivos móveis.

O kit inclui:
- Ferramentas
- Visual Studio 2005 Professional Edition (versão de avaliação por 90 dias)
- Windows Mobile 5.0 SDKs para Pocket PC e Smartphone
- ActiveSync 4.1
- .NET Compact Framework 2.0
- SQL Server CE e SQL Server 2005 Mobile Edition
- Imagens localizadas noutros idiomas para o emulador
- outras ferramentas
- Recursos para programadores
- Links para whitepapers e webcasts
- Aplicações WeFly24/7 (exemplos)
- Hands-on labs e videos
O kit pode ser encomendado por 16.00USD a partir daqui:
Windows Mobile 5.0 Developer Resource Kit
http://msdn.microsoft.com/mobility/windowsmobile/howto/resourcekit/default.aspx
... mas também de sistemas operativos para desktop e servidores!!!
Por falar em Luís Abreu, ele tem vindo a publicar no blog dele uma série de posts sobre o MONAD, a nova linguagem de scripting a ser suportada nativamente pelo sistema operativo.
Vale a pena darem uma vista de olhos ao blog do Luís, a forma como ele tem vindo a partilhar as suas experiências está a revelar-se um excelente tutorial!
O Luís Abreu, um dos MVP portugueses, acaba de ver publicado pela FCA o seu livro dedicado ao ASP.net 2.0, intitulado de 'ASP.NET 2.0: Curso Completo', com prefácio do Pedro Rosa (da Microsoft Portugal):

Para quem quiser avaliar o livro, a FCA tem no seu site um capítulo do mesmo disponível online.
Parabéns Luís!
O Imagine Cup é o concurso internacional de tecnologia mais desafiante para Estudantes do ensino superior!
Sob o tema central ‘Imagine a world where technology enables us to live healthier lives!’, ou 'Imagine um mundo onde a tecnologia nos permite viver a vida mais saudavelmente', o Imagine Cup 2006 dá-lhe a oportunidade de contribuir activamente numa missão global para promover a saúde em todo o Mundo!
O concurso é promovido em 6 categorias distintas (Software Design, Algorithm, IT, Short Film, Visual Game, Interface Designer), com propostas diferenciadas e aliciantes e prémios fantásticos!
-
a todos os finalistas nacionais, todas as despesas serão pagas para participação na final mundial em Agosto 2006, Nova Deli, Índia
-
$25.000 para o vencedor mundial da categoria Software Design
-
$8.000 para os vencedores das restantes categorias
Clique aqui para se inscrever ou para obter mais informações.
A Sybase Portugal vai levar a cabo na manhã do próximo dia 25, nas suas instalações, um workshop sobre alguns dos seus produtos, entre os quais o Pocket Builder, que é uma ferramenta de desnvolvimento para Windows Mobile.
Workshop Sybase PowerBuilder & Datawindow.NET: Best-Practices, Mobilidade e Migração Web
http://www.sybase.pt/gvsview/gvs/sybase-pt/eventos/eventos_detail.htm?id=42
Clique no link acima para aceder à agenda do evento. As inscrições são gratuitas, mas limitadas.
[UPDATE]
Para o dia 25 não há mais vagas disponíveis, pelo que a Sybase vai também apresentar as sessões deste evento no dia 24 de Janeiro.
Foi descoberto um bug ao efectuar chamadas com o método .Talk na forma como o nº que se pretende marcar é interpretado.
Assim, têm de acrescentar um caracter 'nulo' à string que contém o nº a marcar, algo como (C#):
Phone myPhone = new Microsoft.WindowsMobile.Telephony.Phone();
myPhone.Talk("555-0100\0"); //Notice the null character appended at the end.
Um dos primeiros obstáculos que programadores de VB6 ou do eVB quando chegam ao universo .NET é a gestão de múltiplos forms, nomeadamente como passar valores entre forms e alternar entre forms.
Abaixo transcrevo 2 mensagens que enviei para o newsgroup microsoft.public.pt.pocketpc , logo que possa, tansformo num artigo:
> Saudações Pessoal
>
> Não estou conseguindo carregar mais de um formulário no CF com VB.NET.
> Alguém pode dar-me uma dica?
>
> Sabem onde poso conseguir informações sobre tratamento de formulário no
CF?
>
> Fiz várias pesquisas e em todas elas, os exemplos são de apenas um
> formulário.
>
A diferença entre a gestão de forms no eVB e no vb.net é que neste, sendo os forms 'meros' objectos definidos em classes, tens de instanciar os forms para poderes aceder-lhes.
O acto de instanciar consiste em carregar numa variável uma nova instância do form, sobre a qual poderás invocar métodos (.show, .hide, ...) e definir propriedades.
Por ex. para te referires ao form2 a partir do form1 utilizarias algo do tipo...
Dim meuForm2 as form2 = new form2()
meuForm2.label1.text = "Olá mundo!'
Repara que passas a referir-te ao form2 não pelo seu nome, mas pelo da variável que o instanciou.
Esta nova abordagem tem muitas vantagens, como por ex. a partir de um mesmo form teres várias instâncias independentes do mesmo em memória, mas também pode criar confusão, pois se, por ex. a partir do form2 chamasses um form3 e depois pretendesses que o controlo do programa voltasse ao form2 que tinha sido carregado em memória, não poderias voltar a criar uma instância do form2, pois ela seria independente daquela pela qual o utilizador tinha passado. Eu nestes casos sugiro que os forms sejam carregados em variáveis globais, e que aquando da sua utilização se verifique se já foram instanciados, ou não, e se for caso disso, instanciá-los.
Os seguintes links são muito úteis nesta questão:
Moving from Embedded Visual Basic to Visual Basic .NET
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppc2k3/html/fromemb.asp
Migrating eVB Forms to Visual Basic .NET
http://msdn.microsoft.com/mobility/default.aspx?pull=/library/en-us/dnppcgen/html/migrating_evb_forms.asp
Creating a Multiple Form Application Framework for the Microsoft .NET
Compact Framework
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/netcfuiframework.asp
> Saudações Pessoal
>
> Estou enfrentando alguns problemas quando tenho que navegar entre vários
> formulários.
>
> São 13 formulários (frmTAB01 até frmTAB13) os quais tenho que avançar ou
> retrocedor entre eles.
>
> Ocorre que não estou conseguindo "reter" os dados já digitados. Se digito
> algo em frmTAB01 e em seguida chamo o frmTAB02, quando eu volto para o
>
> frmTAB01 perco tudo.
>
> Alguém tem sugestões de como posso trabalhar com esta qtde. de formulários
> de forma que as informações já inseridas, sejam preservadas?
>
> Obrigado
Uma das maiores diferenças entre o VB.net e o eVB, é a questão como os forms são geridos: enquanto no eVB um form é instanciado quando é carregado, e é referenciado pelo próprio nome, no VB.net os forms têm de ser explicitamente instanciados em variáveis que tenham uma abrangência (scope) de acordo com as necessidades.
O que significa isto aplicado a teu caso? Significa que os dados estão a ser retidos na variável que tinha sido instanciada... a razão pela qual não deves testar a conseguir ver os valores é que quando mudas de forma para um anterior, em vez de reutilizar uma variável global que contém a instância do form com os dados, deves estar a criar uma nova instância.
Uma sugestão pode ser por exemplo criares 13 variáveis, declarando cada uma delas com um form específico:
dim gfrmTab1 as frmTAB1
dim gfrmTab2 as frmTAB2
...
dim gfrmTab13 as frmTAB13
Depois em cada form, por ex. no frmTAB5...
- quando o utilizador quer retroceder, fazes
gfrmTAB4.Show
Me.Hide
- quando o utilizador quer avançar, é preciso ver se a variável já foi
iniciada ou não:
if isnothing(frmTab6) then
gfrmTab6 = new frmTab6
end if
gfrmTab6.Show
A mesma lógica deve ser aplicada aos restantes forms.
Já tenho tido algumas solicitações de um ficheiro Excel que utilizei em tempos para registar os consumos dos meus carros, pelo que quem quiser pode descarregá-lo a partir de aqui (formato .ZIP) ou de aqui (formato .XLS). As funções utilizadas são compatíveis com o Excel dos PDA (seja o Pocket Excel, seja o Excel Mobile), as linhas de cima estão formatadas para estarem sempre visíveis. Sugiro que coloquem o zoom a 75% para melhor utilização (infelizmente o Excel Mobile do WM5.0 não 'recorda' este valor ao reabrir o ficheiro)
O ficheiro permite registar os abastecimentos (data, kms., valor em € e preço por litro), e determina a média do percurso e a média acumulada, que considero muito mais importante do que a média entre abastecimentos.
Para utilizar, só podem 'mexer' nos campos com fundo a branco! Comecem por registar os kms. do último abastecimento na célula A9, os kms. no momento do abastecimento na B9, o valor e o preço por litro nas D9 e E9. A partir daqui, só se preocupam com as células das colunas B, D e E.
Para utilizar com 2 ou mais viaturas, podem duplicar a folha, ou o próprio ficheiro. Sugiro que o coloquem na pasta 'meus documentos' do PDA e que activem a sincronização de ficheiros para terem o ficheiro sincronizado e salvaguardado no PC.
Dúvidas, sugestões, comentários, façam reply a este post.
Só por curiosidade, quando comecei a utilizar este ficheiro, em Julho de 1999, o gasóleo custava 110$ o litro, a última vez que registei consumos, o gasóleo custava 0,67€ o litro...
Há tempos prometi disponibilizar aqui o código dos projectos que utilizei como demonstração no TechDays. Infelizmente ainda não tive oportunidade de os preparar todos, mas respondendo à solicitação de um membro do PocketPT.net, aqui vão alguns deles. Ficam a faltar o que permite de COM Interop, que também demonstra a interacção com o clipboard... as boas notícias são que sei onde está, numa pen USB... as más, são que não sei da pen :(
Caso tenham alguma dúvida com o código, façam reply a este post.
Status & Notifications
Este projecto destina-se a VisualStudio 2005 e apenas pode ser executado em Windows Mobile 5.0 para PocketPC. O mesmo código poderia ser utilizado para SmartPhones com WM5.0
O projecto cobre 3 funcionalidades da .NET CompactFramework 2.0:
- suporte automático a rotação e redimensionamento de ecrã (demonstra o suporte automático a redimensionamento e relocalização de controlos em resposta à mudança de orientação do ecrã, sem recorrer a código, ou seja, apenas com as propriedades de anchoring e docking dos controlos.)
- intercepção e envio de SMS (específico para WM5.0)
- recuperação e notificação de 'status' do equipamento
Descarregar Projecto (.zip)
Forms - Suporte a rotação
Este projecto destina-se a VisualStudio 2005 e pode ser executado em equipamentos que suportem a .NET Compact Framework 2.0.
Demonstra o suporte automático a redimensionamento e relocalização de controlos em resposta à mudança de orientação do ecrã, sem recorrer a código, ou seja, apenas com as propriedades de anchoring e docking dos controlos.
[A disponibilizar brevemente]
Provisioning
Apenas suportado em Windows Mobile 5.0, este projecto demonstra como utilizar o provisioning para adicionar programaticamente um URL aos favoritos do equipamento. Muitas outras definições, como certificados, bluetooth, wifi, ligações de dados, etc., podem ser definidas por este método.
Descarregar Projecto (.zip)
Forms em Windows Mobile 5.0
Demonstra a interacção com a máq. fotográfica do equipamento, a gravação de uma foto capturada, a selecção de um contacto e a pesquisa de imagens no equipamento.
Descarregar Projecto (.zip)
Isto são as letras pequeninas do costume. Todo o código é disponibilizado sem qualquer tipo de garantia de funcionamento ou adequação a determinado fim. Não me responsabilizo pela sua utilização, nem garanto suporte ao mesmo. Pode ser utilizado livremente em aplicações comerciais.