Windows Phone 8.1 Universal App Push Notifications (WNS) – Part 1

In this posts I will help you out to create a full blown Windows Notification Service (WNS) push notification environment for Universal Windows Phone 8.1 apps. After reading this series and stealing the code (which is not a crime in my opinion 🙂 ) you are able to handle push notifications for your Windows Phone apps. There is some documentation about this subject on the www, but using that information forces you to fit some peaces together to get a complete solution. Well, in this post I did that for you. So enjoy.

After reading this tutorial you are able to handle push notifications for your Windows Phone apps.

The way of sending push notifications to your Windows Phone device is changing over time. Each upgrade of the Mobile software, has its impact on the way push notifications must be handled. To make everything more difficult, there is not one but there are two ways to send push notifications to a Windows device. However for universal apps, you should stick to Windows Notification Service or in short WNS. But it took me some time to figure that out.

Zonbu – Deel II – Drivers en oplossen van problemen

In mijn vorige post had ik het over de Zonbu. Onlangs kwam ik het probleem tegen dat Windows XP op de Zonbu, als er geen monitor aan wordt gehangen, de monitor poort uitschakeld. Wat daar de oorzaak van is, is onduidelijk. Opnieuw opstarten helpt en de monitor reageert helemaal niet meer, de oplossing is na opnieuw opstarten een BIOS reset uitvoeren. Op deze pagina is te lezen hoe een BIOS reset kan worden uitgevoerd (zonder beeldscherm). Daarna doet het beeldscherm het weer.

Voor eigenaars van een Zonbu met WIFI (WLAN) kunnen hier de drivers worden gedownload. Het is aan te raden ook de VIA Falcon IDE driver te installeren. Laatstgenoemde zorgt ervoor dat UDMA problemen met diverse flashkaartjes niet meer optreden. De Windows XP heeft op de Zonbu problemen met bijvoorbeeld de Sandisk Extreme III kaartjes zonder deze driver.

Een goedkope groene ASP.NET mini-server

kikker.jpgDe laatste jaren ben ik enigszins gefocused op het vinden van een PC met veel processorkracht en een laag energieverbruik. Zo heb ik een jaar of 5 a 6 geleden een jaar lang een Pentium 133Mhz PC als (Microsoft personal) webserver operationeel gehad voor het hosten van mijn ASP website. Door deze actie bleek de energierekening dat jaar Hfl. 300,- hoger te zijn dan anders. Een rede om dat ding maar weer uit te zetten en op zoek te gaan naar een goedkope hoster. Vergeleken met de huidige PC’s is zo’n Pentium 133Mhz qua energieverbruik kinderspel. Tegenwoordig gebruikt een beetje fatsoenlijke PC al gauw 150 tot 200 Watt. Als zo’n PC 365 dagen aan staat kost dat +/- € 300,- per jaar aan energie.

Kortom de rede van mijn focus is een machine waar IIS met ASP.NET op kan worden gehost. Af toe bekruipt mij het gevoel, zeker in deze tijd met een liefde voor al wat “groen” is, dat er zuinigere oplossingen moeten bestaan zonder al te veel performance in te hoeven leveren. Op zo’n moment ga ik weer op jacht en tegenwoordig vindt je dan opvallend veel energiezuinige, goedkope pc-achtige oplossingen die er qua performance best mogen wezen.

Een paar voorbeelden:

zonbu.jpgOnlangs heb ik dan eindelijk de onderste uit bovenstaande lijst, een Zonbu Mini aangeschaft, de best uitgeruste mini-computer die ik kon vinden. Dit apparaat wordt geleverd met een optimaal voor deze machine getunede Linux variant waarbij de opslag van data plaatsvindt op het web en het OS draait op een Compact Flash kaart in het apparaat zelf.

Via 1 van de 6 USB poorten heb ik met en externe DVD-speler Windows XP op het apparaat geinstalleerd. Na de installatie had ik vooral driver-problemen. Het was even zoeken maar uiteindelijk vond ik op de website van de originele Taiwanese!! fabrikant de juiste drivers . De Flash kaart is 4Gb groot en na installatie van het .NET framework 3.0 is er nog 2.2Gb over aan opslagcapaciteit. Het apparaat draait vooralsnog als een zonnetje. Is niet noemenswaardig langzaam, is stil er zitten namelijk geen bewegende delen in, is klein en verbruikt nauwelijks energie.

Kortom, prima in te zetten als IIS server voor .NET applicaties. Ja, en ik snap ook wel dat je niet moet proberen een 100.000 bezoekers per dag met dat ding te bedienen, maar zet je je eigen blog er op en nog wat leuk ander speelgoed dan zal dat echt geen problemen opleveren. Het is wel aan te raden een (energiezuinige) NAS te gebruiken voor data-opslag. Het is zelfs mogelijk om een IDE harddisk aan te sluiten, je zal echter even moeten puzzelen om de harddisk in de behuizing te plaatsen. Een externe USB-drive is natuurlijk ook een optie.

