Volunteers re-engineer cancer treatment software to monitor coronavirus pandemic using Microsoft’s Xamarin mobile framework with Azure Mobile Angel has released a new mobile application built on the Xamarin platform to manage potential and at-risk coronavirus patients in real-time. The free application monitors patients in clinics across the country through self-reported symptoms and prioritizes them in a triage list based on fever and other symptoms. With built-in telemedicine features, clinic staff can directly monitor patients while reducing in-person visits and potential exposure. The application also aggregates reports across the country so…
Category: .NET
.NET (dotnet) is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
So, there are various implementations of .NET (dotnet). Each implementation allows .NET code to execute in different places—Linux, macOS, Windows, iOS, Android, and many more. This framework has two main versions:
- Framework is the original implementation of .NET. It supports running websites, services, desktop apps, and more on Windows.
- Core is a cross-platform implementation for running websites, services, and console apps on Windows, Linux, and macOS. .NET Core is open source on GitHub.
Then, Xamarin/Mono is a .NET (dotnet) implementation for running apps on all the major mobile operating systems, including iOS and Android.
The .NET Standard is a formal specification of the APIs that are common across .NET implementations. This allows the same code and libraries to run on different implementations.
Therefore, the two major components of .NET (dotnet) Framework are the Common Language Runtime and the .NET Framework Class Library.
- The Common Language Runtime (CLR) is the execution engine that handles running applications. It provides services like thread management, garbage collection, type-safety, exception handling, and more.
- The Class Library provides a set of APIs and types for common functionality. It provides types for strings, dates, numbers, etc. The Class Library includes APIs for reading and writing files, connecting to databases, drawing, and more.
Summarize, .NET (dotnet) applications are written in the C#, F#, or Visual Basic programming language. Code is compiled into a language-agnostic Common Intermediate Language (CIL). Compiled code is stored in assemblies—files with a .dll or .exe file extension.
At the end, when an app runs, the CLR takes the assembly and uses a just-in-time compiler (JIT) to turn it into machine code that can execute on the specific architecture of the computer it is running on.
Generate WRX from BlogML
BlogML is an XML format for storing the entire content of a blog. How to generate the WRX from BlogML to import it into WordPress?
Xamarin build error: defining a default interface method requires –min-sdk-version >= 24
I added to my project Xam.Plugins.Android.ExoPlayer and then I received this error: java/lang/Object;I)V: defining a default interface method requires –min-sdk-version >= 24 (currently 13) for interface methods: com.google.android.exoplayer2.Player$EventListener.onTimelineChanged : (Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;I)V Looking around, I discovered that other people had the same issue and the problem sits in the Android Options in Project Properties. No Dex compiler was specified, select D8 Dex compiler in the Android project properties: In code: <AndroidDexTool>d8</AndroidDexTool> Happy coding!
Using an in-memory repository. Keys will not be persisted to storage. – ASP.NET Core under IIS
One of the main benefits of building a new .NET project using .NET Core is cross platform deployment, however, IIS will still be a common home for ASP.NET Core web applications.
Accessing the OIDC tokens in ASP.NET Core 2.0
In ASP.NET Core 1.1 So, for example, in ASP.NET Core 1.x, if you wanted to access the tokens (id_token, access_token and refresh_token) from your application, you could set the SaveTokens property when registering the OIDC middleware: 1 2 3 4 5 6 7 8 // Inside your Configure method app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions(“Auth0”) { // Set all your OIDC options… // and then set SaveTokens to save tokens to the AuthenticationProperties SaveTokens = true }); You would then subsequently be able to retrieve those tokens by calling GetAuthenticateInfoAsync inside your controllers, and…
GitHub Package Registry
GitHub Package Registry, a package management service that makes it easy to publish public or private packages next to your source code
Lifetime Managers in Unity Container
The unity container manages the lifetime of objects of all the dependencies that it resolves using lifetime managers. Unity container includes different lifetime managers for different purposes. You can specify lifetime manager in RegisterType() method at the time of registering type-mapping. For example, the following code snippet shows registering a type-mapping with TransientLifetimeManager. var container = new UnityContainer() .RegisterType<ICar, BMW>(new TransientLifetimeManager()); The following table lists all the lifetime managers: Lifetime Manager Description TransientLifetimeManager Creates a new object of requested type every time you call Resolve or ResolveAll method. ContainerControlledLifetimeManager Creates…
ARM \ Logic App Deployment with Azure DevOps
Microsoft’s documentation refers to Logic Apps as being iPaaS or integration Platform-as-a-Service. The “i” in iPaaS indicates the strength of Logic Apps; not only are Azure systems integrated but external and third-party systems can be included in your Logic Apps, including Twitter, Slack, Office 365, and many others. This integration is done using a set of Microsoft-provided connectors. However, if a connector does not exist, then you can still integrate your logic app to external systems via their APIs. Go to the Azure portal https://portal.azure.com and create the logic app.…
Azure WebJobs API
This API is accessed the same way as the git endpoint. e.g. if your git URL is https://yoursite.scm.azurewebsites.net/yoursite.git, then the API to get the list of deployments will be https://yoursite.scm.azurewebsites.net/deployments. The credentials you use are the same as when you git push. See Deployment-credentials for more details. List all web jobs GET /api/webjobs Triggered Jobs List all triggered jobs GET /api/triggeredwebjobs Response [ { name: “jobName”, runCommand: “…\run.cmd”, type: “triggered”, url: “https://…/triggeredwebjobs/jobName”, history_url: “https://…/triggeredwebjobs/jobName/history”, extra_info_url: “https://…/”, scheduler_logs_url: “https://…/vfs/data/jobs/triggered/jobName/job_scheduler.log”, settings: { }, using_sdk: false, latest_run: { id: “20131103120400”, status: “Success”, start_time:…
Adding an external Microsoft login to IdentityServer4
This article shows how to implement a Microsoft Account as an external provider in an IdentityServer4 project using ASP.NET Core Identity with a SQLite database. Setting up the App Platform for the Microsoft Account To setup the app, login using your Microsoft account and open the My Applications link https://apps.dev.microsoft.com/?mkt=en-gb#/appList Click the Add an app button. Give the application a name and add your email. This app is called microsoft_id4_enrico. After you clicked the create button, you need to generate a new password. Save this somewhere for the application configuration.…
Adding Swagger to Web API project
Adding Swagger to your Web API project does not replace ASP.NET Web API help pages. Or maybe yes? Here how to implement Swagger in your apps
Connect ASP.NET MVC 4.6.2 project to IdentityServer4
I have a website running on ASP.NET MVC 4.5.2. I have an IdentityServer4 server running but when I try and authenticate against it I get an: invalid_request I googled a bit but I can’t find a solution. Finally, I found the way. First, in your IdentityServer4 you have to create a new client: public static IEnumerable GetClients() { return new List<client> { new Client { ClientId = “yourid”, AllowedScopes = new List<string> { “openid” }, AllowedGrantTypes = GrantTypes.Hybrid, RedirectUris = new List { “https://yoururl/signin-oidc” }, } } } When you…
Create a well formed URI using UriBuilder class with C#
You can use System.UriBuilder class to build a new well-formed URI. You need to set some property of UriBuilder object’s, like Scheme, Port, Host, Path etc… You can get generated URI using AbsoluteUri Method. // Generate a new URI. UriBuilder objUri = new UriBuilder(); objUri.Scheme = “http”; objUri.Port = 80; objUri.Host = “www.microsoft.com”; objUri.Path = “en-us/default.aspx”; Response.Write(“Genereted URI: ” + objUri.Uri.AbsoluteUri); Happy coding!
The Last Slice: challenge
Beat challenge 1 (download the game, change the code) here. Then beat challenge 2. First five to beat challenge 3 win $10,000 USD each. No joke. Challenge 1 This is the first of three challenges for The Last Slice: A retro 8-bit video game that’s currently impossible to beat. Clone or download the code, install the prerequisites on your Windows 10 PC, open TheLastSlice.sln file with Visual Studio and run the game. You have the source code…change it any way you’d like to beat the game. The Prerequisites Here’s what…
Gravatar Tag Helper for .NET Core 2.1
A tag helper is any class that implements the ITagHelper interface. However, when you create a tag helper, you generally derive from TagHelper, doing so gives you access to the Process method. In your ASP.NET Core project, create a folder to hold the Tag Helpers called TagHelpers. The TagHelpers folder is not required, but it’s a reasonable convention. Now let’s get started writing some simple tag helpers. Tag helpers use a naming convention that targets elements of the root class name (minus the TagHelper portion of the class name). In…
Deferring Processing of Azure Service Bus Messages
Sometimes when you’re handling a message from a message queue, you realise that you can’t currently process it, but might be able to at some time in the future. What would be nice is to delay or defer processing of the message for a set amount of time. Unfortunately, with brokered messages in Azure Service Bus, there is no built-in feature to do this simply, but there are a few workarounds. In this post, we’ll look at four separate techniques: let the lock time out, sleep and abandon, defer the…
Given, When, Then
Given-When-Then is a style of representing tests specifying a system’s behavior. It’s an approach developed by Dan North and Chris Matts as part of Behavior-Driven Development (BDD). It appears as a structuring approach for many testing frameworks such as Cucumber. You can also look at it as a reformulation of the Four-Phase Test pattern. The essential idea is to break down writing a scenario (or test) into three sections: The given part describes the state of the world before you begin the behavior you’re specifying in this scenario. You can…
7 Popular Unit Test Naming Conventions
Following are 7 popular unit tests naming conventions that are found to be used by majority of developers and compiled from above pages: MethodName_StateUnderTest_ExpectedBehavior: There are arguments against this strategy that if method names change as part of code refactoring than test name like this should also change or it becomes difficult to comprehend at a later stage. Following are some of the example: isAdult_AgeLessThan18_False withdrawMoney_InvalidAccount_ExceptionThrown admitStudent_MissingMandatoryFields_FailToAdmit MethodName_ExpectedBehavior_StateUnderTest: Slightly tweeked from above, but a section of developers also recommend using this naming technique. This technique also has disadvantage that if…
MongoDb example
Simple example for MongoDB. Save and retrieve data from Azure Cosmos DB. Create an Azure Cosmos Db as MongoDb For creating a new MongoDb on Azure, search from the list of resources, Azure Cosmos Db. Then Add a new database and you see the following screen. Overview When you created a new MongoDb, you see an Overview where there are general information about how many queries the database did (split on insert, update, cancel, query, count, others). Under Connection String you have the connection to use in your application. In…
Add a macOS project to your existing solution
With the new version of Xamarin, we can create apps for macOS. But how can I add a macOS project to my solution? I explain step by step what we have to do. Add new project The first step is to add a new project for macOS in your solution. Right-click on your solution and select Add New project… Now select from the list App under Mac and then Cocoa App. Then name your project, usually, we call this project with yourprojectname.macOS.
Get the Most Out of iOS 11 with Visual Studio Tools for Xamarin
Join Craig Dunn explains what’s new in iOS 11 and how to take advantage of the latest updates – from drag-and-drop for iPad to machine learning and more – 100% in .NET and Visual Studio. Whether you’re building new or updating existing Xamarin.iOS apps, you’ll see how to implement new frameworks, APIs, and UI features, walk-through code samples, get expert tips and tricks, so you can start shipping iOS 11-ready apps to your users. In this webinar, you’ll: Explore iOS 11 UI changes, including adapting to the iPhone X form…
What Singleton Pattern is in C# and its implementation
In another post I discussed how to implement Inversion of Control Pattern in C#. In this post I should explain what a singleton is. The singleton pattern is one of the best-known patterns in software engineering. Essentially, a singleton is a class which only allows a single instance of itself to be created and usually gives simple access to that instance. Most commonly, singletons don’t allow any parameters to be specified when creating the instance – as otherwise, a second request for an instance but with a different parameter could…
How To Append ‘st’, ‘nd’, ‘rd’ or ‘th’ To Day Numbers in Dates
For a new project, my client required to output date strings in a format that included the two letter suffix added to the day number, like in British date (“January 1st 2018” as opposed to “January 1 2018”). The solution makes use of the custom formatting capabilities in the framework whereby it is possible to implement the IFormatProvider and ICustomFormatter interfaces to provide custom string formatting for use with methods that support formatting such as String.Format() or Console.WriteLine(). I decided to extend the existing DateTime format provision in the framework…
Xamarin Forms: TranslateY (or other properties) for platform
Sometimes you need to change a value for a specific platform and this value is a Double, for example. I spent a couple of minutes to find a working code. <Label> <Label.TranslationY> <OnPlatform x:TypeArguments=”x:Double” Android=”-10″ /> </Label.TranslationY> </Label> Happy coding!
Enable and control iOS 11 Large Titles in Xamarin.Forms
Apple introduced with iOS 11 a new UI in particular for larger titles: if you open your email, you see at the top a large title. That sit in the Navigation Bar and can be scrolled away when more space is needed. We can enable large titles with a renderer. For this example, I only created a new project and added the following renderer in the iOS project under Renderers folder. You can easily add to all your solution the following renderer in your iOS project: using System; using YourProject.iOS.Renderers;…