Archives

Archives / 2014
  • ThemeManager for universal apps updated

    Few months ago I published the first version of a generic theme manager for the Windows Universal App platform. The ThemeManager makes it easier to use to manage the accent color in your app, which normally can require lot of overriding of styles in your app. In the last months been using it often and been making some additional tweaks to make it better. Today I published all these changes to NuGet and GitHub https://github.com/davesmits/NuGet https://www.nuget.org/packages/DaveSmits. …

  • Connect with Visual Studio Online from your Universal App

    Last year I published an application called Product Manager. This application supports the product owner in scrum team to work with Visual Studio Online. It offers functionality to create new product backlog items, manage the backlog, review ideas and break down product backlog item in smaller, more detailed items. To build this app I used the TFS OData Services (tfsodata.visualstudio.com/). This offered OData service to some data of Visual Studio online. Unfortunately it wasn’t very …

  • Theming in a universal app

    For Windows Phone Silverlight Apps it can he hard to do theming / branding in your app. Lucky Jeff Wilcox created the Theme Manager which easily let us control the Dark / Light theme and the accent color. Windows Phone Store Apps For Windows Phone Store apps we can’t use that ThemeManager but switching between Dark and light theme is now building in the framework like windows store apps have. The only thing we need to set: RequestTheme=”Dark” or RequestTheme=” …

  • Make a HubSection in Windows Phone Store apps bigger then one screen

      In Windows Phone Silverlight apps we could make a PanoramaItem wider then one screen, so you had to scroll a little to see the whole section. In this blog post I show you how you can do the same with the Hub control. The hub control replaces the Panorama control in Windows Phone Store apps. Which things are changing? We have a new control, hub instead of panorama which means having new API we have to figure out. We no longer know the scrreenwidth. In Windows Phone 8 the …

  • Tile updates every minute for Windows Phone

    One of my populair samples, "tile updates every minute" that i created for Windows 8 i now updated for Windows Phone. You can download it here: http://code.msdn.microsoft.com/wpapps/Tile-Update-every-minute-d4727620

  • Debugging BackgroudTasks in Windows and Windows Phone 8.1

      think most Windows Store app developers will know this, but now it gets important for Phone developers too. With the new Windows Phone release the whole architecture how to build an app from windows store apps will be coming to Windows Phone. Windows Store apps has the concept of BackgroundTasks. These tasks can run on the background and provide functionality to the end user without the new to start up the app. It can be used to update data, or update the live tile for example. A …

  • Create your own headered controls

    Since the release of WIndows 8.1 most input controls like the TextBox and ComboBox have two new properties Header HeaderTemplate These are really useful properties. They make it much easier to add a label above the input control. This is how it looks like: The xaml is really nice, its just this: <TextBox x:Uid="FlightDetailPageView_Instructor" Header="Instructor" Margin="0, 0,0,10"                & …

  • Intersecting circles on a Map in Windows Store apps

    Joost van Schaik written a nice article how to draw circles on a Map in Windows Phone and in Windows Store apps. You can read it here: http://dotnetbyexample.blogspot.nl/2014/02/drawing-circle-shapes-on-windows-phone.html In this article i will show how you can Union two circles in a nice way. Based on the code joost maked, lets assume we have this: var location1 = new Bing.Maps.Location(52.181427, 5.399780);var location2 = new Bing.Maps.Location(52.181827, 5.399780); var layer = new …

  • DurationPicker control for Windows Store Apps

    For one of my new apps i had the requirement that an user could select a duration of an event. First i looked how it was done by the Calendar app and i noticed that they give few options for duration, or let you select and end date. In that case you dont fill in a duration. For me that wasn't a possible solution. I tried out the Time Picker to select a duration. Only one cool feature of the time picker maked it worthless for me. When your in england / VS the time picker also shows AM / PM …

  • Storage Files en Application Uri's

    In Windows 8 apps kan je door middel van de StorageFile class werken met bestanden. Voor bestanden in de ApplicationData kan je ook ook gebruik maken van een application URI. Die uri ziet er als volgt uit: ms-appdata:///local/<filename>. Dit is voor bestanden in de localfolder. Voor bestanden in de roaming folder ziet her uit als: ms-appdata:///roaming/<filename> Via StorageFile.GetFromApplicationUri(); kan je vervolgens de storagefile ophalen. Dit kan heel handig zijn …

  • Handige link voor AppBar button in Windows 8.1

    In Windows 8.1 hebben we als Xaml developers eeen hele boel nieuwe controls gekregen. Een van deze nieuwe control is de AppBarButton. Met deze button hoeven we niet langer een custom styling over een nieuwe button heen te trekken maar komt dat met het control vanzelf mee. Ook het aanpassen van look & feel is veel makelijker geworden. Het gebruik van deze Nieuwe control is heel eenvoudig, een voorbeeld: Label is het tekstje dat onder de button verschijnt en Command wat uitgevoerd word als …

  • CoreDispatcher en Tasks in Windows 8

    In een eerdere blogposts heb ik al laten zien wat het verscchil is tussen tasks en threads, en eventuele niet voor de handliggende gevolgen bij verkeerd gebruik: http://www.familie-smits.com/post/2012/11/07/Threads-versus-Tasks.aspx Onlangs was ik met de Dispatcher bezig om weer onderdelen terug de UI thread te invoken en liep ik tegen precies het zelfde aan. Neem het volgende stuk code: Debug.WriteLine("step 1"); await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =& …

  • ShowAsync voor Flyout uit Callisto

    In Tim's Heuer Calisto zit een Flyout control die erg bruikbaar is  voor het bouwen van Windows 8 apps. Het is een soort vervanger van een MessageDialog die minder irritant voor eind gebruikers is. Echter is het gebruik in code nogal anders. neem het MessageDialog, dat zou er zo uitzien: public async void ShowMesasgeDialog() { MessageDialog messageDialog = new MessageDialog("A dialog"); await messageDialog.ShowAsync(); } Duidelijk …

  • Windows 8 apps reviewen, zoeken in de store, email versturen.. help?

    Op het Windows Phone platform kun je als ontwikkelaar gebruiken maken van bepaalde launcher om standaard functionaliteit zoals het laten reviewen van de app, het sturen van emails of een zoekopdracht in de Windows Phone Store. Voor Windows 8 zijn hier geen objecten voor maar kan doormiddel van protocol activatie wel hetzelfde worden bereikt. Dan kan er zo uitzien: string SearchQuery = "Webradio" Windows.System.Launcher.LaunchUriAsync(new Uri(string.Format("ms-windows-store:Search?query={0 …

  • Voorkom exceptions van MessageDialogs

    Wanneer je MessageDialogs gebruikt voor het tonen van meldingen aan de gebruiker moet je op letten dat je niet probeer een dialog te openen terwijl er nog een andere MessageDialog open staat. Doe je dat wel wordt er een exception gegooid. Wanneer de message dialog niet perse hoeft te worden getoont kan je natuurlijk met een simpele try catch de exception oplossen. Echter laat je niet voor niks de Melding zien. Hiervoor moeten dus extra maatregelen worden getroffen. Met een simpele extension …

  • Live branding

    Wanneer je een live tile toevoegd kies je een template voor de live tile. Hierbij kan je zelf kiezen voor 45 verschillende templates. Vervolgens is op de live tile vaak een plaatje en tekst zichtbaar en ook het Small logo dat je met je applicatie meeleverd zoals hier in webradio   Via the TileUpdateManager kan je eenvoudig een de XML voor een dergelijke live tile verkrijgen en dan voorzien van je eigen data. Zo stukje XML kan er zo uitzien: <tile><visual> …

  • Framebased settings flyout

    Wanneer een Windows store app settings toont gebeurd dit via de SettingsCharm en opent dan een SettingsFlyout. Meestal zijn dit eenvoudige views zonder dat er doorgeklikt kan worden naar een andere pagina in deze flyout. Zo flyout kan er als volgt uitzien:   Voor dergelijke flyouts zijn er heel veel controls te vinden. Zo gebruik ik vaak Callisto waar ook een dergelijk control inzit. Echter in sommige situaties is deze control te beperkt. Wanneer we bijvoorbeeld kijken naar de …

  • Toast notificatie met launch parameters

    Met toast notificaties kan je de aandacht van de gebruiker krijgt terwijl je app niet draait. Wat er zo uit kan zien:   Het laten zien van zo toast notificatie is er eenvoudig en kan met een paar regels code: var template = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText01); var xml = template.GetXml(); ToastNotificationManager.CreateToastNotifier().Show(new ToastNotification(xml));   Via de GetTemplate word de XML van een template opgevraagd en …

  • IRandomAccessStreams & Streams

    Bij het ontwikkelen van Windows Store Apps met C# en Xaml heb je rekening te houden met twee werelden, enerzijds .Net, anderzijds WinRT. Dit zie je op hele veel terreinen terug. Async operaties binnen .Net geven vaak een Task terug, WinRT apis geven een IAsyncOperation terug, binnen .net heb je Stream en in WinRT zijn het IInputStream of IOutputStream. Deze verschillen worden vaak via extension methods   Via extension methods worden deze verschillen overbrugt. Hier als voorbeeld van …

  • TAP versus EAP

    In Windows Phone 7 waren alle async methods via het event asynchronous pattern wat wil zeggen een method waarmee je de actie start en een event wanneer de operatie compleet is. Je ziet dit bijvoorbeeld op de webclient waar je een dergelijke schrijf wijze zou kunnen gebruiken: public void GetUrl() { WebClient client = new WebClient(); client.DownloadStringCompleted += (s, e) => { } ; client.DownloadStringAsync(new …

  • Threads vs Tasks

    Laatste tijd ben ik veel actief op het Windows Store forum op MSDN en kwam ik een leuke vraag tegen. Er was het volgende stuk code en de vraagsteller verwachtte dezelfde uitkomst maar kreeg een verschil. /// <summary> /// A1/A3/A4/A9 /// </summary> private async void Button_Click_1(object sender, RoutedEventArgs e) { Debug.WriteLine("A1"); await ThreadPool.RunAsync((operation) => { DoOperation("A").Wait(); }, …

  • MSDN Samples

    Laatste tijd weer paar nieuwe samples op MSDN gezet een kort overzicht je van de samples: MVVM met BingMaps: http://code.msdn.microsoft.com/Bing-Maps-with-MVVM-0bb0d74a gebaseerd op een library die ik ook op codeplex heb gezet. Scheduled Toast Notifications: http://code.msdn.microsoft.com/Schedules-Toast-notificatio-457e599b Voorbeeldje dat laat zien hoe je toast notificaties kan inplannen Html To RTF: http://code.msdn.microsoft.com/Html-to-RTF-a757fac5 Laat zien hoe je een HTML string in …

  • Mijn tweede windows 8 app

    Zelf vond ik het heel irritant dat de klok in het Startscherm van Windows 8 alleen zichtbaar word. Gelukkig hebben we mooie Tiles in Windows 8 en na wat creatief nadenken bedacht ik hoe ik iedere minuut de tile kan updaten. Het gevolg was dat ik voor mezelf hier een hele simpele app van heb gemaakt, omdat ik er zelf blij mee ben heb hem vorige week ook geupload in de store: http://apps.microsoft.com/webpdp/app/clock-tile/0ccf24f9-d2ab-4d3c-82be-53049fadeb04 En ook de downloads zijn niet …

  • Push notifications met Windows 8

    Voor het SDN magazine heb ik een bedrage gemaakt waarin ik de push notificaties van Windows 8 uitleg. Je kan hem hier downloaden (nadat je bent ingelogd): http://www.sdn.nl/SDN/Magazine/tabid/66/articleType/ArticleView/articleId/3060/SDN-Magazine-114.aspx Je kan ook een account aanmaken als je geen lid ben van de SDN

  • MSDN Samples

    Laatste dagen ben ik bezig geweest met wat examples te maken voor op msdn. Wellicht leuk om naar te kijken waneeer je met Windows 8 development aan de gang gaat.   GridView with scroll support with movemove on the left and right side http://code.msdn.microsoft.com/windowsapps/GridView-with-scroll-86279865 Met dit voorbeeld krijg je het zelfde scroll gedrag als je gewend bent van het startscherm. Ik vind het zelf erg jammer dat niet default is en hoop dat veel apps het zelf gaan …

  • Door het GridView met de muis scrollen

    Wanneer je naar het Start scherm van Windows 8 krijgt heeft deze een paar mooie unieke features die niet standaard met het GridView control meekomen.   Zo heb je type to search. Hiermee kan je gewoon gaan typen in het start scherm en vervolgens word de search geactiveerd. Hoe je dit in jouw app kan ontwikkelen heb ik hier beschreven: http://www.familie-smits.com/post/2012/08/12/Type-to-search-in-Windows-8.aspx   Een andere mooie feature is dat je in het startscherm kan scrollen …

  • Error DEP0700

    Wanneer je tijdens het deployen de error "DEP0700" krijgt draait de applicatie twee keer. Dit kan zijn doordat je lokaal probeerd te deployen en via de emulator de app draait. Even de emulator afsluiten en je kan weer deployen.

  • Type to search in Windows 8

    In het startscherm kan je gaan typen om te gaan zoeken in een applicatie. Dit gedrag is ook heel eenvoudig in je applicatie te realiseren, maar er zit een maar aan. De meest voor de handliggende oplossing op keydown van het core window het searchpane openen: Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown; void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args) { SearchPane.GetForCurrentView().Show(); }  Echter zal je zien met deze …

  • Tile updates zonder backgroundtasks en zonder push notifications

    De tiles van Windows 8 komen het meest tot hun recht wanneer gebruik word gemaakt van Live Tiles. Dit laat je applicatie tot leven komen terwijl de gebruiker naar zijn startscherm kijkt en kan de gebruiker motiveren tot het gebruik van je applicatie. Om live data op de tile te krijgen zijn er een aantal mogelijkheden. Zo kan je het doen vanuit de code van de applicatie. Nadeel van deze oplossing is dat je programma moet draaien om je tile te kunnen updaten. Een andere techniek is gebruik maken …

  • Asus EP 121

    Goed nieuws voor gebruikers van de Asus EP 121, er is een nieuwe BIOS versie met support voor Windows 8. Na installeren van BIOS update zijn er ook in de Windows update 2 updates beschikbaar. Na installeren worden de hardware buttons en de gsensor gefixt! Met dit als resultaat:                                 Er fijn dat er toch nog updates verschijnen! De bios update is hier te downloaden: http:/ …

  • UpdateSourceTrigger in WinRT

    Wie met Silverlight of met WPF heeft gewerkt en MVVM regelmatig toepast zal ongetwijfeld the UpdateSourceTrigger wel is hebben aangepast. Vooral bij bindings naar een geselecteerd item is het erg handig en vaak noodzakelijk om de ingevoerde tekst bij het juiste item terug te krijgen. Helaas is de UpdateSourceTrigger weg gehaald bij WinRT. De andere oplossing om de update te forceren van via GetBindingExpression() maar ook die is helaas niet aanwezig. Een andere oplossing zou zijn om een …

  • MessageDialog met Custom Content

    In WinRT geeft de MessageDialog al aanzienlijk meer vrijheid dan de MessageDialog zoals we die in WinForms of WPF kennen, zo is het nu mogelijk zelf knoppen toe te voegen en het label hiervan zelf te bepalen waar je eerst van zat aan de standaard Ja Nee Annuleren etc labels. Echter is de content nog beperkt tot enkel een string. Soms kan het handig zijn om hier wat rijkere content neer te zetten. Kijk eens bijvoorbeeld naar de mail applicatie. Deze maakt gebruik van een dergelijke popup voor …

  • Synchroon werken met Tasks

    Wanneer je interfaces ontwerpt leg je in de interface vaak al vast of deze asynchroon werkt of synchroon werkt. Neem de volgende volgende Task Async Pattern implementatie, het patroon dat voor de keywords async en await word gebruikt: public interface ITAPProvider { Task<string> GetStringFromUrl(string url) }   Een mogelijke implementatie die daar bij hoort kan er als volgt uitzien: public class HttpClientProvider : ITAPProvider { public async Task<string> …

  • Databinding met Microsoft Bingmaps

    Wanneer je met de Microsoft Bing MapControl aan de gang gaat kom je er snel achter dat Microsoft geen gebruik heeft gemaakt de Dependency Properties en hierdoor geen gebruik gemaakt kan worden van databinding in XAML, en dit is zonde wanneer je de applicatie volgens het MVVM design patroon opzet. Ik heb zelf een wrapper geschreven om tegen een aantal properties toch te kunnen aanbinden en zo de applicatie wel netjes met MVVM te kunnen inrichten. Ik heb de code hiervoor op codeplex gezet en is …

  • Navigatie met een MainPage

    Het navigatie frame niet als root   Het navigatie frame zoals we dat in Windows8 hebben is niet nieuw. Het idee is geintroduceerd in Silverlight 3 en later hebben we het ook terug zien komen voor Windows Phone.  Het is een krachtige manier van navigeren door je pagina en eenvoudig deeplinks te maken naar een specifieke onderdeel van je applicatie. Voor Silverlight kon dit handig zijn zodat gebruikers links met elkaar konden delen en in Windows Phone en Windows 8 erg handig voor de …

  • Push notifications werken niet in Windows 8 / Win RT ?

    Gister ben ik bezig geweest met Push Notifications voor mijn WinRT app. Heb de implementatie gevolgd zoals op http://msdn.microsoft.com/en-us/library/windows/apps/hh465460.aspx werd beschreven en na wat debug werk kreeg ik een 200 van de Push Service terug. Helaas kwam de Toast notificatie niet door in mijn app.  Van alles geprobeerd zoals opnieuw een secret code aangevraagd maar geen success. Uit eindelijk bij opstarten van de app de volgende code geplaats: var dialog = …

  • Webradio voor Windows 8

    Webradio voor Windows 8 Webradio is een applicatie die ik voor de Windows Phone in 2010 heb gemaakt. Met deze applicatie kan de gebruiker naar online radio zenders luisteren. Met de komst van de developer preview ben ik begonnen met Webradio voor Windows 8 en later toen de consumer preview uitkwam de applicatie geupgrade. Met deze blogpost een samenvatting hoe ik de bij eerste release ben gekomen. App Excellence Lab Op 12 en 13 april 2012 hield Microsoft Nederland het Windows 8 dev …

  • SGMLWP7 now also for WinRT

    Just maked the port of the SgmlReader for WP7 also compatible for Win8. You can download it here: http://sgmlwp7.codeplex.com

  • Sgml reader for WP7

    Sometimes you have to use html pages to get the data of that website in your application. For .net applications there was a great library http://developer.mindtouch.com/Community/SgmlReader to transform an html page to an XmlDocument / XDocument and makes it easy to get the data out. Unfortunately the library was not available for Windows Phone. I looked for an alternative but couldn’t find anything useful., lucky the source code was also avialable and I modified the code to be compatible …