Nick Proud
Nick Proud
  • 83
  • 428 430
The Start of My Exciting Self-Hosted Journey
Embark on my self-hosting journey with me as I give you a detailed tour of my new home lab setup. Explore the ins and outs of my personal data center, from the server rack to networking gear, and discover the DIY hosting solutions I've implemented. Join me as I showcase my hardware, Proxmox setup, UPS, pfSense firewall, and self-hosted services. Whether you're a DIY server enthusiast or interested in network security, this homelab tour is sure to inspire your own tech home projects. Start your own tech journey today! #proxmox #selfhosting #networking #infrastructure #homeoffice #tech #pfsense #homeoffice #homeassistant #raspberrypi
มุมมอง: 474

วีดีโอ

How To Make A .NET Worker Services App (Fast)
มุมมอง 1.2Kหลายเดือนก่อน
Discover the exciting world of Worker Services in .NET with me! Unleash the power of these simple yet robust projects for handling repetitive tasks in the background. Elevate your C# software development skills to new heights as we dive into Worker Services together! 💥🔥 #dotnet #microsoft #learntocode #csharp #programmer #programming #code #tech
Software Developer Takes Day Off - Plays Piano in Pajamas
มุมมอง 1.3K2 หลายเดือนก่อน
Join me as on my day off, trading code for the soothing melodies of the piano. Watch as I unwind with a beautiful rendition of Beethoven's Moonlight Sonata, showcasing the importance of hobbies and relaxation in the midst of programming. So sit back, relax, and enjoy this coding break as I play piano inmy cozy pajamas.
Minimal API Mastery: Boost Your ASP.NET Minimal APIs with Data Annotations for Model Validation!
มุมมอง 4202 หลายเดือนก่อน
Learn how to leverage data annotations to validate models effectively in ASP.NET Minimal APIs. In this tutorial, we'll explore the essential techniques and best practices to ensure your API models are accurate and reliable. Perfect for both beginners and experienced developers looking to enhance their ASP.NET skills. 🚀 Key Topics Covered: Introduction to Data Annotations Applying Data Annotatio...
I'M BACK!
มุมมอง 6263 หลายเดือนก่อน
I'm back! This time, in a new office based in my garden. I'm committed to still bringing you C# and .NET content, but I'm also excited to bring you more varied content around subjects such as cloud, with Microsoft Azure, python, javascript, along with other programming languages and AI to make more Software Engineering content. #dotnet #programming #softwaredeveloper #softwaredevelopment #softw...
Easy C# Tutorial - Understand Attributes and Write your Own!
มุมมอง 3.1K5 หลายเดือนก่อน
Dive into the world of C# attributes with my latest video tutorial! Learn how to harness the full potential of attributes in your code, from customization to optimization. Whether you're a seasoned developer or just starting out, understanding attributes is crucial for crafting efficient and flexible C# programs. #dotnet #csharp #softwaredevelopment
Easy Guide to Creating Minimal APIs in ASP.NET
มุมมอง 1.4K6 หลายเดือนก่อน
Discover the simplicity and versatility of Minimal APIs in ASP.NET with my step-by-step tutorial! Learn how to create HTTP GET, PUT, POST, and DELETE methods effortlessly, using a student management app as a real-world example. Whether you're a seasoned developer or new to ASP.NET, this tutorial will empower you to streamline your development process and build powerful APIs with ease. 00:00 Wha...
From Pianist to Software Developer in 1 Year
มุมมอง 3617 หลายเดือนก่อน
Join me as I share my personal journey from an arty kid in Stoke-on-Trent to a self-taught software engineer! 🎨💻 In this video, I reflect on being the 'piano boy' who secretly explored the world of coding and discuss my transition into IT. We'll also tackle imposter syndrome and explore the possibilities of a rewarding software development career without a formal Computer Science degree. Subscr...
Unlock Emotion Detection with ML.NET Sentiment Analysis! 💻😃🔍
มุมมอง 5217 หลายเดือนก่อน
Welcome to the world of sentiment analysis with ML.NET! In this tutorial, we'll guide you through the exciting journey of harnessing machine learning to analyze and understand sentiments in text data. Whether you're a seasoned developer or just starting out, dive into the magic of natural language processing and empower your applications with emotional intelligence! 🌐✨ 🔍 Topics Covered: Introdu...
Revolutionize Your Coding: C# Machine Learning Essentials with ML.NET!
มุมมอง 12K7 หลายเดือนก่อน
Dive into the world of Machine Learning with C#! 🤖✨ In this video, I guide you through building a powerful email subject classifier using ML.NET. Learn step-by-step as we train our model on a real dataset and witness the magic of predicting the an appropriate matching item in action. Whether you're a seasoned developer or just starting out, this tutorial is your gateway to the exciting realm of...
C# 12 - The Best New Features from the .NET 8 Release!
มุมมอง 1.5K8 หลายเดือนก่อน
C# 12 - The Best New Features from the .NET 8 Release!
The Best Way To Generate Random Words In .NET Core (C#)
มุมมอง 3608 หลายเดือนก่อน
The Best Way To Generate Random Words In .NET Core (C#)
Aspect-Oriented Programming with C#, Custom Attributes and PostSharp
มุมมอง 1.1K9 หลายเดือนก่อน
Aspect-Oriented Programming with C#, Custom Attributes and PostSharp
Using P/Invoke in C#: Windows API Integration Made Easy!
มุมมอง 2.5K10 หลายเดือนก่อน
Using P/Invoke in C#: Windows API Integration Made Easy!
Introduction to DateTime in C#: Master the Basics!
มุมมอง 1.6K11 หลายเดือนก่อน
Introduction to DateTime in C#: Master the Basics!
Supercharge Your C# Code: Integrating Python using Python.NET
มุมมอง 34Kปีที่แล้ว
Supercharge Your C# Code: Integrating Python using Python.NET
From Novice to Expert: Harnessing the Power of Raw SQL Queries in Entity Framework with C#
มุมมอง 1.8Kปีที่แล้ว
From Novice to Expert: Harnessing the Power of Raw SQL Queries in Entity Framework with C#
Master Azure Magic: Deploy Blazor to Cloud in Minutes! 🔥🚀
มุมมอง 2Kปีที่แล้ว
Master Azure Magic: Deploy Blazor to Cloud in Minutes! 🔥🚀
Blazor Server vs Blazor WebAssembly: Which is Right for You?
มุมมอง 13Kปีที่แล้ว
Blazor Server vs Blazor WebAssembly: Which is Right for You?
Learning C#? You NEED To Learn Regular Expressions!
มุมมอง 2Kปีที่แล้ว
Learning C#? You NEED To Learn Regular Expressions!
Mastering TCPListener in C#: Building Network Applications from Scratch
มุมมอง 17Kปีที่แล้ว
Mastering TCPListener in C#: Building Network Applications from Scratch
Make an Interactive Blazor App in Less than 20 MINUTES! Learn Routing and Navigation.
มุมมอง 3.6Kปีที่แล้ว
Make an Interactive Blazor App in Less than 20 MINUTES! Learn Routing and Navigation.
Blazor Form Creation: Effortless User Interaction for Web Apps
มุมมอง 7Kปีที่แล้ว
Blazor Form Creation: Effortless User Interaction for Web Apps
Master SQL to Excel Data Export: Entity Framework & ClosedXML | ASP.NET Blazor Tutorial
มุมมอง 2.8Kปีที่แล้ว
Master SQL to Excel Data Export: Entity Framework & ClosedXML | ASP.NET Blazor Tutorial
Create Your Own Chat App: SignalR Mastery in C# & ASP.NET
มุมมอง 35Kปีที่แล้ว
Create Your Own Chat App: SignalR Mastery in C# & ASP.NET
C# Tutorial - How to use Cancellation Tokens. Manage Long-Running Tasks in your Code Efficiently!
มุมมอง 3.3Kปีที่แล้ว
C# Tutorial - How to use Cancellation Tokens. Manage Long-Running Tasks in your Code Efficiently!
C# Tutorial. Records - What They are and How to Use Them
มุมมอง 1.9Kปีที่แล้ว
C# Tutorial. Records - What They are and How to Use Them
The Singleton Pattern in C#. How to Use It...But Should You???
มุมมอง 1.6Kปีที่แล้ว
The Singleton Pattern in C#. How to Use It...But Should You???
Ultimate Guide to C# Generics: Type-Safe and Reusable Code Explained
มุมมอง 1.5Kปีที่แล้ว
Ultimate Guide to C# Generics: Type-Safe and Reusable Code Explained
.NET 8 Preview 1 - New JSON Serializer Features!
มุมมอง 1.9Kปีที่แล้ว
.NET 8 Preview 1 - New JSON Serializer Features!

ความคิดเห็น

  • @gamehacker5692
    @gamehacker5692 2 วันที่ผ่านมา

    Can you send a link to the tab file? I’m able to make them with c# but I don’t have the time to sit there and generate a couple hundred lines of training data lol

  • @victoria__ballesteros__
    @victoria__ballesteros__ 2 วันที่ผ่านมา

    Oh my. My professor asked for a complete social media application and only gave us three days to do it so. This is the last part that I need, you're saving my life

  • @cactusdoodle8619
    @cactusdoodle8619 6 วันที่ผ่านมา

    i like your teaching style! another fan in the US

  • @MarcJensan
    @MarcJensan 6 วันที่ผ่านมา

    I'm pretty new to programming. Instead of creating a method for each page to navigate to, would it not just be possible to use the NavigateTo() method with the parameter? If, then why not do it that way. It seems kind of redundant to write a method for each page?

  • @willgordon5737
    @willgordon5737 8 วันที่ผ่านมา

    How do you spell "Author" in the land of thieves?

  • @yomnaboujelbene
    @yomnaboujelbene 12 วันที่ผ่านมา

    i've got a problem with runtime .pythondll it shows me this error Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. Repeat 2 times: -------------------------------- at Python.Runtime.Runtime.PyObject_GetAttrString(IntPtr, System.String) -------------------------------- at Python.Runtime.Runtime.InitializePlatformData() at Python.Runtime.Runtime.Initialize(Boolean) at Python.Runtime.PythonEngine.Initialize(System.Collections.Generic.IEnumerable`1<System.String>, Boolean, Boolean) at Python.Runtime.PythonEngine.Initialize(Boolean, Boolean) at Python.Runtime.PythonEngine.Initialize() at Program.Main(System.String[]) Sortie de C:\Users\Pc\source epos\WebApplication4\ConsoleApp2\bin\Debug et8.0\ConsoleApp2.exe (processus 15708). Code : -1073741819. Appuyez sur une touche pour fermer cette fenêtre. . .

  • @tajudeensalaudeen5594
    @tajudeensalaudeen5594 15 วันที่ผ่านมา

    Thank you for sharing such an inspiring story. I really appreciate it!

  • @tajudeensalaudeen5594
    @tajudeensalaudeen5594 15 วันที่ผ่านมา

    Thank you for sharing such an inspiring story. I really appreciate it!

  • @user-ok7mi5uz2p
    @user-ok7mi5uz2p 16 วันที่ผ่านมา

    How do you instance worker class into main method of the program.cs???

  • @hom-sha-bom
    @hom-sha-bom 21 วันที่ผ่านมา

    how do you get rid of that console

  • @dchri18
    @dchri18 23 วันที่ผ่านมา

    I personally use Vanara which has all the P/Invoke signature definitions for all things WIN32. It's quite a large library though.

  • @NadirAli-ri7jb
    @NadirAli-ri7jb 25 วันที่ผ่านมา

    What would be the diff between Worker Service and Azure Functions?

  • @bradleyhodgins6354
    @bradleyhodgins6354 27 วันที่ผ่านมา

    Love the video, but don't need the background music please.

  • @user-id2wp4qu6y
    @user-id2wp4qu6y 27 วันที่ผ่านมา

    Is it same for the blazor webassembly?😮

  • @jackhu5780
    @jackhu5780 หลายเดือนก่อน

    Great content, thanks!

  • @EnzoZanchettin
    @EnzoZanchettin หลายเดือนก่อน

    Very high quality content. Appreciate it!

  • @theinvertedworld.
    @theinvertedworld. หลายเดือนก่อน

    hello world is such a perfect greeting for a programming channel.

    • @TheOmaJohn
      @TheOmaJohn 4 วันที่ผ่านมา

      I came here to post this a minute ago, you saw me doing it, and you cut in line. I'm very upset.

  • @pezduni
    @pezduni หลายเดือนก่อน

    Thanks for great video !

  • @Diinify
    @Diinify หลายเดือนก่อน

    "But for simple use cases, like *most of them*" 😂Great video, helped me a ton

  • @mdaslamknl
    @mdaslamknl หลายเดือนก่อน

    Good Video Keep it up What exactly you are trying to achieve here Anything specific Thanks

  • @count_of_pizza
    @count_of_pizza หลายเดือนก่อน

    How can you can go back to previous page using NavigationManager?

  • @Sezar_SZ
    @Sezar_SZ หลายเดือนก่อน

    Thanks! Lots of useful stuff in only 11 minutes! Keep up the great work!

  • @itsmuradhossen
    @itsmuradhossen หลายเดือนก่อน

    Thank you for sharing. Would you like share how can we implement the functionalities to start and stop the background worker from a client app.

  • @baole7127
    @baole7127 หลายเดือนก่อน

    I have some problems with loading the dll file, can you help me? I am using the same version as you.

  • @maththaioseleutheriaphilos2320
    @maththaioseleutheriaphilos2320 หลายเดือนก่อน

    Hi, thanks for your work. I have a question, why didn’t you use Using statement before var client ? using var client = _httpClientFactory.CreateClient();

  • @romesupaila1864
    @romesupaila1864 หลายเดือนก่อน

    if i have text like " 15rg,53 pack " or 15rg, pack 53" i need 53 value only how its through regex

    • @nickproudprogrammer
      @nickproudprogrammer หลายเดือนก่อน

      Are those patterns always the same? If they are you can do a match check against those two patterns

  • @DevOpsHasan
    @DevOpsHasan หลายเดือนก่อน

    Please share a video on explaining Reflection.

  • @Ocean7653
    @Ocean7653 2 หลายเดือนก่อน

    Great video! Please share some recommended text for networking with c#

  • @leviathanGT350
    @leviathanGT350 2 หลายเดือนก่อน

    Hi Nick. Very clear explanations. Thank you!!

  • @tanujdeshmukh
    @tanujdeshmukh 2 หลายเดือนก่อน

    Question: if i want to use python script for data processing and then create the domain objects in c# what would be the best strategy to do it?

  • @Enfetamina
    @Enfetamina 2 หลายเดือนก่อน

    Nice explanation, thanks a lot :)

  • @harrivayrynen
    @harrivayrynen 2 หลายเดือนก่อน

    Nice tutorial. One question has anyone made as good video like this where also concurrency is implemented. I mean for example situation where multiple users are updating or reading same table or even rows at the same time from own computers.

  • @manishpachauri9801
    @manishpachauri9801 2 หลายเดือนก่อน

    Lol 😂😂 i am working with mvc and call this function again py.gil() hangs give any solution for this@

  • @ivgnes
    @ivgnes 2 หลายเดือนก่อน

    Project source code in GitHub?

  • @Rokoasusmous
    @Rokoasusmous 2 หลายเดือนก่อน

    What C# extension are you using to display the debugging results next to each line?

  • @NinaLees-o3h
    @NinaLees-o3h 2 หลายเดือนก่อน

    Love this Nick!

  • @ManishPachauri-kv1zo
    @ManishPachauri-kv1zo 2 หลายเดือนก่อน

    can anyone tell why py.gil() hangs on when we call again

  • @pinetree5184
    @pinetree5184 2 หลายเดือนก่อน

    Great stuff!

  • @skyhappy
    @skyhappy 2 หลายเดือนก่อน

    I forgot how relaxing the piano is

  • @thejayzone1
    @thejayzone1 2 หลายเดือนก่อน

    Awesome!

  • @kashifalam-hs7sx
    @kashifalam-hs7sx 2 หลายเดือนก่อน

    Your videos are Amazing We have an editing team that can help enhance your content. Is there any way we can assist you with your channel? Thanks, Kashif Alam

  • @theway5258
    @theway5258 2 หลายเดือนก่อน

    Hey LoadingColumn(0) is not a Subject column. It is a Number column the first one.

  • @kvelez
    @kvelez 2 หลายเดือนก่อน

    using Newtonsoft.Json; using System.Text.Json; var blogPost = new BlogPost { Title = "Hello, World!", Body = "This is my first blog post.", Author = "John Doe", IsPublic = true, PublishDate = new DateTime(2021, 1, 1) }; // Using System.Text.Json JsonService.Serialize(blogPost); JsonService.Deserialize<BlogPost>(@"{""Title"":""Hello, World!"",""Body"":""This is my first blog post."",""Author"":""John Doe"",""IsPublic"":true,""PublishDate"":""2021-01-01T00:00:00""}"); JsonService.SerializeToFile(blogPost, "blog-post.json"); JsonService.DeserializeFromFile<BlogPost>("blog-post.json"); // Using Newtonsoft.Json NewtonJsonService.Serialize(blogPost); NewtonJsonService.Deserialize<BlogPost>(@"{""Title"":""Hello, World!"",""Body"":""This is my first blog post."",""Author"":""John Doe"",""IsPublic"":true,""PublishDate"":""2021-01-01T00:00:00""}"); NewtonJsonService.SerializeToFile(blogPost, "blog-post-newton.json"); NewtonJsonService.DeserializeFromFile<BlogPost>("blog-post-newton.json"); public class JsonService { public static void Serialize<T>(T obj) { var json = System.Text.Json.JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true }); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{json} "); Console.ResetColor(); } public static T Deserialize<T>(string json) { var obj = System.Text.Json.JsonSerializer.Deserialize<T>(json); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true })); Console.ResetColor(); return obj; } public static void SerializeToFile<T>(T obj, string path) { var json = System.Text.Json.JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(path, json); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Serialized to {path} "); Console.ResetColor(); } public static T DeserializeFromFile<T>(string path) { var json = File.ReadAllText(path); var obj = System.Text.Json.JsonSerializer.Deserialize<T>(json); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true })); Console.ResetColor(); return obj; } } public class NewtonJsonService { public static void Serialize<T>(T obj) { var json = JsonConvert.SerializeObject(obj, Formatting.Indented); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{json} "); Console.ResetColor(); } public static T Deserialize<T>(string json) { var obj = JsonConvert.DeserializeObject<T>(json); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(JsonConvert.SerializeObject(obj, Formatting.Indented)); Console.ResetColor(); return obj; } public static void SerializeToFile<T>(T obj, string path) { var json = JsonConvert.SerializeObject(obj, Formatting.Indented); File.WriteAllText(path, json); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Serialized to {path} "); Console.ResetColor(); } public static T DeserializeFromFile<T>(string path) { var json = File.ReadAllText(path); var obj = JsonConvert.DeserializeObject<T>(json); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(JsonConvert.SerializeObject(obj, Formatting.Indented)); Console.ResetColor(); return obj; } } public class BlogPost { public string Title { get; set; } = string.Empty; public string Body { get; set; } = string.Empty; public string Author { get; set; } = string.Empty; public bool IsPublic { get; set; } = false; public DateTime PublishDate { get; set; } = DateTime.Now; }

  • @kvelez
    @kvelez 2 หลายเดือนก่อน

    using Newtonsoft.Json; using System.Text.Json; var blogPost = new BlogPost { Title = "Hello, World!", Body = "This is my first blog post.", Author = "John Doe", IsPublic = true, PublishDate = new DateTime(2021, 1, 1) }; // Using System.Text.Json JsonService.Serialize(blogPost); JsonService.Deserialize<BlogPost>(@"{""Title"":""Hello, World!"",""Body"":""This is my first blog post."",""Author"":""John Doe"",""IsPublic"":true,""PublishDate"":""2021-01-01T00:00:00""}"); JsonService.SerializeToFile(blogPost, "blog-post.json"); JsonService.DeserializeFromFile<BlogPost>("blog-post.json"); // Using Newtonsoft.Json NewtonJsonService.Serialize(blogPost); NewtonJsonService.Deserialize<BlogPost>(@"{""Title"":""Hello, World!"",""Body"":""This is my first blog post."",""Author"":""John Doe"",""IsPublic"":true,""PublishDate"":""2021-01-01T00:00:00""}"); NewtonJsonService.SerializeToFile(blogPost, "blog-post-newton.json"); NewtonJsonService.DeserializeFromFile<BlogPost>("blog-post-newton.json"); public class JsonService { public static void Serialize<T>(T obj) { var json = System.Text.Json.JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true }); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{json} "); Console.ResetColor(); } public static T Deserialize<T>(string json) { var obj = System.Text.Json.JsonSerializer.Deserialize<T>(json); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true })); Console.ResetColor(); return obj; } public static void SerializeToFile<T>(T obj, string path) { var json = System.Text.Json.JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(path, json); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Serialized to {path} "); Console.ResetColor(); } public static T DeserializeFromFile<T>(string path) { var json = File.ReadAllText(path); var obj = System.Text.Json.JsonSerializer.Deserialize<T>(json); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true })); Console.ResetColor(); return obj; } } public class NewtonJsonService { public static void Serialize<T>(T obj) { var json = JsonConvert.SerializeObject(obj, Formatting.Indented); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{json} "); Console.ResetColor(); } public static T Deserialize<T>(string json) { var obj = JsonConvert.DeserializeObject<T>(json); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(JsonConvert.SerializeObject(obj, Formatting.Indented)); Console.ResetColor(); return obj; } public static void SerializeToFile<T>(T obj, string path) { var json = JsonConvert.SerializeObject(obj, Formatting.Indented); File.WriteAllText(path, json); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Serialized to {path} "); Console.ResetColor(); } public static T DeserializeFromFile<T>(string path) { var json = File.ReadAllText(path); var obj = JsonConvert.DeserializeObject<T>(json); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(JsonConvert.SerializeObject(obj, Formatting.Indented)); Console.ResetColor(); return obj; } } public class BlogPost { public string Title { get; set; } = string.Empty; public string Body { get; set; } = string.Empty; public string Author { get; set; } = string.Empty; public bool IsPublic { get; set; } = false; public DateTime PublishDate { get; set; } = DateTime.Now; }

  • @NoirMorter
    @NoirMorter 2 หลายเดือนก่อน

    I'll test this and see if you have the csv in "sharing" if the app can still read it when it's open.

  • @BenHuxford
    @BenHuxford 2 หลายเดือนก่อน

    All great except the Man United shirt 😋

  • @tgwinternational3296
    @tgwinternational3296 2 หลายเดือนก่อน

    Excellent video - your explanation is so clear which makes learning easy and fun. I wish I had found your channel earlier.

  • @YashSharma-qx7zq
    @YashSharma-qx7zq 2 หลายเดือนก่อน

    Love how you explained this can you explain null some time

  • @oya7524
    @oya7524 2 หลายเดือนก่อน

    Hey Nick - thank you for this introduction! It really helped me a bunch! Cheers!

  • @fredimachadonet
    @fredimachadonet 2 หลายเดือนก่อน

    Nice! .NET Aspire content would be awesome too. :)