<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="www.w3.org/2005/Atom" xmlns:sy="purl.org/rss/1.0/modules/syndication/" xmlns:dc="purl.org/dc/elements/1.1/" xmlns:content="purl.org/rss/1.0/modules/content/" xmlns:wfw="wellformedweb.org/CommentAPI/" xmlns:slash="purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>MSDN Up North</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/dpenorway/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/dpenorway/feed.xml</link>
    <description>For norske utviklere</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:08:58 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>BUILD 2017 Keynote sammendrag</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/build-2017-keynote-sammendrag</link>
      <pubDate>Fri, 12 May 2017 06:37:03 GMT</pubDate>
      <dc:creator><![CDATA[Pedro G. Dias]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=6285</guid>
      <description><![CDATA[Vår årlige utviklerkonferanse BUILD er i gang, denne gang i Washington State Convention Center i...]]></description>
      <content:encoded><![CDATA[Vår årlige utviklerkonferanse BUILD er i gang, denne gang i Washington State Convention Center i Seattle, Washington.

Tradisjonen tro åpnet vår CEO, Satya Nadella konferansen, og han startet med å skissere noen størrelser omkring dagens dataforbruk:
<ul>
 	<li>I 1992 produserte vi ca. 100 gigabyte daglig</li>
 	<li>I dag produserer vi 17.5 millioner ganger det tallet per sekund(!)</li>
 	<li>99% av alle data vi produserer ble generert de 2 siste årene</li>
 	<li>Innen år 2020 kommer vi til å ha ca. 25 miliarder intelligente enheter</li>
</ul>
Det er vi, utviklerne, som former fremtiden. Det er et hav av muligheter, men med mulighetene kommer også ansvar. Valgene som vi utiklere tar kommer til å ha følger. Nadella fortsatte med å snakke om fremtidsvisjonene til George Orwell i boken "1984", som snakker om stram befolkningskontroll) og Aldous Huxley's bok "Brave new world", som tegner en fremtid der vi søker underholdning.

Nadella forsikrer oss om våre "tidløse verdier og prinsipper", som gjennomsyrer vår måte å jobbe på:
<ul>
 	<li>"Empower People" - Utvikle teknologi for å hjelpe folk å oppnå mer</li>
 	<li>"Inclusive Design" - Teknologi som møter mennesker, uansett hindringer</li>
 	<li>"Build trust in tech" - Teknologi som er til å stole på</li>
</ul>
Mobile First/Cloud First var vårt tema i fjor, men dette utvikles ustanselig. Et skifte fra mobile first/cloud first til intelligent Cloud og nå <strong>Intelligent Edge.</strong>

<strong> <a href="https://msdnshared.blob.core.windows.net/media/2017/05/intelligentEdge.jpg"><img width="1024" height="576" class="alignnone wp-image-6295 size-large" alt="intelligentedge" src="https://msdnshared.blob.core.windows.net/media/2017/05/intelligentEdge-1024x576.jpg" /></a></strong>

Build 2017 fokuserer på skiftet i vårt syn på verden. I Nadellas egne ord, så vil brukeropplevelsen bli distribuert over en serie med enheter, og ikke bare begrenset til en smarttelefon. Plattformskiftet handler om data. Selvkjørende biler, for eksempel, genererer voldsomme mengder data.

En stor endring er tanken rundt serverless, og muligheten til å skrive logikk som reagerer med verden ved å distribuere seg selv dit enhetene er, og ikke bare kjører på en server eller i en virtuell maskin.

<strong>Azure IoT Edge </strong>er en plattform runtime som kjører både på Windows og i Linux, og gjør det mulig å kjøre cloud funksjonalitet direkte på IoT enheter. Logikken kan testes og installeres i skyen, og deretter overføres til IoT enheter når den er klar via Docker containere.

Det ble vist en demo på hvordan sikkerhetskameraer kan fange opp både mennesker og utstyr på en byggeplass, og varsle om farer, f.eks. at et trykkluftbor kan risikere å falle ned på noen. Systemet som ble vist kan gjenkjenne over 27 millioner objekter per sekund for å varsle om problemer. Det ble også vist hvordan en integrert chat-bot kan varsle om disse situasjonene via mobiltelefon.

Laura Jones demonstrerte hvordan Cortana sømløst overfører kommandoer og dokumenter fra hennes hjemme-PC til andre enheter, slik som bilen hennes. I demoen var hun på vei til et møte, da bilen varslet om at hun hadde lite drivstoff igjen, og foreslo en ny rute for henne. Cortana varslet de andre møtedeltakerne, og gav Laura muligheten til å bli med i møtet via bilens telefonsystem.

En utrolig demonstrasjonsvideo av "Emma" enhet ble vist, som er designet for å hjelpe brukere med håndrykninger til å få kontroll på skriving og å bruke hendene, kan du se her:

[embed]https://www.youtube.com/watch?v=k9Rm-U9havE[/embed]

<strong>Utviklerverktøy presentert av Scott Guthrie</strong>

Scott Guthrie kom deretter på scenen for sitt segment av Keynoten. Guthrie gjentok våre nøkkelverdier og prinsipper som former Azure: Innovasjon, tillit, og resultater.

Raskt etter kom Scott Hanselman på scenen for å demonstrere Microsoft Azure og Visual Studio. Det finnes nå et nytt Azure Cloud Shell direkte i Azure portalen. Bash er tilgjengelig nå, og PowerShell vil følge etter snart. Til dette er det knyttet en persistent Cloud Drive og Azure CLI verktøyene er forhåndsinstallert. Hanselman demonstrerte det å liste opp virtuelle maskiner, kjøre VIM, og å opprette virtuelle maskiner - alt fra kommandolinjen.

Vi har også lansert en ny mobil app, Azure Mobile, slik at Azure kan overvåkes og kontrolleres fra en iPhone eller Android. Denne appen inneholder også Cloud Shell.

Azure har nå fått egenskapen at den kan ta "intelligente snapshots" slik at feil og exceptions kan debugges i sanntid direkte i Visual Studio. Dette i produksjon!

Visual Studio for Mac er nå GA (Globally available), og inneholder støtte for mobil, web, unit og Azure prosjekttyper. Utviklere som har en lisens på Visual Studio har nå samme lisens på Visual Studio for Mac.

To nye databaser er nå tilgjengelige i Azure portalen som PaaS: PostgreSQL og MySQL. De er 100% kompatible med eksisterende drivere, verktøy og bibliotek.

I tillegg ble <a href="https://docs.microsoft.com/en-us/azure/cosmos-db/introduction">Azure Cosmos Db</a> introdusert. Dette er en globalt distribuert databasetjeneste som tilbyr high availability, performance latency, performance throughput og data consistency. Azure Cosmos Db er tilgjengelig fra i dag!

Visual Studio har også fått enda bedre Docker tooling, og gjør det nå mulig å kjøre develop-debug-test-deploy sykluser og ende-til-ende DevOps støtte. Maria demonstrerte hvordan man kan "containerisere" en eksisterende .Net Framework applikasjon som krever IIS og Windows for å kjøre. VS2017 støtter også kryss-container debugging og continuous delivery for container-baserte applikasjoner. Det er nå også lagt til støtte for Azure Functions og Logic Apps, samt Azure Application Insights for Azure Functions i VS2017.

<strong>Cognitiv Teknologi og Kunstig intelligens (AI)</strong>

For å støtte opp for dere utviklere tilbyr vi nå Microsoft Cloud, AI Innovation og Microsoft Graph. Noen av nyvinningene innen AI ble demonstrert som f.eks. Microsoft Vision system (RESNET), stemmegjenkjenning, og vi viste hvordan vi ønsker å gjøre dette tilgjengelig for deg som utvikler.

Det ble også vist en snerten "Presentation Translation Layer" for powerpoint, der presentøren kan snakke på sitt språk under en presentasjon med Powerpoint, og så ble hele presentasjonen tekstet i sanntid til brukerne på sine språk. Demoen viste hvordan Yina Arenas,  snakket spansk, mens titlene ble vist på engelsk og kinesisk i sanntid. Harry Shum, som snakker kinesisk, kunne så gi en kommentar på kinesisk, som ble oversatt i sanntid til alle som så på.

&nbsp;

Oppsummert, en kraftig keynote, som du også kan se her på channel 9:

<a href="https://channel9.msdn.com/Events/Build/2017/KEY01">Se BUILD Day 1 Keynote </a>

&nbsp;

Se også våre <a href="https://www.microsoft.com/en-us/learning/azure-skills-training.aspx">online kurs på Microsoft Learning </a>dersom du ønsker å utvikle deg videre.

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Hackfest- kode med oss og få nøyaktig den hjelpen du trenger til dine aktuelle prosjekter</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/hackfest-kode-med-oss-og-fa-noyaktig-den-hjelpen-du-trenger-til-dine-aktuelle-prosjekter</link>
      <pubDate>Mon, 24 Apr 2017 16:28:58 GMT</pubDate>
      <dc:creator><![CDATA[Katarina Halkinrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=6185</guid>
      <description><![CDATA[Torsdag og fredag arrangerte vi hackfest ledet av Einar Ingebrigtsen, Anders Gill og Jessica Perez....]]></description>
      <content:encoded><![CDATA[Torsdag og fredag arrangerte vi hackfest ledet av Einar Ingebrigtsen, Anders Gill og Jessica Perez. Vi hadde en god deltaker-mix, fra både større selskaper og fra mindre startups, totalt 13 deltakere fra hele 9 selskaper. Formålet med en hackfest er at deltakerne kan bygge videre på egne prosjekter og kan sammen med våre eksperter få hjelp til å løse opp eventuelle flaskehalser som hindrer fremgang i prosjekter. Ved å arrangere hackfest ønsker vi å hjelpe våre partnere å vokse videre ved at de blir bedre kjent med hvilke muligheter som finnes ved å bygge i Azure. Kunnskapen våre eksperter formidler her er basert på spørsmål fra deltakerne og utfordringer de har møtt på underveis i sine prosjekter.
<a href="https://msdnshared.blob.core.windows.net/media/2017/04/hackfest4-e1493050194795.jpg"><img width="205" height="273" class="aligncenter wp-image-6195" alt="hackfest4" src="https://msdnshared.blob.core.windows.net/media/2017/04/hackfest4-e1493050194795-225x300.jpg" /></a>

Sammenlignet med workshops vi arrangerer som er mer generiske, er hackfestene ikke lagt opp etter en spesifikk agenda med presentasjoner. Disse to dagene er til for å gi deltakerne individuell hjelp med fremdrift på egne prosjekter. Spørsmål og kunnskapsdeling blir til undervis, skreddersydd etter deltakernes behov. I løpet av disse to dagene hjelper vi deltakerne blant annet med forslag til arkitektur rettet mot den enkeltes formål, revisjon av hvordan deltakerne gjør ting i dag, samt mer kodehjelp og kodeforslag. Vi gir gjerne råd og best practices knyttet til arkitekturen, slik at partnerne raskere kan nå målet de jobber mot etter å ha brukt to dager hos oss.

<a href="https://msdnshared.blob.core.windows.net/media/2017/04/hackfest51-e1493050175312.jpg"><img width="225" height="300" class="aligncenter wp-image-6216 size-medium" alt="hackfest5" src="https://msdnshared.blob.core.windows.net/media/2017/04/hackfest51-e1493050175312-225x300.jpg" /></a>

Azure som plattform er svært omfattende, og ikke alle brukere har full forståelse over hvordan bruke alt plattformen inneholder og til hvilke behov. Hackfestene handler derfor først og fremst om forståelsen, forankring av kunnskapen og om å opparbeide seg riktig tankegang for å tenke i riktige baner om hva som skal til for å nå sine mål. Våre eksperter fungerer som rådgivere i løpet av disse to dagene med programmering. Noen av deltakerne hadde større prosjekter de jobbet på, mens andre hadde mindre elementer de ønsket å løse. Har man ikke noe konkret å jobbe på er det mulighet for å starte på et nytt prosjekt for å utforske ny teknologi og alle mulighetene som finnes på Azure plattformen.  Målet med å delta på en hackfest er ikke å få gjort mest mulig, men å forsikre seg om at det man gjør er riktig, i tillegg til å få en dypere forståelse.
<p style="text-align: center"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/hackfest2.jpg"><img width="300" height="169" class="alignnone size-medium wp-image-6205" alt="hackfest2" src="https://msdnshared.blob.core.windows.net/media/2017/04/hackfest2-300x169.jpg" /></a></p>
Deltakerne satte pris på den interaktive dialogen de fikk med Microsoft, og at de fikk jobbet med det som er relevant for dem i dag. At de fikk tilrettelagt hjelp fra Microsoft sine eksperter som daglig jobber med dette og som har en enorm lidenskap for koder og programmering, på områder der behovet for hjelp er størst, gjorde at flere ønsker å delta på flere hackfester. Også inspirasjonen deltakerne fikk av å jobbe på et nytt sted sammen med likesinnede fra andre selskaper som de kunne dele erfaringer med ble høyt verdsatt av deltakerne.

Microsoft arrangerer flere hackfester, følg med på <a href="https://msdn.microsoft.com/nb-no/mt492469">arrangementssiden</a> vår for å melde deg på den neste. Vi gleder oss allerede!

<a href="https://msdnshared.blob.core.windows.net/media/2017/04/hackfest4-e1493050194795.jpg"> </a>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Programvarehus står sterkere sammen</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/programvarehus-star-sterkere-sammen</link>
      <pubDate>Tue, 18 Apr 2017 13:33:27 GMT</pubDate>
      <dc:creator><![CDATA[Katarina Halkinrud]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=6136</guid>
      <description><![CDATA[Microsoft hjelper programvarehus å vokse

Microsoft Norge ønsker å hjelpe Norge med å bli en...]]></description>
      <content:encoded><![CDATA[<span><b><span style="color: #5a5a5a;font-family: Calibri"><span style="color: #2e74b5;font-family: Segoe UI;font-size: x-large">Microsoft hjelper programvarehus å vokse</span></span></b></span>

<span><b><span style="color: #000000;font-family: Segoe UI">Microsoft Norge ønsker å hjelpe Norge med å bli en ledende aktør innen digital transformasjon. På veien mot en slik posisjon, ønsker vi å arbeide med andre programvarehus, enda tettere enn tidligere. Solide bånd til partnere vil styrke mulighetene til å være innovative og til å raskere kunne levere relevante løsninger mot visse sektorer, enn hva man som selskap ville hatt muligheten til helt alene. Hva betyr dette, og hvordan ser Microsoft for seg et slikt samarbeid? I denne bloggposten ønsker vi å dele våre innsikter knyttet til dette temaet.</span></b></span>

<span><span style="color: #000000;font-family: Segoe UI;font-size: small">Avdelingen jeg jobber i, DX </span><span style="color: #000000;font-family: Segoe UI;font-size: small"> </span><span style="color: #000000;font-family: Segoe UI;font-size: small">(Developer Experience), er en avdeling som først og fremst sikter mot selskaper som selv utvikler programvarer, også kalt ISV’er (heretter omtalt som programvarehus). Vi definerer et selskap som en ISV når det selger programvare uavhengig av standardiserte løsninger (<em>les:</em> dersom et selskap implementerer tilpassede løsninger, anser vi disse partnerne som systemintegratorer). Dette gjelder standard applikasjoner som generelt tilbys som SaaS-løsninger.</span></span>

<span><span style="color: #2e74b5;font-family: Segoe UI;font-size: x-large">Vi skaper fremgang, sammen</span></span>

<span><span style="color: #000000;font-family: Segoe UI;font-size: small">At programvarehusene som partner er selvstendige av natur betyr i hovedsak at selskapet har mulighet til å fungere godt helt på egenhånd. Derfor tilbyr Microsoft den støtten som tilfører programvarehusene en ekstra verdi. Vi tilpasser vår støtte på bakgrunn av hvilke områder den enkelte partner trenger denne støtten mest. Vår hjelp inkluderer blant annet delte markedsføringsaktiviteter, sett at dette er en aktivitet som bidrar til at det enkelte programvarehus bli mer anerkjent og oppnår enda større suksess. Vi har ett mål, og det er å vokse sammen. Vårt veiledende prinsipp er at partnerens løsning vil bli enten delvis eller fullstendig basert på en plattform utviklet av Microsoft. Plattformen kan være Windows, Office 365 eller Dynamics.  Vår skybaserte plattform, Microsoft Azure er i dag den plattformen som opplever den desidert største veksten. Vår støtte avhenger av den tekniske løsningen som programvarehuset allerede tilbyr, deres forretningsidè og forventet antall av sluttbrukere.</span></span>

<span><span style="color: #2e74b5;font-family: Segoe UI;font-size: x-large">Ulik støtte på ulike områder</span></span>

<span style="font-family: Segoe UI;font-size: small">Det er særdeles viktig å se på typen programvarehus og hvilken del av modningsfasen selskapet befinner seg i. Er det en start-up, eller et godt etablert selskap som nyter flere års erfaring? Det kreves ulike støtteaktiviteter til hver av disse fasene. For ett selskap kan en delt presseomtale være av stor verdi, mens for et annet selskap er det mer effektivt å kunne vise til tekniske resultater av løsningskonsepter. For alle selskaper gir det nødvendigvis ikke mening å være 100% skybaserte, dette avhenger av hvilken fase de befinner seg i på modenhetsskalaen. Figuren under viser de ulike fasene vi skiller mellom og hva slags støtte som er relevant i de respektive fasene. </span>

<span><b><span style="color: #5a5a5a;font-family: Calibri"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/124-e1492519039799.png"><img width="328" height="185" class="alignnone wp-image-6165" alt="1" src="https://msdnshared.blob.core.windows.net/media/2017/04/124-e1492519039799-300x169.png" /></a></span></b></span>

<span lang="EN-GB" style="margin: 0px;line-height: 107%;font-family: 'Segoe UI',sans-serif;font-size: 11pt"></span>

<span><span style="color: #2e74b5;font-family: Segoe UI;font-size: x-large">Det første steget</span></span>

<span><span style="color: #000000;font-family: Segoe UI;font-size: small">Klarer du å gjenkjenne programvarehuset ditt i figuren over? Er din løsning for øyeblikket, eller kommer den eventuelt i fremtiden til å bli utviklet på en av de ovennevnte Microsoft-plattformene? Trenger du støtte og ser allerede nå hvilke fordeler du har som Microsoft-partner? Dette er starten på vår vei til å hjelpe deg som programvarehus videre i et marked preget av stadige endringer, der man som selskap må være klar til å handle raskt for å holde følge med sine konkurrenter. Vårt lokale team ønsker sammen med deg å finne ut hvordan vi best mulig kan hjelpe ditt programvarehus til større vekst, med et mål om å oppnå fremgang sammen. Trenger du rådgivning knyttet til nåværende drift, eller er du et selskap i oppstartsfasen og kunne tenke deg tilbakemelding på ditt konsept eller idè? Kanskje er du klar for teknisk støtte hva gjelder utvikling av løsninger, slik som nyttige verktøy for utviklere, online-treninger og programmer for å teste dine løsninger? Ønsker du å migrere dine løsninger til skyen, eller har du heller et behov for støtte knyttet til co-marketingaktiviteter og salg av løsningen din?
Start allerede nå med rådgivning fra våre eksperter både på den tekniske siden og på forretningssiden. Vårt team består av spesialister som kan hjelpe deg med både tekniske og forretningsmessige spørsmål.</span></span>

Tror du Microsoft sine plattformer kan hjelpe din bedrift med å oppnå ønsket vekst? Ønsker du tilbakemelding eller råd relatert til din forretningsmodell og samtidig lære mer om påvirkningen digital transformasjon har på disse?
Kontakt oss ved å sende vår forretningsutvikler Garzai en mail <a href="mailto:a-gaehsa@microsoft.com">a-gaehsa@microsoft.com </a>og fortell innen hvilket område ditt programvarehus ønsker rådgivning og støtte, så kan vi sammen finne ut hvordan vi kan samarbeide videre. Garzai kan også gi deg nyttig informasjon relatert til relevante workshops, både tekniske og forretningsrelaterte, som arrangeres lokalt og som er helt kostnadsfritt å delta på.]]></content:encoded>
    </item>
    <item>
      <title>The Code Lab</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/the-code-lab</link>
      <pubDate>Sun, 30 Oct 2016 13:33:28 GMT</pubDate>
      <dc:creator><![CDATA[Einar Ingebrigtsen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=6085</guid>
      <description><![CDATA[I’ve (Einar Ingebrigtsen) been wanting to try out a new format, or at least a new format for me;...]]></description>
      <content:encoded><![CDATA[I’ve (Einar Ingebrigtsen) been wanting to try out a new format, or at least a new format for me; live interactive webcast. I got inspired when I saw some ex-colleagues of mine started something called "<a href="kodepanelet.no">Kodepanelet</a>" and figured I had to do something similar. The goal is to have a one hour show on a regular basis where anyone can chime in on social media and ask technical questions and I’ll try to be as agile as possible answering, or probably preferably show. Some things I can answer live - other things might need preparation for a later show, or a follow up in a blogpost or similar. This part is still a bit fuzzy. To be honest, since this is all new and I’m trying something out - the format will more than likely change over time.

The concept is called “The Code Lab”;

<img src="https://msdnshared.blob.core.windows.net/media/2016/10/TheCodeLab.png" alt="TheCodeLab" width="411" height="249" class="alignnone size-full wp-image-6086" />

I will be using the Facebook live video streaming system for this and you’ll find the Facebook page for the concept <a href="thecodelab.tv/">here</a>.
<h1>Details</h1>
First airing will be on Friday the 4th of November @ 13:00 CET (1PM), <a href="thecodelab.tv/">here</a>.

&nbsp;
<h1>What can you expect?</h1>
First of all, this is supposed to be for software developers. And I can’t do more than I know or can easily acquire knowledge on. My background stretches from games development including graphics - low level programming to line of business applications and architecting highly available durable and scalable systems. I also have a knack for process and how to build teams. I consider myself pretty open-minded, and as a result I’ve always been all over the place when it comes to platforms. These days I find that I am probably most experienced in macOS and Windows, but an apprentice in Linux - trying to gain more experience there. I try to be polyglot in languages, but have most experience in C/C++, C# and JavaScript. Thrive in the backend as well as the frontend and loves my patterns and eat my SOLIDs for breakfast. I focus a lot of my time on cloud, and specifically Azure. Containers, MicroServices and in general decoupled software is something I am really passionate about.&lt;/&gt;
<h1>How can you help?</h1>
<p class="">Content is always king - I’m hoping people find this interesting and want to jump in with good questions. To get the topics right, there is a survey on Facebook</p>
<iframe width="500" height="354" src="https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2Fpermalink.php%3Fstory_fbid%3D370049413336289%26id%3D350920718582492&amp;width=500" frameborder="0"></iframe>
<h1>Health warning</h1>
<p class="">If you’re out to troll me, I’ll try to ignore you. :)</p>]]></content:encoded>
    </item>
    <item>
      <title>Patterns &amp; Practices 17 November</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/patterns-practices-17-november</link>
      <pubDate>Fri, 21 Oct 2016 08:45:44 GMT</pubDate>
      <dc:creator><![CDATA[Matias Pihlquist]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=6045</guid>
      <description><![CDATA[Vi gjentar suksessen fra i fjor og har igjen invitert Patterns and Practices teamet fra USA til...]]></description>
      <content:encoded><![CDATA[<img src="https://msdnshared.blob.core.windows.net/media/2016/10/pnp.jpg" />
<h1>Vi gjentar suksessen fra i fjor og har igjen invitert Patterns and Practices teamet fra USA til Norge.</h1>
<br>
<p class="lead">Saga Kino, Oslo  den 17.november fra kl 08:30 til kl 15:30.</p>
<br>
Nå har vi anledningen til å tilbringe dagen med et par av de klokeste hodene i vårt «Patterns and Practices» team. Vi har gleden av å ha de på besøk i Oslo, og i den forbindelse vil vi invitere arkitekter og utviklere til et arrangement av de sjeldne.  
Registrering og kaffe starter kl 08:30 på Saga Kino, Sal 1.
<br>
<h3><a href="https://www.microsoftevents.com/profile/form/index.cfm?PKformID=0x7611982d5e&amp;wt.mc_id=AID554334_EML_4584795"><img style="padding-right:20px" src="https://msdnshared.blob.core.windows.net/media/2016/10/arrow.jpg">PÅMELDING – Patterns and Practices Architecture Summit i Oslo</h3></a>
<br>
       
<a href="pnp.azurewebsites.net/pages/about?wt.mc_id=AID554334_EML_4584795">Microsoft Patterns and Practices (P&amp;P)</a> teamet ble opprettet i 2000 for å møte behovet for veiledning til arkitekter og programutviklere. P&amp;P er et sett med mønstre og anbefalinger høstet fra erfaring, for å designe, utvikle, implementere og drive sunne programmerings vaner på Microsoft-plattformen.
 <br>
<h4 style="line-height: 140%"><strong><u>      Agenda for dagen: </u></strong>
•         Modern cloud fundamentals
•         Resiliency guidance
•         Azure reference architecture (IaaS, PaaS, Hybrid Networking, Identity)
•         Microservices architecture </h4>
 <br>
Lunsj serveres kl 12 og vi avslutter kl 15.30.
Hver sesjon inneholder mye dyp teknologisk og arkitektuell innsikt.
Om du har ansvar for software utvikling, bør du ikke gå glipp av dette eventet.
<br>
*Eventet er gratis og arrangeres i forbindelse med <a href="https://leap.microsoft.no/?wt.mc_id=AID554334_EML_4584795">LEAP 2017 konferansen</a>. P&amp;P vil også være en viktig brikke i LEAP 2017, så dersom dette er interessant, så har du absolutt mye å glede deg til.  
Mer informasjon om LEAP, <a href="https://leap.microsoft.no/?wt.mc_id=AID554334_EML_4584795">https://leap.microsoft.no/</a> 	 	 
<br>
<h5>Nyttig informasjon: </h5>
Adresse: Saga Kino Sal 1, Stortingsgata 28, 0161 Oslo
Henvendelser rettes til: Hanne Wulff på e-post <a href="mailto:hawulf@microsoft.com">hawulf@microsoft.com </a>eller telefon +47 913 17 273
<br>
<h3><a href="https://www.microsoftevents.com/profile/form/index.cfm?PKformID=0x7611982d5e&amp;wt.mc_id=AID554334_EML_4584795"><img style="padding-right:20px" src="https://msdnshared.blob.core.windows.net/media/2016/10/arrow.jpg">PÅMELDING – Patterns and Practices Architecture Summit i Oslo</h3></a>
<br>
]]></content:encoded>
    </item>
    <item>
      <title>Sharepoint Saturday 2016</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/sharepoint-saturday-2016</link>
      <pubDate>Mon, 17 Oct 2016 12:08:45 GMT</pubDate>
      <dc:creator><![CDATA[Matias Pihlquist]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=6015</guid>
      <description><![CDATA[&nbsp;

SharePoint Saturday-konferansen, SPS Oslo 2016 går av stabelen 22. oktober 2016, på...]]></description>
      <content:encoded><![CDATA[<img src="https://msdnshared.blob.core.windows.net/media/2016/10/SPS2016_Teaser.png" />

&nbsp;
<p class="lead">
<span style="font-family: Calibri">SharePoint Saturday-konferansen, SPS Oslo 2016 går av stabelen 22. oktober 2016, på Felix konferansesenter på Aker Brygge, Oslo.</span>
<br>


<p class="lead"><span style="font-family: Calibri">SPS Oslo er en non-profit konferanse av og for SharePoint/Office 365-miljøet i Norge, med gjester og foredragsholdere fra hele verden. De kjører 4 tracks med foredrag hele dagen; for utviklere, IT-proffer, bedrifter og sluttbrukere og avslutter dagen med raffle-premier og SharePint.</span>
<br>
<p class="lead">
<span style="font-family: Calibri">SPS Oslo er en glimrende arena for å møte og nettverke med dyktige eksperter, kunder, kollegaer og konkurrenter, å holde seg oppdatert på det siste innenfor SharePoint/Office 365 og ikke minst; bygge relasjoner med de mest engasjerte menneskene innenfor miljøet og bygge hverandre gode gjennom deling av erfaring og kunnskap.</span>
<br>

<p class="lead">
<span style="font-family: Calibri">Hvis din bedrift har et kult produkt dere gjerne ønsker å få ut i markedet så ta kontakt, de har plass til flere goodiebag-gaver (a 200) og raffle-premier! </span>

<span style="font-family: Calibri"> </span>
<p class="lead">
<span style="font-family: Calibri">Ta en titt på </span><a href="www.spsevents.org/city/Oslo/Oslo2016/home"><span style="color: #0563c1;font-family: Calibri">SPS Oslo 2016</span></a><span style="font-family: Calibri"> (her finner dere også link til fjorårets konferanse i bilder og presentasjoner), og meld dere på </span><a href="https://www.eventbrite.com/e/sharepoint-saturday-oslo-2016-tickets-25911062686"><span style="color: #0563c1;font-family: Calibri">her</span></a><span style="font-family: Calibri">, 26 gratisplasser igjen!</span>
]]></content:encoded>
    </item>
    <item>
      <title>Er du et programvarehus? Dette gjør vi i Microsoft for dere!</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/er-du-et-programvarehus-dette-gjor-vi-i-microsoft-for-dere</link>
      <pubDate>Mon, 19 Sep 2016 12:52:19 GMT</pubDate>
      <dc:creator><![CDATA[Matias Pihlquist]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=6005</guid>
      <description><![CDATA[Hei programvarehus!

&nbsp;

Som et programvarehus (eller ISV) har du tilgang en rekke ressurser...]]></description>
      <content:encoded><![CDATA[<strong>Hei programvarehus!</strong>

&nbsp;

Som et programvarehus (eller ISV) har du tilgang en rekke ressurser fra oss i Microsoft. Alt fra små startups til store selskaper støtter seg på vår teknologi og ekspertise og vi har fordelene de trenger. Vi kan snakke hele dagen om hva <em>VI</em> kan tilby, men…

&nbsp;

… HVA ER EGENTLIG VIKTIG FOR DEG?

&nbsp;

-         Er det å skaffe nye kunder?

-         Er det å kunne levere programvaren deres hurtigere og mer smidig?

-         Er det å kunne senke kostnader?

-         Kanskje dere ser etter nye, spennende teknologier?

-         Eller skal dere i gang med noen nye prosjekter?

&nbsp;

<strong>Uansett så er vi i Microsoft Norge her for deg</strong>. Dette er noen av fordelene du kan nyte godt av i løpet av høsten og vinteren:

&nbsp;

<strong>Business</strong>

<strong>ISV Partner Kick-off</strong> den 20. September.

Lær hvordan du kan vokse med Microsoft og hva slags trender som styrer markedet. Vi går gjennom vårt Go-to-market program og mingler med selgere internt i Microsoft som kanskje ønsker å tilby <strong>din</strong> løsning til sine kunder.

Påmelding her: <a href="https://aka.ms/isvkick-off">https://aka.ms/isvkick-off</a>

&nbsp;

<strong>Business Model Canvas Workshop</strong> utover høsten.

Skyen bringer med seg mange muligheter, men også potensielle trusler. Hvordan adresserer du disse mulighetene og truslene og hvordan ser din bedrift ut om 2 og 5 år? Vi stiller med workshop ledere fra Silicon Valley med en ordentlig ”start up” mindset.

<u>Husk</u>: Denne øvelsen passer like godt for start ups som store enterprises.

&nbsp;

Hvis du ønsker å få innsikt og utfordre måten du gjør business på, så er dette dagen for deg. Meld din interesse direkte til Elias på <a href="mailto:v-elstan@microsoft.com">v-elstan@microsoft.com</a>.

<strong> </strong>

<strong>Microsoft Partner Network (MPN)</strong>

Det finnes så mange gode ressurser i MPN at det er vanskelig å vite hvor man skal starte. Tilbudet strekker seg fra Azure credits og gratis programvare til tekniske samtaler og Azure kodehjelp. Vi på det lokale Microsoft kontoret sitter på ekspertise rundt hva slags kompetanseområde som passer ditt programvarehus best. Ta kontakt, så finner vi det ut sammen. Er du allerede partner, så ser vi på hvordan du bruker fordelene dine best mulig.

&nbsp;

<strong>Møt oss</strong>

Sett opp et møte med noen av våre forretningsutviklere og se hvordan du kan vokse med Microsoft og hva vi gjør for å styrke våre partnere. Microsoft har endret seg mye som organisasjon over de siste årene, kjenner du til hva slags muligheter som finnes?

&nbsp;

&nbsp;

<strong>Teknisk</strong>

<strong>Våre workshops</strong>

Under finner du en beskrivelse av temaene på workshopene vi kjører i høst/vinter fra våre kontorer på Lysaker Torg. De blir holdt i egne workshoprom og det er våre tekniske evangelister som holder de. Meld din interesse til Elias på <a href="mailto:v-elstan@microsoft.com">v-elstan@microsoft.com</a>.

&nbsp;

&nbsp;

&nbsp;
<table>
<tbody>
<tr>
<td width="108"><strong>M</strong><strong>å</strong><strong>ned</strong></td>
<td width="219"><strong>Tema</strong></td>
</tr>
<tr>
<td width="108">20. september</td>
<td width="219">Power BI</td>
</tr>
<tr>
<td width="108">21. september</td>
<td width="219">Identity and access management</td>
</tr>
<tr>
<td width="108">22. september</td>
<td width="219">Power BI</td>
</tr>
<tr>
<td width="108">4. oktober</td>
<td width="219">Azure General</td>
</tr>
<tr>
<td width="108">5. oktober</td>
<td width="219">Azure General</td>
</tr>
<tr>
<td width="108">8. november</td>
<td width="219">Microservices</td>
</tr>
<tr>
<td width="108">9. november</td>
<td width="219">Microservices</td>
</tr>
<tr>
<td width="108">10. november</td>
<td width="219">Power BI</td>
</tr>
<tr>
<td width="108">11. november</td>
<td width="219">IoT – IotT Hub &amp; stream analytics</td>
</tr>
<tr>
<td width="108">29. november</td>
<td width="219">Machine Learning</td>
</tr>
<tr>
<td width="108">30. november</td>
<td width="219">Machine Learning</td>
</tr>
<tr>
<td width="108">1.desember</td>
<td width="219">Azure General</td>
</tr>
</tbody>
</table>
&nbsp;

<strong>Dette er beskrivelse av workshopene:</strong>

&nbsp;

<strong>Power BI</strong>

Lær hvordan deres organisasjon kan benytte de ulike aspektene av Power BI. Workshopen tar for seg følgende:
<ul>
 	<li>De ulike datakildene og mulighetene</li>
 	<li>Hvordan lage rapporter og dashboards</li>
 	<li>Ulike typer data-oppdatering</li>
 	<li>Hvordan lage custom visualiseringer</li>
 	<li>Hvordan inkludere Power BI i egne løsninger sømløst (Power BI Embedded)</li>
 	<li>Praktiske oppgaver knyttet til temaene</li>
</ul>
&nbsp;

<strong>Identity and access management</strong>

Innlogging av brukere, bruker håndtering og tilgangskontroll for brukere er et stort tema med mange valg og fremgangsmåter. Workshopen tar for seg følgende
<ul>
 	<li>OAUTH2</li>
 	<li>OpenID</li>
 	<li>Azure Active Directory</li>
 	<li>Praktiske oppgaver knyttet til temaene</li>
</ul>
&nbsp;

<strong>Azure General</strong>

Ønsker du å komme i gang med Azure og trenger å forstå de grunnleggende byggeklossene. Workshopen tar for seg følgende:
<ul>
 	<li>Portalen</li>
 	<li>Web Apps</li>
 	<li>Storage</li>
 	<li>Databaser - MSSQL, DocumentDB</li>
 	<li>Kort om Azure Resource Manager</li>
 	<li>Praktiske oppgaver knyttet til temaene</li>
</ul>
&nbsp;

<strong>MicroServices</strong>

Det er mye buzz rundt konseptet MicroServices, hva betyr det, hvordan skal man angripe dette, hva finnes i Azure for å gjøre dette. Workshopen tar for seg følgende:
<ul>
 	<li>Grunnprinsipper; SOLID, SoC, DDD, CQRS</li>
 	<li>Docker</li>
 	<li>Service Fabric</li>
 	<li>Praktiske øvelser knyttet til temaene</li>
</ul>
&nbsp;

<strong>IoT</strong>

Internet of Things er mer enn bare hype, dette er et voksende felt og man trenger løsninger som er i stand til å håndtere datamengden og ikke minst håndtering av enheter.
<ul>
 	<li>IoT Hub</li>
 	<li>Device Management</li>
 	<li>Stream Analytics</li>
 	<li>Praktiske øvelser knyttet til temaene</li>
</ul>
&nbsp;

<strong>Machine Learning</strong>
<ul>
 	<li>Hva er maskinlæring og hvem bruker det</li>
 	<li>Ulike typer algoritmer</li>
 	<li>Ulike type AML moduler</li>
 	<li>Hvordan foreta seg datarensing</li>
 	<li>Hvordan lage en maskinlæringsmodell</li>
 	<li>Hvordan eksponere et AML Web API</li>
 	<li>zzPraktiske øvelser knyttet til temaene</li>
</ul>
&nbsp;

<strong>LEAP – Lead Enterprise Architect Program</strong>

Dette er programmet for software arkitekten og utvikleren som virkelig ønsker å være i forkant av sine konkurrenter og lære om det aller nyeste fra Microsoft. De beste speakerne og de mest relevante temaene under <strong>5</strong> dager i Redmond og <strong>5</strong> Masterclass sesjoner i Oslo, programmet starter 30. januar 2017.

&nbsp;

Les mer om speakere, pris og agenda her:

<a href="https://leap.microsoft.no/">https://leap.microsoft.no</a>

&nbsp;

<strong>Office Hours:</strong>

Sett opp et telefonmøte med en av våre tekniske evangelister og brainstorm rundt nye ideer og teknologier. Elias vil være rett mann til å sette opp disse samtalene.

&nbsp;

Hilsen ISV-teamet i Microsoft Norge

<em>Elias Standal: v-elstan@microsoft.com</em>

<em>Arif Shafique: arifsh@microsoft.com</em>

<em>Einar Ingebrigtsen: einari@microsoft.com</em>

<em>Anthony Avalos: a-anaval@microsoft.com</em>

<em>Anette Holtedahl: anette.holtedahl@microsoft.com</em>

<em>Hanne Wulff: hawulf@microsoft.com</em>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server Hands-on Online Performance Tuning</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/sql-server-hands-on-online-performance-tuning</link>
      <pubDate>Thu, 15 Sep 2016 07:34:16 GMT</pubDate>
      <dc:creator><![CDATA[Matias Pihlquist]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=5995</guid>
      <description><![CDATA[Nytt på MSDN Channel 9: SQL Server Hands-on Online Performance Tuning Tutorial

Denne nye hands-on...]]></description>
      <content:encoded><![CDATA[<p class="lead"><a href="https://channel9.msdn.com/Series/SQL-Workshops">Nytt på MSDN Channel 9: SQL Server Hands-on Online Performance Tuning Tutorial</a></p>

Denne nye hands-on video serien gir SQL Server DBAs, utviklere og arkitekter nyttig informasjon om hvordan tune Microsoft SQL Server. Videone er demo-tunge og resultatet av faktisk ytelse tuning for reelle kundeproblemer. I tillegg får du mulighet å trene på eksemplene live mens du ser klippene med hjelp av <a href="www.sqltest.org/">SQL Test Tool</a> som simulerer diverse flaskhalser. Målet med denne nye læringsmetoden er å styrke SQL Server brukere til at realisere ytelsepotensialet i Microsoft SQL Server uten å øke den totale kostneden (TCO).
&nbsp;

<u><strong>Serien er på engelsk og noen av temaene som dekkes er:</u></strong>
•              Why does SQL Server choose <a href="https://channel9.msdn.com/Series/SQL-Workshops/Seek-or-Scan-Cost-Based-Optimizer-in-SQL-Server">Scan instead of Seek?</a> Also check out the cost based optimizer and see for yourself: It sometimes chooses seek over scan even though the seek is a bit more expensive.
•              Did you know, there can be <a href="https://channel9.msdn.com/Series/SQL-Workshops/AlwaysOn-Availability-Groups-Synchronous-Replica-Readable-Secondary-Data-Access-Latency">Data Access Latency with AlwaysOn Availability Groups</a>, even with Synchronous-Commit Mode Replica Readable Secondary? 
•              How about <a href="https://channel9.msdn.com/Series/SQL-Workshops/Resource-Governor-in-SQL-Server-Workload-Throttling">Resource Governor</a>, are you aware that Resource Governor CPU Throttling works for mixed workload only since SQL Server 2016?
•              Did you know SQL Server Optimizer doesn't cost CPU overhead related to expanding compressed data? Learn why you should never compress certain tables by checking out the hands-on video <a href="https://channel9.msdn.com/Series/SQL-Workshops/Data-Compression-in-SQL-Server-Pros-and-Cons">Data Compression - Pros and Cons.</a>
•              Don't count on the wait time, SQL Server will reset the <a href="https://channel9.msdn.com/Series/SQL-Workshops/Understanding-ASYNCNETWORKIO-Waits-in-SQL-Server">ASYNC_NETWORK_IO</a> wait time after a threshold. 
•              Temporary table or table variable? A new twist: After addressing <a href="https://channel9.msdn.com/Series/SQL-Workshops/Tempdb-Allocation-Contention-in-SQL-Server">Tempdb Allocation Contention</a>, you will most probably encounter <a href="https://channel9.msdn.com/Series/SQL-Workshops/Tempdb-Metadata-Contention-in-SQL-Server-Table-Variable-Vs-Temporary-Table">Tempdb Metadata Contention</a> when you are using temporary tables (not when you are using table variables due to <a href="https://channel9.msdn.com/Series/SQL-Workshops/Temp-Table-Caching-in-SQL-Server">Temp Table Caching</a>). 
•              Compare <a href="https://channel9.msdn.com/Series/SQL-Workshops/In-Memory-OLTP-Memory-Optimized-Table-Variables-Vs-Disk-Based-Table-Variable-in-SQL-Server">In-Memory OLTP Memory Optimized Table Variables Vs Disk Based Table Variable</a> with just a few clicks.
•              Check out when to use <a href="https://channel9.msdn.com/Series/SQL-Workshops/Filtered-Statistics-in-SQL-Server">Filtered Statistics</a> and when not to set configuration parameter <a href="https://channel9.msdn.com/Series/SQL-Workshops/Optimize-for-Ad-Hoc-Workloads-SQL-Server-Configuration-Parameter">optimize for ad hoc workloads</a>!
•              Concurrent updates and selects from adjacent rows on the same page from many sessions can lead to <a href="https://channel9.msdn.com/Series/SQL-Workshops/PAGELATCH-Waits-with-Update-Statements-in-SQL-Server-PAGELATCHEX-and-PAGELATCHSH">PAGELATCH_EX and PAGELATCH_SH contention</a>, practice the solution!


]]></content:encoded>
    </item>
    <item>
      <title> BotFramework in NodeJS</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/botframework-in-nodejs</link>
      <pubDate>Tue, 13 Sep 2016 10:49:49 GMT</pubDate>
      <dc:creator><![CDATA[Einar Ingebrigtsen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=5985</guid>
      <description><![CDATA[Når man lager software i dag tenker man ofte tradisjonelt at man skal tilby hele ende til ende....]]></description>
      <content:encoded><![CDATA[<p>Når man lager software i dag tenker man ofte tradisjonelt at man skal tilby hele ende til ende. Dette er selvfølgelig viktig for store deler av løsningen man lager, men det finnes også muligheter for å dra ut deler inn i andre applikasjoner. Her kommer Bot Framework inn i bildet. Bot framework tilbyr en måte å enkelt lage roboter man kan prate med og utføre handlinger i et system. Vi kjenner i dag en del slike roboter på markedet som Cortana, Siri, Alexa og flere. Selvfølgelig kan man i en del løsninger også se for seg at det å tilby en dedikert bot del. Gode eksempler på dette er jo gjerne kundeservice chatter som gjerne sitter på siden eller i en løsning. Men også det å benytte seg av naturlig språk for at brukeren skal kunne utføre handlinger uten å måtte vite hvordan man navigerer. Gode eksempler på dette er måten man kan lett lage sine egne adhoc rapporter i <a href="https://powerbi.microsoft.com/en-us/blog/natural-language-capability-of-power-bi/">Power BI</a>, som man også ser eksempler på i roboter som nevnt tidligere også. </p><p>Denne lille blogposten viser hvordan man lett kan komme i gang med Bot framework i NodeJS. Rammeverket har også en <a href="https://docs.botframework.com/en-us/downloads/">.NET SDK</a> i tillegg til Node, men har også et REST API som man kan benytte. </p><p>I tillegg til <a href="https://docs.botframework.com/en-us/downloads/">SDKen</a> har man muligheten til å registrere boten sin inn i <a href="https://dev.botframework.com/bots">Bot dashboardet</a> og kunne da knytte Boten man lager inn i 3. parts løsninger som Skype, Slack og andre. Man kan også knytte opp slik at man kan sende SMS til den. Man skriver Boten en gang og får alle disse mulighetene. </p><p>Hva om man da kunne faktisk bare fra sin Skype eller Slack kalle på en bot til din løsning og få hjelp eller utføre business verdi direkte. F.eks. kunne man tenke seg å lage en Bot for en nettbutikk hvor man kunne snakke seg frem til det å ta i mot en bestilling. Husk at også text er bare en måtene å gi input på - man kan jo benytte seg av Speech to Text for å kunne gjøre det enda mer naturlig.</p><h1>Komme i gang</h1><p>For å komme i gang trenger vi et prosjekt. Hvis du ikke allerede har et test prosjekt for dette, så lag en ny folder som du f.eks. kaller “NodeBots” og kjør <b><i>npm init </i></b><i></i>i folderen:</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/1_npm_init.png" title="" style="max-height: none;max-width: 100%"><br></p><p>Hvis du ikke liker å ha <i><b>index.js</b></i> som din app fil, så kan du velge å endre package.json til å ha den filen du ønsker som oppstart (f.eks. <i><b>app.js</b></i>, <i><b>main.js</b></i>).</p><p>Vi trenger en pakke som heter <i><b>botbuilder</b></i> for å komme i gang.</p><p><img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/npm_install_botbuilder.png" alt="" width="402" height="18" style="max-height: none;max-width: 100%"></p><p>Deretter trenger vi den faktisk oppstarts filen, i mitt tilfelle valgte jeg å lage en som heter <b><i>main.js</i></b>. </p><p><img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/initialbot.png" alt="" width="437" height="168" style="max-height: none;max-width: 100%"></p><p>I denne trenger vi å hente inn selve <i><b>botbuilder</b></i> pakken som vi la til. Og deretter lage en connector som lytter til input. Alt for en bot starter med en connector - det er denne som gir gir all input inn til bot rammeverket. Vi starter helt enkelt med en <i><b>ConsoleConnector</b></i>. Deretter lager vi en <b><i>UniversalBot</i></b> og gir den connectoren som vil gi den inputen. Det siste vi gjør er å sette opp en dialog. Alt i Bot rammeverket handler om dialoger. En dialog inneholder noe som kan minne om routes i en vanlig Web app, og man kan fint se på det slik. Det vi gjør over er å legge til en “default” route, det er her all tørrpraten som ikke er spesifik havner :).</p><p>Kjører man dette og sier hello, så vil den svare:<br><img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/initial_bot_result.png" alt="" width="134" height="68" style="max-height: none;max-width: 100%"><br></p><p>Boter kan ha selvfølgelig langt mer avanserte dialoger, og man kan lage dialoger som har ulike states. F.eks. kunne man gitt den en array av funksjoner fremfor kun en bestemt funksjon som da ville resultert i at man gikk fra den ene til den andre, hvis man har en bestemt flyt. </p><p>La oss se litt nærmere på det og det å lage en håndtering spesifikt for når det er første gang man prater med Boten.</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/1_first_run_middleware.png" title="" style="max-height: none;max-width: 100%"></p><p>Her legger vi til et Middleware som heter firstRun. Dette sørger for å vite om det er første gang man prater med den eller ikke og man spesifiserer hvilken dialog dette skal koples til. Selve <i><b>firstRun</b></i> dialogen er en array av tilstander. Den første spør vi om hva personen som kopler til heter, deretter går vi til neste tilstand og lagrer responsen fra brukeren og sier noe tilbake.</p><p>Hvis vi nå endrer “tørprat” dialogen vår, så har vi litt mer kontekst å vise til:</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/change_dialog.png" title="" width="660" height="59" style="max-height: none;max-width: 100%"></p><p>Vi kan også spesifisere enkelt hva det er som avslutter en samtale.</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/end_conversation.png" title="" width="496" height="24" style="max-height: none;max-width: 100%"></p><p>Ved å kjøre dette får vi en litt mer interessant flyt.</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/improved_result.png" title="" style="max-height: none;max-width: 100%"></p><h1>Klar for oppkopling</h1><p>For å kunne benytte løsningen i en 3. parts løsning trenger vi å eksponere ut Boten som et REST API. </p><p>Start med å legge til en pakke som heter <b><i>restify</i></b>.</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/npm_install_restify.png" title="" width="340" height="20" style="max-height: none;max-width: 100%"></p><p>Deretter følgende:</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/1_restify_server.png" title=" " style="max-height: none;max-width: 100%"><br></p><p>Dette setter opp en rest server og en ChatConnector som lytter via et API på <i><b>/api/messages</b></i> routen. Det finnes en emulator for å teste Boten og dens REST API uten å måtte publisere noe steder. For en Mac/Linux console utgave, last ned <a href="https://docs.botframework.com/en-us/tools/bot-framework-emulator/#mac-and-linux-support-using-command-line-emulator">denne</a>. Hvis du kjører Windows, vil du finne den <a href="https://download.botframework.com/bf-v3/tools/emulator/publish.htm">her</a>. Ved å bare kjøre løsningen og deretter emulatoren får vi følgende opplevelse.</p><p><img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/botemulator_result.png" alt="" width="1136" height="526" style="max-height: none;max-width: 100%"><br></p><p>For å ta dette et skritt videre og faktisk få den ut og publisert slik at vi kan benytte denne via Skype eller andre tjenester, kan vi gjøre det fra lokalt ved å f.eks. benytte en sikker tunnel løsning som <a href="https://ngrok.com">NGROK</a>. Denne kan man starte ved å gjøre følgende:</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/ngrok.png" title="" style="max-height: none;max-width: 100%"><br></p><p>Merk deg porten; 3978 som vi også har i vår kode. Dette er den private porten. </p><p>Dette vil resultere i noe lignende:</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/ngrok_running.png" title="" style="max-height: none;max-width: 100%"></p><p>Da kan vi gå tilbake og <a href="https://dev.botframework.com/bots/new">registrere vår Bot</a>.</p><p><img style="margin-top: 5px;margin-right: 5px;margin-bottom: 5px;max-height: none;max-width: 100%" src="https://msdnshared.blob.core.windows.net/media/2016/09/1_create_bot.png" title=""><br></p><p>Legg merke til <i><b>Message endpoint</b></i>. Her putter jeg inn HTTPS adressen som er laget via ngrok, og legger til routen til selve message endepunktet på Boten. Trykk deretter “<i><b>Create Microsoft App ID and password</b></i>”. Vi trenger en nøkkel som sikrer oss at ikke hvem som helst kan kople til vår Bot. </p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/generate_app_id.png" title="" width="852" height="203" style="max-height: none;max-width: 100%"></p><p>Ta vare på App ID som blir generert etter at du har lagt inn en <i><b>App Name</b></i> og trykket på Generate. Trykk deretter på “<b><i>Generate a password to continue</i></b>".</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/new_password.png" title="" width="757" height="270" style="max-height: none;max-width: 100%"></p><p>Dette passordet må du også lagre, vi trenger det inn i koden vår. Fullfør ved å trykke <i><b>Ok</b></i> og deretter “<i><b>Finish and go back to Bot Framework</b></i>”.</p><p>Endre koden som instansierer <i><b>ChatConnector</b></i> til følgende (appId og appPassword er da de vi har akkurat generert):</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/app_password_config.png" title="" style="max-height: none;max-width: 100%"></p><p>Vi er nå klare for å teste Boten vår på hovedsiden for Boten. Trykk på “<i><b>Test</b></i>” knappen nede til venstre. Denne skal si “Accepted” om alt er fint.</p><p><img src="https://msdnshared.blob.core.windows.net/media/2016/09/1_bot_details.png" title="" width="1004" height="713" style="max-height: none;max-width: 100%"></p><p>Nå kan man prøve å kople opp Boten til ulike kanaler, eller benytte Web chat kanalen om man vil. Denne posten går ikke i detalj på hvordan dette gjøres. Men det finnes en gjennomgang for å gjøre det for f.eks. Skype <a href="https://docs.botframework.com/en-us/skype/getting-started/#navtitle">her</a>.</p><p>Utover det å kunne bare sende text tilbake, kan man også sende tilbake mer avanserte meldinger som inneholder både linker, bilder og handlinger som brukeren kan utføre. Disse handlingene vil typisk i Skype og Slack være knapper som kan trykkes på. </p><h1>Cognitive Services</h1><p>Dette er vel og bra. Men det er jo egentlig strengt tatt ikke noe man ikke kunne laget uten å dra inn noe som helst bibliotek omtrent. Ihvertfall for selve Bot logikken. Bot frameworket støtter knytning til <a href="https://azure.microsoft.com/en-in/services/cognitive-services/">Azures Cognitive Services</a> og da spesielt knytningen til <a href="https://www.microsoft.com/cognitive-services/en-us/language-understanding-intelligent-service-luis">LUIS - Language Understanding Intelligent Service</a>. Det er egentlig her det begynner å bli veldig interessant, og dessverre her denne posten stopper. Det finnes allerede godt med materiell rundt dette <a href="https://docs.botframework.com/en-us/bot-intelligence/getting-started/#navtitle">her</a>.</p><p><br></p><h1>Konklusjon</h1><p>Det er kanskje ikke like innlysende å se hva slags nytteverdi Bots har. Men ser man på muligheten for å slippe å benytte tradisjonelle inputs som mus og tastatur og også det å ikke nødvendigvis få resultatet frem på en skjerm, så begynner Bots å spille en større rolle. Ikke minst åpner dette også for en interaksjon med løsninger som inkluderer brukere som ikke kan benytte seg av tradisjonell inputs og skjerm, som f.eks. blinde. Ved bruk av naturlig språk forståelsestjenester som LUIS, muliggjør man dette på en relativt enkel måte.</p><p><br></p>]]></content:encoded>
    </item>
    <item>
      <title>SignalR på .NET Core</title>
      <link>https://docs.microsoft.com/archive/blogs/dpenorway/signalr-pa-net-core</link>
      <pubDate>Mon, 05 Sep 2016 10:07:14 GMT</pubDate>
      <dc:creator><![CDATA[Einar Ingebrigtsen]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/dpenorway/?p=5835</guid>
      <description><![CDATA[SignalR er en abstraksjon som gjør det mulig å enkelt lage løsninger som er koplet til en server med...]]></description>
      <content:encoded><![CDATA[SignalR er en abstraksjon som gjør det mulig å enkelt lage løsninger som er koplet til en server med en fast forbindelse og kunne deretter få meldinger fra serveren om noe oppstår. Inkludert i abstraksjonen finnes det en server komponent og klient komponenter for blant annet Web, .NET klienter og mobile klienter som iOS, Android, Xamarin og mer. Klientene er laget på en måte som gjør at de automatisk finner ut hvilken transport-teknikk som fungerer best. Dette er blant annet WebSockets, long-polling HTTP, EventSource m.fl. Når man åpner en forbindelse fra klienten vil biblioteket finne den transporten som er best egnet fra et klient og server ståsted. Alt dette er sømløst gjemt bort.

SignalR har allerede eksistert i noen år, men er nå i en omskrivingsfase hvor den blir ytterligere rafinert og forbedret og ikke minst støtter .NET Core og vil med dette være også få cross-platform støtte på Linux og Mac i tillegg til Windows. Når .NET Core ble releaset i sommer, var ikke SignalR klart - dette er noe som kommer til release senere. Har man derfor eksisterende løsninger som benytter seg av dette og man ønsker å ta i bruk SignalR har dette frem til ganske nylig vært umulig - med mindre man ønsket å bare støtte Windows. Dette på grunn av at tidligere versjoner av SignalR på .NET Core hadde en avhengighet til Windows. I den tidlige utgaven som nå er tilgjengelig er dette blitt fikset og den kjører fint på kryss av alle plattformer.

DotNet new

La oss starte helt fra bunn, lag en folder som heter SignalR (eller hva du vil egentlig :)) og åpne opp en commandline og naviger deg til folderen og skriv inn:
<p class=""><img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/dotnet_new.png" alt="" style="max-height: none;max-width: 100%" />
Dette forutsetter at du har installert <a href="dot.net">DotNet Core</a>.</p>
Åpne din favoritteditor, f.eks. Visual Studio Code (code .).

Du skal nå ha et prosjekt bestående av en <i>project.json</i> fil og en <i>Program.cs</i> fil. For å få tilgang til de tidlige utgavene av SignalR må vi legge til en NuGet feed. NuGet støtter å ha flere lokasjoner hvor den kan søke etter pakker. Dette kan være veldig praktisk hvis man ønsker å ta i bruk continuous integration versjoner av biblioteker eller feeds man eksponerer for interne biblioteker. I samme katalog som de andre filene, legg til en fil som heter <i>NuGet.Config og legg til følgende.</i>
<!--?xml version="1.0" encoding="utf-8"?--><img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/NuGet.png" alt="" style="max-height: none;max-width: 100%" />
Dette gir oss tilgang på ASP.NET sine CI bygg.

Nå kan vi legge til de nødvendige pakkene. Åpne <i>project.json</i> filen. I dependencies under Microsoft.NETCore.App avhengigheten, legger man til følgende:

<img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/dependencies.png" alt="" width="357" height="86" style="max-height: none;max-width: 100%" />

For å få disse pakkene må man kjøre en “dotnet restore”. Har man Visual Studio Code

Det vi drar inn her er muligheten til å føre loggingen til console, kestrel serveren, muligheten for statiske filer, SignalR server siden og sist men ikke minst støtte for WebSockets.

I .NET Core er alle applikasjoner i utgangspunktet en Console applikasjon. Og Program.cs som kommer ut fra “dotnet new” inneholder da selve “Main”. Vi lager en enkel self-hosted løsning ved å bygge en host via WebHostBuilder:

<img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/main.png" alt="" style="max-height: none;max-width: 100%" />

I koden ser man <i>.UserStartup()</i>, denne klassen må vi lage. For enkelhetens skyld kan man plassere den rett over selve <i>Main</i> metoden. Jeg opplever på macOS ihvertfall, at det er problemer med den automatiske konvensjonen som sier at <i>/wwwroot</i> er rotfolderen for statisk innhold, derfor har jeg lagt inn <i>.UseContentRoot()</i>.

<a href="https://msdnshared.blob.core.windows.net/media/2016/09/startup1.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/09/startup1.png" alt="startup" width="546" height="467" class="alignnone size-full wp-image-5836" /></a>

Det Startup klassen gjør er å konfigurere opp alle tjenestene for SignalR slik at den klarer å finne alle avhengighetene til alle implementasjoner under laging av objekter internt. Her har jeg også valgt å slå på detaljerte feil rapporter som vil komme i konsollet. I tillegg i <i>Configure()</i> metoden legger jeg da også til Console som en logger output. Vi ønsker en statisk fil, vår HTML fil - dette får vi støtte for ved å legge til et middleware for håndtering av dette; <i>.UseStaticFiles()</i>. Tilsvarende utfordring i forhold til default oppførsel med <i>/wwwroot</i>, setter jeg derfor opp en FileProvider som håndterer dette. Sist er da .UseSignalR() som setter opp selve SignalR og deriblant en route som heter <i>/signalr/js</i> som gir blant annet proxy genererte utgaver av C# kode vi ønsker å kalle fra JavaScript i browseren. Det finnes et CLI verktøy for å gjøre dette, hvis man ikke ønsker å gjøre det runtime også.

<em>EDIT: Legg merke til app.UseWebSockets(), dette gjør at SignalR kan benytte seg av WebSockets som en transport.</em>

Det siste man da trenger er følgende <i>using</i> statements på toppen:

<img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/usings.png" alt="" style="max-height: none;max-width: 100%" />
<h1>The Hub</h1>
SignalR har 2 måter å kople en klient til; <i>PersistentConnection</i> og <i>Hub</i>. I denne posten hopper jeg over <i>PersistentConnection</i>. Jeg personlig syns <i>Hub</i> er en mer interessant abstraksjon i forhold til det man som regel ønsker å oppnå; APIer eksponert til klient.

La oss lage en ny C# fil som heter <i>ChatHub</i>:

<img title="" src="https://msdnshared.blob.core.windows.net/media/2016/09/ChatHub.png" alt="" style="max-height: none;max-width: 100%" />

Denne filen er veldig enkel. Den eksponerer en metode som kan benyttes direkte fra klienten. Implementasjonen gjør en enkel broadcast til alle klienter som er koplet til og videresender meldingen som kommer inn.

Det vi nå trenger er en klient-del. Lag en folder i prosjektet som heter <i>wwwroot</i>, her skal vi ha en fil som heter <i>index.html</i>. Den skal se ut som følger:

<img src="https://msdnshared.blob.core.windows.net/media/2016/09/1_index.png" title="" style="max-height: none;max-width: 100%" />

For all enkelhetens skyld har jeg valgt å ikke dra inn noe rammeverk eller biblioteker som Angular, Aurelia, React e.l., ettersom dette ikke er målet her. jQuery er med fordi foreløpig har Web-klient støtten i SignalR en avhengighet til jQuery. Dette er under omskriving og vil falle bort i fremtiden. Siden består av et textfelt for meldinger, en input for skriving av meldinger og en knapp. På jQuery objektet finner vi property som heter <i>connection</i>, dette er start-punktet for alt SignalR. Siden vi har med en script referanse <i>/signalr/js</i>, får vi også en klient representant av ChatHub som vi lagde i C#. Denne befinner seg da på <i>connection</i> objektet. En hub på klienten har 2 ting man kan jobbe med; <i>client</i> og <i>server</i>. På <i>client</i> objektet setter man opp alle funksjoner som server siden kaller på, mens på <i>server</i> objektet ligger alle metodene fra server siden som da er proxy generert. Løsningen over sender enkelt ned til serveren en melding når brukeren trykker på <b>Send</b> knappen og får en callback på “messageReceived” når serveren kaller på denne.

Nå kan vi kjøre opp løsningen ved enten å gjøre en “<i>dotnet run</i>” i CLI i folderen til prosjektet, eller sette opp VSCode til å kjøre via F5 - eller om du er i vanlig Visual Studio og alt er satt opp for å kjøre via F5. Web serveren er eksponert default på port 5000, så da er det bare å åpne nettleseren og gå til <i>localhost:5000/index.html</i>.

Alt skal nå fungere - åpne gjerne to nettlesere og se at den kommuniserer på tvers.

<img style="margin-top: 5px;margin-right: 5px;margin-bottom: 5px;max-height: none;max-width: 100%" src="https://msdnshared.blob.core.windows.net/media/2016/09/1_insta.gif" title="" />
<h1>Konklusjon</h1>
Dette er et veldig enkelt eksempel, og kanskje litt vel typisk eksempel for denne typen teknologi. Men det betyr ikke at SignalR kan brukes til mange andre ting. SignalR er svært robust og håndterer store mengder tilkoplinger. Det har også blitt bygget støtte for fler-server scenario med bruk av message backplanes. Her støttes det en hel del løsninger med blant annet Redis o.l. En av de viktigste grunnene til å benytte seg av SignalR og lignende teknologier er å gi brukerne en bedre opplevelse. Når noe skjer på serveren har man muligheten til å varsle brukerne som er koplet til. Dette kan være data som er relevant for den ene brukeren til en bestemt gruppe eller til alle som er koplet til, dette er ting man selv filtrerer via <i>Clients</i> objektet på en Hub f.eks.

Jeg har skrevet to bøker om SignalR, den ene tar for seg en Chat applikasjon og eksponerer de grunnleggende mulighetene. <a href="https://www.amazon.com/Real-Time-Application-Development-Einar-Ingebrigtsen/dp/1785285459/ref=sr_1_1?ie=UTF8&amp;qid=1472801975&amp;sr=8-1&amp;keywords=einar+ingebrigtsen">“Real-Time Application Development”</a> kan være en grei bok for å komme i gang. Mens den andre boken jeg har skrevet er mer for å gi innblikk i ulike applikasjoner man kan benytte og bruker SignalR sammen med andre rammeverk også; <b><a href="https://www.amazon.com/SignalR-Blueprints-Einar-Ingebrigtsen/dp/1783983124/ref=sr_1_3?ie=UTF8&amp;qid=1472801975&amp;sr=8-3&amp;keywords=einar+ingebrigtsen">“SignalR Blueprints</a><span style="color: #43c4d9"><u>”</u></span>.</b>

&nbsp;]]></content:encoded>
    </item>
  </channel>
</rss>