Want to receive every Tuesday the best .NET links?
Once subscribed you can login, submit a link and receive the weekly newsletter.
by bill-s, 2018-02-10T06:50:43.000Z
Today I’m excited to announce a new experimental project from the ASP.NET team called Blazor. Blazor is an experimental web UI framework based on C#, Razor, and HTML that runs in the browser via WebAssembly. Blazor promises to greatly simplify the task of building fast and beautiful single-page applications that run in any browser. It does this by enabling developers to write .NET-based web apps that run client-side in web browsers using open web standards.by bill-s, 2018-02-10T06:49:10.000Z
C# 7 added Tuples and provides an awesome syntax for accessing them. C# 7.1 improved the usability of tuples further with Tuple Name Inference. However, sometimes you need to access them dynamically and this can be tricky.by bill-s, 2018-02-10T08:17:26.000Z
This post discusses WebSocket lifetime (with special focus on scenarios where the WebSocket is handed of to some kind of service/manager) and how to handle prematurely closed connections.by bill-s, 2018-02-10T06:54:16.000Z
Today the ASP.NET team announced that Blazor has moved into the ASP.NET organization, and we’re beginning an experimental phase to see whether we can develop it into a supported shipping product. This is a big step forwards! What is Blazor? It’s a framework for browser-based (client-side) applications written in .NET, running under WebAssembly. It gives you all the benefits of a rich, modern single-page application (SPA) platform while letting you use .NET end-to-end, including sharing code across server and client. The announcement post covers more about the intended use cases, timescales, and so on.by bill-s, 2018-02-14T21:05:45.755Z
Cloud services like Microsoft Azure do a great job of providing runtimes for webapps — you can deploy a web server from Visual Studio with a couple of clicks. But many applications don’t fit that mould — I found myself needing to deploy a custom MQTT server for IoT applications instead of paying a fortune for messaging services like PubNub. This is where containers come in handy.by bill-s, 2018-02-09T11:36:43.000Z
Functional Programming In C# - Function Composition - YouTubeby bill-s, 2018-02-09T16:46:38.000Z
There has been a lot of discussion about how and even if the HttpClient class is testable. And it very much is. So I wanted to write a quick post giving you three options that you can use when you need to write tests involving the HttpClient.by bill-s, 2018-02-10T10:43:10.000Z
When you need to learn a programming language, you buy a book. From books, we learn basics of the language and how to program, but this is only the beginning – there is also a development environment, and the work with it is another complicated story. Let’s take a look at some secrets of Visual Studio and some secrets of classes.by bill-s, 2018-02-09T15:14:23.000Z
In these series of posts, we will see how to secure your .Net Core applications. In this post, we will see how to enforce SSL to your .Net Core applications along with adding HSTS to your .Net production site.by bill-s, 2018-02-14T21:05:45.755Z
This blog walks through the steps to create a slide puzzle with the GrapeCity WinForms data grid.by bill-s, 2018-02-10T08:19:48.000Z
These days it’s pretty hard to be an application developer without running into concepts like big data, data science, artificial intelligence and machine learning. We’re seeing more and more requirements for our applications to include “smart”, “intelligent”, and “predictive” features. And we are seeing a lot more people with titles like “data scientist” appearing on our project teams or in the ranks of our business users. A quick search for “data science” can be pretty daunting when you’re trying to understand what this emerging field is all about. (My search on Bing yielded 4.2 million results.) So where to begin?by bill-s, 2018-02-09T16:46:19.000Z
quicktype infers types from sample JSON data, then outputs strongly typed models and serializers for working with that data in your desired programming language. To use this extension, just copy some JSON and use Edit/Paste JSON as Code.by bill-s, 2018-02-09T14:32:36.000Z
.NET Application Architecture Guidanceby bill-s, 2018-02-10T11:11:31.000Z
How do you convince management to invest time and money into refactoring your legacy monolith? Convincing management of refactoring can be a stopping point for many. It’s your job to provide a cost-benefit analysis of refactoring your legacy monolith and convince your team that this makes sense.by bill-s, 2018-02-10T08:39:56.000Z
The idea behind this blog post is pretty old but I haven’t had enough motivation to write this down till now. Recently, I’ve came across a couple of new articles about AutoMapper and I’ve been struck when I saw how people utilize AutoMapper in their projects. I’ve encountered cases when AutoMapper transforms simple thing like mapping values from object to other into a really complex problem, which results with highly complicated code only for the price of not writing mappings explicitly. Finally, I’ve found a provoking tweet on my timeline that definitely motivated me to materialize my reflections about AutoMapper into the form of this blog post.by bill-s, 2018-02-09T21:18:38.000Z
Technical debt is not primarily caused by clumsy programming, it is a third-order effect of poor communication. Technical debt is a symptom of an underlying lack of appropriate abstractions, which in turn stems from insufficient modelling of the problem domain. This means that necessary communication has not taken place: discussions and decisions to resolve ambiguity and make informed trade-offs have been swept under the rug. Technical debt is the reification of this lack of resolution in code.by bill-s, 2018-02-10T08:22:22.000Z
There are a lot of shoulds in the dev world. We are told we should keep functions small. We should keep check-ins small. Our controllers should be thin. But why? We’re not always told why. Or we are, but it’s not clear, or not convincing enough. For that, thus begins the first in a series of brief articles called… The WHY Seriesby bill-s, 2018-02-10T10:43:42.000Z
In the ideal world, all .Net asynchronous methods support cancellation tokens: When invoking a method, simply pass it a cancellation token. Then, at the appropriate time, cancel the token and the asynchronous operation terminates. Alas! We don’t live in the ideal world. Not every method we might asynchronously invoke works with cancellation tokens. When faced with an asynchronous operation we want to be able to cancel that doesn’t support cancellation tokens, one option is to implement our own cancellation logic by registering a callback with the token. When the token is cancelled, callbacks registered with it are executed.