En dat allemaal met een energieverbruik dat neerkomt op een kostenpost van € 15,- per jaar, tenminste, als ie het hele jaar moet draaien.

Kijk ook eens naar:

Naar het web via een lokale proxy

Een website benaderen via de infrastructuur van de werkgever is meestal niet zo’n heel groot probleem. Bij de klant waar ik op dit moment werkzaam ben had ik tot voor kort echter een vervelend probleempje. Bij het opstarten van mijn browser maakt deze contact met de proxy server via NTLM autorisatie. Dat betekent in dit specifieke geval dat er niet alleen een username, password aan de proxy server moet worden doorgegeven maar ook een domein. Internet Explorer ondersteund NTLM dus dat is niet echt een probleem. Vervelend is wel, maar niet onoverkomelijk, dat elke keer bij het opstarten van de browser om een gebruikersnaam, wachtwoord en domeinnaam wordt gevraagd om met de proxy server te kunnen verbinden.

Nu bedacht ik mij onlangs dat RSS-feeds lezen toch wel heel handig zou zijn tijdens mijn werk. Er zijn echter nauwelijks RSS readers die NTLM autorisatie ondersteunen. De enige die ik kon vinden was Pluck die zichzelf integreerd in de browser. In Pluck is het mogelijk om bij de username ook een domein op te geven dus “domeinusername”. Persoonlijk vind ik de gebruikersinterface niet niet heel handig bovendien crashte hij al binnen 5 minuten. Tja, wat nu?

Een alerte collega attendeerde mij op de NTLM proxy van Dmitry Rozmanov. Dit is een in Python geschreven proxy server die lokaal draaien. Je hoeft er niet heel veel voor te doen. Python moet worden geinstalleerd en de NTLM proxy moeten worden neergezet en geconfigureerd. In het config bestand van de proxy kunnen de parent proxy gegevens worden ingevoerd en de poort waarop de lokale proxy moet draaien kan worden aangegeven. Daarna moet de browser gebruik gaan maken van deze nieuwe proxy om te zorgen dat het vervelende inlog scherm voor de proxy server verdwijnt. Vervolgens kan elke RSS reader gebruik gaan maken van deze nieuwe lokale proxy om feeds op te halen. Toepassingen zijn legio, zo kan bijvoorbeeld ook gebruik worden gemaakt van webservices etc…

Hieronder vindt je een stappenplan voor het installeren van de NTLM proxy in de bovengenoemde situatie.

  • Download de laatste versie van Python via www.python.org.
  • Installeer Python en onthoud het pad waar Python wordt geinstalleerd, die is zodadelijk nodig voor de configuratie van de NTLM Authorization Proxy Server (APS).
  • Download hier de NTLM APS.
  • Open het bestand runserver.bat dat in de NTLM APS directory aanwezig is.
  • Pas de volgende regel aan (indien nodig) zodat deze verwijst naar de python executable:
  • @echo off
    "C:Python24python.exe" main.py

  • Open het bestand server.cfg en pas de volgende sleutels aan:
  • LISTEN_PORT = de poort waarop de lokale server bereikbaar moet zijn. Deze waarde kan zelf worden gekozen. Kies in iedergeval een poortnummer boven de 1024.
  • PARENT_PROXY = het ip-address van de originele proxy server
  • PARENT_PROXY_PORT = de poort waar
  • op de originele proxy draait.
  • ALLOW_EXTERNAL_CLIENTS = 1 als je de proxy wilt delen met andere pc’s, anders 0
  • NT_HOSTNAME = Domeinnaam voor autorisatie op de originele proxy
  • USER = Gebruikersnaam voor autorisatie op de originele proxy
  • PASSWORD = Wachtwoord voor autorisatie op de originele proxy
  • Vervolgens kan de server nu worden gestart door runserver.bat op te starten
  • Bij succesvol starten van de server zal er een console applicatie worden gestart met de informatie die ongeveer overeenkomt met onderstaande gegevens:

    NTLM authorization Proxy Server v0.9.9.0.1
    Copyright (C) 2001-2004 by Dmitry Rozmanov and others.
    Now listening at MYPC on port 6080

  • Pas in de browser en alle andere applicaties die hiervan gebruikt gaan maken de proxy settings zodanig aan dat deze kijkt naar de lokale proxy. Dus het proxy address is 127.0.0.1 of “localhost” en de poort is de waarde die is ingevoerd bij LISTEN_PORT in de server.cfg van NTLM APS.
  • Voila, je eigen lokale proxy is in de lucht, de autorisatie wordt automatisch geregeld. Alle applicaties met proxy ondersteuning kunnen nu het internet op. Let wel op dat de server.cfg niet in verkeerde handen valt aangezien daarin de proxy credentials zijn opgenomen.