Jim Bennett

Senior Cloud Advocate at Microsoft, Xamarin Certified Developer, author of Xamarin In Action, blogger, speaker, father and lover of beer, whisky and Thai food. Opinions are my own.

  Redmond, WA, USA

My book:

Xamarin In Action

Contact me:

  Xamarin In Action
  Twitter
  GitHub
  LinkedIn
  YouTube
  Email
  CV

WeakEvents in PCLs

One of the biggest causes of memory leaks I've seen in C# applications is events. Although C# can't leak in the same way C++ can, it's easy to unintentionally end up with references you weren't expecting - and what a lot of people don't realise or forget is that subscribing to an event holds a reference from the event source to the event target, e…

Read More

Continuous deployment with JimLib

Today I've finally moved to the world of continuous deployment - albeit for one of my projects only so far, but it's a start. For my JimLib open source API I've automated the whole deployment process so after checkin it builds and deploys to NuGet automatically. Steps in the process I do all my development in Visual Studio, which now can connect…

Read More

Grouping in ListViews with Xamarin.Forms

Xamarin.Forms provides a lot of cool features to use for mobile app development, and the documentation is pretty good - but sometimes the cool features you want to use are a bit lacking in docs. There are example projects but it can be hard to interpret what you need to do to get something working. The latest area that was confusing me was groupi…

Read More

My first NuGet package

For pretty much every project I've worked on I've used the same set of extensions and helper classes to make my life easier. For example: Fluent API on strings myString.IsNullOrEmpty() instead of string.IsNullOrEmpty(myString). An ObservableCollectionEx<T> class that allows adding multiple items but only raising on CollectionChanged event.…

Read More
 

WeakEvents in PCLs

One of the biggest causes of memory leaks I've seen in C# applications is events. Although C# can't leak in the same way C++ can, it's easy to unintentionally end up with references you weren't expecting - and what a lot of people don't realise or forget is that subscribing to an event holds a reference from the event source to the event target, e…

Read More

Continuous deployment with JimLib

Today I've finally moved to the world of continuous deployment - albeit for one of my projects only so far, but it's a start. For my JimLib open source API I've automated the whole deployment process so after checkin it builds and deploys to NuGet automatically. Steps in the process I do all my development in Visual Studio, which now can connect…

Read More

JimLib.Xamarin now available

My second NuGet package is now available: JimLib.Xamarin. This contains a selection of helpers to make developing iOS apps with Xamarin easier (WinPhone/Android will come later when I have an Android license/Android device/Windows Phone device to test on). It's all open source - code is on GitHub, symbols are also available (as talked about here)…

Read More

Grouping in ListViews with Xamarin.Forms

Xamarin.Forms provides a lot of cool features to use for mobile app development, and the documentation is pretty good - but sometimes the cool features you want to use are a bit lacking in docs. There are example projects but it can be hard to interpret what you need to do to get something working. The latest area that was confusing me was groupi…

Read More

Symbols for NuGet packages

Since releaseing JimLib onto NuGet, I've been dogfooding it as much as possible for my own development. One area I noticed was lacking was in symbol support - if I wanted to view the inner workings of my classes I had to decompile the source using ReSharper. Not an ideal situation. Luckily there is a better way. SymbolSource is a free service t…

Read More

My first NuGet package

For pretty much every project I've worked on I've used the same set of extensions and helper classes to make my life easier. For example: Fluent API on strings myString.IsNullOrEmpty() instead of string.IsNullOrEmpty(myString). An ObservableCollectionEx<T> class that allows adding multiple items but only raising on CollectionChanged event.…

Read More