Category Archives: 3171

Com tanta performance bruta, a optimização ainda fará sentido?

A Red Gate publica uma newsletter chamada Simple Talk, que no geral, tal como as ferramentas da Red Gate, versam temas ligados à administração e utilização de bases de dados em SQL Server e ao profiling the aplicações .NET

Na última newsletter recebida esta semana, um tópico chamou a minha atenção…

A título de minha introdução e comentário à minha provocação no título deste post, numa altura em que o armazenamento ‘físico’, a memória RAM, a capacidade de processamento e o desempenho das redes deixaram de ser consideradas limitações, na fase de preparação e de desenvolvimento propriamente dito de soluções tendemos a esquecer-nos da optimização de processos. Há pouco tempo um amigo ligado a uma importante empresa portuguesa ligada ao desenvolvimento de software de gestão comentava que uma funcionalidade recentemente acrescentada ao software demorava demasiado tempo a ser executada nos seus clientes. Quando questionado o programador que a implementou, o comentário foi que nos testes que tinha feito, ‘aquilo’ era rápido, mas depressa se chegou à conclusão que o volume de informação testado era muito inferior ao volume que alguns clientes tinham nas suas bases de dados. O processo, muito intensivo em termos de operações de bases de dados provavelmente não teria sido optimizado, lembremo-nos que há pessoas que ainda não usam a preparação de comandos SQL com parâmetros quando têm de repetir a mesma acção um nº variável de vezes com valores diferentes. Na nossa empresa, seja por razões de performance na preparação de comandos, segurança para evitar SQL injection e confiança no tratamento de valores numéricos e datas, usamos sempre comandos com parâmetros, não embebemos os valores na string do .CommandText (a excepção é quando precisamos de utilizar o operador IN (…) ).

O tal tópico não tem a ver com a performance na óptica mencionada no ponto anterior, mas na óptica da execução de cada instrução SQL, mais precisamente explica detalhadamente o que é o Exectution Plan do SQL Server, como obtê-lo, formas de apresentação do mesmo e como o interpretar, para a partir dessa informação testar diferentes variantes de um comando e diferentes opções em termos da estrutura da base de dados em si, como índices, de modo a medir e determinar o melhor compromisso para a sua execução.

Fica o link directo para o artigo, que é o primeiro capítulo do mais recente livro do autor, dedicado às questões do Execution Plan:

Execution Plan Basics
Simple-talk: Grant Fritchey

http://www.simple-talk.com/sql/performance/execution-plan-basics/

Uma ressalva, apesar de eu geralmente apenas falar sobre questões ligadas ao desenvolvimento para a .NET Compact Framework e o SQL Server Compact, o artigo mencionado refere-se ao SQL Server para servidores, cujo ‘query processor’ difere daquele que encontramos no SQL Server Compact, pelo que o artigo sendo útil não é aplicável na sua totalidade a esta versão

.NET Compact Framework 3.5 e SSCE 3.5 disponíveis para instalação!

Está já disponível para download a versão ‘standalone’ ou ‘redistribituível’, como preferirem, da .NET Compact Framework 3.5, incluída igualmente no Visual Studio 2008 recentemente disponibilizado para subscritores MSDN.

Este download é imprescindível para poder correr aplicações .NET CF 3.5, não exisindo nenhum equipamento actualmente que já a inclua pré-instalada.

O seu download pode ser efectuado a partir de…

.NET Compact Framework 3.5 Redistributable
http://www.microsoft.com/downloads/details.aspx?FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385&displaylang=en

…e pode ser instalada em equipamentos Windows Mobile 2003 (PocketPC), Windows Mobile 5.0 (PocketPC e Smartphone), Windows Mobile 6 (todas as edições), Windows CE 5.0 e 6.0.

Com o VS2008 foi igualmente disponibilizado o SQL Server Compact Edition 3.5, cujos runtime podem ser instalados a partir de…

Microsoft SQL Server Compact 3.5 for Windows Mobile
http://www.microsoft.com/downloads/details.aspx?FamilyID=38ed2670-a70a-43b3-87f3-7ab67b56cbf2&DisplayLang=en

