Roberto Brunetti Mobile Blog

Bridging the Mobility Gap !

Recent Posts

Tags

Community

Email Notifications

.NET Blogs

Archives

March 2006 - Posts

Team Foundation Server: Passi di installazione
Ho pubblicato sul blog DevLeap (http://blogs.devleap.com/rob/archive/2006/03/29/7048.aspx) tutti i passi di installazione di Team Foundation Server versione finale.
ThinkMobile Conference: Dettaglio Contenuti

Ecco gli argomenti della giornata:

Architettura interna dell’applicazione di esempio

  • Layer
  • Interfaccia
  • Classi
  • Entity
  • Classi Factory
  • DAL pluggabile
  • Service Agent pluggabile
  • DevLeap.Library.Utility

NET Compact Framework Tips

  • Ottimizzare il codice generato da VS.NET
  • Come fare per...
  • Emulatori Tips & Tricks

Web Services e Service Agent

  • Web service asincroni
  • Scambio dati via Web Service
  • Service Agent
  • Service Agent pluggabile

Scenari accesso ai dati [veloce]

  • SOAP
  • Web Services
  • SOAP senza Web Service
  • ADO.NET
  • Accesso diretto a SQL Server
  • SQLCE/SQL 2005 Mobile
  • Remote Data Access
  • Merge Replication
  • Application Block

Utilizzo di DataSet: perchè ?

  • Perché non usare DataSet
  • Quando usare DataSet
  • Alternative ai DataSet

SQLCE/SQL Mobile 2005

  • Piattaforma
  • Sincronizzazione
  • Utilizzo di RDA
  • Utilizzo di Merge Replication
  • SQL 2005 Mobile Edition
  • SqlCeResultSet
  • Query Optimizer
  • Scalabilità e Performance
  • Indici
  • Query ottimizzabili
  • Query non ottimizzabili
  • Seek
  • Range
  • Index Seek & Range
  • "Very" Large Database
  • Base Table Cursor
  • Remote Data Access Tips
  • Merge Replication Tips
  • DevLeap.Library.Mobile.SQL2005MobileHelper

MSMQ [cenni]

  • Architettura
  • Utilizzo di MSMQ su Windows CE
  • System.Messaging
  • Send
  • Receive
  • Mai usare Polling !!!

Multithreading

  • Polling? No grazie
  • Classi e Delegate
  • Utilizzo
  • Control.Invoke
  • Control.BeginInvoke
  • Control.BeginInvoke e Generics
  • Sincronizzazione 

Tips & Tricks e Performance

  • Gestione memoria
  • Garbage Collection
  • JIT Compiler
  • Performance Video
  • Gestione operazioni asincrone
  • BeginInvoke
  • Dummy Call
  • Status
  • Network
  • Scrivere codice performante
  • Gestione oggetti e stringhe

Windows Mobile 5.0

  • Pocket Outlook API
  • SMS
  • SMSInterceptor
  • SNAPI
  • Nuove classi Dialog per Camera, Contacts, Video

 

Tutti gli argomenti sono tratti dai corsi DevLeap sullo sviluppo mobile.

 

Ricordo la data: 4 maggio 2006
Location: L'Aquila
Prezzo: Gratuita ! Stiamo cercando di riuscire a offrire anche Pranzi e Coffee

ThinkMobile Conference !!!

Ufficiale: il 4 maggio a L'Aquila si terrà la sesta edizione della FWC. Già nel 2004 abbiamo affrontato una introduzione allo sviluppo mobile, quest'anno andremo più a fondo !!!

Obiettivo

L’edizione 2006 si propone in chiave Mobile con l’obiettivo di mostrare tutto il codice di un’applicazione completa, scritta con .NET CF 2.0, che si appoggia a SQL 2005 Mobile Edition, SQL Server 2005, MSMQ, Web Service seguendo lo schema dei layer che DevLeap (www.DevLeap.it) utilizza per lo svilluppo di applicazioni reali. Spiegheremo il perché delle scelte, i pro e i contro di ogni soluzione.

 

Tutto il codice (tranne le parti specifiche dell’ambiente mobile) e le idee che affronteremo durante la giornata si applicano anche a applicazioni Desktop e applicazioni ASP.NET.
Anche chi non sviluppa applicazioni mobile troverà molti argomenti di suo interesse. In fondo .NET e .NET CF si assomigliano molto e soprattutto la filosofia di sviluppo su Layer con interfacce e classi factory intelligenti è assolutamente identica. Daremo ampio spazio alle tematiche di accesso ai dati con SQL 2005 Mobile Edition che metteremo alla frusta anche su tabelle di 100.000 di record.

 

Tutto il codice della soluzione verrà reso disponibile al download per i partecipanti.

 

L’evento è Gratuito.  Speaker della giornata Roberto Brunetti (Rob – c.v.) fondatore di www.thinkmobile.it.

 

www.fwc.it è il sito ufficiale dove trovi:
1) tutte le informazioni sui contenuti nell’editoriale
2) L’agenda dettagliata contiene gli orari della giornata e il dettaglio dei contenuti.
3) La pagina iscrizione

 

