For most of 2020, one of the projects I’ve been working on is the .NET Functions Framework. This is the .NET implementation of the Functions Framework Contract… but more importantly to most readers, it’s “the way to run .NET code on Google Cloud Functions” (aka GCF). The precise boundary between the Functions Framework and GCF is an interesting topic, but I won’t be going into it in this blog post, because I’m basically more excited to show you the code.
Yesterday, we are releasing the October 2020 Cumulative Update Preview Updates for .NET Framework.
In this article, we are going to learn how to use Attribute-based access control (ABAC) to secure our Blazor WebAssembly application. We have already learned about Role-based access control (RBAC) and how to use roles to secure our app. Here, we are going to do a quick comparison between RBAC and ABAC. Also, we are going to show how to implement Attribute-based access control to provide policies required for the application’s security. We just want to mention that you can find ABAC referred to as Policy-Based Access Control (PBAC) or Claims-Based Access Control (CBAS), so don’t get confused if you find the names like these ones.
Hello again, in this post I'm continuing my series on design patterns in C#, this time focusing on the adaptor pattern! The adapter pattern is useful when you want to use a class that does not fit the design of your existing solution. This is often the case when using legacy or external code. The adapter pattern allows you to define a wrapper which executes the desired behaviour, but exposes it through a method which your solution expects. As always, I think this will become clearer when we delve into our (dinosaur-based) example.
When measuring web performance—especially on page load—it’s not always about a consistent metric, such as how quickly the entire HTML tree loads from the server. It’s helpful to think in terms of perceived performance—do you understand what needs to be rendered now, and what can be rendered later? End users should never have to wait for something that, well, can wait.
A new MvvmCross version is available on NuGet! You can always find the latest changelog in the root of the repository to see what has changed between versions. This is minor version primarily with bugfixes and clean up of code around the Android and iOS presenter code. We have also gone ahead and removed the Network and File plugins as a result of this poll. As an alternative to the File plugin we recommend you to take a look at the NuGet package System.IO.Abstractions. For alternatives to the Network plugin, we can recommend a mix of using Xamarin.Essentials for detecting Network connectivity and for making API requests using
This post is intended to introduce such changes using a basic tutorial about how to build OData service through ASP.NET Core OData 8.0 preview package. Besides, we are looking for requirements of features and reports of any bugs, issues that we can fix before the general availability. Please don’t hesitate to file any kind of issues at ASP.NET Core OData Github Repo.
Hey folks, this is a short but crucial blog post for anyone writing custom middleware for ASP.NET. In this post, we’ll see how we can correctly add headers to an HTTP response and avoid the dreaded System.InvalidOperationException error.
The release of SQL Server Management Studio (SSMS) 18.7 is now generally available for download. Today we’re sharing some of the updates from the release and the ongoing work in SQL Server Management Studio. Download SSMS 18.7 and read on for some highlights from the SSMS release notes. The 18.7 release is the third major release of SSMS in 2020 and expands on our commitment to providing quality tooling for database administration. Key changes include...
In this article, we are going to learn more about the Blazor WebAssembly Role-Based Security and how IdentityServer4 fits in the whole story. Also, we are going to include our API application in this process and protect our endpoints with the required role.
When setting up a custom WebApplicationFactory to allow for testing a REST based API end point you may have the requirement of always needing to send a specific header in with the request. This can be in relation to a specific user agent or an api key etc. depending on the implementation. Adding this into the client in every test can get repeatative so in this post I will show you a way of reducing code duplication.
You can create dynamic pages that will capture input from users using controls such as Text Box, Text Area, Date, Date Time, Dropdown, and Multi-Select Dropdown. This is demonstrated in the Server Side Blazor application Simple Survey available at https://github.com/ADefWebserver/BlazorSimpleSurvey.
When C# first appeared in the summer of 2000, it was immediately clear that something was different. At the time, Microsoft was a massively dominant software company, but it wasn’t known for crafting its own programming languages. Instead, Microsoft preferred to build its own implementations of standard languages (like Visual C++ for C++, or Visual J++ for Java), and amplify them with proprietary frameworks (like MFC). Truth be told, they hadn’t created a language that was entirely their own since BASIC.
I’ve done this a few times, and have failed to document it, and so each time it’s a pain. To be clear, if you’re downloading from FTP, you should have a look here: it’s an excellent, and simple code snippet that will do the job for you.
Classic Path.DirectorySeparatorChar gotchas when moving from .NET Core on Windows to Linux - Scott Hanselman's Blog
An important step in moving my blog to Azure was to consider getting this .NET app, now a .NET Core app, to run on Linux AND Windows. Being able to run on Linux and Windows would give me and others a wider choice of hosting, allow hosting in Linux Containers, and for me, save me money as Linux Hosting tends to be cheaper, even on Azure.
As a JetBrains Developer Advocate, I’ve become more exposed to other languages and technology stacks. Exposure is a good thing, as it allows me to see what the .NET ecosystem does well, and notice the parts where it could improve. One of the places where C# specifically could improve is in its use of Tuples and deconstruction. One of the languages that bare a striking similarity to C# is Kotlin, a programming language created by JetBrains, and that has gained a massive following around the world. In this post, we’ll take a look at Kotlin’s withIndex method, and reimplementing it for C#.
Today we’re happy to announce a new preview of our MVVM Toolkit as part of the Windows Community Toolkit. This update includes changes based on feedback from our community who’ve been using the initial preview of the library. It does contain some breaking changes, so be sure to read our notes about that here if you are updating.