#6 - Tips & Tricks Marco Frontini [email protected] Product Manager www.softandroll.it Forms Full-Screen & Controls • Managed • Text = “” • Menu = null/Nothing • …e se serve l’input panel o il menu? • Native – SHFullScreen • …e se l’utente usa l’help dell’input panel? • Managed OnDeactivate() • Native GetForegroundWindow • Non dimentichiamoci uno shortcut • Per chiudere in caso di manutenzione (magari con password) • Task List: come visualizzare una sola form Display e Layout Windows Mobile 2003 SE Funzionalità dei Device • Orientamento • Risoluzione • .NET Compact Framework 1.0 Service Pack 2 • • • Aggiunta automatica delle scrollbars Gestire l’evento Form.Resize White paper su MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnppcgen/html/orientation_awareness.asp Scrollable Something • System.Windows.Forms.ScrollableControl è una finta • Managed • Panel come container dei child Controls • Native • ScrollWindowEx + SW_SCROLLCHILDREN • E con la Second Edition • … ancora peggio… • Custom Control • Il designer di VS 2003 non li supporta • Nessun problema, lo inganniamo Display And Layout .NET Compact Framework 2.0 • Supporto all’orientamento • • • • • • Docking e Anchoring Proprietà AutoScroll – forms, panels Metodi Suspend/Resume Layout Metodo ChangeOrientation Supporto alta risoluzione Scaling automatico SIP • Aggiungere il controllo Software Input Panel • Deve essere presente il MainMenu (anche vuoto) • Controllo da codice • SIP.Enabled = true/false • Resize del form/controlli • Intercettare EnableChanged • Proprietà VisibleDesktop di tipo Rectagle • Height e Width per sapere la dimensione • Attenzione al ClientRectangle Non tutti sanno che … • • • • • • • • • Retargetable flag attribute Typed DataSets HTTP Server Migrazione da eMbedded Visual Tools Obfuscation Compilazione da riga di comando Control Design – RuntimeAssemblyAttribute Custom Controls con VS 2003 Design guidelines di Microsoft • Non mostrare voci multiple nella TaskList SQL Server CE Query Processor • Parsing • Valida la sintassi • Compilazione • Carica i metadati delle tabelle e colonne e crea un primo execution plan • Ottimizzazione • • • • Heuristic Cost-Based Considera execution plan alternativi Genera una struttura eseguibile con il plan dal costo minore SQL Server CE Performance • Normalizzazione e Join • Non superare 5-6 tabelle, eventualmente denormalizzare • Precalcolare i valori di colonne calcolate nelle query • Campi a lunghezza fissa • In caso di frequenti aggiornamenti evitano la riallocazione delle pagine • Creare record di dimensioni ridotte • Spostare campi Binary, Text o acceduti di rado • Tenere PK e FK con pochi campi, meglio uno • Attenzione all’ordine dei campi negli indici o PK multi-column • Non indicizzare le tabelle piccole (1-2 pagine) • #Pages = <sum of sizes of columns in bytes> * <table rows> / 4096 • In questi casi il table scan è più efficente • Eseguire periodicamente la compattazione del DB SQL Server CE Tips & Tricks Come impostare la directory TEMP usata dal SQL CE Engine per il TempDB SqlCeConnection conn = new SqlCeConnection(); conn.ConnectionString = "Data Source = Northwind.sdf; temp file directory = \TempCustomFolder;" Tips & Tricks SQL Server 2005 Mobile Edition è il database per i device? Smartphone • • • • Senza Touch Screen, due soft keys MessageBox con solo 2 commands TabControl non supportato (ListView + FullScreen Panel) Supported Controls: Label TextBox (* multiline) MainMenu CheckBox PictureBox Panel ComboBox (*) ListView TreeView HScrollBar VScrollBar Timer ProgressBar ImageList WebBrowser (CF 2.0) DateTimePicker (CF 2.0) DataGrid (CF 2.0) SerialPort (CF 2.0) Fuori in 60 secondi Creare una gestione dati in 60’’ DataSoul Framework www.softandroll.it Links utili • Windows Mobile Version 5.0 SDK for Pocket PC • http://go.microsoft.com/fwlink/?LinkId=49266 • Windows Mobile Version 5.0 SDK for Smartphone • http://go.microsoft.com/fwlink/?LinkId=49270 • .NET Compact Framework 1.0 Sp3 • http://www.microsoft.com/downloads/details.aspx?FamilyID =7bf313b9-71ed-4e15-ad6e-315dae6faf9f&DisplayLang=en • Microsoft Mobility • http://msdn.microsoft.com/mobility/ © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Content created by 3 Leaf Solutions