In particolare vedremo:

1) L’architettura in dettaglio della soluzione e dei componenti

2) I vari layer applicativi che formano l’applicazione rendendo indipendenti i vari strati a successive versioni della tecnologia o più semplicemente modifiche nei componenti

3) Le interfacce definite per rendere consistenti i vari layer applicativi

4) Le classi factory per l’accesso ai dati e le comunicazioni verso service (non necessariamente Web Service)

5) L’utilizzo di classi helper per l’accesso ai dati che semplificano l’utilizzo di tecniche molto efficienti di accesso ai dati come SqlCeResultSet e soprattutto Base Table Cursor di SQLCE/Sql 2005 Mobile

6) L’utilizzo dei generics che consentono di semplificare notevolmente il codice da scrivere per trattare diverse entità applicative

7) La gestione multithread dell’interfaccia utente per sfruttare “tempi morti” e l’inizializzazione in background di qualunque “oggetto pesante”

8) L’utilizzo di uno strato di gestione dell’interfaccia utente che rende indipendente l’utilizzo delle applicazioni su versioni diverse di Windows CE e su schermi di dimensioni diverse

9) L’integrazione del codice .NET con Pocket Outlook, SMS, System event e Notification per sfruttare tutte le novità dei device basati su Windows Mobile 5.0

10) Codice e idee (punto 5 e 9 a parte) che può essere utilizzato anche per progetti desktop dove la divisione logica in layer, l’utilizzo di class factory, interfacce, generics e multithread sono pratiche caldamente consigliate.

 

Tutto questo utilizzando Visual Studio 2005 Team System, non strettamente necessario per l’applicazione specifica che vedremo, ma molto utile nello sviluppo di qualsiasi applicazione .NET. Team System non supporta progetti mobile, né dal punto di vista dei designer, né dal punto di vista degli strumenti di Unit Testing, Performance Testing, Code Coverage, ecc., ma con “semplici” workaround si riesce a sfruttare la potenza del prodotto anche su progetti mobile.

 

Particolare attenzione sarà dedicata ai problemi che derivano da codice scritto in modo frettoloso... sono enormi in un ambiente “ristretto”. Vedremo semplici tips & tricks per evitare memory leak, cali di performance al crescere dei dati e JIT compilation troppo frequenti.

 

Il motto della giornata è: ci sono tanti modi per scrivere codice, oggi vediamo SOLO codice scritto bene che utilizza nel modo corretto la tecnologia!

 

Vi aspetto per una giornata all’insegna delle demo e del divertimento in un posto a nostro avviso stupendo.

 

Team Foundation Server Upgrade (dalla RC alla RTM)

Ho pubblicato sul mio blog su DevLeap i passi da seguire per l'upgrade della RC di TFS alla versione Final: http://blogs.devleap.com/rob/archive/2006/03/24/7030.aspx

Se riesco a terminare entro stasera pubblico anche il setup della versione RTM da zero (che sto facendo su un altro server)

HTC Tornato (imate SP5/5m) Upgrade