A lista de compatibilidades é idêntica à da .NET CF 3.5.

Novo newsgroup em Português dedicado ao desenvolvimento para Windows Mobile e contactos directos

Este post é uma ‘reedição’ de um mais antigo, ‘justificado’ por haver um newsgroup novo em Português dedicado ao desenvolvimento para Windows Mobile (e Windows CE também), mas também por continuar a receber pedidos directos de ajuda no meu mail.


O que sugeriria era que em vez de me contactarem directamente, que usassem os newsgroup oficiais em português da Microsoft dedicados à utilização de equipamentos Windows Mobile/Windows CE e ao desenvolvimento para esta plataforma. Ao colocarem as V/ questões nos newsgroup, que acompanho regularmente, têm uma garantia que um maior número de pessoas pode ver e participar na discussão, para além de outras pessoas poderem beneficiar das experiências dos outros.


Os newsgroups são o microsoft.public.pt.pocketpc (questões gerais) e microsoft.public.pt.windows.mobile.desenvolvimento (questões sobre desenvolvimento), e podem ser acedidos livremente utilizando um newsreader, como o Outlook Express do Windows XP, o Windows Mail do Windows Vista, o muito interessante Windows Live Mail (beta) ou o excelente, gratuito e pesado, Omea Pro/Reader. O servidor a utilzar é o msnews.microsoft.com e não carece de autenticação.


Também podem aceder ao newsgroup, seja utilizando o interface web da Microsoft…


http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.pt.pocketpc
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.pt.windows.mobile.desenvolvimento


…seja o Google Groups…


http://groups.google.pt/group/microsoft.public.pt.pocketpc/topics
http://groups.google.pt/group/microsoft.public.pt.windows.mobile.desenvolvimento/topics


Claro que podem continuar a contactar-me directamente, e responderei logo que possível. Contactos ‘profissionais’ que passem pelo desenvolvimento de soluções de mobilidade à medida, consultoria ou outros assuntos relacionados com a moving2u, empresa da qual sou sócio, nomeadamente sobre a nossa solução de Pré-Venda/Auto-Venda, deverão ser encaminhadas para alberto.silva(@)moving2u.pt (retirar os parentesis à volta da @)

Instalação das ‘SQL Server CE Server Tools’ em Windows Server 2003 x64

Ao procedermos à reinstalação das ‘SQL Server CE 2000 Server Tools 2.0′ num servidor novo de um cliente, ao testarmos a DLL no Internet Explorer…

http://servidor/replicacao/sscesa20.dll

…obtíamos um daqueles erros genéricos do IE quando não consegue visualizar a página. Após desactivar a opção ‘Mostrar mensagens de erro amigáveis’ – ou similar – nas opções do IE, a mensagem passou a ser mais explícita:

%1 is not a valid Win32 application

A mensagem era um pouco estranha, até… ir às propriedades do computador e ver que estava a correr uma versão de 64 bits do Windows Server 2003.

Depois de algum tempo a investigar na Internet, nomeadamente na KB da Microsoft, encontrei algumas pistas: o IIS 6.0 estava a correr em ‘modo de 64 bits’ e como tal não reconhecia esta DLL de 32 bits. Não tendo encontrado nenhuma referência explícita a se este cenário é ou não suportado, ‘segui em frente’ nas minhas investigações, e encontrei um comando que permite colocar o IIS 6.0 x64 a correr aplicações de 32 bits, modificando a metabase do IIS:

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

Depois de um iisreset, o teste ao sscesa20.dll devolveu a tão desejada string :)

SQL Server CE Agent

Nesta altura, constatei que as páginas ASP.net e os web services deixaram de funcionar, pelo que tive de ‘apontar’ o IIS para a versão 32 bits do ASP.net 2.0, com o ‘clássico’ aspnet_regiis -i.

