RONUA
ROmanian .NET User Association --- Asociaţia Romană a Utilizatorilor .NET
Comunitatea dezvoltatorilor software pe .NET Framework
Let's party

Adica sa facem o aplicatie care poate sa faca ceva util. Un caz comun ar fi sa colectam, verificam date pe teren si apoi sa sincronizam datele in SQL Server.
Si Microsoft a facut pe tema asta un tutorial folosibil (macar o data Smile) numit:  "Creating a Mobile Application with SQL Server Compact Edition" (http://msdn.microsoft.com/en-us/library/ms171908(SQL.90).aspx).  
Si care ati observat nu a mai fost actualizat/corectat, si cam asta e tema acestui post (actualizare/corectare si chiar si ceva completare).
Scop ar fi sa vedeti cum sa faceti o aplicatie cu ceva posibila utilitate, cap coada, in detaliu suficient pentru orice nivel de cunostinte pe subiect.
Daca nu este mentionat, pasii vor fi aceeasi si pe SQL Server 2008 asa cum sint in  SQL Server 2005  mentionat in tutorial. 

Deci sa incepem, bold va fi numele sectiunii la care o sa facem altceva sau in plus, sau e o modificare fata de ce e in tutorial.
Sper ca va fi destul de rezonabil de navigat, noi avem o versiune tiparita si mazgalita Smile

  • "Create a database and populate with data" la pasul 3 vorbim de o baza de date SQL Server nu de o baza de date Compact.
  • "Create a publication" daca am SQL Server 2005 am o problema. Nu stie replicare de baze de date Compact 3.5 SP1.
    Solutie instalam Microsoft® SQL Server® 2008 Management Studio Express (
    http://www.microsoft.com/downloads/details.aspx?familyid=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b&displaylang=en)
    si il folosim pentru a face configurarile.
    Discutie: Nu facem baza de date 2008, nu trecem de la minimum Standard (cerut de replicare) la Express, ci doar folosim un alt tool de management
    free de la versiunea mai noua de SQL Server.
    Verificare: ar trebui asa sa arate wizardu pomenit la pasul 8

    nu asa


    Normal ca acuma la pasul 8 alegem SQL Server 2005 Mobile, SQL Server Compact 3.1 and higher.
    Remarca: Tot restul sectiunilor si pasilor lor este imperativ sa se faca din versiunea de SQL Server 2008 de Managment Studio.
  • "Set database permissions" pas 6 pe unele sisteme de operare mai noi (W7 de exemplu) userul iusr_computername este numit doar iusr.
    Deci nu intrati in panica daca nu aveti iusr_computername, folositi iusr.
  • "Granting publication access" pas 4, IUSR se refera la iusr_computername/iusr pomenit mai sus.
  • "Install the SQL Server Compact Edition server components" aici indiferent de versiunea de SQL Server
    trebuie instalat "Microsoft SQL Server Compact 3.5 Service Pack 1 Server Tools"
    (http://www.microsoft.com/downloads/details.aspx?familyid=fa751db3-7685-471b-ac31-f1b150422462&displaylang=en).
  • "Configure the publication for Web synchronization" pasul 15, acuma folosim SQL Server Compact 3.5 SP1 deci si linkul de diagnostic
    (subiect la care o sa revenim in alt post) e diferit.
    Si deci linku de diagnostic in cazul nostru va arata asa "http://localhost/SQLMobile/sqlcesa35.dll?diag" .
  •  "Create a new Smart Device project" pasul 1 ar fi Visual Studio 2008.
    La pasul 4 as selecta altceva decit  "Pocket PC 2003 Application" (in cazul nostru merge OK dar lipsesc facilitati; vom vorbi de ele in postul urmator).
    Un Windows Mobile 6 Professional SDK sau macar in Windows Mobile 5.0 Pocket PC SDK.
    Si acuma cred ca se aud fluieraturile si comentariile: da de 6.1, 6.5 tu nu ai auzit? Smile
    Raspuns am auzit dar din punct de vedere programare tot 6 este, si de exemplu gestures este un API separat adica pun o referinta si din astea.
    Si diferenta apare la debugging, daca am Windows Mobile 6.5 Developer Tool Kit
    (http://www.microsoft.com/downloads/details.aspx?FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e&displaylang=en)
    am optiune sa folosesc un emulator de 6.5.
    Sa spunem ca 6.1 neavind APIs in plus, are numai imagini de emulator
    http://www.microsoft.com/downloads/info.aspx?na=47&p=4&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=06111a3a-a651-4745-88ef-3d48091a390b&u=details.aspx%3ffamilyid%3d1A7A6B52-F89E-4354-84CE-5D19C204498A%26displaylang%3den.
  • "Add references" Pas 2, calea acuma e C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices for the record Assembly version este
    3.5.0.0 (sau similare de exemplu 3.5.1.0).
    Si, da dupa Microsoft versiunea 3.5.0.0 e mai mare decit  versiunea 9.0.242.0 (SQL Server Compact 3.0) Smile
  • "Deploy the application" La 2 alegeti emulatorul dupa "gust" din cele propuse, asta in functie de platforma aleasa la "Create a new Smart Device project",
    daca e Windows Mobile 5 emulatoarele de WindowsMobile 6.x si cele de 5. Daca Windows Mobile 6 normal cele 6.x.
    Si la 3 se presupune ca o sa mearga. Si daca m-as opri aici ati sari la mine ca nu merge si de ce, ca fac ca "preferatii" 
    mei vorbesc despre subiecte care nu le stapinesc Smile.
    Nu merge ca emulatorul nu vede reteaua deci emulatorul nu vede SQL Server-ul sa faca replicarea.
    Solutie: In Visual Studio meniu Tools/Device Emulator Manager

    Click dreapta alegeti "Cradle" si

    Ar trebui sa se porneasca/activeze"Microsoft ActiveSync" sau "Windows Mobile Device Center" (Vista 7 si din astea).
    Daca nu rasare verificati daca conexiunile DMA sint permise la "Connection Settings"

    Dupa modificarea cu DMA, dati un un "Uncradle" urmat de "Cradle", sa "simta" modificarea.
    Si de asemenea ca va si conectati la device (in cazul nostru am dat screenshot din Windows Mobile Device Center, dar la fel se manifesta
    si Microsoft Active Sync) trebuie sa alegeti una din optiunile prezentate la conectare, altfel nu sinteti conectati.
    Eu recomand pe a 2-a ca nu in o buna parte din cazuri sa va sincronizati contactele din Outlook cu emulatoru Smile

    Pe emulator deschideti IE si mergeti la de ex www.google.com... Nu o sa mearga

    Go to Settings

    La advanced

    Select Networks

    Si schimbati My ISP cu My Network

    OK,OK si google o sa mearga.
    2 remarci aici, 1 in screenshots e un 6.5 dar merge la fel cu toate de la Pocket PC 2003 in sus. Si 2, emulatorul nu se inchide explicit la iesirea din debugging, deci chiar daca a crapat aplicatia tot se pot seta astea. Si daca nu se salveaza starea emulator trebuiesc facuti pasii enumerati la fiecare pornire emulator.

Si asa am terminat tutorialul dar hai sa dam si instructiuni de provisioning, adica ce si in ce ordine trebuie instalat pe device (in afara de aplicatie Smile) ca sa mearga:

  1. .NET Compact Framework 3.5 Redistributable (http://www.microsoft.com/downloads/details.aspx?FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385&DisplayLang=en)... O sa discutam mai pe larg acest provisioning cu alta ocazie. Acuma sa zicem ca ne trebuie .Net 3.5 Compact.
  2. Daca vrem si mesaje la exceptii ar fi bine sa punem si mesajele, cab lor se afla in locatia asta
    "C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\Diagnostics". Cele in engleza sint din asta NETCFv35.Messages.EN.
  3. SQL Compact Edition 3.5 cab se gasec pe aici "C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\wceX00" , dar trebuie alese dupa versiune de WM (wce400, sau wce500) si arhitectura mips arm etc. La fel pot face si cu 1 ("C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\wceX00") dar la framework sigur exista cai mai bune si mai sigure.
  4. SQL Compact Edition 3.5 Replication din aceeasi loc si aceeasi probleme ca 3 numai acuma cab cu .repl.
  5. Optional pentru debug SQL Compact Edition 3.5 Query Analyzer din aceeasi loc si cu aceeasi probleme ca 3, acuma cab cu .dev.

Remarca: cab de instalare este sters la sfirsitul procesului de instalare de insta. Deci daca face o zona de service (stil shadow service partition de pe PC) pe device nu rulati instalarile din ea direct, copiati-le mai intii altundeva.

Si cam asta e.
Ma gindeam sa fac si un webcast cu tema asta in care sa studiem si mai pe indelete si sigur interactiv subiectul. Sa vedem...

Next o sa facem mai user friendly aplicatia asta.

 

 


Posted Wed, Nov 4 2009 2:53 PM by MrSmersh

Comments

ignatandrei wrote re: Let's party
on Thu, Nov 5 2009 7:19 AM

Catalin,

Abia astept partea a 3-a...

Aurelian wrote re: Let's party
on Fri, Nov 6 2009 9:16 AM

M-ai spart cu printscreen-urile astea mari.

Dar go ahead. E promitator de faci tu aici,.

(c) RONUA 2004-2009
Powered by Community Server (Commercial Edition), by Telligent Systems