Materials event Office365 Rest API

O365

Hola de nou,

Us deixo els materials de l’event que vàrem fer divendres passat sobre la nove API Rest per accedir a Office365. Val a dir que tot i que li falten un parell de funcionalitats (que vindran en els propers mesos) per fi tenim una alternativa plenament funcional als antics Exchange Web Services (EWS). Amb l’avantatge de que és més molt més rápida (x20 com a mínim).

O365RestApiLogin

És important senyalar que el trick és paginar entre els resultats que ens retorna la API, com varem veure en el projecte d’exemple:

public static async Task<IEnumerable<Contact>> GetContacts()
{
    var cnames = new List<Contact>();
    var page = 0;
    var client = await EnsureClientCreated();
    var contactsResults = await client.Me.Contacts.Where(p => p.DisplayName != null).ExecuteAsync();
    var cl = contactsResults.CurrentPage.ToList();
    cnames.AddRange(addContactsCurrentPageToList(cl));
    while(cl.Count > 0)
    {
        page++;
        contactsResults = await client.Me.Contacts.Where(p => p.DisplayName != null).Skip(50 * page).ExecuteAsync();
        cl = contactsResults.CurrentPage.ToList();
        cnames.AddRange(addContactsCurrentPageToList(cl));
    }
    return cnames;
}

private static List<Contact> addContactsCurrentPageToList(
    List<IContact> contactsResults)
{
    var contacts = new List<Contact>();
    contacts.AddRange(contactsResults.Select(p => new Contact()
    {
        BusinessPhone1 = p.BusinessPhone1,
        CompanyName = p.CompanyName,
        DisplayName = p.DisplayName,
        EmailAddress1 = p.EmailAddress1,
        HomePhone1 = p.HomePhone1,
        JobTitle = p.JobTitle,
        Manager = p.Manager,
        MobilePhone1 = p.MobilePhone1,
        Title = p.Title
    }));
    return contacts;
}

O365RestAPiContracts

Aquí teniu el projecte publicat al meu Onedrive.

Enjoy! :)

Task Parallel Library (5 i final!)

debugtpl

Cinquena i -per fí, final- xerrada sobre la TPL :D

La veritat es que va ser la més densa de totes les xerrades que he fet mai. Mai és senzill depurar aplicacions asíncrones, però hem evolucionat molt des del temps dels Threads llençats i controlats de forma menual.

Varem fer una vistita guiada per les maravelles que incorpora VS2013 per facilitar aquesta feixuga tasca, i fer que ens caigui menys cabell del que realment hauría de fer ;)

Com és la xerrada final aquí teniu un índex de totes les xerrades anteriors, tot i que el projecte és el mateix que ha anat evolucionant.

Task Parallel Library (1)

Task Parallel Library (2)

Task Parallel Library (3)

Task Parallel Library (4)

També us deixo el projecte d’exemple que tinc publicat a SkyDrive

En aquesta ocasió (i que no serveixi de precedent) no varen caure gaires cervesses :(

Task Parallel Library (4)

asyncawait

Quarta xerrada sobre la TPL.

Jornada dedicada específicament al desenvolupament asíncron amb els nous keywords async/await que tant van agradar en la xerrada anterior.

Com que realment des del punt de vista tècnic no hi ha gaire cosa a explicar (tret d’algunes particularitats), varem aprofitar per explicar un conjunt de bones práctiques per fer servir conjuntament. També vàrem comentar alguns tips d’allò que NO s’ha de fet mai quan treballes de forma asíncrona.

Començo a pensar que aquesta sèrie de xerrades no s’acabarà mai :P

Us deixo el projecte d’exemple que tinc publicat a SkyDrive

Després varem tenir el sopar tradicional i birres a tutiplén!  :)

Task Parallel Library (3)

image.png

Tercera xerrada sobre la TPL.

En aquesta ocasió ens vàrem centrar en la creació de Tasques per execució de tasques asíncrones (i en paralel). Varem anar evolucionant els exemples encadenant tasques amb els seus respectius callbacks, i per finalitzar vàrem veure els nous keywords async i await que fan que treballar de forma asíncrona sigui una cosa molt més natural.

De fet async/await va agradar tant que properament farem una xerrada decicada només a això.

Us deixo el projecte d’exemple que tinc publicat a SkyDrive

Després varem tenir el sopar tradicional i birres a tutiplén!  :)

Materials de la xerrada sobre Generics

generics01

Aquest divendres varem fer una de les xerrades més divertides que he tingut el plaer de donar. La veritat es que m’ho vaig passar pipa (i espero que no fos l’únic), ja que el tema tractat és un dels meus preferits: Generics

Dit així no sembla gaire cosa, però és un dels pilars sobre el qual s’ha construit tot el .NET Framework més ‘modern’  (LINQ, lambdes, i to el que faci referència a programació funcional).

Us deixo el link al projecte de exemple  que tinc publicat a SkyDrive i que varem fer servir. Enjoy ;)

 

Any nou: AZURE Data Services

2014

Tanquem un any 2013 ple d’activitats i començem un 2014 que no vol ser menys. Tenim previstes un bon grapat de xerrades molt interessants, i també volem ampliar horitzons, introduïnt noves tecnologies, ja que no només de .NET viu l’home :)

La idea es parlar també de Javascript, iOS, Android i altres… mola oi?

Respecte a la xerrada d’ahir varem fer un recorregut pels diferents serveis de dades que proporciona AZURE, i varem comentar les diferencies de cost, rendiment i escalabilitat a l’hora de fer servir SQL Database o Storage per guardar blobs binaris grans (imatges).

azuredataservices

Al final, varem anar a sopar i varem continuar el brainstorming sobre el proper geek-a-paloozaaa, que com ja us imagineu comporta molts maldecaps (i a l’hora satisfaccions) :P

Windows 8 applications (XAML tips)

En aquesta ocasió vàrem veure alguns aspectes avançats a l’hora de desenvolupar aplicacions Windows 8, com la utilització dels contractes per accedir als charms de sistema. En l’exemple final es va mostrar com utilitzar el contracte de Share per enviar informació a la nostra aplicació, i utilitzar-lo per afegir productes a la lista de la compra des de la web de Amazon.

Durant el sopar varem començar a planificar el proper Geek-a-paloozaaa :)

Task Parallel Library (1)

A petició popular, el passat divendres 25 d’Octubre vaig tornar a fer una de les xerrades que més he repetit les darrers mesos (per no dir anys): Varem ver una introducción a les característiques básiques de la TPL i com que el temari dona per molt, al final em vaig haver de comprometre a fer al menys dues o tres més, els propers mesos.

Us deixo el projecte d’exemple que tinc publicat a SkyDrive

Com és habitual després van caure algunes copes :)