Aside

Techorama 2017

Techorama 2017, een jaarlijks terugkerende conferentie die wij als Spikes zeker niet willen missen om de nieuwste inzichten en technologieën van Microsoft op te volgen.

En dus waren er ook dit jaar Spikees aanwezig! Sommige, waaronder ondergetekende, woonden ook een workshop de dag ervoor bij. In mijn geval was dit ‘Get up to speed on Angular 2’.

Collega’s Joren en Ruben waren ook van de partij met deelname aan de workshops respectievelijk ‘Identity and Access Control for modern Applications and API’s’ en ‘Developing with the Sharepoint Framework’

DAY 0

ANGULAR WORKSHOP
ng2Met versie 1 van Angular had ik enige ervaring, maar het was zeker de moeite om meer te weten te komen tijdens de workshop. Aangezien de nieuwste versie van Angular  een vaste waarde begint te vormen binnen de wereld van web development.

Andrew Connell was de onderrichter van dienst en desondanks het gebrek aan een stabiele Wifi installatie, slaagde hij er zeker in om een interessante en waardevolle sessie te verzorgen.

Zo kwamen we o.a. te weten dat de geprefereerde taal, voor het schrijven van Angular applicaties, Typescript is, een open-source programmeertaal ontwikkeld door Microsoft met o.a. code-completion en waarvan het resultaat tijdens compile-time omgezet wordt (transcipted) naar Javascript.

Het uitvoeren van de code kan gebeuren binnen node.js hetgeen debuggen gemakkelijker maakt, aangezien je dan direct het resultaat van de uitvoering van je code kan zien tijdens de ontwikkeling.

Angular Modules kunnen we enigszins zien als Namespaces en Decorators als Attributes.

Een volledige uiteenzetting is uiteraard veel te uitvoerig voor deze blog, maar toch zijn er een paar leuke weetjes zoals:

  • Build ahead before compile : compileer alles één keer Just in time compile
  • In het andere geval gebeurt de compilatie client-side in de webbrowser wat het opstarten trager maakt bij de eerste hits
  • Treeshaking : neem enkel de libraries code mee die nodig zijn voor de applicatie
  • Server-side rendering : Mogelijk door Angular Universal waarbij de code server-side geladen wordt en die wordt doorgegeven aan de client eens dit klaar is. Dit is dan pure html die in de eerste response naar de client gestuurd wordt, wat de eerste response supersnel maakt. De javascript libraries worden daarna lazy loaded.

Ook de verschillende type data bindings zijn interessant om te weten:

  • Interpolation : doorgeven van de data aan de DOM met {{var}}
  • One-way binding : rechtstreeks binding van properties met [prop]
  • Event-binding : user-actions met click-events met (click) = func(‘click’)=”data”
  • Two-way binding : tonen en wijzigen van data met [(ngModel)] = “Dom element”
  • Deze werkwijze wordt ook wel eens football in a box of banana in a box genoemd

Dit is maar een klein tipje van de sluier, maar voor degene die met web development te maken hebben is de nieuwe Angular zeker de moeite waard om nader te bekijken

DAY 1

Op mijn verjaardag start de eerste dag van de Techorama conferentie en speciaal hiervoor hadden Microsoft en zijn partners voor een leuke attentie gezorgd… een rugzak met leuke attenties en … reclame. Tot ik er achter kwam dat er blijkbaar veel andere deelnemers jarig waren, want er waren nog velen met een gelijkaardige goodiebag.

MICROSOFT GRAPH

microsoft-graph

Mijn eerste sessie ging over Microsoft Graph. Aangezien we in het dagelijkse leven veel te maken krijgen met verschillende soorten gebruikers op persoonlijk en professioneel vlak. Met verschillende devices (laptop, phone, tablet,…) voor verschillende soorten data (email, documenten, rapporten,…) en in verschillende applicaties hebben we vele endpoints die worden aangeroepen.

Microsoft Graph stelt developers in staat om al deze data via één endpoint te benaderen, via API’s voor verschillende programmeertalen of via een rechtstreekse REST API service.

Security is verzekerd via oAuth2 waarbij een App bepaalde permissies kan krijgen om bvb mails of data te lezen en/of schrijven of gegevens van gebruikers of groepen uit te lezen om meer inzicht te krijgen.

O365 DATA AND SECURITY

In de volgende sessie ging het over O365 Data and Security waar begrippen als Rights Management Service en Azure Information Protection aan bod kwamen.

Dit allemaal om meer inzicht te krijgen over bescherming van verwijderde en ge-exporteerde data, malware, Data failures en hacking.

Ook werd het belang van het niet zomaar toekennen van admin roles aangegeven maar moet er meer gekeken worden naar toekennen van security permission gebaseerd op scopes (Web, Site, Site Collection, Lists, Folders en Items).

