Framework Design Guidelines, 2nd Edition.pdf
45.3 MB
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries - 2nd Edition 📕
Author 🖊 : Krzysztof Cwalina
〰〰〰〰〰〰
#Book #DotNet #BestPractices
@ProgrammingTip
Author 🖊 : Krzysztof Cwalina
〰〰〰〰〰〰
#Book #DotNet #BestPractices
@ProgrammingTip
Span 🌀
C# gives us great flexibility when it comes to using different kinds of memory. 💎
But the majority of the developers use only the managed one. 🤷🏻♂️
Use Span to work with ANY kind of memory in a safe and very efficient way. Simplify your APIs and use the full power of unmanaged memory❗️
https://news.1rj.ru/str/pgimg/170
[ Article ] : adamsitnik.com/Span
〰〰〰〰〰〰
#CSharp #DotNet
@ProgrammingTip
C# gives us great flexibility when it comes to using different kinds of memory. 💎
But the majority of the developers use only the managed one. 🤷🏻♂️
Use Span to work with ANY kind of memory in a safe and very efficient way. Simplify your APIs and use the full power of unmanaged memory❗️
https://news.1rj.ru/str/pgimg/170
[ Article ] : adamsitnik.com/Span
〰〰〰〰〰〰
#CSharp #DotNet
@ProgrammingTip
Telegram
Programming Tips Resources
Branca as an Alternative to JWT❓🔐
Branca is a catchy name for IETF XChaCha20-Poly1305 AEAD message with an additional version number and timestamp.🕒
It is well suited to be used as an authenticated and encrypted API token. 👥
Branca specification does not specify the payload format. Among others you can use for example JWT payloads but still have modern encryption and smaller token size provided by Branca. ⚡️
Currently there are implemenations for JavaScript, Elixir, Go and PHP and a command line tool for creating and inspecting tokens. ✨
Heads up❗️JWT itself is the payload part of a larger standard called Javanoscript Object Signing and Encryption (JOSE). That said the term JWT has become ubiquitous when actually referring JSON Web Signature (JWS) or JSON Web Encryption (JWE). 🔑
Branca is based on Fernet specification. 💎
Fernet takes an user provided message, a secret key and the current time and generates an Authenticated Encrypted (AE) token. Authenticated encryption specifies a way to secure a message so that a 3rd party cannot fake it, alter it nor read it. 🌀
https://news.1rj.ru/str/pgimg/171
[ Read More ] : kutt.it/branca
〰〰〰〰〰〰
#Branca #Authentication #JWT
@ProgrammingTip
Branca is a catchy name for IETF XChaCha20-Poly1305 AEAD message with an additional version number and timestamp.🕒
It is well suited to be used as an authenticated and encrypted API token. 👥
Branca specification does not specify the payload format. Among others you can use for example JWT payloads but still have modern encryption and smaller token size provided by Branca. ⚡️
Currently there are implemenations for JavaScript, Elixir, Go and PHP and a command line tool for creating and inspecting tokens. ✨
Heads up❗️JWT itself is the payload part of a larger standard called Javanoscript Object Signing and Encryption (JOSE). That said the term JWT has become ubiquitous when actually referring JSON Web Signature (JWS) or JSON Web Encryption (JWE). 🔑
Branca is based on Fernet specification. 💎
Fernet takes an user provided message, a secret key and the current time and generates an Authenticated Encrypted (AE) token. Authenticated encryption specifies a way to secure a message so that a 3rd party cannot fake it, alter it nor read it. 🌀
https://news.1rj.ru/str/pgimg/171
[ Read More ] : kutt.it/branca
〰〰〰〰〰〰
#Branca #Authentication #JWT
@ProgrammingTip
Telegram
Programming Tips Resources
Saving Grandma's Recipes With Xamarin.Forms 👵🏻
When creating mobile apps, you have to create and maintain the user interface and app logic for both iOS and Android separately 🤕 : Objective-C/Swift with XCode and Java with Android Studio. 🤯
That can quickly turn into a pain. With Xamarin.Forms, however, the UI and app logic for your app resides in a single codebase and you get to use a single IDE to maintain it all — saving time and headaches. ✅
In this article, take a lap around Xamarin.Forms to see what it can do for you.💎
My grandma makes the best, most fluffiest, go weak-in-your-knees buns that anybody has ever tasted.😋
The problem is, there’s a ton of secret ingredients (and I’m not just talking love) that go into those buns, and those ingredients and directions are all stored in my grandma’s head. 🤦🏻♂️
We all have family recipes like that, and instead of possibly forgetting them, in this article we’re going to create a mobile app for iOS and Android using Xamarin.Forms that will save them for myself and future generations of my family! 👨👩👧👦
https://news.1rj.ru/str/pgimg/172
[ Article ] : kutt.it/xam
〰〰〰〰〰〰
#Xamarin #Android #IOS
@ProgrammingTip
When creating mobile apps, you have to create and maintain the user interface and app logic for both iOS and Android separately 🤕 : Objective-C/Swift with XCode and Java with Android Studio. 🤯
That can quickly turn into a pain. With Xamarin.Forms, however, the UI and app logic for your app resides in a single codebase and you get to use a single IDE to maintain it all — saving time and headaches. ✅
In this article, take a lap around Xamarin.Forms to see what it can do for you.💎
My grandma makes the best, most fluffiest, go weak-in-your-knees buns that anybody has ever tasted.😋
The problem is, there’s a ton of secret ingredients (and I’m not just talking love) that go into those buns, and those ingredients and directions are all stored in my grandma’s head. 🤦🏻♂️
We all have family recipes like that, and instead of possibly forgetting them, in this article we’re going to create a mobile app for iOS and Android using Xamarin.Forms that will save them for myself and future generations of my family! 👨👩👧👦
https://news.1rj.ru/str/pgimg/172
[ Article ] : kutt.it/xam
〰〰〰〰〰〰
#Xamarin #Android #IOS
@ProgrammingTip
Telegram
Programming Tips Resources
What Happened When I Peeked Into My Node_Modules Directory 🤯
The left-pad fiasco shook the JavaScript community to its core when a rouge developer removed a popular module from npm, causing tens of projects to go dark. ❌
While code bloat continues to slow down our websites, drain our batteries, and make “npm install” slow for a few seconds, many developers like myself have decided to carefully audit the dependencies we bring into our projects. 🌀
It’s time we as a community stand up and say enough is enough, this community belongs to all of us, not just a handful of JavaScript developers with great hair. 👥
I decided to document my experiences in auditing my projects’ dependencies, and I hope you find the following information useful. ✅
https://news.1rj.ru/str/pgimg/173
[ Article ] : kutt.it/nmo
〰〰〰〰〰〰
#JavaScript #NPM
@ProgrammingTip
The left-pad fiasco shook the JavaScript community to its core when a rouge developer removed a popular module from npm, causing tens of projects to go dark. ❌
While code bloat continues to slow down our websites, drain our batteries, and make “npm install” slow for a few seconds, many developers like myself have decided to carefully audit the dependencies we bring into our projects. 🌀
It’s time we as a community stand up and say enough is enough, this community belongs to all of us, not just a handful of JavaScript developers with great hair. 👥
I decided to document my experiences in auditing my projects’ dependencies, and I hope you find the following information useful. ✅
https://news.1rj.ru/str/pgimg/173
[ Article ] : kutt.it/nmo
〰〰〰〰〰〰
#JavaScript #NPM
@ProgrammingTip
Telegram
Programming Tips Resources
Programming Tips 💡
Photo
Object Thinking.pdf
3.7 MB
Object Thinking 📙
Author : David West 🖋
Level : Advanced 💎
〰〰〰〰〰〰
#Book #DesignPatterns #OOP
@ProgrammingTip
Author : David West 🖋
Level : Advanced 💎
〰〰〰〰〰〰
#Book #DesignPatterns #OOP
@ProgrammingTip
PrimeNG 🅰️
PrimeNG is a collection of rich UI components for Angular. 🌈
All widgets are open source and free to use under MIT License. 💸
Features 💎 :
• 80+ Components
• Open Source
• Productivity
• Themes
• Templates
• Mobile
https://news.1rj.ru/str/pgimg/174
[ Website ] : kutt.it/pmng
[ Github ] : kutt.it/pmngi
〰〰〰〰〰〰
#Angular #UIKit
@ProgrammingTip
PrimeNG is a collection of rich UI components for Angular. 🌈
All widgets are open source and free to use under MIT License. 💸
Features 💎 :
• 80+ Components
• Open Source
• Productivity
• Themes
• Templates
• Mobile
https://news.1rj.ru/str/pgimg/174
[ Website ] : kutt.it/pmng
[ Github ] : kutt.it/pmngi
〰〰〰〰〰〰
#Angular #UIKit
@ProgrammingTip
Telegram
Programming Tips Resources
Crontab Guru ⏱
Cron format is a simple, yet powerful and flexible way to define time and frequency of various actions. 🌀
This is a quick and simple editor for Cron schedule expressions by Cronitor. ⚡️
https://news.1rj.ru/str/pgimg/175
[ Website ] : crontab.guru
〰〰〰〰〰〰
#Cron #Timing
@ProgrammingTip
Cron format is a simple, yet powerful and flexible way to define time and frequency of various actions. 🌀
This is a quick and simple editor for Cron schedule expressions by Cronitor. ⚡️
https://news.1rj.ru/str/pgimg/175
[ Website ] : crontab.guru
〰〰〰〰〰〰
#Cron #Timing
@ProgrammingTip
Telegram
Programming Tips Resources
How DNS works ❓
A fun and colorful explanation of how DNS works.✨
Hey there❗️This comic explains what happens when you type a website address in your browser. 🌐
https://news.1rj.ru/str/pgimg/176
[ Website ] : howdns.works
〰〰〰〰〰〰
#DNS #Comic
@ProgrammingTip
A fun and colorful explanation of how DNS works.✨
Hey there❗️This comic explains what happens when you type a website address in your browser. 🌐
https://news.1rj.ru/str/pgimg/176
[ Website ] : howdns.works
〰〰〰〰〰〰
#DNS #Comic
@ProgrammingTip
Telegram
Programming Tips Resources
Framevuerk ✨
Fast, Responsive, Without Dependencies, Both Direction Support and Configurable UI Framework based on Vue.js. 💎
Features ⚡️ :
• Configurable
• No Dependency
• Multi Direction
• Responsive
• SSR Ready
• Fast
https://news.1rj.ru/str/pgimg/177
[ Website ] : framevuerk.com
[ Github ] : kutt.it/frvuerk
〰〰〰〰〰〰
#Vue #UI #Framework
@ProgrammingTip
Fast, Responsive, Without Dependencies, Both Direction Support and Configurable UI Framework based on Vue.js. 💎
Features ⚡️ :
• Configurable
• No Dependency
• Multi Direction
• Responsive
• SSR Ready
• Fast
https://news.1rj.ru/str/pgimg/177
[ Website ] : framevuerk.com
[ Github ] : kutt.it/frvuerk
〰〰〰〰〰〰
#Vue #UI #Framework
@ProgrammingTip
Telegram
Programming Tips Resources
Objects Should Be Immutable 🤫
In object-oriented programming, an object is immutable if its state can’t be modified after it is created. 🤞🏻
In Java/C#, a good example of an immutable object is String.✅
Once created, we can’t modify its state. We can request that it creates new strings, but its own state will never change. ❌
However, there are not so many immutable classes in JDK. Take, for example, class Date. It is possible to modify its state using setTime(). 🕒
This is an incomplete list of arguments in favor of immutability ⚡️:
• Immutable objects are simpler to construct, test, and use
• Truly immutable objects are always thread-safe
• They help to avoid temporal coupling
• Their usage is side-effect free (no defensive copies)
• Identity mutability problem is avoided
• They always have failure atomicity
• They are much easier to cache
• They prevent NULL references, which are bad
Let’s discuss the most important arguments one by one. 🌀
https://news.1rj.ru/str/pgimg/178
[ Article ] : kutt.it/immtb
〰〰〰〰〰〰
#BestPractices #DesignPatterns
@ProgrammingTip
In object-oriented programming, an object is immutable if its state can’t be modified after it is created. 🤞🏻
In Java/C#, a good example of an immutable object is String.✅
Once created, we can’t modify its state. We can request that it creates new strings, but its own state will never change. ❌
However, there are not so many immutable classes in JDK. Take, for example, class Date. It is possible to modify its state using setTime(). 🕒
This is an incomplete list of arguments in favor of immutability ⚡️:
• Immutable objects are simpler to construct, test, and use
• Truly immutable objects are always thread-safe
• They help to avoid temporal coupling
• Their usage is side-effect free (no defensive copies)
• Identity mutability problem is avoided
• They always have failure atomicity
• They are much easier to cache
• They prevent NULL references, which are bad
Let’s discuss the most important arguments one by one. 🌀
https://news.1rj.ru/str/pgimg/178
[ Article ] : kutt.it/immtb
〰〰〰〰〰〰
#BestPractices #DesignPatterns
@ProgrammingTip
Telegram
Programming Tips Resources
Pose 👥
Replace any .NET method (including static and non-virtual) with a delegate. 💎
It is similar to Microsoft Fakes but unlike it Pose is implemented entirely in managed code (Reflection Emit API).✨
Everything occurs at runtime and in-memory, no unmanaged Profiling APIs and no file system pollution with re-written assemblies.⚡️
Example Usage 🔥:
Shim static property getter ⏱:
[ Github ] : github.com/tonerdo/pose
〰〰〰〰〰〰
#CSharp #DotNet #Fake
@ProgrammingTip
Replace any .NET method (including static and non-virtual) with a delegate. 💎
It is similar to Microsoft Fakes but unlike it Pose is implemented entirely in managed code (Reflection Emit API).✨
Everything occurs at runtime and in-memory, no unmanaged Profiling APIs and no file system pollution with re-written assemblies.⚡️
Example Usage 🔥:
Shim static property getter ⏱:
Shim dateTimeShim = Shim.Replace(() => DateTime.Now).With(() => new DateTime(2004, 4, 4));
Usage 👾:// This block executes immediately
PoseContext.Isolate(() =>
{
// All code that executes within this block
// is isolated and shimmed methods are replaced
// Outputs "4/4/04 12:00:00 AM"
Console.WriteLine(DateTime.Now);
}, dateTimeShim);
https://news.1rj.ru/str/pgimg/179[ Github ] : github.com/tonerdo/pose
〰〰〰〰〰〰
#CSharp #DotNet #Fake
@ProgrammingTip
Telegram
Programming Tips Resources
Clean Architecture with ASP.NET Core 2.1 🦋
The explosive growth of web frameworks and the demands of users have changed the approach to building web applications. 🌐
Many challenges exist, and getting started can be a daunting prospect. Let's change that now. ✅
This talk provides practical guidance and recommendations. 💎
This video will cover architecture, technologies, tools, and frameworks. We will examine strategies for organizing your projects, folders and files. ⚡️
We will design a system that is simple to build and maintain - all the way from development to production. You leave this talk inspired and prepared to take your enterprise application development to the next level. 🔥
https://news.1rj.ru/str/pgimg/180
[ Video ] : kutt.it/cav
[ Source Code ] : kutt.it/cag
〰〰〰〰〰〰
#AspNet #Core #CleanCode
@ProgrammingTip
The explosive growth of web frameworks and the demands of users have changed the approach to building web applications. 🌐
Many challenges exist, and getting started can be a daunting prospect. Let's change that now. ✅
This talk provides practical guidance and recommendations. 💎
This video will cover architecture, technologies, tools, and frameworks. We will examine strategies for organizing your projects, folders and files. ⚡️
We will design a system that is simple to build and maintain - all the way from development to production. You leave this talk inspired and prepared to take your enterprise application development to the next level. 🔥
https://news.1rj.ru/str/pgimg/180
[ Video ] : kutt.it/cav
[ Source Code ] : kutt.it/cag
〰〰〰〰〰〰
#AspNet #Core #CleanCode
@ProgrammingTip
Telegram
Programming Tips Resources
Notify Your Angular App Using SignalR 🔥
In this small article we'll walk you through how to create a notification service using .NET Core 2.0 Web Api, .NET Core SignalR & Angular. 💎
Let’s get into business. ✨
[ Article ] : kutt.it/ngnoti
〰〰〰〰〰〰
#AspMvc #Core #Angular #SignalR
@ProgrammingTip
In this small article we'll walk you through how to create a notification service using .NET Core 2.0 Web Api, .NET Core SignalR & Angular. 💎
Let’s get into business. ✨
[ Article ] : kutt.it/ngnoti
〰〰〰〰〰〰
#AspMvc #Core #Angular #SignalR
@ProgrammingTip
Splitting.js ✨
Splitting creates elements and adds CSS variables to unlock amazing possibilities for animating text, grids, and more❗️
https://news.1rj.ru/str/pgimg/181
[ Website ] : splitting.js.org
[ Github ] : kutt.it/splt
〰️〰️〰️〰️〰️〰️
#JavaScript #Animation
@ProgrammingTip
Splitting creates elements and adds CSS variables to unlock amazing possibilities for animating text, grids, and more❗️
https://news.1rj.ru/str/pgimg/181
[ Website ] : splitting.js.org
[ Github ] : kutt.it/splt
〰️〰️〰️〰️〰️〰️
#JavaScript #Animation
@ProgrammingTip
Telegram
Programming Tips Resources
Boost Your Vue.js Workflow With Vue CLI 3 ⚡️
We can hardly imagine modern web development without the help of Command-Line Interface (CLI) tools. 💻
They tremendously facilitate and speed up the development workflow by reducing the amount of repetitive and tedious tasks. ✅
Setting up a project manually, with all the linting, building, testing, preprocessing, optimizing, and dependency tracking features, doesn't sound like a fun job, does it❓
That's why all modern client-side development frameworks (such as Angular, React, etc.) offer their own version of CLI tools, and Vue.js is no exception. 💎
But with its latest third version, Vue CLI is going one step ahead of the others. ✨
It's now not only highly powerful and flexible, but also comes with a full-blown GUI. 🌈
Yeah, you heard right. Vue CLI 3 offers a full graphical user interface out of the box. 🌀
https://news.1rj.ru/str/pgimg/182
[ Article ] : kutt.it/vcli
[ Website ] : cli.vuejs.org
〰️〰️〰️〰️〰️〰️
#Vue #JavaScript #CLI
@ProgrammingTip
We can hardly imagine modern web development without the help of Command-Line Interface (CLI) tools. 💻
They tremendously facilitate and speed up the development workflow by reducing the amount of repetitive and tedious tasks. ✅
Setting up a project manually, with all the linting, building, testing, preprocessing, optimizing, and dependency tracking features, doesn't sound like a fun job, does it❓
That's why all modern client-side development frameworks (such as Angular, React, etc.) offer their own version of CLI tools, and Vue.js is no exception. 💎
But with its latest third version, Vue CLI is going one step ahead of the others. ✨
It's now not only highly powerful and flexible, but also comes with a full-blown GUI. 🌈
Yeah, you heard right. Vue CLI 3 offers a full graphical user interface out of the box. 🌀
https://news.1rj.ru/str/pgimg/182
[ Article ] : kutt.it/vcli
[ Website ] : cli.vuejs.org
〰️〰️〰️〰️〰️〰️
#Vue #JavaScript #CLI
@ProgrammingTip
Telegram
Programming Tips Resources
FAQGURU 🚀
A list of interview questions. ⁉️
This repository is everything you need to prepare for your technical interview. ✅
A collection of super-popular Interview questions, along with answers, and some code-snippets that will help you to prepare for technical interviews. ✨
Many of these questions a real questions from real interviews. 🤙🏻
https://news.1rj.ru/str/pgimg/183
[ Github ] : kutt.it/faqg
〰️〰️〰️〰️〰️〰️
#Interview #Job
@ProgrammingTip
A list of interview questions. ⁉️
This repository is everything you need to prepare for your technical interview. ✅
A collection of super-popular Interview questions, along with answers, and some code-snippets that will help you to prepare for technical interviews. ✨
Many of these questions a real questions from real interviews. 🤙🏻
https://news.1rj.ru/str/pgimg/183
[ Github ] : kutt.it/faqg
〰️〰️〰️〰️〰️〰️
#Interview #Job
@ProgrammingTip
Telegram
Programming Tips Resources
Domain Driven Design - Clear Your Concepts Before You Start ✨
What we traditionally do when we start a business application❓
We read the spec and find the functionalities. We break down tasks. ✅
We do the estimation. We distribute the works among team members. We design the database schema - sometimes by the team leader or sometimes by the respective developer. We start coding. 💻
So❓ What’s wrong with this approach❓We have been doing good❗️Don’t we❓
The answer is YES and NO❗️Yes we are doing good in delivering our projects. But NO❗️
We are not doing good in maintaining and extending our projects. 🤦🏻♂️
Think about all of the projects you have worked last few years in the traditional approach. Did you ever face any of the issues below ? 🤔
Your project has the same functionality implemented in the same way or different in different places. 👥
You have more than one object for the same item. ❌
You have objects that have properties that are not actually attributes of that object. 🙅🏻♂️
You have no or very poor relationship among related items. ↔️
Looking at your objects it is not possible to understand what actually the whole application is all about. 🤷🏻♂️
https://news.1rj.ru/str/pgimg/184
[ Article ] : kutt.it/ddda
〰️〰️〰️〰️〰️〰️
#DDD #Architecture
@ProgrammingTip
What we traditionally do when we start a business application❓
We read the spec and find the functionalities. We break down tasks. ✅
We do the estimation. We distribute the works among team members. We design the database schema - sometimes by the team leader or sometimes by the respective developer. We start coding. 💻
So❓ What’s wrong with this approach❓We have been doing good❗️Don’t we❓
The answer is YES and NO❗️Yes we are doing good in delivering our projects. But NO❗️
We are not doing good in maintaining and extending our projects. 🤦🏻♂️
Think about all of the projects you have worked last few years in the traditional approach. Did you ever face any of the issues below ? 🤔
Your project has the same functionality implemented in the same way or different in different places. 👥
You have more than one object for the same item. ❌
You have objects that have properties that are not actually attributes of that object. 🙅🏻♂️
You have no or very poor relationship among related items. ↔️
Looking at your objects it is not possible to understand what actually the whole application is all about. 🤷🏻♂️
https://news.1rj.ru/str/pgimg/184
[ Article ] : kutt.it/ddda
〰️〰️〰️〰️〰️〰️
#DDD #Architecture
@ProgrammingTip
Telegram
Programming Tips Resources
Tilt.js ✨
A tiny requestAnimationFrame powered 60+fps lightweight parallax hover tilt effect for jQuery. 💎
Alternatives :
• Vanilla JS
• React
• Polymer
https://news.1rj.ru/str/pgimg/185
[ Github ] : github.com/gijsroge/tilt.js
[ Demo ] : gijsroge.github.io/tilt.js/
〰️〰️〰️〰️〰️〰️
#JavaScript #jQuery #Parallax #React
@ProgrammingTip
A tiny requestAnimationFrame powered 60+fps lightweight parallax hover tilt effect for jQuery. 💎
Alternatives :
• Vanilla JS
• React
• Polymer
https://news.1rj.ru/str/pgimg/185
[ Github ] : github.com/gijsroge/tilt.js
[ Demo ] : gijsroge.github.io/tilt.js/
〰️〰️〰️〰️〰️〰️
#JavaScript #jQuery #Parallax #React
@ProgrammingTip
Telegram
Programming Tips Resources
THE JAVASCRIPT EVENT LOOP ⚡️
The Event Loop is one of the most important aspects to understand about JavaScript. ✨
This post explains it in simple terms. 💎
https://news.1rj.ru/str/pgimg/186
[ Article ] : kutt.it/jel
〰️〰️〰️〰️〰️〰️
#JavaScript #EventLoop
@ProgrammingTip
The Event Loop is one of the most important aspects to understand about JavaScript. ✨
This post explains it in simple terms. 💎
https://news.1rj.ru/str/pgimg/186
[ Article ] : kutt.it/jel
〰️〰️〰️〰️〰️〰️
#JavaScript #EventLoop
@ProgrammingTip
Telegram
Programming Tips Resources