Por agora está tudo a funcionar, mas se por ex. a máquina também tivesse o Exchange 2007 instalado, o cenário podia (do que me lembro de ter visto numa qualquer página que me apareceu à frente dos olhos) ser diferente. Aliás, a empresa que gere a rede e a infraestrutura do cliente pode amanhã chegar à conclusão que esta ‘abordagem’ levou a que algo deixasse de funcionar, é que ao colocar o IIS 6.0 em ‘modo 32 bits’ o mesmo deixa de aceitar aplicações 64 bits a correr no IIS.

No meio de muitas outras páginas, as seguintes 2 da KB foram de extrema utilidade na resolução deste problema:

Windows Server 2003 SP1 enables WOW64 compatibility for 32-bit Web applications in IIS 6.0
http://support.microsoft.com/kb/895976

How to switch between the 32-bit versions of ASP.NET 1.1 and the 64-bit version of ASP.NET 2.0 on a 64-bit version of Windows
http://support.microsoft.com/default.aspx/kb/894435

Como podem ver pela hora a que este post foi colocado online, isto deu àgua pelas barbas… imagino que esta mensagem também possa ser útil para aqueles que pretendam instalar as ‘Server Tools’ do SQL Server CE 2.0 / 3.1 em Windows XP x64.

Lançada ferramenta que permite sincronizar bases de dados Access com SQL Server 2005 Compact Edition

Acabou de ser disponibilizada gratuitamente a ferramenta da Microsoft que permite sincronizar uma base de dados em Access do lado do ‘PC’ com uma base de dados SQL Server 2005 Compact Edition num PDA ou SmartPhone Windows Mobile.


Esta ferramenta funciona com o Microsoft Access 2000 ou posterior e exige o ActiveSync 4.0 ou posterior.


Microsoft SQL Server 2005 Compact Edition Access Database Synchronizer
http://www.microsoft.com/downloads/details.aspx?FamilyId=B967347A-5DD0-445C-8A9F-AEA3DB9EC4BC&displaylang=en


A Primeworks tem um produto que também permite sincronizar bases de dados Access com PDAs com SQL Server CE 2.0 e 3.0, mas que tem a vantagem de poder fazer essa sincronização através de TCP/IP e não apenas via ActiveSync.

SQL Server 2005 Service Pack 2 já disponível

Foi hoje disponibilizado o SP2 do SQL Server 2005, e dos seus vários ‘módulos’, para além do SQL Server 2005 Express Edition.


SQL Server 2005 Service Pack 2
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/servicepacks/sp2.mspx


Para além de algumas correcções, este service pack revela-se de grande importância, quer para os programadores em geral, pois passa a ser oficialmente suportado no Vista, quer para aqules que programam para o SQL Server 2005 Compact Edition, pois passa a ser possível criar e manter bases de dados SSCE a partir da consola do SQL Express:


Microsoft SQL Server Management Studio Express
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796

‘III Fórum Empresarial Mobilidade e RFID’ da Sybase no próximo dia 15 de Fevereiro

Vai ter lugar no próximo dia 15 de Fevereiro, no Hotel Vip Executive Art’s em Lisboa a 3ª edição deste evento promovido pela Sybase.


Segundo a Sybase, há a destacar para etse evento:


- State-of-the-art da tecnologia Mobile e RFID e vantagens reais para a actividade das organizações

- Mobilização de SAP, Siebel, Business Objects, Remedy, Lotus Notes, Portais Corporativos, Intranets, Web Services, entre outras fontes de dados
- Casos de Referência Mobile e RFID: destaque para EDP (acesso a email e PIM, gestão remota de dispositivos: segurança, software, backups, configurações, etc), Guarda Civil de Espanha (gestão remota de 3000 dispositivos) e Correios de Espanha (maior caso RFID da Europa)


- ‘Mobile Messaging‘ como forma de potenciar o seu negócio e aproximá-lo dos seus clientes
- Centro de Investigação RFID – Casos práticos de utilização RFID: POS RFID, Asset Tracking (Demo para a área hospitalar), Validação e Controlo de Items para a indústria têxtil e outras. Lançamento do Pólo RFID de Coimbra, do Programa Académico e do Portal RFID.
- Montra Tecnológica com demonstração de soluções Mobile e RFID


