La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

App.Path MagariMagari OpenNETCFOpenNETCF ReflectionReflection Assembly.GetExecutingAssembly().GetName().CodeBaseAssembly.GetExecutingAssembly().GetName().CodeBase.

Presentazioni simili


Presentazione sul tema: "App.Path MagariMagari OpenNETCFOpenNETCF ReflectionReflection Assembly.GetExecutingAssembly().GetName().CodeBaseAssembly.GetExecutingAssembly().GetName().CodeBase."— Transcript della presentazione:

1 App.Path MagariMagari OpenNETCFOpenNETCF ReflectionReflection Assembly.GetExecutingAssembly().GetName().CodeBaseAssembly.GetExecutingAssembly().GetName().CodeBase System.IOSystem.IO Path.GetDirectoryName per strappare lexePath.GetDirectoryName per strappare lexe

2 Risorse Embedded BMP, ICO, JIG etcBMP, ICO, JIG etc DichiarareDichiarare Build Action = Embedded ResourceBuild Action = Embedded Resource Copy To Output Directory = Do not CopyCopy To Output Directory = Do not Copy CompilareCompilare Per recuperarle dallexePer recuperarle dallexe GetManifestResourceStreamGetManifestResourceStream

3 Device IP Dns.GetHostEntryDns.GetHostEntry Può avere più di un IPPuò avere più di un IP Centralizzare la funzioneCentralizzare la funzione

4 File.Config….magari File.Config….magari Da codice Namespace OpenNETCF.ConfigurationDa codice Namespace OpenNETCF.Configuration ConfigurtionSettings.AppSettings[nome]ConfigurtionSettings.AppSettings[nome] N.B. OpenNETCF 1.2N.B. OpenNETCF 1.2 Per applicazione Applicazione.exe.configPer applicazione Applicazione.exe.config Per DLL Applicazione.dll.configPer DLL Applicazione.dll.config Solo per primo livelloSolo per primo livello 1.3 Applicazione.exe.config1.3 Applicazione.exe.config Fatto a mano (con caching)Fatto a mano (con caching)

5 try try { File.Open() File.Open() } catch (FileNotFoundException e) catch (FileNotFoundException e) { MessageBox.Show(Casino sul file); MessageBox.Show(Casino sul file); } finally finally { File.Close File.Close } Uso Corretto try/catch Usare try/finally allinterno di try/catch:Usare try/finally allinterno di try/catch: try try { { File.Open() File.Open() } finally finally { File.Close File.Close } } catch (FileNotFoundException e) { catch (FileNotFoundException e) { MessageBox.Show(Casino sul file); MessageBox.Show(Casino sul file); }

6 Form Load Sempre Lento !Sempre Lento ! ObiettivoObiettivo Prima voltaPrima volta Ridurre il tempo di caricamentoRidurre il tempo di caricamento Successive volteSuccessive volte Azzerare il tempoAzzerare il tempo

7 Form Load first time (20% c.a.) VS.NET 2003/ VS 2005VS.NET 2003/ VS 2005 Costruttore chiama InitializeComponentCostruttore chiama InitializeComponent InitializeComponentInitializeComponent Controlli Quadrati (Panel, Tab, Form)Controlli Quadrati (Panel, Tab, Form) Sostituire con this.xxx.Bound = new Rectangle())Sostituire con this.xxx.Bound = new Rectangle()) GerarchiaGerarchia Usare figlio.Parent al posto di Papà.AddUsare figlio.Parent al posto di Papà.Add E Top Down: prima il papà e poi il figlioE Top Down: prima il papà e poi il figlio Occhio che il Designer rigenera sempre tuttoOcchio che il Designer rigenera sempre tutto Agire subito prima del deployAgire subito prima del deploy Fare classe Finta che blocca il designerFare classe Finta che blocca il designer Tenere due formTenere due form Su quella Auto fare modifiche e ricopiare il VeraSu quella Auto fare modifiche e ricopiare il Vera

8 Form ReLoad Form ReLoad Form di dettaglio da aprire più volteForm di dettaglio da aprire più volte Definire static il costruttoreDefinire static il costruttore Che inizializza solo la prima volta la formChe inizializza solo la prima volta la form Definire costruttore privatoDefinire costruttore privato In pratica si tiene in memoria la formIn pratica si tiene in memoria la form Meno costruzione/distruzione oggetti !Meno costruzione/distruzione oggetti ! Il GC non può scaricare la form se cè bisognoIl GC non può scaricare la form se cè bisogno Volendo si può precaricare da un background threadVolendo si può precaricare da un background thread Al termine del Load della prima formAl termine del Load della prima form


Scaricare ppt "App.Path MagariMagari OpenNETCFOpenNETCF ReflectionReflection Assembly.GetExecutingAssembly().GetName().CodeBaseAssembly.GetExecutingAssembly().GetName().CodeBase."

Presentazioni simili


Annunci Google