Scaricabile da ftp.clubimate.com la nuova versione (2.6.331.2)

Caratteristiche (direttamente dal produttore):

Microsoft Messaging and Security Feature Pack (MSFP):

Addition of the MSFP allowing Direct Push email, remote device wiping, security policy enforcement and Global Address List Lookup for customers using a Microsoft Exchange Server 2003 with Service Pack 2.

File beaming over Bluetooth:

It is now possible to beam files over Bluetooth using the file manager.

Improved radio functionality:

Microphone level has been boosted.

Cell Broadcast display is now supported.

Line2 functionality introduced.

Busy Tone corrected.

Improved the echo suppression.

USSD service support is upgraded.

Updated MMS:

MMS will now operate until there is only 1 Mb of free storage space. Previously this limit was set at 4Mb.

MMS client updated to the current version

Improved Pocket Internet Explorer:

Frames functionality now supported in the browser.

Quick navigation using Page Up key (key 2) and Page Down key (key 8).

Keypad Light Timing:

The timeout of the keypad light can now be set. There is a utility in the 'Utilities' section of the SP5m support pages that will let you set it. Note that setting the keypad light over 8 seconds will cause significant reduction in battery life.

Voice Dial:

Voice Dial reliability from handset has been improved.

Communication Manager:

Communication Manager has been updated to allow current data services to be stopped, Direct Push email to be started/stopped using a single button press, and flight mode to be switched on/off.

Reminders:

When the device is locked, calendar reminders can be snoozed by using the joystick. Previously it was only possible to press the numeric key associated with the menu option to snooze a reminder.

Bluetooth:

Car Kit interface: Address book sync can now be performed to car kits.

Bluetooth Beaming from file manager has now been improved (more reliable and faster).

Java:

Updated Java client to latest version.

Posted: 03-24-2006 13:12 by Roberto Brunetti | with no comments
Filed under:
Vista: la morte di ActiveSync

ActiveSync 4.2 (la prossima versione) sarà l'ultima !

In Windows Vista infatti ActiveSync viene integrato nel S.O. e prenderà il nome di Windows Mobile Device Center. Nell'ultima CTP di Vista è già presente il componente, quindi se decidete di usare Vista da oggi NON installate ActiveSync, altrimenti...addio connettività verso il device. ActiveSync monta sopra (ma non del tutto) al nuovo componente e qualche incompatibilità crea problemi di connessione.

HTC 8500

Ottima recensione su http://www.pocketpcitalia.com/Recensioni/Smartphone/Anteprima%2DQtek%2D8500%2D%28HTC%2DStar/

Posted: 03-18-2006 18:50 by Roberto Brunetti | with no comments
Filed under:
HTC Hermes

Non si fa in tempo a comprare un device che dietro l'angolo ne spunta un altro...forse è il bello del nostro lavoro.

Che ne dite ?

1) 400 Mhz
2) Simile a HTC Wizard (XDA Atom)
3) Forse si chiamerà Qtek 9600 in Italia
4) HSDPA...per chi non sa cos'è: il successore dell'UMTS
5) Luglio o Agosto 2006
6) Foto ? Quante ne volete : http://www.mobinaute.com/mobinaute/article.php?id=20060317145418

Posted: 03-18-2006 17:11 by Roberto Brunetti | with no comments
Filed under:
Dell UMPC

Sembra proprio di sì anche se ancora non è ufficiale l'entrata di Dell nel mercato UMPC

dell_um100.png

Posted: 03-18-2006 15:55 by Roberto Brunetti | with no comments
Filed under:
Introduzione a SQL 2005 Service Broker

Ho pubblicato fra gli articoli DevLeap, questa introduzione al ruolo del broker di SQL 2005. http://blogs.devleap.com/articolidevleap/archive/2006/03/16/6965.aspx

In tutti gli scenari dove un client mobile lavora connesso può avere un senso utilizzare il broker (direttamente dalla SqlClient oppure passando da Web Service) per snellire il client da operazioni complesse.

Conoscere il path verso le Storage Card: VB.NET

