Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.
Here are the things that caught my eye this week. I’d love to hear what you found most interesting this week. Let me know in the comments or on Twitter.TypeScript 3.0
Which brings us to TypeScript 3.0! Despite the new big number, 3.0 has few breaking changes (meaning it should be veryeasy to upgrade) and introduces a new flexible and scalable way to structure your projects, powerful new support for operating on parameter lists, new types to enforce explicit checks, better JSX support, an overall better error UX, and much more!Link: https://blogs.msdn.microsoft.com/typescript/2018/07/30/announcing-typescript-3-0/
EFCore.InMemoryHelpers
Provides a wrapper around the EF Core In-Memory Database Provider. Specifically works around the following EF bugs.- InMemory: Improve in-memory key generation Reasoning: For many bootstrapping and integration tests, the id generation should be predictable, i.e. an in-memory persistence should not share static mutable state. This is especially important when using unit tests as a bootstrap to generate ad-hoc data.
- Add foreign key constraint checking to the in-memory provider Reasoning: It is desirable for foreign keys to be validated when running unit tests. This allows bugs to be caught earlier without the need for integration testing against a real database.
- Add support for Timestamp/row version (
[Timestamp]
, and.Property(p => p.X).IsRowVersion()
) Reasoning: It is desirable for exceptions to be thrown when a update violates a RowVersion. This allows bugs to be caught earlier without the need for integration testing against a real database.
HTTP Caching – Client and Network Caching with RFC 7234
Learn how to skip making requests that you may not need to make, so you can avoid wasting time and energy processing uneccessary requests.Highly recommend watching this. Especially since I think ETags seem underused not just for caching purposes but for optimistic concurrency. Link: https://www.youtube.com/watch?v=761puUy8ir4
Standards.REST
A collection of standards and specifications, that help make fantastic HTTP/REST APIs. Don’t reinvent the wheel, use fantastic wheels, hashed out by experts, that solve problems you hadn’t even considered yet.As mentioned in the above talk by Phil Sturgeon, the site provides a list of RFC’s for common problems when building an HTTP API. Link: http://standards.rest/