Channel: C# 1001 notes
ΠΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ Zenject, Dependency Injection ΠΈ Π²ΡΡ ΡΠ°ΠΊΠΎΠ΅
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ)
Π§ΡΠΎ Π²Π½ΡΡΡΠΈ?
β’ 00:36 - ΠΡΡΠ³ΠΈΠ΅ Π³ΠΎΠ΄Π½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΏΠΎ Π·Π΅Π½Π΄ΠΆΠ΅ΠΊΡΡ
β’ 02:20 - Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Dependency Injection?
β’ 03:39 - ΠΡΠΎΠ±Π»Π΅ΠΌΠ° DI β Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
β’ 04:02 - ΠΡΠΎΠ±Π»Π΅ΠΌΠ° DI β Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
β’ 04:56 - ΠΡΠΎΠ±Π»Π΅ΠΌΠ° DI β ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
β’ 05:45 - Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Zenject?
β’ 06:35 - Binding Π² Zenject
β’ 07:54 - Installer-s Π² Zenject
β’ 09:16 - Context Π² Zenject
β’ 10:54 - ΠΠ°ΠΊ ΡΡΠΎ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
β’ 11:54 - ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Zenject-Π°
β’ 13:04 - ITickable, IInitializable ΠΈ IDisposable
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
https://github.com/dotnet/runhottg.com/issues/101437
#dotNET
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
List Add is way slower (almost 3 times) in `net9.0 preview 3` than with `net8.0` Β· Issue #101437 Β· dotnet/runtime
With the latest preview 3 (net9) there seems to be a major performance regression on MacOS 14.4 (M2 Pro) with lists. Given that they are one of the most used types, it should receive special treatm...
ΠΠ΅ΡΠΆΠΈΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌΠΈ ΠΎ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ .NET-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² AWS.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
β ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ AWS Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ .NET
β Π Π°Π±ΠΎΡΠ° Ρ AWS S3 Π² ASP.NET Core Web API
β Amazon API Gateway Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² .NET
β ΠΠ°ΠΊ Π·Π°ΡΠΈΡΠΈΡΡ Amazon API Gateway Ρ ΠΏΠΎΠΌΠΎΡΡΡ Lambda Authorizer?
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Π ΡΠ°ΠΌΠΊΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ° Phi-3 Microsoft Π²ΡΠΏΡΡΡΠΈΠ»Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ONNX, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅ Β«ONNX Runtime supports Phi-3 mini models across platforms and devicesΒ».
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Phi-3 mini ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ Π½Π° HuggingFace π€
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΡ ΡΡΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊΠ°Ρ C#, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠΎΠΌ Π³Π°ΠΉΠ΄Π΅.
Π Π²ΠΎΡ ΡΠ΅ ΡΠ°ΠΌΡΠ΅ 30 ΡΡΡΠΎΠΊ:
using Microsoft.ML.OnnxRuntimeGenAI;
var modelDirectory = args.Length == 2 ? args[1] :
@"C:\git\oss\Phi-3-mini-4k-instruct-onnx\cuda\cuda-int4-rtn-block-32";
using var model = new Model(modelDirectory);
using var tokenizer = new Tokenizer(model);
while (true)
{
Console.Write("Prompt: ");
var line = Console.ReadLine();
if (line == null) { continue; }
using var tokens = tokenizer.Encode(line);
using var generatorParams = new GeneratorParams(model);
generatorParams.SetSearchOption("max_length", 2048);
generatorParams.SetInputSequences(tokens);
using var generator = new Generator(model, generatorParams);
while (!generator.IsDone())
{
generator.ComputeLogits();
generator.GenerateNextToken();
var outputTokens = generator.GetSequence(0);
var newToken = outputTokens.Slice(outputTokens.Length - 1, 1);
var output = tokenizer.Decode(newToken);
Console.Write(output);
}
Console.WriteLine();
}
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
ΠΡΠΎ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Swagger/OpenAPI 2.0 ΠΈ 3.0 Π΄Π»Ρ .NET, .NET Core, Web API, ASP.NET Core, TypeScript ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ OpenAPI ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ASP.NET Web API ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· ΡΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ OpenAPI.
NSwag ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Swashbuckle (Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ OpenAPI/Swagger) ΠΈ AutoRest (Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°) Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ².
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ OpenAPI ΠΈΠ»ΠΈ JSON Schema (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΡΡΠ»ΠΎΠΊ)
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
QuestPDF β ΡΡΠΎ .NET open-source Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ PDF-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²Π΅ΡΡΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ C# Fluent API.
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ PDF-ΠΎΡΡΠ΅ΡΡ ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ.
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
Harmony β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π·Π°ΠΌΠ΅Π½Ρ ΠΈ Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² .NET ΠΈ Mono Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Harmony ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² C#-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker:
docker run -p 5000:80 simplcommerce/ci-build
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Π ΡΡΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ GitHub ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ML.NET ΠΈ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π²Π½Π΅Π΄ΡΠΈΡΡ ML Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ .NET.
Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΅ΡΡΡ 2 ΡΠΈΠΏΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²/ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:
β ΠΡΠΎΡΠΎΡΠΈΠΏΡ / MVP, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
β ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: ΠΏΡΠΈΠΌΠ΅ΡΡ Π²Π΅Π±- ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ML.NET
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
β
dotnet new --install AntDesign.Templates
Π€ΠΈΡΠΊΠΈ AntDesign:
β Π½Π°Π±ΠΎΡ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Blazor ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ UI Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ WebAssembly Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ SignalR Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°
β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (PWA)
β ΡΠΏΡΠΎΡΠ°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π° ΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΠ·ΡΠΊΠΎΠ²
β Π±Π΅ΡΡΠΎΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ ASP.NET Core MVC ΠΈ Razor Pages
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
β
dotnet add package Riok.Mapperly
Mapperly Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
HTML Embed Code: