Implementing Domain Driven Design ✅
This is a practical guide for implementing the Domain Driven Design (DDD). While the implementation details rely on the ABP Framework infrastructure, core concepts, principles and patterns are applicable in any kind of solution, even if it is not a .NET solution. 💎
[ Article ] : kutt.it/ddd-impl
〰️〰️〰️〰️〰️〰️
#DDD #DomainDrivenDesign
@ProgrammingTip
This is a practical guide for implementing the Domain Driven Design (DDD). While the implementation details rely on the ABP Framework infrastructure, core concepts, principles and patterns are applicable in any kind of solution, even if it is not a .NET solution. 💎
[ Article ] : kutt.it/ddd-impl
〰️〰️〰️〰️〰️〰️
#DDD #DomainDrivenDesign
@ProgrammingTip
Telegram
Programming Tips Resources
Proto.Actor 💎
Cross-platform actors for .NET, Go, Java and Kotlin. ⚡️
The Actor Model provides a higher level of abstraction for writing concurrent and distributed systems. It alleviates the developer from having to deal with explicit locking and thread management, making it easier to write correct concurrent and parallel systems. ✨
Features ✅:
• Simple Concurrency & Distribution
• Extreme Performance
• Resilient by Design
• Built on standards
• Virtual Actors
• Distributed by Default
• Supervision & monitoring
• Communications on gRPC
[ Website ] : https://proto.actor
[ Github ] : https://github.com/AsynkronIT/protoactor-dotnet
〰️〰️〰️〰️〰️〰️
#Actor #ActorModel #CSharp #Go #Kotlin
@ProgrammingTip
Cross-platform actors for .NET, Go, Java and Kotlin. ⚡️
The Actor Model provides a higher level of abstraction for writing concurrent and distributed systems. It alleviates the developer from having to deal with explicit locking and thread management, making it easier to write correct concurrent and parallel systems. ✨
Features ✅:
• Simple Concurrency & Distribution
• Extreme Performance
• Resilient by Design
• Built on standards
• Virtual Actors
• Distributed by Default
• Supervision & monitoring
• Communications on gRPC
[ Website ] : https://proto.actor
[ Github ] : https://github.com/AsynkronIT/protoactor-dotnet
〰️〰️〰️〰️〰️〰️
#Actor #ActorModel #CSharp #Go #Kotlin
@ProgrammingTip
Telegram
Programming Tips Resources
Awesome Software Architecture 🕶
Curated list of awesome articles and resources to learn and practice about software architecture, patterns and principles. this repository will be updated continuously, keep yourself up to date. ✨
[ Github ] : kutt.it/awsArch
〰️〰️〰️〰️〰️〰️
#Architecture #Awesome
@ProgrammingTip
Curated list of awesome articles and resources to learn and practice about software architecture, patterns and principles. this repository will be updated continuously, keep yourself up to date. ✨
[ Github ] : kutt.it/awsArch
〰️〰️〰️〰️〰️〰️
#Architecture #Awesome
@ProgrammingTip
Telegram
Programming Tips Resources
Vuestic UI - Free and Open Source UI components library for Vue 3 🌈
Vuestic UI is a components library for Vue 3. 💎
It features more than 50 highly customisable components, forever free and Open Source. Vuestic Admin (https://github.com/epicmaxco/vuestic-admin) is a great example of a real-world web application based on Vuestic UI and is used to quicly bootstrap frontends of web applications.
[ Github ] : https://github.com/epicmaxco/vuestic-ui
〰️〰️〰️〰️〰️〰️
#FrontEnd #Vue #UiKit
@ProgrammingTip
Vuestic UI is a components library for Vue 3. 💎
It features more than 50 highly customisable components, forever free and Open Source. Vuestic Admin (https://github.com/epicmaxco/vuestic-admin) is a great example of a real-world web application based on Vuestic UI and is used to quicly bootstrap frontends of web applications.
[ Github ] : https://github.com/epicmaxco/vuestic-ui
〰️〰️〰️〰️〰️〰️
#FrontEnd #Vue #UiKit
@ProgrammingTip
Telegram
Programming Tips Resources
The Soul of Erlang and Elixir • Saša Jurić • GOTO 2019 ✨
Whether you're developing a small web site or a large-scale distributed system, Erlang and Elixir are great tools for building server-side systems. Both languages can help you start quickly and deal with highly complex problems at a large scale. 💨
This talk aims to explain what makes Erlang and Elixir suitable for such tasks. We'll look past the syntax and the ecosystem, focusing instead on the concurrency model of these languages.
Combining a bit of high-level theory and a couple of demos, we'll examine some important properties of Erlang/Elixir concurrency, with a special emphasis on why these properties are very relevant when building highly available systems.
The talk targets experienced backend developers, but no knowledge of Erlang or Elixir is required. ✅
[ YouTube ] : youtu.be/JvBT4XBdoUE
〰️〰️〰️〰️〰️〰️
#Concurrency #Erland #Elixir
@ProgrammingTip
Whether you're developing a small web site or a large-scale distributed system, Erlang and Elixir are great tools for building server-side systems. Both languages can help you start quickly and deal with highly complex problems at a large scale. 💨
This talk aims to explain what makes Erlang and Elixir suitable for such tasks. We'll look past the syntax and the ecosystem, focusing instead on the concurrency model of these languages.
Combining a bit of high-level theory and a couple of demos, we'll examine some important properties of Erlang/Elixir concurrency, with a special emphasis on why these properties are very relevant when building highly available systems.
The talk targets experienced backend developers, but no knowledge of Erlang or Elixir is required. ✅
[ YouTube ] : youtu.be/JvBT4XBdoUE
〰️〰️〰️〰️〰️〰️
#Concurrency #Erland #Elixir
@ProgrammingTip
Telegram
Programming Tips Resources
Lowering in C#: What's really going on in your code? 👾
If you're attending NDC you probably think you know what a foreach loop does - it iterates over a collection, right? ✅
BUT do you know how? Do you know what the C# compiler does when you write a foreach loop? What about a lambda expression? Or the re-entrant magic that is a yield return statement❓
In this session we'll dive into Roslyn, the C# compiler, and learn about lowering and how it helps the compiler do its job, and what it does to your code. In the process you'll gain the skills to identify some of the common performance pitfalls of .NET, as well as just get a deeper understanding of what the code you write really does. 💎
[ YouTube ] : https://youtu.be/gc1AxbNybvw
〰️〰️〰️〰️〰️〰️
#CSharp #LowLevel #Compiler #Roslyn
@ProgrammingTip
If you're attending NDC you probably think you know what a foreach loop does - it iterates over a collection, right? ✅
BUT do you know how? Do you know what the C# compiler does when you write a foreach loop? What about a lambda expression? Or the re-entrant magic that is a yield return statement❓
In this session we'll dive into Roslyn, the C# compiler, and learn about lowering and how it helps the compiler do its job, and what it does to your code. In the process you'll gain the skills to identify some of the common performance pitfalls of .NET, as well as just get a deeper understanding of what the code you write really does. 💎
[ YouTube ] : https://youtu.be/gc1AxbNybvw
〰️〰️〰️〰️〰️〰️
#CSharp #LowLevel #Compiler #Roslyn
@ProgrammingTip
Telegram
Programming Tips Resources
Looking inside ConfigurationManager in .NET 6 ✅
However ConfigurationManager is very much an implementation detail. It was introduced to optimise a specific scenario (which I'll describe shortly), but for the most part, you don't need to (and won't) know you're using it.
In this post, We take a look at the ConfigurationManager class, why it was added, and some of the code used to implement it.
[ Article ] : https://kutt.it/cfg-mgr
〰️〰️〰️〰️〰️〰️
#DotNet #AspNetCore
@ProgrammingTip
ConfigurationManager
was added to support ASP.NET Core's new WebApplication model, used for simplifying the ASP.NET Core startup code. 🧹However ConfigurationManager is very much an implementation detail. It was introduced to optimise a specific scenario (which I'll describe shortly), but for the most part, you don't need to (and won't) know you're using it.
In this post, We take a look at the ConfigurationManager class, why it was added, and some of the code used to implement it.
[ Article ] : https://kutt.it/cfg-mgr
〰️〰️〰️〰️〰️〰️
#DotNet #AspNetCore
@ProgrammingTip
Telegram
Programming Tips Resources
Functional architecture - The pits of success ✅
Object-oriented architects and developers have, over the years, learned many hard lessons about successfully designing systems with object-oriented programming. This has led to a plethora of ‘best practices’ that are painfully passed on from older to younger generations via books, lectures, consulting, blog posts, etc.
Many of these ‘best practices’ must be explicitly taught, because they don’t evolve naturally from object-oriented programming. Surprisingly, many of these hard-won ‘best practices’ fall naturally into place when applying functional programming.
Instead of deliberate design, functional programming forms pits of success where you naturally fall into the same ‘best practices’ that you have to deliberately work for in object-oriented programming.
In this session, you’ll learn about a handful of such ‘best practices’, and how functional programming automatically leads you there, without your explicit effort.
[ YouTube ]: youtu.be/US8QG9I1XW0
〰️〰️〰️〰️〰️〰️
#Architecture #Functional #Paradigms
@ProgrammingTip
Object-oriented architects and developers have, over the years, learned many hard lessons about successfully designing systems with object-oriented programming. This has led to a plethora of ‘best practices’ that are painfully passed on from older to younger generations via books, lectures, consulting, blog posts, etc.
Many of these ‘best practices’ must be explicitly taught, because they don’t evolve naturally from object-oriented programming. Surprisingly, many of these hard-won ‘best practices’ fall naturally into place when applying functional programming.
Instead of deliberate design, functional programming forms pits of success where you naturally fall into the same ‘best practices’ that you have to deliberately work for in object-oriented programming.
In this session, you’ll learn about a handful of such ‘best practices’, and how functional programming automatically leads you there, without your explicit effort.
[ YouTube ]: youtu.be/US8QG9I1XW0
〰️〰️〰️〰️〰️〰️
#Architecture #Functional #Paradigms
@ProgrammingTip
Telegram
Programming Tips Resources
Nuke Build 🗂
As C# developers, we are spoiled with a great language and awesome IDEs.
Why do most automation systems never really match the level of convenience and integration that we're used to?
NUKE is different. 💎
It is fully based on C# console applications and uses the type system to its full extent.
You want your auto-completion, package management, debugging, refactorings, formatting, and navigation back? It’s available right there❗️
[ Website ] : https://nuke.build/
[ GitHub ] : github.com/nuke-build/nuke
〰️〰️〰️〰️〰️〰️
#CSharp #Dotnet #BuildSystem
@ProgrammingTip
As C# developers, we are spoiled with a great language and awesome IDEs.
Why do most automation systems never really match the level of convenience and integration that we're used to?
NUKE is different. 💎
It is fully based on C# console applications and uses the type system to its full extent.
You want your auto-completion, package management, debugging, refactorings, formatting, and navigation back? It’s available right there❗️
[ Website ] : https://nuke.build/
[ GitHub ] : github.com/nuke-build/nuke
〰️〰️〰️〰️〰️〰️
#CSharp #Dotnet #BuildSystem
@ProgrammingTip
Telegram
Programming Tips Resources
Source Link 🐞
Source Link is a language- and source-control agnostic system for providing first-class source debugging experiences for binaries.
The goal of the project is to enable anyone building NuGet libraries to provide source debugging for their users with almost no effort.
Microsoft libraries, such as .NET Core and Roslyn have enabled Source Link.
Source Link is supported by Microsoft. ✅
〰️〰️〰️〰️〰️〰️
#DotNet #CSharp #Debugging
@ProgrammingTip
Source Link is a language- and source-control agnostic system for providing first-class source debugging experiences for binaries.
The goal of the project is to enable anyone building NuGet libraries to provide source debugging for their users with almost no effort.
Microsoft libraries, such as .NET Core and Roslyn have enabled Source Link.
Source Link is supported by Microsoft. ✅
〰️〰️〰️〰️〰️〰️
#DotNet #CSharp #Debugging
@ProgrammingTip
Telegram
Programming Tips Resources
Newsletter 🗞
In this newsletter, we will talk about the following:
• Retry patterns ♻️
• Evolution of the Netflix API architecture 🔝
• How does stop loss work❓
• Chaos Engineering 🤯
[ Article ] : https://kutt.it/newsletter1
〰️〰️〰️〰️〰️〰️
#Newsletter #Retry #Chaos_Engineering #API_Gateway
@ProgrammingTip
In this newsletter, we will talk about the following:
• Retry patterns ♻️
• Evolution of the Netflix API architecture 🔝
• How does stop loss work❓
• Chaos Engineering 🤯
[ Article ] : https://kutt.it/newsletter1
〰️〰️〰️〰️〰️〰️
#Newsletter #Retry #Chaos_Engineering #API_Gateway
@ProgrammingTip
Telegram
Programming Tips Resources
Diagrams - Diagram as Code for prototyping cloud system architectures 🎨
Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools. ✅
You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud etc ...
It also supports On-Premise nodes, SaaS and major Programming frameworks and languages. 🌀
[ GitHub ] : github.com/mingrammer/diagrams
〰️〰️〰️〰️〰️〰️
#Diagram #Architecture #DiagramAsCode
@ProgrammingTip
Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools. ✅
You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud etc ...
It also supports On-Premise nodes, SaaS and major Programming frameworks and languages. 🌀
[ GitHub ] : github.com/mingrammer/diagrams
〰️〰️〰️〰️〰️〰️
#Diagram #Architecture #DiagramAsCode
@ProgrammingTip
Telegram
Programming Tips Resources
ChilliCream GraphQL Platform 🌶
The ChilliCream GraphQL Platform, at its core, is a new way to create powerful Backends. HotChocolate, .NET GraphQL server, connects any service or data source and creates a cohesive service to offer your consumers a unified API. 💎
Hot Chocolate: GraphQL server to create GraphQL endpoints and merge schemas. ✅
Banana Cake Pop: GraphQL IDE to explore, request and analyze any GraphQL endpoint. 🌐
Strawberry Shake: GraphQL client to fetch data from any GraphQL endpoint. 🔁
Green Donut: DataLoader to solve the N+1 problem. 🔂
[ GitHub ] : github.com/ChilliCream/hotchocolate
〰️〰️〰️〰️〰️〰️
#GraphQL #DotNet #AspNetCore
@ProgrammingTip
The ChilliCream GraphQL Platform, at its core, is a new way to create powerful Backends. HotChocolate, .NET GraphQL server, connects any service or data source and creates a cohesive service to offer your consumers a unified API. 💎
Hot Chocolate: GraphQL server to create GraphQL endpoints and merge schemas. ✅
Banana Cake Pop: GraphQL IDE to explore, request and analyze any GraphQL endpoint. 🌐
Strawberry Shake: GraphQL client to fetch data from any GraphQL endpoint. 🔁
Green Donut: DataLoader to solve the N+1 problem. 🔂
[ GitHub ] : github.com/ChilliCream/hotchocolate
〰️〰️〰️〰️〰️〰️
#GraphQL #DotNet #AspNetCore
@ProgrammingTip
Telegram
Programming Tips Resources
WebChatGPT 🔝
This browser extension adds web access capability to ChatGPT. Get much more relevant and up-to-date answers from the chatbot!🆒
[ GitHub ] : github.com/qunash/chatgpt-advanced
〰️〰️〰️〰️〰️〰️
#ChatGPT
@ProgrammingTip
This browser extension adds web access capability to ChatGPT. Get much more relevant and up-to-date answers from the chatbot!
[ GitHub ] : github.com/qunash/chatgpt-advanced
〰️〰️〰️〰️〰️〰️
#ChatGPT
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - interstellard/chatgpt-advanced: WebChatGPT: A browser extension that augments your ChatGPT prompts with web results.
WebChatGPT: A browser extension that augments your ChatGPT prompts with web results. - interstellard/chatgpt-advanced
aspnetcore-developer-roadmap.png
606.9 KB
ASP.NET Core Developer Roadmap in 2023 🔝
Roadmap to becoming an ASP.NET Core developer in 2023 🚀
[ GitHub ] : https://github.com/MoienTajik/AspNetCore-Developer-Roadmap
〰️〰️〰️〰️〰️〰️
#AspNetCore #DotNet #DotNetCore #CSharp
@ProgrammingTip
Roadmap to becoming an ASP.NET Core developer in 2023 🚀
[ GitHub ] : https://github.com/MoienTajik/AspNetCore-Developer-Roadmap
〰️〰️〰️〰️〰️〰️
#AspNetCore #DotNet #DotNetCore #CSharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub Copilot X: The AI-powered developer experience 🏳️
GitHub Copilot is evolving to bring chat and voice interfaces, support pull requests, answer questions on docs, and adopt OpenAI’s GPT-4 for a more personalized developer experience.🆒
[ Article ] : https://kutt.it/CopilotX
〰️〰️〰️〰️〰️〰️
#GitHub #AI #ChatGPT
@ProgrammingTip
GitHub Copilot is evolving to bring chat and voice interfaces, support pull requests, answer questions on docs, and adopt OpenAI’s GPT-4 for a more personalized developer experience.
[ Article ] : https://kutt.it/CopilotX
〰️〰️〰️〰️〰️〰️
#GitHub #AI #ChatGPT
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
GitHub Copilot X
Introducing our vision for the future of AI-powered software development with GitHub Copilot. To learn more visit https://gh.io/copilotx
Stay up-to-date on all things GitHub by subscribing and following us at:
YouTube: http://bit.ly/subgithub
Blog: https://github.blog…
Stay up-to-date on all things GitHub by subscribing and following us at:
YouTube: http://bit.ly/subgithub
Blog: https://github.blog…
WireMock.NET 😮
WireMock.NET is a .NET library for stubbing and mocking HTTP services. With WireMock.NET, you can define the expected responses for particular requests, and the library will intercept and manage those requests for you.✔️
This allows for easy testing of the code that makes HTTP requests, without having to rely on the actual external service being available and without hacking HttpClient.🆒
Sample code snippet:
〰️〰️〰️〰️〰️〰️
#UnitTest #DotNet #CSharp
@ProgrammingTip
WireMock.NET is a .NET library for stubbing and mocking HTTP services. With WireMock.NET, you can define the expected responses for particular requests, and the library will intercept and manage those requests for you.
This allows for easy testing of the code that makes HTTP requests, without having to rely on the actual external service being available and without hacking HttpClient.
Sample code snippet:
[Test][ Blog ] : https://cezarypiatek.github.io/post/mocking-outgoing-http-requests-p1
public async Task sample_WireMock_usage()
{
// Setup WireMock.Net server
using var wireMock = WireMockServer.StartWithAdminInterface(port: 1080, ssl: false);
// Setup WebApplicationFactory
await using var appFactory = new WebApplicationFactory<Program>().WithWebHostBuilder(builder =>
{
builder.ConfigureAppConfiguration(configurationBuilder =>
{
// Override downstream service addresses pointing to WireMock address
configurationBuilder.AddInMemoryCollection(new Dictionary<string, string>
{
["ExternalServices:WeatherService"] = "http://localhost:1080"
});
});
});
// Prepare stub for outgoing request
wireMock
.Given(
Request.Create()
.WithPath("/api/v1.0/weather")
.WithParam("lat", "10.99")
.WithParam("lon", "44.34")
.UsingGet()
)
.RespondWith(
Response.Create()
.WithStatusCode(200)
.WithHeader("Content-Type", "application/json; charset=utf-8")
.WithBodyAsJson(new
{
temp = 298.48,
feels_like = 298.74,
temp_min = 297.56,
temp_max = 300.05,
pressure = 1015,
humidity = 64
})
);
// Automate tested app
}
〰️〰️〰️〰️〰️〰️
#UnitTest #DotNet #CSharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
Check out new C# 12 preview features! ⚡️
Three new features for C# 12😮 :
1️⃣ - Primary constructors for non-record classes and structs :
2️⃣ - Using aliases for any type:
3️⃣ - Default values for lambda expression parameters:
〰️〰️〰️〰️〰️〰️
#CSharp #DotNet
@ProgrammingTip
Three new features for C# 12
public class Student(int id, string name, IEnumerable<decimal> grades)
{
public Student(int id, string name) : this(id, name, Enumerable.Empty<decimal>()) { }
public int Id => id;
public string Name { get; set; } = name.Trim();
public decimal GPA => grades.Any() ? grades.Average() : 4.0m;
}
using Measurement = (string, int);
public void F(Measurement x)
{ }
var addWithDefault = (int addTo = 2) => addTo + 1;
addWithDefault(); // 3
addWithDefault(5); // 6
[ Article ] : https://devblogs.microsoft.com/dotnet/check-out-csharp-12-preview〰️〰️〰️〰️〰️〰️
#CSharp #DotNet
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
Raycast 🔥
Raycast is a blazingly fast, totally extendable launcher for MacOS. It lets you use AI (ChatGPT) directly from your launcher, complete tasks, calculate, share common links, and much more.🔝
[ Website ] : https://www.raycast.com
〰️〰️〰️〰️〰️〰️
#MacOS #Launcher #RayCast
@ProgrammingTip
Raycast is a blazingly fast, totally extendable launcher for MacOS. It lets you use AI (ChatGPT) directly from your launcher, complete tasks, calculate, share common links, and much more.
[ Website ] : https://www.raycast.com
〰️〰️〰️〰️〰️〰️
#MacOS #Launcher #RayCast
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources
.NET 8 - Keyed service dependency injection container support 🔝
Keyed services are useful when you have an interface/service with multiple implementations that you want to use in your app. What's more, you need to use each of those implementations in different places in your app.☄️
Sample:
〰️〰️〰️〰️〰️〰️
#DotNet #DotNetCore #AspNetCore #CSharp
@ProgrammingTip
Keyed services are useful when you have an interface/service with multiple implementations that you want to use in your app. What's more, you need to use each of those implementations in different places in your app.
Sample:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddKeyedSingleton<INotificationService, SmsNotificationService>("sms");
builder.Services.AddKeyedSingleton<INotificationService, EmailNotificationService>("email");
builder.Services.AddKeyedSingleton<INotificationService, PushNotificationService>("push");
[ Article ] : https://andrewlock.net/exploring-the-dotnet-8-preview-keyed-services-dependency-injection-support〰️〰️〰️〰️〰️〰️
#DotNet #DotNetCore #AspNetCore #CSharp
@ProgrammingTip
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Programming Tips Resources