Tool-urile lui Andrei

As vrea ca in fiecare zi de 16 a fiecarei luni sa fac o prezentare despre uneltele pe care le folosesc . Durata o sa fie de 16 minute – timp ultrasuficient pentru a prezenta cite un tool care foloseste pentru a usura munca dezvoltatorilor in principal – desi prima e si pentru SqlServer.

De ce fac asta? Pentru ca in orice meserie conteaza nu numai capacitatea intelectuala – ci si sculele pe care le folosesti . Ce ar fi un navigator fara sextant ? Sau ce ar fi un scriitor fara calculator? (Ok, pe ultima nu prea am nimerit-o!)  Sau ginditi-va asa   : diferenta intre un dactilograf cu masina de scris si un dactilograf cu un amarit de PC este uriasa …

(Daca totul merge bine) O sa incep pe 16 iunie, la ora 16, cu Tool-uri pentru Sql Server : SSMS tool Pack si SqlSearch. Reveniti pentru link …

Later Edit : din pacate, din cauza unor probleme tehnice, o sa fie data viitoare, adica 16 iulie 2010…Scuze…

C# si null for decimal

Fara sa compilati, vedeti ce output da codul acesta:

decimal? v = 100;
            Console.WriteLine(v);
            decimal? x = null;
            x += v.Value;
            Console.WriteLine(x);

Ok, e clar raspunsul avind in vedere intrebarea …

MS RO DevDays

A fost interesant – agenda o gasiti pe http://visualstudio2010.ro/Agenda.aspx , iar filmul a fost RobinHood.

Despre concurs – numai de bine. Maurul si-a facut datoria .

Cu ce am ramas :

1.Ms Test Manager 2010 , intellitrace, dump.

2.Sources are not the primary value of the software, the value is in design and service – raffaele rialdi

Ceea ce a fost se citeste destul de bine pe twitter dupa http://twitter.com/#search?q=%23rodevday

 

