SaturdayMP Show 57: Something's Rotten at the Gilded Rose: A Refactoring Tale

In this episode I tackle the famous Gilded Rose refactoring kata as practice for my upcoming Edmonton .NET User Group (EDMUG) presentation. One of the great things about the Gilded Rose kata is the different ways to “solve” it. What would have done different then me?

Slides and source code for the presentation can be found here.

I’m posting this the day after the EDMUG presentation. Thank you to EDMUG for allowing me to present and special thank you to the attendees who braved the snow and bad driving conditions.

[Read More]

Today I Learned About GitHub's Dependabot

Recently I created a CI build for the Introduction to ORM for DBAs presentation example code. One of the reasons I picked this code base was so I could try out Dependabot for the security alerts I’m getting.

Security alert in GitHub.

The security alert is for the ASP.NET Core NuGet package. The same issue is listed multiple times because the code is duplicated several times for the various steps in the example.

[Read More]

Today I Learned How to Create a Xamarin iOS Binding for Objective-C Libraries - Part 4 The Actual Binding

This is the 4th and final part about incorporating an objective-c library in Xamarin.  In my case I’m binding BEMCheckBox.  In part 3 we used Sharpie to create a C# interface for the BEMCheckBox.  In this post we will show how to use that interface. Finally you can find a working example of BEMCheckBox in Xamarin iOS here.

First take the APIDefinitions.cs and Structs.cs files in a location accessible to Visual Studio.  Also take the BEMCheckBox.framework folder and move this location accessible to Visual Studio.  For me this means moving the files to my Windows computer.

[Read More]

Today I Learned How to Create a Xamarin iOS Binding for Objective-C Libraries - Part 3 Using Sharpie to Create Binding Interface

This is the 3rd part about using the BEMCheckBox, an Objective-C library, in Xamarin.  Part 1 described how to compile the BEMCheckBox library using Xcode.  Part 2 showed how to combine the multiple libraries we compiled from Part 1 into one library.  In this part I’ll describe how to use Sharpie to create the C# API interface.

Sharpie is a tool that reads the header files in the BEMCheckBox framework and extract a C# interface.  We could create the interface manually but it’s easier if we let technology do some of the work for us.  Don’t worry about this job being replaced by a robot as we will have to manually edit the file after it’s generated, at least for BEMCheckBox.  Download the sharpie tool here and read more about the sharpie here.

[Read More]

Today I Learned How to Handle Local Notifications in Xamarin on Android

In my previous example I detailed how to schedule notifications in Xamarin on Android but didn’t show the Xamarin Forms application reacting to that specific notification.  Let’s fix that.

First override the OnNewIntent method in the MainActivity.  We override this method so notifications will work if the application is currently running or is stopped and the notification started the application.  In the OnNewIntent method you put code that makes sure it’s a notification you want to respond to then extracts any needed information from the notification.  An example is below:

[Read More]