Marky β±
JavaScript timer based on
For browsers that don't support
[ Github ] : github.com/nolanlawson/marky
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Measurement #Benchmark #JavaScript
@ProgrammingTip
JavaScript timer based on
performance.mark() and performance.measure(), providing high-resolution timings as well as nice Dev Tools visualizations. πFor browsers that don't support
performance.mark(), it falls back to performance.now() or Date.now(). In Node, it uses process.hrtime(). β¨[ Github ] : github.com/nolanlawson/marky
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Measurement #Benchmark #JavaScript
@ProgrammingTip
Telegram
Programming Tips Resources
Let me tell you about a pretty interesting Telegram channel, which I read often. β
It is curated by Yegor Bugayenko, the CEO of Zerocracy. Yegor regularly blogs and posts short videos about software engineering, programming, startups, investments, and management. π₯
With just a few posts per day you will learn many interesting things, which will provoke you to look at software development from a very different perspective. π
The channel is here β¨ : @yegor256news
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Blogs #Programming
@ProgrammingTip
It is curated by Yegor Bugayenko, the CEO of Zerocracy. Yegor regularly blogs and posts short videos about software engineering, programming, startups, investments, and management. π₯
With just a few posts per day you will learn many interesting things, which will provoke you to look at software development from a very different perspective. π
The channel is here β¨ : @yegor256news
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Blogs #Programming
@ProgrammingTip
Telegram
Programming Tips Resources
Pickr π
Flat, simple, responsive and hackable Color-Picker library. β¨
No dependencies, no jQuery. β‘οΈ
Compatible with all CSS Frameworks e.g. Bootstrap, Materialize. Supports alpha channel, rgba, hsla, hsva and moreβοΈ
[ Demo ] : simonwep.github.io/pickr
[ Github ] : github.com/Simonwep/pickr
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#CSS #FrontEnd
@ProgrammingTip
Flat, simple, responsive and hackable Color-Picker library. β¨
No dependencies, no jQuery. β‘οΈ
Compatible with all CSS Frameworks e.g. Bootstrap, Materialize. Supports alpha channel, rgba, hsla, hsva and moreβοΈ
[ Demo ] : simonwep.github.io/pickr
[ Github ] : github.com/Simonwep/pickr
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#CSS #FrontEnd
@ProgrammingTip
Telegram
Programming Tips Resources
Top Shipment is looking for a remote React Developer Investor and we are giving equity and profit split in exchange for working 25h per week. βοΈ
You qualify for the contract when the web app rolls out. The term is 3 years. β
[ Job Details ] : bit.ly/topproposal π
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Job #Hiring
@ProgrammingTip
You qualify for the contract when the web app rolls out. The term is 3 years. β
[ Job Details ] : bit.ly/topproposal π
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Job #Hiring
@ProgrammingTip
Telegram
Programming Tips Resources
Oh shit, gitβοΈ
Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible. π€·π»ββοΈ
Git documentation has this chicken and egg problem where you can't search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem. π€¦π»ββοΈ
So here are some bad situations I've gotten myself into, and how I eventually got myself out of them in plain english*. β
[ Website ] : ohshitgit.com
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Git #SourceControl
@ProgrammingTip
Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible. π€·π»ββοΈ
Git documentation has this chicken and egg problem where you can't search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem. π€¦π»ββοΈ
So here are some bad situations I've gotten myself into, and how I eventually got myself out of them in plain english*. β
[ Website ] : ohshitgit.com
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Git #SourceControl
@ProgrammingTip
Telegram
Programming Tips Resources
The Evolving Infrastructure of .NET Core β‘οΈ
It would be useful to take a brief look at the history of ASP.NET Core's infrastructure systems and the significant improvements that have been made in the last year or so. π
This post will be interesting if you are interested in build infrastructure or want a behind-the-scenes look at how we build a product as big as .NET Core. π₯
[ Article ] : kutt.it/netInfra
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Microsoft #AspMvc #Core #AspCore
@ProgrammingTip
It would be useful to take a brief look at the history of ASP.NET Core's infrastructure systems and the significant improvements that have been made in the last year or so. π
This post will be interesting if you are interested in build infrastructure or want a behind-the-scenes look at how we build a product as big as .NET Core. π₯
[ Article ] : kutt.it/netInfra
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Microsoft #AspMvc #Core #AspCore
@ProgrammingTip
Telegram
Programming Tips Resources
Are Node.js Modules Singletons ? π€¦π»ββοΈ
Node.js modules can behave like Singletons, but they are not guaranteed to be always singletonβοΈ
There are two reasons for this and both are mentioned in the official Node.js documentation π :
1- Nodeβs module caching mechanism is case-sensitive. π€·π»ββοΈ
2- Modules are cached based on their resolved filename. π£
[ Article ] : kutt.it/nodesingle
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #NodeJS
@ProgrammingTip
Node.js modules can behave like Singletons, but they are not guaranteed to be always singletonβοΈ
There are two reasons for this and both are mentioned in the official Node.js documentation π :
1- Nodeβs module caching mechanism is case-sensitive. π€·π»ββοΈ
2- Modules are cached based on their resolved filename. π£
[ Article ] : kutt.it/nodesingle
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #NodeJS
@ProgrammingTip
Telegram
Programming Tips Resources
Emojis β the fun and weird parts! π
Come get a time out from useful learning and get a brief introduction to the surprisingly interesting world of emojis ! β‘οΈ
Emojis β to most of us they're just a weird distraction from proper language.
They're actually a rather cool piece of technology (βοΈ) with a meaningful impact on society. I'll teach you 3 things you didn't know about emojis, but you'll be glad you do ! β¨
[ Conference ] : kutt.it/emoji
[ Article ] : kutt.it/emojiart
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Emoji #JavaScript
@ProgrammingTip
Come get a time out from useful learning and get a brief introduction to the surprisingly interesting world of emojis ! β‘οΈ
Emojis β to most of us they're just a weird distraction from proper language.
They're actually a rather cool piece of technology (βοΈ) with a meaningful impact on society. I'll teach you 3 things you didn't know about emojis, but you'll be glad you do ! β¨
[ Conference ] : kutt.it/emoji
[ Article ] : kutt.it/emojiart
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Emoji #JavaScript
@ProgrammingTip
Telegram
Programming Tips Resources
JSON API .NET Core β¨
A framework for building json:api compliant web APIs. π
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features such as sorting, filtering and pagination. π
You just need to focus on defining the resources and implementing your custom business logic. ππ»
This library has been designed around dependency injection making extensibility incredibly easy. π
[ Github ] : kutt.it/JsonApiCore
[ Documentation ] : json-api-dotnet.github.io
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#AspMvc #AspCore #DotNet
@ProgrammingTip
A framework for building json:api compliant web APIs. π
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features such as sorting, filtering and pagination. π
You just need to focus on defining the resources and implementing your custom business logic. ππ»
This library has been designed around dependency injection making extensibility incredibly easy. π
[ Github ] : kutt.it/JsonApiCore
[ Documentation ] : json-api-dotnet.github.io
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#AspMvc #AspCore #DotNet
@ProgrammingTip
Telegram
Programming Tips Resources
The Difference Between SHA-1, SHA-2 and SHA-256 Hash Algorithms π
If you have heard about βSHAβ in its many forms, but are not totally sure what itβs an acronym for or why itβs important, weβre going to try to shine a little bit of light on that here today. π
Before we can get to SHA itself though, we need to run through what a hash is, and then weβll get into how SSL certificates use hashes to form digital signatures. π
These are critical concepts to understand before youβll be able to follow what SHA-1 and SHA-2 are. βπ»
[ Article ] : kutt.it/sha256
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Hash #Encryption #Cryptography
@ProgrammingTip
If you have heard about βSHAβ in its many forms, but are not totally sure what itβs an acronym for or why itβs important, weβre going to try to shine a little bit of light on that here today. π
Before we can get to SHA itself though, we need to run through what a hash is, and then weβll get into how SSL certificates use hashes to form digital signatures. π
These are critical concepts to understand before youβll be able to follow what SHA-1 and SHA-2 are. βπ»
[ Article ] : kutt.it/sha256
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Hash #Encryption #Cryptography
@ProgrammingTip
Telegram
Programming Tips Resources
Superstruct π₯
A simple and composable way to validate data in Javascript. β¨
Superstruct makes it easy to define interfaces and then validate JavaScript data against them. β οΈ
Its type annotation API was inspired by Typescript, Flow, Go, and GraphQL, giving it a familiar and easy to understand API. π§
But Superstruct is designed for validating data at runtime, so it throws (or returns) detailed runtime errors for you or your end users. π₯
This is especially useful in situations like accepting arbitrary input in a REST or GraphQL API, but it can even be used to validate internal data structures at runtime when needed. β
[ Github ] : kutt.it/SprStr
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #Validation
@ProgrammingTip
A simple and composable way to validate data in Javascript. β¨
Superstruct makes it easy to define interfaces and then validate JavaScript data against them. β οΈ
Its type annotation API was inspired by Typescript, Flow, Go, and GraphQL, giving it a familiar and easy to understand API. π§
But Superstruct is designed for validating data at runtime, so it throws (or returns) detailed runtime errors for you or your end users. π₯
This is especially useful in situations like accepting arbitrary input in a REST or GraphQL API, but it can even be used to validate internal data structures at runtime when needed. β
[ Github ] : kutt.it/SprStr
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #Validation
@ProgrammingTip
Telegram
Programming Tips Resources
Elasticlunr.js β‘οΈ
Elasticlunr.js is a lightweight full-text search engine developed in JavaScript for browser search and offline search. π
Elasticlunr.js is developed based on Lunr.js, but more flexible than Lunr.js. π₯
Elasticlunr.js provides Query-Time boosting, field search, more rational scoring/ranking methodology, fast computation speed and so on. π
Elasticlunr.js is a bit like Solr, but much smaller and not as bright, but also provide flexible configuration. β¨
[ Website ] : elasticlunr.com
[ Github ] : github.com/weixsong/elasticlunr.js
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #Search
@ProgrammingTip
Elasticlunr.js is a lightweight full-text search engine developed in JavaScript for browser search and offline search. π
Elasticlunr.js is developed based on Lunr.js, but more flexible than Lunr.js. π₯
Elasticlunr.js provides Query-Time boosting, field search, more rational scoring/ranking methodology, fast computation speed and so on. π
Elasticlunr.js is a bit like Solr, but much smaller and not as bright, but also provide flexible configuration. β¨
[ Website ] : elasticlunr.com
[ Github ] : github.com/weixsong/elasticlunr.js
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #Search
@ProgrammingTip
Telegram
Programming Tips Resources
To DDD or not to DDDβWhat to do if your domain is boringβ
But what exactly does a complex domain look likeβ
When does a domain become complex enough to justify the extra cost of applying DDDβ
And why does DDD have to be so expensiveβ
In this talk, I'll challenge some of the DDD common myths, ask a few hard questions and explore what is possible when you stop blindly following what is deemed "the best practice". β¨
I'll share with you a few patterns that you can apply even to projects that are not DDD all the way just yet. You'll walk away with practical knowledge that you can start using right away. π
[ YouTube ] : youtu.be/h6WvetICeo4
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #DomainDrivenDesign #Conference
@ProgrammingTip
"DDD should only be applied to complex domains!" - you've probably heard that over and over again.But what exactly does a complex domain look likeβ
When does a domain become complex enough to justify the extra cost of applying DDDβ
And why does DDD have to be so expensiveβ
In this talk, I'll challenge some of the DDD common myths, ask a few hard questions and explore what is possible when you stop blindly following what is deemed "the best practice". β¨
I'll share with you a few patterns that you can apply even to projects that are not DDD all the way just yet. You'll walk away with practical knowledge that you can start using right away. π
[ YouTube ] : youtu.be/h6WvetICeo4
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#DDD #DomainDrivenDesign #Conference
@ProgrammingTip
Telegram
Programming Tips Resources
Kubernetes for .NET Developers βΈοΈ
Have you started building containerized application and struggled with scaling across multiple hostsβ
Would you like to simplify DevOps tasks such as deployment and configurationβ
Have you heard about Kubernetes and would like to learn moreβ
Then this presentation is for you. π
Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling of applications. π₯
In this presentation, I will walk you through Kubernetes fundamentals, the high level architecture, how would you deploy an ASP.NET Core application to Kubernetes and finally how would you configure and launch auto-scaling, self-healing Kubernetes cluster. β‘οΈ
[ YouTube ] : youtu.be/uh4V2IjSrlI
[ Github ] : kutt.it/KubeAsp
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Kubernetes #DotNet #Core #AspMvc #AspCore
@ProgrammingTip
Have you started building containerized application and struggled with scaling across multiple hostsβ
Would you like to simplify DevOps tasks such as deployment and configurationβ
Have you heard about Kubernetes and would like to learn moreβ
Then this presentation is for you. π
Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling of applications. π₯
In this presentation, I will walk you through Kubernetes fundamentals, the high level architecture, how would you deploy an ASP.NET Core application to Kubernetes and finally how would you configure and launch auto-scaling, self-healing Kubernetes cluster. β‘οΈ
[ YouTube ] : youtu.be/uh4V2IjSrlI
[ Github ] : kutt.it/KubeAsp
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Kubernetes #DotNet #Core #AspMvc #AspCore
@ProgrammingTip
Telegram
Programming Tips Resources
BloomRPC π·
The missing GUI Client for GRPC services. πΈ
Inspired by Postman and GraphQL Playground. β¨
BloomRPC aim to give the simplest and efficient developer experience for exploring and querying your GRPC services. π
Install the client, select your protobuf files and start making requests ! β‘οΈ
No extra steps or configuration needed. βπ»
[ Github ] : github.com/uw-labs/bloomrpc
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#gRPC #Protobuf #GUI
@ProgrammingTip
The missing GUI Client for GRPC services. πΈ
Inspired by Postman and GraphQL Playground. β¨
BloomRPC aim to give the simplest and efficient developer experience for exploring and querying your GRPC services. π
Install the client, select your protobuf files and start making requests ! β‘οΈ
No extra steps or configuration needed. βπ»
[ Github ] : github.com/uw-labs/bloomrpc
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#gRPC #Protobuf #GUI
@ProgrammingTip
Telegram
Programming Tips Resources
Empower Your Microservices with Istio Service Mesh π
Microservices popularity has grown as a lot of organizations are moving their applications to microservices which enables their teams to autonomously own and operate their own microservices. β
The microservices have to communicate with each other so how do you efficiently connect, secure, and monitor those servicesβ
Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. π
In this session, we will cover what is service mesh and why it is important for you, what are the core components of Istio, how to empower your microservices to leverage the features that Istio provides on top of Kubernetes such as service discovery, load balancing, resiliency, observability, and security. β‘οΈ
[ YouTube ] : kutt.it/istio
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Microservice #Kubernetes #Istio
@ProgrammingTip
Microservices popularity has grown as a lot of organizations are moving their applications to microservices which enables their teams to autonomously own and operate their own microservices. β
The microservices have to communicate with each other so how do you efficiently connect, secure, and monitor those servicesβ
Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. π
In this session, we will cover what is service mesh and why it is important for you, what are the core components of Istio, how to empower your microservices to leverage the features that Istio provides on top of Kubernetes such as service discovery, load balancing, resiliency, observability, and security. β‘οΈ
[ YouTube ] : kutt.it/istio
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Microservice #Kubernetes #Istio
@ProgrammingTip
Telegram
Programming Tips Resources
C# 8 Interfaces: Dangerous Assumptions in Default Implementation β οΈ
One of the features that is being promoted about C# 8 interfaces is that we can add members to an interface without breaking existing implementers. β
But we can cause a lot of pain if we aren't careful. π€·π»ββοΈ
Let's look at some code that makes bad assumptions so that we can understand the importance of avoiding these problems. βοΈ
[ Article ] : kutt.it/csdif
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#CSharp #Interfaces
@ProgrammingTip
One of the features that is being promoted about C# 8 interfaces is that we can add members to an interface without breaking existing implementers. β
But we can cause a lot of pain if we aren't careful. π€·π»ββοΈ
Let's look at some code that makes bad assumptions so that we can understand the importance of avoiding these problems. βοΈ
[ Article ] : kutt.it/csdif
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#CSharp #Interfaces
@ProgrammingTip
Telegram
Programming Tips Resources
Don't Create Objects That End With -ER β
Manager, Controller, Helper, Handler, Writer, Reader, Converter, Validator, Router, Dispatcher, Observer, Listener, Sorter, Encoder, Decoder. π€―
This is the class names hall of shame. π€·π»ββοΈ
Have you seen them in your codeβ
In open source libraries youβre usingβ
In pattern booksβ
They are all wrong. β οΈ
What do they have in commonβ
They all end in β-er.β
And whatβs wrong with that βοΈ
They are not "classes", and the objects they instantiate are not objects. Instead, they are collections of procedures pretending to be classes. π€¦π»ββοΈ
[ Article ] : kutt.it/erobj
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Objects #ObjectThinking
@ProgrammingTip
Manager, Controller, Helper, Handler, Writer, Reader, Converter, Validator, Router, Dispatcher, Observer, Listener, Sorter, Encoder, Decoder. π€―
This is the class names hall of shame. π€·π»ββοΈ
Have you seen them in your codeβ
In open source libraries youβre usingβ
In pattern booksβ
They are all wrong. β οΈ
What do they have in commonβ
They all end in β-er.β
And whatβs wrong with that βοΈ
They are not "classes", and the objects they instantiate are not objects. Instead, they are collections of procedures pretending to be classes. π€¦π»ββοΈ
[ Article ] : kutt.it/erobj
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Objects #ObjectThinking
@ProgrammingTip
Telegram
Programming Tips Resources
Using the ReferenceAssemblies NuGet package to build .NET Framework libraries on Linux, without installing Mono π
In this post I show how you can build .NET projects that target .NET Framework versions on Linux, without using Mono! π€·π»ββοΈ
By using the new Microsoft.NETFramework.ReferenceAssemblies NuGet packages from Microsoft you don't need to install anything more than the .NET Core SDK! π₯
[ Article ] : kutt.it/coremono
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#CSharp #DotNet #AspCore #NetCore
@ProgrammingTip
In this post I show how you can build .NET projects that target .NET Framework versions on Linux, without using Mono! π€·π»ββοΈ
By using the new Microsoft.NETFramework.ReferenceAssemblies NuGet packages from Microsoft you don't need to install anything more than the .NET Core SDK! π₯
[ Article ] : kutt.it/coremono
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#CSharp #DotNet #AspCore #NetCore
@ProgrammingTip
Telegram
Programming Tips Resources
Don't Let the Internet Dupe You, Event Sourcing is Hard π
I'm going to give it to you straight: Event Sourcing actually comes with drawbacks. π€·π»ββοΈ
If you've read anything about the topic on the internet this will surely shock you. π€¨
After all, it's commonly sold as one big fat bag of sunshine and rainbows. β¨
You got some kind of a problemβ
Turns out its actually solved by event sourcing βοΈ
In fact, most of your life troubles up till now were probably directly caused by your lack of event sourcing.
You, having been seduced by the internet, are probably off to start your event sourcing journey and begin living the good life. β
Well, before you do that, I'm here to ruin it for you and tell you that event sourcing is not actually a bag filled with pure joy, but instead a bag filled with mines designed to blow your legs off and leave you to a crippled life filled with pain. βΏοΈ
Event Sourcing is Hard βΌοΈ
[ Article ] : kutt.it/ESHard
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#EventSourcing #EventStore #Event
@ProgrammingTip
I'm going to give it to you straight: Event Sourcing actually comes with drawbacks. π€·π»ββοΈ
If you've read anything about the topic on the internet this will surely shock you. π€¨
After all, it's commonly sold as one big fat bag of sunshine and rainbows. β¨
You got some kind of a problemβ
Turns out its actually solved by event sourcing βοΈ
In fact, most of your life troubles up till now were probably directly caused by your lack of event sourcing.
You, having been seduced by the internet, are probably off to start your event sourcing journey and begin living the good life. β
Well, before you do that, I'm here to ruin it for you and tell you that event sourcing is not actually a bag filled with pure joy, but instead a bag filled with mines designed to blow your legs off and leave you to a crippled life filled with pain. βΏοΈ
Event Sourcing is Hard βΌοΈ
[ Article ] : kutt.it/ESHard
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#EventSourcing #EventStore #Event
@ProgrammingTip
Telegram
Programming Tips Resources
Running async tasks on app startup in ASP.NET Core 3.0 β‘οΈ
In this post, I describe how a small change in the ASP.NET Core 3.0 WebHost makes it easier to run asynchronous tasks on app startup using IHostedService. β
Unfortunately, in 2.x it wasn't possible to use any of the built-in ASP.NET Core primitives to achieve this β :
β’ IStartupFilter has a synchronous API, so would require doing sync over async. π€¦π»ββοΈ
β’ IApplicationLifetime has a synchronous API and raises the ApplicationStarted event after the server starts handling requests. π€·π»ββοΈ
β’ IHostedService has an asynchronous API, but is executed after the server is started and starts handling requests. ππ»
With ASP.NET Core 3.0, a small change in the WebHost code makes a big difference - we no longer need these solutions, and can use IHostedService without the previous concernsβοΈ
[ Article ] : kutt.it/asphost
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#AspNet #AspMvc #AspCore
@ProgrammingTip
In this post, I describe how a small change in the ASP.NET Core 3.0 WebHost makes it easier to run asynchronous tasks on app startup using IHostedService. β
Unfortunately, in 2.x it wasn't possible to use any of the built-in ASP.NET Core primitives to achieve this β :
β’ IStartupFilter has a synchronous API, so would require doing sync over async. π€¦π»ββοΈ
β’ IApplicationLifetime has a synchronous API and raises the ApplicationStarted event after the server starts handling requests. π€·π»ββοΈ
β’ IHostedService has an asynchronous API, but is executed after the server is started and starts handling requests. ππ»
With ASP.NET Core 3.0, a small change in the WebHost code makes a big difference - we no longer need these solutions, and can use IHostedService without the previous concernsβοΈ
[ Article ] : kutt.it/asphost
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#AspNet #AspMvc #AspCore
@ProgrammingTip
Telegram
Programming Tips Resources