Terwijl Azure Rights Management eerder permissies geeft aan documenten en emails die naar de buitenwereld gaan en dus moeten beschermd worden tegen het niet copieren of printen van data wordt bij Azure Information Protection vooral de prioriteit gelegd op het beschermen van de data in documenten en mails. Zo kan je bvb. regels en condities instellen om ervoor te zorgen dat er nooit gevoelige data zoals financiële gegevens het bedrijf verlaten of opgeslagen worden. Deze regels kunnen dan de gebruiker bvb. waarschuwen dat een document dat je wil opslaan in een Sharepoint lijst of wil mailen naar een extern contact kredietkaart informatie bevat.

Via een Security Compliance Center kan dan weer getraceerd worden in auditlogs die informatie bevatten om te kijken of er geen sensitieve data verkeerdelijk behandeld wordt door bvb. Amazone services die door iemand gekoppeld zijn aan 0365 data.

In het Security Compliance Center kan in de auditlogs gezocht worden en kunnen er rapporten uit getrokken worden. In principe probeert men met het instellen van policies data te beschermen vooraleer er iets kan mee fout lopen.

COGNITIVE SERVICES

cognitive services Terwijl Face Recognition vooral karakteristieken in foto’s als ouderdom en emoties kan herkennen is het bij Computer/Custom Vision vooral te doen rond het dedecteren van situaties in beelden.

Zo is het momenteel al mogelijk om via deze technologie het laden of trekken van een wapen te herkennen of het smijten van een roze frisbee door een 12-jarig meisje. Met al z’n details!

Ga zeker ook de mogelijkheden van ‘Intelligent Kiosk’ bekijken.

Deze dag sloot ik af met eerder nogal technische sessies rond ASP.NET Core en Microservices waarvan ik jullie de technische details zal besparen.

DAY 2

De tweede dag van Techorama was zonnig en had opnieuw veel te bieden. Interessante sessies uiteraard maar ook ijsjes tijdens de pauze in de namiddag.

 AZURE BUS MESSAGING

Ik startte samen met collega Yves met een sessie over Azure Bus Messaging, verzorgd door Sean Feldman. Deze begint met de termen als Queues, Topics, Subscription en Rules en over begrippen als ReceiveAndDelete en PeekLock waarbij in het ene geval de message binnen gehaald wordt om ze dan te verwijderen, terwijl in het andere geval we enkel geïnteresseerd zijn om de message even te bekijken.

Wat nieuw is, zijn Azure Bus Performance counters die je een inzicht geven van hoe de Azure Bus in het verleden met zijn Messages omgegaan is en hoe performant dit allemaal verlopen is.

Het feit dan je een MessagePump kan instellen met OnMessage, Forwarding beperkt is tot 3 hops en dat een DeadLetter Queue een Source en Reason heeft is leuk om te horen maar het waren vooral de vele voorbeelden en de uitleg die we erbij kregen die heel interessant was en nuttig om mee te nemen in onze rugzak van kennis. Dit herinnert me eraan dat ik Sean zeker nog moet mailen om een copy van zijn voorbeeld broncode te vragen.

C#7

Tussendoor neem ik nog een sessie mee over de nieuwe weetjes over C#7 waarbij ik te weten kom dat:

  • Throw een onderdeel van een expressie kan zijn : [Condition] ? : Throw new Exception(…)
  • Het kunnen gebruiken van Local Functions binnen een local function veel sneller is en de garbage collector ontlast
  • OutVars een manier zijn om ‘out’ variabelen te declareren in de function call en je een ‘_’ kan gebruiken indien je de ‘out’ var niet wil meegeven wat de uitvoering weer sneller maakt
  • PatternMatching ervoor kan zorgen dat je code kan schrijven in de vorm van:{}
  •                 Console.WriteLine(name)
  • If (obj is String name)

Iets gelijkaardigs is mogelijk in een:

Switch(obj)
{
Case String s:

Case double d When d > 100:

Case null:

Case var: (J)

}

You get the picture, right?

Verder ook nog iets nieuws aangaande Tuples en ValueTasks, maar genoeg hierover.

Language Understanding Intelligent Service

luis Laten we het zeker ook hebben over chatbots en de mogelijkheden hiervan in de sessie ‘Luis, So what are you doing today?’
Indien je vlug een Q&A chatbot wil opzetten nodig ik je uit om de QnAMaker zeker eens te gaan bekijken die vlug kan opgezet worden, maar zeker zijn beperkingen heeft naar oplossingen toe.

Laten we beginnen met ons de vraag te stellen waar een chatbot nuttig kan zijn?

Zeker bij:

  • Service of help desks waarbij veel vragen opnieuw terug komen of simpele acties als een reset van een paswoord kan geautomatiseerd worden
  • Het steeds opnieuw moeten stellen van dezelfde vragen voor bvb een klantendienst
  • Het opzoeken van antwoorden in een Search service bvb Azure Search

Zeker niet bij:

  • Het zoeken naar een reisbestemming want dat plezier willen we niet afnemen 🙂
  • Het maken van een boodschappenlijst want zijn hier niet al genoeg mogelijkheden voor?
  • Het helpen met het uitvoeren van een kookrecept 🙂