Trend Info

  1. ROSQL User Group rosql

    Missed 2h of #24hop to see #rodevday ,VS 2010 http://tweetphoto.com/23090145 http://tweetphoto.com/23091030 http://tweetphoto.com/23092112 about 1 hour ago via TweetDeck

    • Cristian Lefter xmldeveloper

      Missed 2h of #24hop to see #rodevday ,VS 2010 http://tweetphoto.com/23090145 http://tweetphoto.com/23091030 http://tweetphoto.com/23092112 about 1 hour ago via TweetDeck

      • Mihnea Miculescu Mihnea

        So how is #rodevday? about 2 hours ago via TweetDeck

        • veronica nicolae veronicanicolae

          Robin hood at #rodevday about 2 hours ago via HTC Peep

          • Florin Matincă florinmatinca

            @ediTLJ si oricum nu se compara ca importanta si calitate #rodevday cu #googleio about 2 hours ago via Seesmic in to ediTLJ

            • Stefan Poschina 1nu

              Miroase frumos a popcorn in sala la #rodevday about 2 hours ago via Echofon

              • nwradu nwradu

                ‘dormi linistit, windows azure scaleaza pt tine’ – nu e bine sa te asociezi cu sloganul FNI-ului #rodevday about 2 hours ago via mobile web

                • Stefan Poschina 1nu

                  Nici Windows Phone 7 nu mai suporta multi-tasking, are tot push notification. #rodevday about 3 hours ago via Echofon

                  • Florin Matincă florinmatinca

                    Neconvingatoare prezentarile despre Windows Phone 7 fara telefoane live #rodevday about 3 hours ago via Seesmic

                    • nwradu nwradu

                      Femeile care vorbesc despre silverlight si gps si alte acronime sunt hot intr-un sens geeky #rodevday about 3 hours ago via mobile web

                      • Microsoft Romania RoMicrosoft

                        #rodevday prezentare windows phone 7 series about 3 hours ago via web

                        • Florin Matincă florinmatinca

                          Nu cred ca #WP7 se va apropia de iPhone sau Android #rodevday about 3 hours ago via Seesmic

                          • nwradu nwradu

                            Prezentare despre silverlight pe windows phone 7 series. Asta asteptam #rodevday about 3 hours ago via mobile web

                            • Florin Matincă florinmatinca

                              #cluj rulz la #rodevday about 3 hours ago via Seesmic

                              • Florin Matincă florinmatinca

                                Designing with Silverlight & Blend #rodevday http://tweetphoto.com/23080305 about 3 hours ago via Seesmic

                                • Edi ediTLJ

                                  @florinmatinca foaarte prost pus #rodevday in aceeasi zi cu #googleio about 3 hours ago via Seesmic Web in to florinmatinca

                                  • Florin Matincă florinmatinca

                                    Ciprian Jichici este un speaker excelent #rodevday about 3 hours ago via Seesmic

                                    • ignatandrei ignatandrei

                                      silverlight la a&d pharma #rodevday about 3 hours ago via mobile web

                                      • nwradu nwradu

                                        Se vede ca omul e obisnuit cu prezentarile, vorbeste fluent si fara teama #rodevday about 3 hours ago via mobile web

                                        • GabiEnescu GabiEnescu

                                          Ignat Andrei wpf cu windows7 #rodevday http://bit.ly/9i9NBS about 3 hours ago via twitterfeed

                                          • nwradu nwradu

                                            Aplicatie Silverlight la A&D Pharma, care detin si lantul SensiBlu. Vorbeste Ciprian Jichici de la Genisoft #rodevday about 3 hours ago via mobile web

                                            • Florin Matincă florinmatinca

                                              Ciprian Jichici is on stage #rodevday about 3 hours ago via Seesmic

                                              • Stefan Poschina 1nu

                                                Foarte reusita prezentarea lui Mihai Nadas despre WPF. Merita investigat. 😀 #rodevday about 3 hours ago via Echofon

                                                • ignatandrei ignatandrei

                                                  wpf cu windows7 #rodevday about 3 hours ago via mobile web

                                                  • Microsoft Romania RoMicrosoft

                                                    #rodevday prezentarea directiilor comerciale pe care .NET Framework 4.0 le faciliteaza in proiecte bazate pe windows presentation foundation about 3 hours ago via web

                                                    • nwradu nwradu

                                                      Windows Presentation Foundation iti face si aplicatiile aratoase. De aici ies interfete marfa. #rodevday about 3 hours ago via mobile web

                                                      • Florin Matincă florinmatinca

                                                        WPF presentation #rodevday about 3 hours ago via Seesmic

                                                        • Florin Matincă florinmatinca

                                                          Creating WebParts in SharePoint 2010 la #rodevday http://tweetphoto.com/23075817 about 4 hours ago via Seesmic

                                                          • Florin Matincă florinmatinca

                                                            A inceput prezemtarea SharePoint la #rodevday about 4 hours ago via Seesmic

                                                            • Stefan Poschina 1nu

                                                              @RoMicrosoft ce film e dupa sesiuni la #rodevday ? :) about 4 hours ago via Echofon

                                                              • Stefan Poschina 1nu

                                                                Pura curiozitate: mai exista in Romania cineva care foloseste Castle Monorail? #rodevday about 4 hours ago via Echofon

                                                                • Ionut Balan balanionut

                                                                  moare bateria. #rodevday mihai prezinta bine optimizarea proiectelor asp about 4 hours ago via Seesmic

                                                                  • nwradu nwradu

                                                                    A venit Mihai Tataran cu prezentare despre ASP.NET 4 si optimizarea paginilor #rodevday about 4 hours ago via mobile web

                                                                    • Florin Matincă florinmatinca

                                                                      Live from #rodevday http://tweetphoto.com/23071483 about 5 hours ago via Seesmic

                                                                      • nwradu nwradu

                                                                        A fost tare Bogdan, buna prezentarea. Constructorul de mutare i-a micsorat de vreo 8 ori timpul de executie. #rodevday about 5 hours ago via mobile web

                                                                        • Florin Matincă florinmatinca

                                                                          I am at #rodevday about 5 hours ago via Seesmic

                                                                          • nwradu nwradu

                                                                            Paralelism exemplificat pe inmultire de matrici, bun exemplul #rodevday about 5 hours ago via mobile web

                                                                            • Microsoft Romania RoMicrosoft

                                                                              #rodevday Visual Studio 2010 aduce schimbari care faciliteaza navigarea mai usoara prin codul sursa about 5 hours ago via web

                                                                              • Ionut Balan balanionut

                                                                                #rodevday twitter face fitze.iau o pauza. about 5 hours ago via Seesmic

                                                                                • Florin Matincă florinmatinca

                                                                                  Fast forward to #rodevday about 5 hours ago via Seesmic

                                                                                  • nwradu nwradu

                                                                                    Ce e Kenubi? #rodevday about 5 hours ago via Twitter for Android

                                                                                    • ignatandrei ignatandrei

                                                                                      bogdan despre F# la #rodevday about 5 hours ago via mobile web

                                                                                      • nwradu nwradu

                                                                                        Un task manager cu vreo 10 procesoare si 20 GB de RAM. #rodevday about 5 hours ago via Twitter for Android

                                                                                        • Ionut Balan balanionut

                                                                                          #rodevday masina de demo are 16 core-uri si vreo 18GB RAM. si tot nu e foarte rapida :-). about 5 hours ago via Seesmic

                                                                                          • Ionut Balan balanionut

                                                                                            #rodevday demo-ul de la banca romaneasca ne arata (involuntar) cat castiga banca din dobanzi. curba e mare :-) about 5 hours ago via Seesmic

                                                                                            • nwradu nwradu

                                                                                              ‘cu F# ti se calculeaza mult mai repede dobanda’ – primul beneficiu dat exemplu :)) #rodevday about 5 hours ago via mobile web

                                                                                              • Ionut Balan balanionut

                                                                                                #rodevday mi-a placut prezentarea lui Liviu. scurt, la obiect. eficient. demo, fara ppt-uri inutile. felicitari! about 5 hours ago via Seesmic

                                                                                                • ignatandrei ignatandrei

                                                                                                  banca romaneasca la #rodevday … discutie ca la carte despre business de aplicatie about 5 hours ago via mobile web

                                                                                                  • nwradu nwradu

                                                                                                    Lol, exemplu de F# de la Banca Romaneasca. Acum cativa ani aveau la pamant bazele de date… #rodevday about 5 hours ago via mobile web

                                                                                                    • Stefan Poschina 1nu

                                                                                                      Sa vedem ce e cu F#. #rodevday about 5 hours ago via Echofon

                                                                                                      • ignatandrei ignatandrei

                                                                                                        window => paralel task,paralel stacks #rodevday about 5 hours ago via mobile web

                                                                                                        • nwradu nwradu

                                                                                                          Liviu vorbeste frumos si competent, buna prezentarea #rodevday about 5 hours ago via mobile web

                                                                                                          • ignatandrei ignatandrei

                                                                                                            intelllitrace salvat pe disk #rodevday about 5 hours ago via mobile web

                                                                                                            • Stefan Poschina 1nu

                                                                                                              IntelliTrace Debugging din VS2010 o sa fie un feature pe care o sa-l folosesc din plin. (cc @nimsoc) #rodevday about 5 hours ago via Echofon

                                                                                                              • nwradu nwradu

                                                                                                                Noi facilitati in visual studio 2010: intellitrace historical debugging, multi-threading si analiza de dump-uri #rodevday about 6 hours ago via mobile web

                                                                                                                • Ionut Balan balanionut

                                                                                                                  #rodevday urmeaza demo-ul lui Liviu Coconu. troubleshooting next about 6 hours ago via Seesmic

                                                                                                                  • nwradu nwradu

                                                                                                                    Test Manager incarca foarte greu o pagina web, cica din cauza hookingului. 6 minute pt 3 clickuri. #rodevday about 6 hours ago via mobile web

                                                                                                                    • Ionut Balan balanionut

                                                                                                                      #rodevday microfonia lui zoli a trezit adormitii :-) . si twitter da semne de oboseala. connection error about 6 hours ago via Seesmic

                                                                                                                      • nwradu nwradu

                                                                                                                        Raffaele a terminat, apoi s-a intors pt ca s-a reparat remote-ul. #rodevday about 6 hours ago via mobile web

                                                                                                                        • Ionut Balan balanionut

                                                                                                                          #rodevday Visual Studio 2010 o sa aiba template SDL pentru testare. asta imi place about 6 hours ago via Seesmic

                                                                                                                        • nwradu nwradu

                                                                                                                          UI Testing are suport partial pt Firefox, dar inca deloc pt Silverlight #rodevday about 6 hours ago via mobile web

                                                                                                                          • nwradu nwradu

                                                                                                                            Aplicatie noua: Ms Test Manager 2010. E clar ce face. Demo mai tarziu, ca nu merge remote connectionul… #rodevday about 6 hours ago via mobile web

                                                                                                                            • Stefan Poschina 1nu

                                                                                                                              Microsoft Test Manager 2010 suna foarte interesant. #rodevday about 6 hours ago via Echofon

                                                                                                                              • Ionut Balan balanionut

                                                                                                                                @nwradu #rodevday si completarea: valoarea nu e in codul sursa … free about 6 hours ago via Seesmic in to nwradu

                                                                                                                                • Microsoft Romania RoMicrosoft

                                                                                                                                  Live tweeting de la #rodevday : @balanionut, @weeb0, @1nu, @nwradu about 6 hours ago via TweetDeck

                                                                                                                                  • nwradu nwradu

                                                                                                                                    ‘the value of software is in the design and in the service’ – interesanta idee #rodevday about 6 hours ago via mobile web

                                                                                                                                    • Alexandra Armeanca Alexandra_A

                                                                                                                                      @Mihnea Actually I’m waiting to get into an exam, but doing some work in the meantime :) #rodevday is today by the way about 6 hours ago via web in to Mihnea

                                                                                                                                      • Microsoft Romania RoMicrosoft

                                                                                                                                        @balanionut hai sa folosim #rodevday :) about 6 hours ago via TweetDeck in to balanionut

                                                                                                                                        • Ciobotaru Ionut weeb0

                                                                                                                                          Sources are not the primary value of the software, the value is in design and service – raffaele rialdi #rodevday about 6 hours ago via Twitter for iPhone

                                                                                                                                          • Stefan Poschina 1nu

                                                                                                                                            Raffaele Rialdi pe scena la #rodevday http://twitpic.com/1p5c7v about 6 hours ago via Echofon

                                                                                                                                            • Microsoft Romania RoMicrosoft

                                                                                                                                              @1nu hai sa folosim #rodevday :) about 6 hours ago via TweetDeck in to 1nu

                                                                                                                                            RONUA mai 2010

                                                                                                                                            Despre ce am vorbit eu :

                                                                                                                                            1. Memory cache / MemoryMappedFiles

                                                                                                                                            a. http://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache.aspx

                                                                                                                                            2. T4 pentru EF

                                                                                                                                            a. http://blogs.msdn.com/efdesign/archive/2009/01/22/customizing-entity-classes-with-t4.aspx

                                                                                                                                            3. EF cu procedure stocate

                                                                                                                                            a. http://thedatafarm.com/blog/data-access/checking-out-one-of-the-new-stored-procedure-features-in-ef4/

                                                                                                                                            4. Tuples, nu numai KeyValuePair

                                                                                                                                            a. http://msdn.microsoft.com/en-us/magazine/dd942829.aspx

                                                                                                                                            5. Parallel Extensions

                                                                                                                                            a. http://msdn.microsoft.com/en-us/library/dd460693.aspx

                                                                                                                                            6. Dynamic /COM/Expando/Optional Parameters

                                                                                                                                            a. http://msdn.microsoft.com/en-us/library/dd264736.aspx

                                                                                                                                            b. http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx

                                                                                                                                            7. Intellisense – uppercase

                                                                                                                                            More :

                                                                                                                                            http://msdn.microsoft.com/en-us/library/ms171868.aspx

                                                                                                                                            Prezentarea lui Andrei Rinea a fost extraordinara – captcha facut de la 0!

                                                                                                                                            Apoi am fost la o (bauta|circiuma)  – Andrei R.,Andrei I, MecuSorin, DanGhe. Acolo ne-am dat drumul …. de la homo la lesbiene trecind prin bancuri si patanii…A fost super!

                                                                                                                                            Multumesc tuturor celor care au venit! Si multumesc Petru Jucovschi, MSFT, pentru conditii(sala, proiector, racoritoare)!

                                                                                                                                            CIMG0658 CIMG0659

                                                                                                                                            Intilnire RONUA BUCURESTI 2010.05.11 – aceasta marti

                                                                                                                                            Intilnirile RONUA BUCURESTI se vor tine in fiecare a 2-a marti la fiecare 2 luni, incepind cu luna ianuarie.

                                                                                                                                            Acum pica in data de 11 mai 2010.

                                                                                                                                            Ne  vom intilni  la sediul Microsoft. ,  Piața Presei Libere, Clădirea City Gate, conf rooms Romus și Remulus .(tramvaul 41 la capat ).

                                                                                                                                            Vor fi 2 prezentari :

                                                                                                                                            Andrei Rinea , http://blog.andrei.rinea.ro/ , va vorbi despre " Servire continut dinamic binar – implementare CAPTCHA"

                                                                                                                                            Andrei Ignat  (eu!) va vorbi despre "Noutati pentru dezvoltatori in .NET 4.0  /VS2010 "

                                                                                                                                             

                                                                                                                                            Va astept pe cei din Bucuresti!

                                                                                                                                            Multumesc!

                                                                                                                                            Baby steps cu VS2010 si .NET 4

                                                                                                                                            Sunt pe cale sa termin un ebook despre ce poti face cu Visual Studio 2010 si .NET 4.0 . Ca de obicei, o sa fie free  – si, ca de obicei, nu pot sa il termin singur si am nevoie de ajutorul vostru. O sa incerc sa fie gata inainte de

                                                                                                                                            Mai sunt de scris capitole despre

                                                                                                                                            TODO VS2010 : WPF, Workflow,Silverlight, Azure, Reporting , Sharepoint, DatabaseProject, SetupProject, Extensibility, Setup , TestProject, CodeAnalysis,Help, Windows Mobile , F#

                                                                                                                                            TODO .NET 4 : CodeContracts, Parallel Extensions, (contra)variance, Tuples, SortedSet si altele

                                                                                                                                            Daca vreti sa contribuiti (cod + text) , va rog sa imi spuneti (email )!

                                                                                                                                            Windows Mobile

                                                                                                                                            O fie in curind lansarea Visual Studio 2010 in Romania si m-am gindit sa scriu un mini-e-book despre ce poti face cu Visual Studio 2010. La ce ar fi bun ? Pai – daca te intereseaza programarea pe WindowsMobile sa stii de un de sa o apuci.

                                                                                                                                            L-am rugat pe Marius Istudor sa participe la acest proiect pentru WindowsMobile 6.5. El a facut scris documentul pe care il vedeti si aplicatia in VS2008 – si , din pacate, VS2010 nu mai suporta Windows Mobile 6.5 (http://msdn.microsoft.com/en-us/library/sa69he4t%28VS.100%29.aspx)

                                                                                                                                            Ii multumesc si pe aceasta cale pentru munca depusa !

                                                                                                                                            ————————-

                                                                                                                                            Dezvoltarea de aplicatii cu WindowsMobile

                                                                                                                                            De data asta Ion vine cu o noua cerinta :ar putea face o aplicatie pentru WindowsMobile ? Are un client un telefon cu Windows Mobile si ar fi interesat de aplicatie. Ar putea Popescu sa il ajute ?

                                                                                                                                            Popescu studiaza si , pentru ca subiectul e mai lung, scrie un tutorial intreg despre acest lucru:

                                                                                                                                            Programarea pentru dispozitivile mobile este diferita de programarea desktop sau web. Cand construim o aplicatie care va rula pe un smarptphone, pocket pc sau alt dispozitiv cu Windows Mobile, va trebuie sa luam in considerare mai multe lucruri: bateria (aplicatia nu trebuie sa aiba un impact mare asupra consumului bateriei), procesorul (frecvente mici, care afecteaza ritmul operatiilor sau al interogarilor in baza de date), dimensiunea dispozitivului cu rezolutii diferite ale display-ului, conexiunile la retea, memorie, securitate si altele.

                                                                                                                                            In dezvoltarea aplicatiilor destinate dispozitivelor mobile s-au facut progrese, respectandu-se cerintele programatorilor de a avea framework-uri si aplicatii, acelasi IDE atat pentru dezvoltarea mobila cat si pentru cea desktop, curba de invatare usoara, cunostinte de programare ce pot fi folosite in ambele tipuri de programare.

                                                                                                                                            Windows Mobile este versiunea Compact Edition, pentru dispozitivele mobile, a sistemului de operare Windows.

                                                                                                                                            Windows Mobile prezinta ca avantaje, capacitatea extraordinara pentru multi-tasking, alocand automat memorie in functie de necesitatile fiecarei aplicatii, sincronizarea cu un sistem desktop/laptop, interfata intuitiva, mai ales pentru utilizatorii Windows.

                                                                                                                                            O aplicatie Windows Mobile se poate dezvolta in cod nativ (Visual C++), in managed code si in mod server-site (aplicatii gazduite de browser).

                                                                                                                                            Microsoft are o platforma mobila puternica, cu un runtime puternic in .Net Compact Framework, instrumente de dezvoltare puternice ca Visual Studio si un suport pe masura in ceea ce priveste comunitatea programatorilor de Windows Mobile.

                                                                                                                                            Ultima versiune de .Net Compact Framework este 3.5, pe baza careia vom dezvolta aplicatia noastra. Microsoft recomdanda folosirea acestei ultimei versiuni, dar alegerea ramane la atitudinea programatorului (cui se adreseaza aplicatia, de ce particularitati are nevoie in dezvoltarea). Versiunea 2.0 a .Net Compact Framework ruleaza pe foarte multe dispozitve actuale, dar totusi ultima versiune aduce foarte multe lucruri noi in aceasta ramura a programarii, printre care Language Integrated Query, Windows Communication Foundation.

                                                                                                                                            Cerinte pentru dezvoltarea in Windows Mobile

                                                                                                                                            Sistemele de operare:

                                                                                                                                            Windows XP/Windows Server 2003 + ActiveSync (pentru sincronizarea desktop/laptop – dispozitiv mobil)

                                                                                                                                            Windows Vista/Windows 7/Windows Server 2008 + Windows Mobile Device Center (pentru sincronizarea desktop/laptop – dispozitiv mobil)

                                                                                                                                            Instrumente despre dezvoltare

                                                                                                                                            Pentru dezvoltarea unei aplicatii Windows Mobile 6.5, avem nevoie de urmatoarele instrumente:

                                                                                                                                            1. IDE (Integrated Development Environment)

                                                                                                                                            Visual Studio 2008 Professional +.Net Compact Framework 3.5

                                                                                                                                            Visual Studio 2005 Standard + .Net Compact Framework 2

                                                                                                                                            Se recomanda ca acestea sa aiba instalat ultimul Service Pack.

                                                                                                                                            Editiile Express ale Visual Studio nu suporta dezvoltarea proiectelor pentru dispozitive mobile.

                                                                                                                                            2. SDK (Software Development Kits)

                                                                                                                                            Windows Mobile 6 Standard SDK Refresh – contine librarii, documentatie, exemple si coduri sursa pentru dezvoltarea aplicatiilor Windows Mobile 6.

                                                                                                                                            Windows Mobile 6 Professional SDK Refresh – contine in plus,

                                                                                                                                            Se recomanda dezinstalarea versiunilor anterioare de SDK.

                                                                                                                                            Cele doua tipuri de SDK se pot instala simultan.

                                                                                                                                            3. DTK (Developer Tool Kit)

                                                                                                                                            Windows Mobile 6.5 Developer Tool Kit 6.5 – include emulatoarea, API-uri pentru dezvoltarea touchscreen, coduri sursa, disponibile pentru Windows Mobile 6.5.

                                                                                                                                            4. Windows Mobile 6.1 Emulator Images (optional)

                                                                                                                                            Windows Mobile 6.1 Emulator Images – consta intr-un pachet de emulatoare care poate fi folosit cu Visual Studio/sau nu, pentru testarea aplicatiilor. Avem nevoie de emulatoare pentru a suplini lipsa mai multor tipuri de dispozitive si pentru a testa aplicatia noastra in diferite cazuri.

                                                                                                                                            Avand toate instrumentele pregatite si instalate, vom incepe construirea unei aplicatii mobile.

                                                                                                                                            Dezvoltarea unui program Windows Mobile 6.5

                                                                                                                                            Vom crea o aplicatie Windows Mobile 6.5, bazata pe Windows Mobile Standard SDK, adresata dispozitivelor fara touchscreen, care va consta in adunarea a doua numere. Simplu, nu?

                                                                                                                                            Deschidem Visual Studio 2008.

                                                                                                                                            File – New Project

                                                                                                                                            In aceasta prima fereastra, in partea stanga, vom selecta mai intai limbajul de programare, in cazul nostru, Visual C#.

                                                                                                                                            Alegem un proiect de tip SmartDevice, iar in partea dreapta a ferestrei va aparea sablonul (template) corespunzator instalat in Visual Studio 2008 – Smart Device Project.

                                                                                                                                            De mentionat ca un proiect de tip SmartDevice se poate realiza si in limbajul Visual Basic sau Visual C++ (cod nativ – pentru aplicatii simple, foarte performante, care necesita in general accesarea platformei hardware).

                                                                                                                                            clip_image002

                                                                                                                                            Nota: De obicei, cand contruim aplicatii cu Visual Studio 2008, selectam versiunea de .Net Framework pe care o vom folosi. In cazul dezvoltarii unei aplicatii Windows Mobile, acest pas nu are nici o importanta, pentru ca acest tip de aplicatie va folosi .Net Compact Framework, a carei versiune o vom selecta in fereastra urmatoare. Deci, nu ne va interesa selectarea unei anumite versiuni de .Net Framework.

                                                                                                                                            Apasam butonul OK pentru a continua crearea proiectului.

                                                                                                                                            Fereastra urmatoare ne va permite sa finalizam crearea proiectului nostru, prin selectarea mai multor optiuni:

                                                                                                                                            Platforma pe care vom construi aplicatia: Windows Mobile 6 Standard SDK

                                                                                                                                            Versiunea de .Net Compact Framework: 3.5

                                                                                                                                            Vom selecta sablonul pentru Device Application, pentru crearea unei aplicatii de tip forms.

                                                                                                                                            In partea de jos a ferestrei, observati un link catre site-ul Microsoft, de unde puteti descarca toate instrumentele necesare dezvoltarii aplicatiilor Windows Mobile.

                                                                                                                                            clip_image004

                                                                                                                                            Apasam OK si vom termina etapa de configurare a proiectului, urmand sa construim efectiv aplicatia.

                                                                                                                                            Asa va arata forma, cu “skinul” specific unei aplicatii standard:

                                                                                                                                            clip_image005

                                                                                                                                            Daca sunteti familiarizati cu mediul Visual Studio 2008, nu veti observa mari diferente. In partea stanga se afla lista controalelor disponibile (Toolbox), in partea dreapta, Solution Explorer, unde se afla fisierele proiectului. In cazul in care se doreste schimbarea platformei pentru care se dezvolta aplicatia, avem la click dreapta pe proiect optiunea Change Target Platform

                                                                                                                                            Putem “scapa” de skin, selectand optiunea de la click dreapta Show Skin.

                                                                                                                                            Apelam fereastra de proprietati a formei. Modificam proprietatea Text: Compute Application si putem schimba skin-ul prin selectarea Form Factor.

                                                                                                                                            Controalele disponibile sunt mai putine decat la Windows Forms, dar le putem gasi pe cele mai des folosite. Se pot deriva si crea controale “custom” in aplicatie. Clasele din System.Windows.Forms au fost optimizate pentru resursele unui dispozitiv.

                                                                                                                                            Pentru aplicatia noastra, vom avea nevoie de trei label-uri si doua textbox-uri. De aceste controal, putem dispune prin simplu “drag and drop” din Toolbox.

                                                                                                                                            Putem folosi aceleasi instrumente de aliniere a controalelor din bara de instrumente Layout a Visual Studio.

                                                                                                                                            Primul TextBox corespunzator primului numar, il vom numi txtFirst, pe cel de-al doilea, evident, txtSecond.

                                                                                                                                            Nu trebuie sa ne facem griji pentru latimea celor doua texbox-uri. Le putem seta in asa fel incat, sa fie egale cu latimea maxima a display-ului dispozitivului.

                                                                                                                                            Click dreapta: View Code pentru a naviga in codul din spatele formei (code behind). In constructorul clasei, vom apela metoda ControlSettings, ale carei instructiuni, sunt prezentate mai jos:

                                                                                                                                            private void ControlSettings()

                                                                                                                                            {

                                                                                                                                            //seteaza culoarea fundalului pentru aceasta forma

                                                                                                                                            this.BackColor = Color.Lime;

                                                                                                                                            //seteaza latimea, culoarea fundalului si culoarea textului pentru primul textbox

                                                                                                                                            txtFirst.Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;

                                                                                                                                            txtFirst.BackColor = Color.Blue;

                                                                                                                                            txtFirst.ForeColor = Color.White;

                                                                                                                                            //seteaza latimea, culoarea fundalului si culoarea textului pentru primul textbox

                                                                                                                                            txtSecond.Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;

                                                                                                                                            txtSecond.BackColor = Color.Blue;

                                                                                                                                            txtSecond.ForeColor = Color.White;

                                                                                                                                            //eticheta nu va avea text

                                                                                                                                            lblTotal.Text = string.Empty;

                                                                                                                                            }

                                                                                                                                            Pe butoanele principale ale dispozitivului, cele doua softKey-uri (left si right), le vom denumi si vom stabili ca la apasarea lor, fiecare sa apeleze o anumita functie. (le vom crea un handler)

                                                                                                                                            Click pe SoftKey-ul din stanga, iar in fereastra de proprietati (care poate fi apelata cu F4) modificam proprietatea Text si vom adauga Calculeaza. Dublu click pentru crearea unui handler pentru acest buton.

                                                                                                                                            private void menuItem1_Click(object sender, EventArgs e)

                                                                                                                                            {

                                                                                                                                            //daca se returneaza true

                                                                                                                                            if (Validate())

                                                                                                                                            {

                                                                                                                                            //calculeaza

                                                                                                                                            Compute();

                                                                                                                                            //blocheaza controalele dupa calcul

                                                                                                                                            LockControls();

                                                                                                                                            };

                                                                                                                                            }

                                                                                                                                            In acest handler, vom apela o functie de validare a texboxurilor (ambele sa fie completate si sa contina numere). Ea va returna true daca utilizatorul este cuminte J (va introduce in ambele textbox-uri cifre), si va returna false, altfel.

                                                                                                                                            private bool Validate()

                                                                                                                                            {

                                                                                                                                            //verificam daca in ambele textbox-uri au fost introduse caractere

                                                                                                                                            if (txtFirst.Text.Length == 0 || txtSecond.Text.Length == 0)

                                                                                                                                            {

                                                                                                                                            MessageBox.Show("Check if the textboxes are filled in!");

                                                                                                                                            return false;

                                                                                                                                            }

                                                                                                                                            else

                                                                                                                                            {

                                                                                                                                            try

                                                                                                                                            {

                                                                                                                                            first = Double.Parse(txtFirst.Text);

                                                                                                                                            }

                                                                                                                                            //prindem exceptia pentru format invalid – non-numeric

                                                                                                                                            catch

                                                                                                                                            {

                                                                                                                                            MessageBox.Show("Invalid number!");

                                                                                                                                            return false;

                                                                                                                                            }

                                                                                                                                            try

                                                                                                                                            {

                                                                                                                                            second = Double.Parse(txtSecond.Text);

                                                                                                                                            }

                                                                                                                                            //prindem exceptia pentru format invalid – non-numeric

                                                                                                                                            catch

                                                                                                                                            {

                                                                                                                                            MessageBox.Show("Invalid number");

                                                                                                                                            return false;

                                                                                                                                            }

                                                                                                                                            //toate validarile au fost trecute cu succes

                                                                                                                                            return true;

                                                                                                                                            }

                                                                                                                                            }

                                                                                                                                            first si second sunt variabile globale, declarate la inceputul programului:

                                                                                                                                            //variabile globale

                                                                                                                                            private double first = 0;

                                                                                                                                            private double second = 0;

                                                                                                                                            Metoda Compute va returna rezultatul adunarii celor doua numere, convertit in string.

                                                                                                                                            //calculeaza cele doua numere si converteste rezultatul in string

                                                                                                                                            private void Compute()

                                                                                                                                            {

                                                                                                                                            lblTotal.Text = "Sum: " + (first + second);

                                                                                                                                            }

                                                                                                                                            Dupa apelul functiei Compute, se va apela si functia LockControls.

                                                                                                                                            Metoda LockControls va bloca cele doua textbox-uri si butonul corespunzator softkey-ului din stanga, pentru a preveni introducerea altor numere pana la un calcul nou.

                                                                                                                                            private void LockControls()

                                                                                                                                            {

                                                                                                                                            //blocheaza primul element al meniului

                                                                                                                                            mainMenu1.MenuItems[0].Enabled = false;

                                                                                                                                            //blocheaza textbox-urile

                                                                                                                                            txtFirst.Enabled = false;

                                                                                                                                            txtSecond.Enabled = false;

                                                                                                                                            }

                                                                                                                                            In momentul de fata, daca am parcurs tot acest cod, in aplicatie va fi afisata suma celor doua numere .

                                                                                                                                            Trecem la softkey-ul din dreapta, caruia ii modificam proprietatea Text (“Options”) si ii mai adaugam inca doua elemente: Recompute si Exit.

                                                                                                                                            In handler-ul pentru Recompute vom apela functia UnlockControls, care va debloca textbox-urile si butonul Compute pentru a putea inita un alt calcul.

                                                                                                                                            private void UnlockControls()

                                                                                                                                            {

                                                                                                                                            //deblocheaza controalele

                                                                                                                                            mainMenu1.MenuItems[0].Enabled = true;

                                                                                                                                            txtFirst.Enabled = true;

                                                                                                                                            txtSecond.Enabled = true;

                                                                                                                                            //sterge textul din textbox-uri

                                                                                                                                            txtFirst.Text = string.Empty;

                                                                                                                                            txtSecond.Text = string.Empty;

                                                                                                                                            //seteaza focusul pe primul textbox

                                                                                                                                            txtFirst.Focus();

                                                                                                                                            }

                                                                                                                                            Handler-ul butonului Exit va inchide aplicatia.

                                                                                                                                            private void menuItem3_Click(object sender, EventArgs e)

                                                                                                                                            {

                                                                                                                                            //inchide aplicatia

                                                                                                                                            Application.Exit();

                                                                                                                                            }

                                                                                                                                            Dupa ce am terminat, apasam CTRL-SHIFT-B (pentru compilare) si, daca nu avem erori, putem apasa F5 pentru rularea aplicatiei. Imediat, va aparea o fereastra in care sunt disponibile emulatoarele catre care putem face “deploy” aplicatiei.

                                                                                                                                            Selectam unul din emulatoarele unui dispozitiv 6.5. Personal, voi selecta USA Windows Mobile 6.5 Standard Landscape QVGA Emulator.

                                                                                                                                            Mesajul din partea de jos a ferestrei Show me this dialog each time I deploy the application este folositor daca dorim ca aceasta fereastra sa (nu) apara la fiecare rulare a aplicatiei.

                                                                                                                                            clip_image006

                                                                                                                                            Nota: In cazul in care nu se gasesc in lista Emulatoarele pentru Windows Mobile 6.5, asigurati-va ca ati instalat Windows Mobile 6.5 Developer Tool Kit.

                                                                                                                                            Vom continua apasand Deploy.

                                                                                                                                            Actiunea de “deployment” va dura mai mult prima data, pentru ca acesta va include si sistemul de operare, nu doar aplicatia noastra.

                                                                                                                                            Dupa terminarea actiunii de deployment, pe ecran, va rula aplicatia noastra:

                                                                                                                                            clip_image007

                                                                                                                                            Navigarea prin aplicatie se face cu ajutorul butoanelor.

                                                                                                                                            Se introduc de la tastatura doua cifre si se apasa butonul Compute pentru afisarea sumei lor.

                                                                                                                                            Putem testa aplicatia noastra, in diferite ipostaze., configurand emulatorul. Apasam butonul Device Options :

                                                                                                                                            clip_image008

                                                                                                                                            Apare fereastra Options, unde vom selecta emulatorul caruia ii vom modifica proprietatile:

                                                                                                                                            clip_image010

                                                                                                                                            clip_image011

                                                                                                                                            Selectam Emulator Options.

                                                                                                                                            clip_image012

                                                                                                                                            In aceasta fereastra, navigand prin meniul cu tab-uri, putem configura emulatorul pentru situatiile in care vrem ca acesta sa aiba un folder de pe calculatorul nostru (se va comporta ca un “storage card” in emulator). De asemenea, se poate testam aplicatia pe anumite dimensiuni ale display-ului(DISPLAY), conectarea la retea(NETWORK), nivelul baterie scazut(PERIPHERALS), etc.

                                                                                                                                            Windows Mobile este un sistem de operare foarte puternic, adresat unui numar mare si variat de dispozitive, cu o multitudine de aplicatii compatibile (windows market place).

                                                                                                                                            Puteti downloada proiectul de la adresa

                                                                                                                                            http://serviciipeweb.ro/iafblog/content/binary/tutorialWinMobile6.rar

                                                                                                                                            Prezentare ASP.NET MVC 2 si scurt.ro

                                                                                                                                            Daca va pasioneaza ASP.NET MVC 2, atunci va invit sa veniti simbata, 24 aprilie 2010, la Cladirea City Gate, sala de conferinte Romulus si Remus, de la ora 9:30. Voi prezenta ASP.NET MVC 2.0 si citeva lucruri care o sa va faca munca mai usoara ca developer – nu neaparat de MVC … Totul va fi cu aplicatie practica la www.scurt.ro.

                                                                                                                                            Mai sunt si alte prezentari – cititi aici http://www.codecamp.ro/post/2010/04/09/Codecamp-la-Bucuresti.aspx

                                                                                                                                            Va astept!