Dopo le domande sul forum ecco la traduzione gentilmente effettuata da lele in VB.NET per .NET CF 1.0 al codice postato nel post precedente:

http://forum.pocketpcitalia.com/forum_posts.asp?TID=6390&TPN=1

Conoscere il path verso le Storage Card

Dopo una domanda sul forum di Pocket PC Italia, ho pensato di pubblicare il codice che uso per rintracciare da codice la path verso le storage card disponibili su un device.

Visto che ogni storage card sta sotto la root del device e ha l'attributo Temporary e l'attributo Directory impostato a true, puoi usare direttamente la System.IO senza andare sotto con PInvoke e senza usare OpenNETCF.

public static string[] GetStorageCardNames()
{
   ArrayList scards =
new ArrayList();
   DirectoryInfo rootDir =
new DirectoryInfo(@"\");
   foreach(DirectoryInfo di in rootDir.GetDirectories() )
   {

      FileAttributes attrStorageCard = FileAttributes.Directory &
      FileAttributes.Temporary;

      if ( (di.Attributes & attrStorageCard) == attrStorageCard )
      {
         scards.Add(di.Name);
      }
   }

   return (string[])scards.ToArray(typeof(string));
}

Questo codice nasceva per la versione 1.0 del .NET CF. Il tutto può essere riscritto usando i Generics di C# 2.0 per il .NET CF 2.0

public static List<string> GetStorageCardNames()
{
   List<string> scards =
new list<string>;
   DirectoryInfo rootDir =
new DirectoryInfo(@"\");
   foreach(DirectoryInfo di in rootDir.GetDirectories() )
   {

      FileAttributes attrStorageCard = FileAttributes.Directory &
      FileAttributes.Temporary;

      if ( (di.Attributes & attrStorageCard) == attrStorageCard )
      {
         scards.Add(di.Name);
      }
   }

   return (scards);
}

Così si evita un array generalizzato e il cast sul risultato.

Collegare Emulatore WM 5.0 con la rete

Dopo la domanda di Simondj sul forum ho pensato utile postare i passi per settare il Virtual Network Driver sull'emulatore WM 5.0

1. Installa Virtual Machine Network Driver for Microsoft Device Emulator

2. Visual Studio 2005, Tools>Options. -> Device Tools ->
Devices. Seleziona 'Windows Mobile 5.0 Pocket PC Emulator' e vai nelle proprietà

3. Modifica il trasporto su 'TCP Connect Transport'. 

4. Vai su 'Configure' . Metti un IP valido per la tua rete oppure usa il DHCP (prova prima con IP fisso, a me a volte non prende l'ip).

5. Emulator Options . Vai su Network e lega 'Enable NE2000  PCMCIA network adapter and bind to:" alla scheda corretta. Abilità il checkbox ovviamente.

6. Nell'emulatore  Start > Settings > Network Cards  

7. Vai su NE2000 Compatible Ethernet Driver. Seleziona 'Connected network card" o una degli adapter indicati che abbia una connessione valida

8. Seleziona 'My network card connects to:" e imposta 'The Internet'

9. Cancella lo stato dell'emulatore e fai un hard reset.

10. Monta VxUtil sull'emulatore e prova la connettività con Ping

Il virtual Network driver si trova sotto: http://www.microsoft.com/downloads/details.aspx?familyid=DC8332D6-565F-4A57-BE8C-1D4718D3AF65&displaylang=en

VXUtil invece è una utility comodissima per testare le connessioni (ping, trace, ipconfig, e così via) scaricabile da http://www.cam.com/vxutil.html

Pocket PC Phone con TV e Radio FM ?

Davvero !

Info: http://www.pocketpcthoughts.com/articles.php?action=expand,46925

Posted: 03-11-2006 0:16 by Roberto Brunetti | with no comments
Filed under:
Update JasJar - HTC Universal

Disponibile sul sito ftp di iMate: ftp://ftp.clubimate.com/

Il file in questione è WWE_13076_164_10900.

Posted: 03-11-2006 0:13 by Roberto Brunetti | with no comments
Filed under:
More Posts Next page »