Begin zeker ook nooit met een zin als ‘Wat wil je doen?’ want dat laat veel te veel mogelijkheden open. Probeer de vragen gericht te stellen en maak gebruik van multiple choice waar nodig.

Luis (of volluit Language Understanding Intelligent Service) probeert de menselijke taal te begrijpen en zal op vragen van de gebruiker afdoende reageren.

Hiervoor kan je gebruik maken van:

Utterances

Zinnen die je kan trainen en die door gebruikers kunnen ingegeven worden.

Intents

Taak of actie die een gebruiker wil doen bvb: BoekEenVlucht of WelkWeerIsHetDus bvb ‘Boek een vlucht naar Rome morgen om 9u’ of ‘Welk weer is in Rome’.

Entities

Belangrijke woorden in een zin van type Tekst, Datum, Nummer,…Bvb. In ‘Boek een vlucht naar Rome’ is ‘Rome’ een locatie van type Tekst.

Features

Dit zijn onderscheidende kenmerken of kenmerken van gegevens die uw systeem waarneemt.

Je kan bvb. bij ‘Boek een vlucht naar Rome’ het systeem trainen dat Rome een locatie is maar daarna kan je ‘features’ toevoegen aan locatie die hiervan synoniemen zijn zoals Brussel,Parijs, Amsterdam,…

Ook is het mogelijk om een pattern te definiëren zoals Inc\d waarbij bvb Inc12345 herkend kan worden.

Bij Cognitive Services in het algemeen is het belangrijk om te trainen en te hertrainen…

BUILDING INTELLIGENT CLOUD: FROM TRANSACTION DATA TO AI

In de sessie ‘Building Intelligent Cloud from transactional data to Artificial Intelligence’ werd bij het begin het belang van SQL Server 2017 aangestreept.

Terwijl we weten dat SQL Server 2016 reeds kan doorgaan als een leider in de industrie die heel veilig en performant is met de mogelijkheden van Advanced Analytics werd bij SQL Server 2017 nog aangegeven dat deze:

  • Graph Query en Objects ondersteunt voor het analyzeren van complexe relaties
  • Adaptive Query Processing ondersteund
  • Python en R supporteerd
  • In staat is tot Advanced Machine Learning en DeepLearning on GPU’s

Bovendien is er ook ondersteuning is voor MySQL en het bestaan van een Azure DB Migration Service

Deze laatste kan zorgen voor een vlotte database migratie naar Azure SQL databases en is in staat voor het migreren van SQL Server, Oracle en nog andere types databases.

Dit is maar een klein tipje van de sluier over de nieuwe mogelijkheden van SQL Server 2017

Azure Cosmos DB werd ook aangehaald als zijnde een globaal distributed database die automatisch over meedere nodes in Azure Regions geinstalleerd wordt waardoor je data wereldwijd verspreid en dus gedupliceerd wordt en waarbij je enkel voor het transport en opslag van de data betaald.

Ook termen als ‘Azure Data Lake Services’ en ‘Azure Analysis Service’ kwamen kort ter sprake.

MUST HAVE PATTERNS FOR YOUR WEBSCALE MICROSERVICES

De ‘Must have patterns for your webscale Microservices’ sessie leerde ons vooral dat je niet je oplossing moet schaalbaar maken, maar eerder je ontwikkelaars.

Dit resulteert in een mind-shift waarbij een nieuw operationeel model zou moeten uitgewerkt worden, die de manier waarop je ontwikkelaars werken compleet verandert.

Denk niet in ontwikkelteams voor bvb levensverzekeringen of kledingwebshops maar eerder aan ontwikkelingteams (lees:microservices) voor klantenbeheer, productbeheer, stockbeheer, verzendingsbeheer.

Dit reduceert de complexiteit voor elke microservice, de kans op het maken van fouten of slechte beslissingen en verhoogd de frequentie van deployments.

 VISUAL STUDIO 2017

Als laatste sessie woonden collega David en ikzelf de sessie over de nieuwigheden van Visual Studio 2017 bij waarbij ons vooral is bijgebleven dat hierin heel wat configuratie mogelijk is voor Code Styling.

Hoe je bvb. variabelen in een project wil zien bvb. in CamelCase of wil je variabelen expliciet definiëren of de ‘var’ declaratie gebruiken,…

Je kan deze instellingen dan ook afdwingen doorheen je hele document, project of solution.

Allemaal nuttige dingen maar wat ons en de andere deelnemers ook zeker niet ontgaan is, is de spontane en enthousiaste schoonheid van de spreekster Kasey Uhlenhuth 🙂

Dit was dan ook meteen het einde van deze Techorama 2017, een conferentie die zeker de moeite waard was om de verschillende nieuwe en interessante ontwikkelingen van Microsoft te ontdekken en waar we in de loop van dit jaar en volgend jaar zeker mee gaan te maken hebben.

Bedankt aan Microsoft, zijn partners en de vele sprekers en tot Techorama 2018!

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s