Para quem não está a par, a Sybase é um importante player  na área da mobilidade, nomeadamente para as plataformas móveis da Microsoft, contando com ferramentas de base de dados e de gestão de infraestrutura de mobilidade.


A inscrição neste evento é gratuita. Para se inscrever, siga as intruções na seguinte página:


http://www.sybase.pt/gvsview/gvs/sybase-pt/eventos…

Windows Mobile Briefing 2007 em Portugal em Março

À semelhança do que aconteceu o ano passado, este ano o Windows Mobile Briefing volta a passar por Portugal… o sucesso da edição do ano passado nos países por onde passou levou a que a iniciativa volte a ser repetida este ano.


Neste evento poderemos contar com 3 tracks, com as respectivas agendas:


DeveloperPara programadores


EnterpriseOrientado para IT


PartnersPara parceiros


Porquê participar neste evento?

Para além de ser completamente gratuito, é uma excelente oportunidade para aprender mais sobre a plataforma Windows Mobile em diversas vertentes, e ainda com um pequeno presente, para além de se candidatarem a ganhar um PDA Fujitsu Siemens.

Em Portugal o evento terá lugar no dia 8 de Março em Lisboa em local a designar.

Podem consultar a agenda e inscreverem-se em:

Windows Mobile Briefing 2007 “Winning with Windows Mobile”
https://msevents.microsoft.com/cui/EventDetail.aspx?EventID=1032313053&culture=en-US

Novos Conteúdos na MSDN dedicados ao SQL Server 2005 Compact Edition

Dias depois do lançamento desta nova edição do SQL Server 2005, há já um número considerável de artigos que versam alguns tópicos pertinentes à utilização desta edição, nomeadamente no capítulo da sincronização.


Eis uma lista de alguns desses artigos:


Remote Data Access Synchronization with SQL Server 2005 Compact Edition and Visual Basic.NET
Remote Data Access Synchronization with SQL Server 2005 Compact Edition and Visual C#.NET
Aprenda a criar uma applicação Windows Forms, utilizando o Visual Basic.NET e o C#, que sincroniza dados entre uma base de dados em SQL Server 2005 e outra em SQL Server 2005 Compact Edition, recorrendo ao Remote Data Access (RDA).

Configuring Internet Information Services for SQL Server 2005 Compact Edition Remote Data Access and Merge Replication
Configue o IIS para remote data access (RDA) e merge replication, duas tecnologias que pode utilizar para sincronizar dados entre uma base de dados num servidor com SQL Server 2005 e uma base de dados local em SQL Server 2005 Compact Edition.


SQL Server 2005 Compact Edition Data Access with the SqlCeResultSet and Visual Basic.NET

SQL Server 2005 Compact Edition Data Access with the SqlCeResultSet and Visual C#.NET
Aprenda a usar o SqlCeResultSet, uma evolução do performante SqlCeDataReader, que suprime as limitações de navegação sequencial e ‘forward-only’, para além de ser editável, para aceder à informação em bases de dados em SQL Server 2005 Compact Edition.

Rapid Application Development Using SQL Server 2005 Compact Edition and Visual Basic.NET
Rapid Application Development Using SQL Server 2005 Compact Edition and Visual C#.NET
Aprenda como utilizar as funcionalidades integradas no Visual Studio 2005 para desenvolver mais rapidamente aplicações assentes em bases de dados em SQL Server 2005 Compact Edition.

