June 2005 - Posts
Ci dicono che il codice utilizzato con i Mobile Control della versione 1.1 funziona senza modifiche nella versione 2.0. Fondamentalmente è vero, anche perchè nella 2.0 ci sono i mobile control della 1.1 :-)
I problemi non sono sul codice o sulle singole proprietà dei controlli, bensì nel nuovo modello architetturale della pagina. Per migrare ci sono due soluzioni:
1) Ricreare da VS 2005 tutte le pagine e copiarci dentro il contentuo del body e i vari event handler del CodeBehind...ci vuole una vita...
2) Copiare l'intero progetto 1.1 in VS 2005...ci vuole molto meno :-)
Se scegliete la soluzione 2 come ho fatto io 3 semplici passi per far funzionare di nuovo il tutto
1) Modificare l'attibuto della @Page da CodeBehind in CodeFile
2) Nel CodeBehind...pardon CodeFile mettere partial nella definizione della classe, togliere tutte le definzioni dei controlli che si trovano subito dopo la definizione della classe e segare il Web Form Designer Generated Code creato da VS 2003.
3) Occhio agli event handler: per default VS 2003 metteva AutoeventWiredUp=false nelle pagine in quanto agganciava gli event handler nel codice autogenerato nel CodeBehind. Quindi o mettere autoeventwiredup a true oppure riagganciate gli eventi copiando il codice generato dal vecchio VS 2003. Consiglio la seconda strada in quanto AutoEventWiredUp non è bello perchè cerca gli eventi definiti per lanciarli (tutto lavoro inutile)
Dalla Beta2 di ASP.NET 2.0 (vuol dire anche per il prodotto finale) c'è stato un cambiamento di rotta sui controlli mobile (in grado di generare output diversi in base al device). Nella Beta1 ogni controllo <asp:xxx> tramite un device adapter produceva contenuti diversi in base al device che effettua la richiesta: in pratica i controlli di ASP.NET 2.0 Beta1 lavoravamo con la stessa filosofia degli attuali Mobile Controls di ASP.NET 1.1. Bene: dalla Beta2 i controlli normali producono solo XHTML (default) oppure tramite legacyRendering HTML 3.2. E' possibile utilizzare solamente il meccanismo di property override (già presente nella 1.1 per i Mobile Control) sulle varie proprietà per modificarne il valore in base al device che effettua la richiesta.
Restano quindi i Mobile Control per lavorare con device WML/CHTML/HDML etc, i quali ovviamente possono sfruttare (da codice) le nuove caratteristiche di ASP.NET 2.0 come membership, profile, ma non possono sfruttare i nuovi Data Source Control, Drag & Drop di oggetti database o i DataSet nel Data Tray (meno male, almeno evitiamo di usare automatismi che portano fuori strada :-)).
Inoltre Microsoft non rilascerà più Device Update: sarà cura del produttore hardware mettere a disposizione i file di configurazione (ex-browserCaps).
Abituiamoci quindi fin da subito a usare il Profile Tool (http://www.asp.net/mobile/profile/) per costruire i vari profili dei device: il tool è spettacolare e lavora bene con l'attuale configurazione memorizzata nel .config...e fra poco verrà aggiornato per supportare il nuovo formato di configurazione dei device di ASP.NET 2.0.
Molto utile. Per 30 $ direi che ne vale la pena...aspettando Sql 2005 Mobile che è integrato con SQL Management Studio e VS 2005.
•http://www.gui-innovations.com/html/remotesqlce.html
Facendo il porting di un'applicazione da OpenNETCF 1.2 a OpenNETCF 1.3 mi sono accorto di queste due cosette:
1) l'installazione sul device della versione 1.3 non aggiorna correttamente il machine.config (sotto \windows\config) che contiene ancora le informazioni sulla versione 1.2. Se usate una funzione definita negli handler otterrere una eccezione. Ho corretto il machine.config modificando solo i numeri di versione degli assembly. Ecco gli estratti dal mio machine.config corretto
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!-- tell .NET Framework to ignore CLR sections -->
<section name="runtime" type="OpenNETCF.Configuration.IgnoreSectionHandler, OpenNETCF, Version=1.3.50511.0, Culture=neutral, PublicKeyToken=30c767b29d52d6e6" allowLocation="false" />
<section name="mscorlib" type="OpenNETCF.Configuration.IgnoreSectionHandler, OpenNETCF, Version=1.3.50511.0, Culture=neutral, PublicKeyToken=30c767b29d52d6e6" allowLocation="false" />
<section name="startup" type="OpenNETCF.Configuration.IgnoreSectionHandler, OpenNETCF, Version=1.3.50511.0, Culture=neutral, PublicKeyToken=30c767b29d52d6e6" allowLocation="false" />
<section name="appSettings" type="OpenNETCF.Configuration.NameValueFileSectionHandler, OpenNETCF, Version=1.3.50511.0, Culture=neutral, PublicKeyToken=30c767b29d52d6e6" allowLocation="false" />
<section name="system.diagnostics" type="OpenNETCF.Diagnostics.DiagnosticsConfigurationHandler, OpenNETCF, Version=1.3.50511.0, Culture=neutral, PublicKeyToken=30c767b29d52d6e6" allowLocation="false" />
</configSections>
<startup>
<supportedRuntime version="v1.3.50511.0"/>
<requiredRuntime version="v1.3.50511.0"/>
</startup>
</configuration>
2) Adesso finalmente ConfigurationSettings.AppSettings legge correttamente il file .exe.config. Nella versione 1.2 veniva letto tale file dal codice dell'eseguibile, ma se si accedeva alla configurazione da una dll richiamata occorreva creare un secondo file xxxx.dll.config (solo per il primo livello di chiamata).
Hope useful
Da ieri sera disponibile l'iscrizione alla conferenza del 12 luglio a Roma. Agenda densa di argomenti studiata e partorita durante la MEDC a Las Vegas da Fabio Santini con un contributo da parte mia.
Vedremo il presente (.NET Compact Framework 1.0, SQL Server for Windows CE 2.0, MSMQ, Windows Mobile 2003) e l'imminente .NET CF 2.0, Sql Mobile 2005 cercando di andare nel massimo dettaglio possibile rispetto ai tempi che abbiamo a disposizione. Si parlerà anche delle varie tecniche di deployment. Non vi annoio oltre: questo il link alla home page da cui accedere ai dettagli sui contenuti. http://www.microsoft.com/italy/msdn/eventi/developer/mobility.mspx
Gli speaker sono gli stessi che hanno pensato l'agenda :-) Ci vediamo a Roma
Riporto qualche link a piccoli articoli pubblicati nei mesi scorsi su week.it rispetto agli argomenti della giornata:
OpenNETCF http://www.weekit.it/index.php?option=com_content&task=view&id=36422&Itemid=156
Window Mobile 5.0 http://www.weekit.it/index.php?option=com_content&task=view&id=35866&Itemid=156
WM 2003 Second Edition http://www.weekit.it/index.php?option=com_content&task=view&id=34359&Itemid=156
Sql Mobile 2005 http://www.weekit.it/index.php?option=com_content&task=view&id=31766&Itemid=156
Mobility http://www.weekit.it/index.php?option=com_content&task=view&id=29019&Itemid=156 (6 articoli in sequenza)
In questi giorni usciranno, sempre su week.it altri articoli relativi allo sviuppo mobile.
Dopo aver lavorato per svariati giorni su un progetto mobile con .NET CF 2.0 e Visual Studio 2005 senza problemi oggi il dramma:
premetto che uso VS 2005 con il DMA Transport Update (come da mio post http://blogs.devleap.com/rob/archive/2005/06/04/3839.aspx). L'emulatore parte ma il Device Manager non è più in grado di connettersi (quindi neanche VS 2005), neanche tornando a TCP/IP transport.
Prima di reinstallare SDK o VS stesso, ho scoperto con piacere che reinstallando il DMA transport update (http://www.microsoft.com/downloads/details.aspx?familyid=0E05817F-08D6-48A2-A572-CF77ED72C5BE&displaylang=en) il problema si è risolto.
Nasce ufficialmente oggi il nuovo corso DevLeap in oggetto: affronta tutti gli argomenti relativi allo sviluppo mobile con .NET ad un livello avanzato. Come tutti i nostri corsi è completamente personalizzabile aggiungendo eventualmente le introduzioni a determinati argomenti o tagliando argomenti di scarso interesse. E' integrabile con il corso Mobile Dev in .NET Base che affronta tutti gli argomenti a un livello di dettaglio minore.
Per gli interessati ecco il link alla scheda tecnica appena pubblicata (e non analizzata con il correttore ortografico :-)): http://www.devleap.com/SchedaCorso.aspx?IdCorso=CORENETCF.
Si parte dall'analisi dei modelli applicativi, fondamentale per capire le diverse possibilità di sviluppo di un’applicazione online, offline, web-based o smart client. Vedremo contestualmente vari scenari applicativi e soluzioni di connettività. Scenderemo poi sulla piattaforma .NET Compact Framework sia in versione 1.0 che 2.0 per poi analizzare Windows Form, Controlli e Custom Control. Vedremo XML e le classi relative del .NET Compact Framework per poi dedicarci al supporto dei Web Service asincroni. Passaremo molto tempo sulle performance dell'interfaccia utente, su come migliorare il codice prodotto da Visual Studio .NET 2003 e Visual Studio 2005. Grande spazio viene dedicato all’accesso alle informazioni con ADO.NET e SQLCE. Quest’ultimo apre una serie di considerazioni sulle strategie di sincronizzazione dei dati e sulle modalità di lavoro offline. Vedremo le differenza fra la versione 1.0 e 2.0 del .NET Compact Framework e fra SQLCE 2.0 e SQL 2005 Mobile Edition. Approfondiremo molto le tecniche più performanti e più efficienti per l'accesso ai dati necessarie in un ambiente in cui le risorse sono limitate. Vedremo inoltre librerie e tool aggiuntivi che facilitano lo sviluppo, il debug, il deployment delle soluzioni .NET Compact Framework. Analizzeremo una serie di Tips&Tricks generali per la costruzione di applicazioni efficienti in un ambiente profondamente diverso da quello Desktop e Server.
Sql Server CE Tools (parte server) per interagire con SQL Server 2000 SP 4.
Se aggiornate il database server al SP 4 occorre aggiornare anche la parte server di SQL CE 2.0. Ecco il link.
http://www.microsoft.com/downloads/details.aspx?FamilyID=79071e22-52f5-4189-998e-fd03648fd3f4&DisplayLang=en
Disponibile al download...da qualche giorno in realtà, ma fra FWC e un problemino intestinale...sono rimasto bloccato una settimana.
http://www.microsoft.com/downloads/details.aspx?FamilyID=EEC33AE3-C129-4C25-ABAA-18E8E842178F&displaylang=en
Con Luca, Fabio e Daniele abbiamo passato una giornata insieme a L'Aquila che come sempre si è rivelata divertente e speiramo proficua per i partecipanti. Se volete ripercorrere i contenuti della conferenza ho pubblicato su week.it un'articolo tecnico che affronta tutti gli argomenti relativi a ASP.NET 2.0 affrontati durante l'evento:
http://www.weekit.it/index.php?option=com_content&task=view&id=36413&Itemid=148
Domani verrà messo a disposizione il materiale (Slide e Demo) e segnaleremo ai a tutti gli iscritti il link.
Annunciato il nuovo handheld. Disponibile a colori o in B&W. Molto interessante la versione a colori che monta un Intel XScale PXA270 a 520 Mhz, una scheda 802.11b/g e uno schermo square da 320x320. Come sempre ha il lettore di barcode integrato e il tastierino.
www.symbol.com/products/mobile_computers/mc3000_kb_mobile_cmptr.html
Per installare Windows Mobile 5.0 occorre seguire i seguenti passi.
Installare Visual Studio 2005.
Installare DMA Trasnport Update http://www.microsoft.com/downloads/details.aspx?familyid=0E05817F-08D6-48A2-A572-CF77ED72C5BE&displaylang=en. Consente di utilizzare l'emulatore dei device via Direct Memory Access. E' più veloce e consente l'utilizzo di ActiveSync 4.0 per "legare" l'emulatore alla macchina: questo rende possibile la sincronizzazione dei contatti, appuntamenti etc con l'emulatore.
Installare ActiveSync 4.0
Installare Windows Mobile 5.0 SDK che monta anche i nuovi emulatori per Pocket PC e Smartphone basati su Windows Mobile 5.0.
Al termine configurare dal Configuration Manager dei Device (presente anche in VS 2005) il transport per tutti gli emulatori su DMA. Resto valido comunque l'utilizzo del transport IP per fare "prove di rete".
Ormai ci siamo: fra qualche giorno saremo a L'Aquila per giornata su ASP.NET 2.0 e dintorni.
La sfiga ci vede benissimo: parallelamente nel castello ci sarà una manifestazione dei Carabinieri, quindi consiglio ai partecipanti di arrivare un po' prima la mattina per trovare più facilmente parcheggio all'esterno del castello.
Ci vediamo Mercoledì.
http://www.engadget.com/entry/1234000633045134/
Peccato solo sua Windows Mobile 2003 Second Edition e non Windows Mobile 5.0.