Single Page App Checklist This is a checklist for browser-based Web App without the backend or with a 3rd-party backend.
github.com/mtdvio/going-to-production/blob/master/spa-checklist.md
Going to production – backend API checklist
Serverside checklist This is a checklist for serverside of the Web App.
github.com/mtdvio/going-to-production/blob/master/serverside-checklist.md
A collection of (mostly) technical things every software developer should know about
A collection of (mostly) technical things every software developer should know about
github.com/mtdvio/every-programmer-should-know
Polypane, The browser for ambitious developers
The stand-alone browser for ambitious developers that want to build responsive, accessible and performant websites, and save time while doing so.
polypane.app/
A Complete Guide to Grid Tricks
Our comprehensive guide to CSS grid, focusing on all the settings both for the grid parent container and the grid child elements.
css-tricks.com/snippets/css/complete-guide-grid/
Modern Angular
What is Modern Angular Tooling? With the Angular CLI no longer including a complete out-of-the-box development solution, it is more important than ever to understand the tools at our disposal to improve the developer experience when building Angular applications. Modern Angular Tooling is the term used to describe modern tools that will enable you and your team to build a comprehensive development environment. This development environment takes advantage of the latest improvements in the JavaScript ecosystem to improve productivity, consistency, reliability, scalability and developer experience when building Angular applications and libraries.
dev.to/nrwl/modern-angular-2mp0
Visual Studio – Snippet for Arrange Act Assert comments
I like to comment my tests following the arrange, act, assert pattern.
E.g.
//Arrange
//Act
//Assert
Here is a snippet you can add to “your” snippets folder in Visual Studio 2019:
(or use menu Tools -> Code snippet manager to find your correct path to add to / or Import file).
Filename: C:\Users\andreasp\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets\testmethodcomment_act_arrange_assert.snippet
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> <Title>Test Method Comment - Act Arrange Assert</Title> <Shortcut>testaaa</Shortcut> <Description>Code snippet for a test method structure comments. Act arrange assert</Description> </Header> <Snippet> <Code Language="csharp"> <![CDATA[//Arrange $end$ //Act //Assert ]]></Code> </Snippet> </CodeSnippet> </CodeSnippets>
Restart Visual Studio.
Usage:
Inside testmethod, type:
testaaa [tab]
The 3 comments will be inserted, and cursor below //Arrange comment line.
Use HttpClientFactory and Polly to build rock solid services
In this post I will explain what is HttpClientFactory and Polly retry policies and why you should use them in your next project.
dev.to/rickystam/net-core-use-httpclientfactory-and-polly-to-build-rock-solid-services-2edh
c# – Ignore XML namespace when modelbinding in asp net core web api
So, in order to be able to modelbind XML to a class without taking namespaces into consideration I created new InputFormatter. And I use XmlTextReader in order to ignore namespaces. Microsoft recommends to use XmlReader rather than XmlTextReader. But since XmlTextReader is there still (in .Net 6.0 Preview 3) I’ll use it for now.
Simply create an inputformatter that inherits from XmlSerializerInputFormatter like so:
public class XmlNoNameSpaceInputFormatter : XmlSerializerInputFormatter
{
private const string ContentType = "application/xml";
public XmlNoNameSpaceInputFormatter(MvcOptions options) : base(options)
{
SupportedMediaTypes.Add(ContentType);
}
public override bool CanRead(InputFormatterContext context)
{
var contentType = context.HttpContext.Request.ContentType;
return contentType.StartsWith(ContentType);
}
public override async Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context)
{
var type = GetSerializableType(context.ModelType);
var request = context.HttpContext.Request;
using (var reader = new StreamReader(request.Body))
{
var content = await reader.ReadToEndAsync();
Stream s = new MemoryStream(Encoding.UTF8.GetBytes(content));
XmlTextReader rdr = new XmlTextReader(s);
rdr.Namespaces = false;
var serializer = new XmlSerializer(type);
var result = serializer.Deserialize(rdr);
return await InputFormatterResult.SuccessAsync(result);
}
}
}
Then add it to the inputformatters like so to startup.cs:
services.AddControllers(o =>
{
o.InputFormatters.Add(new XmlNoNameSpaceInputFormatter(o));
})
.AddXmlSerializerFormatters();
Now we can modelbind Person or any other class no matter if there is namespaces or not in the incoming XML. Thanks to @yiyi-you
Source: c# – Ignore XML namespace when modelbinding in asp net core web api – Stack Overflow