Application Deployment with Shared and Private Deployments (VB)
Application Deployment with Shared and Private Deployments (C#)
Conheça as duas abordagens disponíveis para incluír o SQL Server Compact Edition no processo de instalação das suas aplicações.

[Actualização]
Links corrigidos

SQL Server 2005 Compact Edition já disponível em RTW

Foi disponibilizada hoje a mais recente edição do SQL Server 2005, a ‘Compact Edition’.


Esta nova edição é antes de tudo um rebranding daquele que até aqui tinha como designação oficial, ‘SQL Server 2005 Mobile Edition’, ou ‘SQL Mobile 3.0′ para os amigos, e que chegou a ser batizado de ‘SQL Server 2005 Everywhere Edition’, mas que para evitar confusões com os produtos da IBM da família DB2 e da Sybase, viu a sua designação definitiva ser alterada.


O que justifica esta nova edição?


Até ao lançamento das CTP desta nova edição, o SQL Server 2005 Mobile Edition – SQL Mobile daqui em diante – só podia ser utilizado em equipamentos com Windows Mobile e em… Tablet PCs, para além de máquinas de desenvolvimento, ou seja, tecnicamente era suportado em Windows XP, mas legalmente não podia ser utilizado em qualquer máquina com Windows XP.


E o que levaria alguém a querer utilizar o SQL Mobile num PC???


O SQL Mobile é um motor de base dados muito leve, que corre ‘in-proc’ como é hábito designá-lo, ou seja, não existe um serviço a correr no equipamento que ‘serve’ os pedidos, ou seja, tem uma filosofia mais próxima do que é o acesso a uma base de dados Access num PC.
Algumas das vantagens incluem…


  • é gratuito, como o SQL Server 2005 Express Edition
  • permite acessos concorrenciais à mesma base de dados
  • o processo de ‘instalação’ com uma aplicação .net que o utlize é extremamente simples
  • ao correr ‘in-proc’, não é mais um serviço a pesar no task manager, para além de não expor o PC a qualquer tipo de vulnerabilidade
  • expõe de uma forma muito simples a sincronização de dados via Merge Replication e Remote Data Access (RDA)

E limitações, tem?


Para além de não poder ser utilizado como base de dados a partir de por ex. ASP.net, tem algumas limitações técnicas, que partilha com a versão para Windows Mobile, tais como…


  • Set de instruções SQL limitado, não permitindo por ex. ‘SELECT … FROM (SELECT …) origem’
  • não existe suporte a Views, Stored Procedures ou Triggers

Então… mas – insistindo – porque é que alguém quererá utilizar este ‘Compact Edition’ num PC?!?!


Esta edição do SQL Server é a ideal para trabalhar em ambientes ‘ocasionalmente ligados’, por ex. para utilização em modo off-line em portáteis com sincronização via replicação ou web-services, para além de se adequar a aplicações do tipo Windows Forms que necessitem de uma base de dados como repositório de informação que não precise de ser acedida em rede via TCP/IP, surgindo portanto como alternativa ao JET e ao Access.
É ainda útil na vertente da partilha de código e/ou bases de dados com PDAs com aplicações escritas para a .NET Compact Framework 2.0


Como posso criar e manter uma base de dados ‘SQL Server 2005 Compact Edition’?


O ‘SQL Server Management Studio’ do SQL Server 2005 trata disso, para além de se poder utilizar também o VS 2005 para esses trabalhos de criar, modificar ou consultar uma base de dados.


E já há ferramentas de terceiros que suportem esta nova edição?


A Primeworks já suporta o ‘SQL Server 2005 Compact Edition’ nalguns produtos, pelo que é possível utilizar o Data Port Console, actualmente em pré-beta, ou a ferramenta de sincronização para sincronizar uma base de dados em ‘Compact Edition’ com uma base de dados num PC/servidor em Access.


Ah! Já me esquecia… com que ambientes de desenvolvimento podemos usar a ‘Compact Edition’?


O Visual Studio 2005 com a .NET Framework 2.0 ou a Compact Framework 2.0 são as ferramentas de eleição, mas outras poderão ser suportadas ainda que não oficialmente, como o VB6.


Onde posso encontrar mais informação e descarregar esta edição?


No seguinte endereço pode descarregar-se o software, os run-time, white-papers, datasheet e um comparativo entre o ‘Compact Edition’ e o ‘Express Edition':


Microsoft SQL Server SQL Server 2005 Compact Edition
http://www.microsoft.com/sql/editions/compact/default.mspx


‘RTW’ significa…


‘Release to Web’


Então, e este espírto de entrevista deve-se a…


A não estar com cabeça para organizar as ideias num artigo ‘convencional’ :D