Xamarin
App In The Cloud – Live – Building an app with Mobile Blazor Bindings – Episode 6
App In The Cloud – Live – Building an app with Mobile Blazor Binding – Episode 5
Live Stream – Building an app with Mobile Blazor Bindings – Part 3
Live Stream – Building an app with Mobile Blazor Bindings – Part 1
GitHub Actions and Cake for TinyMvvm
To build and publish TinyMvvm I have used Azure Pipelines and a classic build pipeline together with a release pipeline. For the upcoming 3.0 release (in preview right now) I have migrated the pipeline to GitHub Actions. There are several reasons for that:
-
I want to make the CI/CD open so all can see what happend. You can have an open project in Azure DevOps as well, but the project we use for building TinyStuff libraries are to old to make public and I felt that I it was better to use the time to migrate to GitHub Actions according to the other reasons.
-
I want to have everything together, GitHub Actions is according to me better integrated in GitHub.
-
I feel that GitHub Actions is the future, both Azure DevOps and GitHub is Microsoft products and what I can see, Microsoft have mor focus on GitHub Actions.
-
GitHub feels like the natural place for Open Source.
To define the build I decided to use Cake and the reasons for that is:
- Cake is cross-service. So if I want to move it to an other service I can resuse the most parts. Many services using yaml, but with different flawors of it, so it cannot be reused, not even between the both Microsoft controlled products GitHub Action and Azure Pipelines. The Cake scripts will be easy to use in all major services.
- It is C# and I like to be able to use C# for defining the build and publish steps.
- It is Open Source and easy to extend.
The only downside for Cake is that thera are not much good documentation about how to use it. There are good API-documentation, but not so much "How to"-documentation. But if you know how the underlying processes works it will be pretty easy to get started anyway.
GitHub Actions
I have defined two actions so far for TinyMvvm, one for when codes is pushed and one for when a released is published.
Push
Everytime code is pushed to either the master branch or to a pull request the code is built to verify that noting is broken.
You can find details about the action here:
https://github.com/TinyStuff/TinyMvvm/blob/3.0/.github/workflows/main.yml
Release
When I manually create a release in GitHub this action will trigger, the name I will give the tag will be used for the version number for tha package.
The Release action will build the code from the tag and it will publish the packages to NuGet.
You can find details about the action here:
https://github.com/TinyStuff/TinyMvvm/blob/3.0/.github/workflows/release.yml
Cake
The cake script has three tasks defined; Build, Pack and Publish. The build action, only runs the build task. The Release actions is running all tasks.
Live Stream: Exploring Blazor Mobile Bindings
TinyMvvm for Xamarin.Forms
My session from Xam Expert Day is published on YouTube:
Identiteter, autentisering och säkerhet
I den här episoden prata Daniel och Johan om något som är nödvändigt i nästan alla applikationer, säkerhet. De pratar om att hantera identiteter, autentisering och säkerhet i allmänhet. Områden som de pratar om är bland annat Azure AD B2C, autentisering i .NET Core, autentisering i Xamarin appar och App Service Environments i Azure.
Azure AD B2C: https://azure.microsoft.com/sv-se/services/active-directory/external-identities/b2c/
Identiteter och säkerhet i .NET Core: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-3.1&tabs=visual-studio
MSAL: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet
Web Authenticator: https://docs.microsoft.com/en-us/xamarin/essentials/web-authenticator?tabs=android
App Service Environment, https://docs.microsoft.com/sv-se/azure/app-service/environment/intro
Nullable Reference Types i C#8 och så lite C#9
I den här episoden pratar Daniel och Johan om Nullable Reference Types, en feature som kom i C# 8 och som vi nu använt ett tag. De pratar också om några kommande saker i C#9.