Alex's Dev Den 👨‍💻
Alex's Dev Den 👨‍💻
  • 40
  • 44 574
Let's Integration Test .NET Web API w/ WebApplicationFactory!
Demo on using .NET's integration testing feature: WebApplicationFactory to test a Web API
More info about the topic can be found here: learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-8.0
Timestamps:
00.00 Setup
01:24 Testing GET /weatherforecast
05:06 Comparison to .http files
06:37 Using C# Model to deserialize HTTP body to + asserting
Переглядів: 235

Відео

Scaffolding: My Favorite Way To Use Entity Framework (C#) [Database-First, Postgres in Docker]
Переглядів 513Місяць тому
A couple times, the video overlay gets in the way of some code - if you want the full file overview, I recommend looking at the code in the repositories below: Code starting point: github.com/uldahlalex/ef_video/tree/87363dcba55282ded5030923c311bbd5c978efcb Produced code by end of video: github.com/uldahlalex/ef_video/tree/adb6c90a6e288cdd3ec0c43754ade30abfa5c774 The link to EF CLI docs: learn....
Get Started With Entity Framework & Object-Relational Mapping [Postgres w/ Docker + SQLite w/ file]
Переглядів 492Місяць тому
Produced code: (With comments leftover code after SQLite implementation) github.com/uldahlalex/ef_video/tree/87363dcba55282ded5030923c311bbd5c978efcb Timestamps: 00:00 Intro 02:15 New solution 03:51 DbContext 06:25 Injecting context SQLite as DB 12:30 Postgres in Docker as DB 17:07 Demonstrating usage (from API) 20:54 Raw SQL vs Method calls 22:30 Closing remarks
C# Data Validation: Never Trust The Client! [Fluent, Annotations, ApiController & More: .NET 8]
Переглядів 2942 місяці тому
Source code from video: github.com/uldahlalex/data_validation_video (also including the front-end i showed in the beginning) Timestamps: 00:00 So what is the problem? 02:12 Conditional exception BadRequest() 03:43 [ApiController] ProblemDetails 07:21 Data Annotations 09:07 Fluent Validation 11:55 Automatic Dependency Injection of validators 15:16 [ApiController] automatic Model Validation
Dependency Injection C# .NET 8: Adding Services, Inversion of Control & Dependency Inversion
Переглядів 2022 місяці тому
Code from video: github.com/uldahlalex/dependency_injection_video Timestamps: 00:00 Inversion of Control 01:25 Injecting Services Lifetimes 05:10 Dependency Inversion
How To Write Controller Methods In C#: Model Binding & Response Building
Переглядів 2202 місяці тому
Source code from video: github.com/uldahlalex/modelbinding_video 00:00 The CRUD interface our goal 01:10 get a list [no binding] 02:35 get by ID [binding route segment] 04:31 get with sorting [binding query param] 06:36 create object [binding request body] 12:13 binding request header
C# API's For Absolute Beginners [.NET 8 JSON Web API]
Переглядів 3702 місяці тому
Timestamps: 00:00 The client & the server 01:14 Installation 02:00 dotnet new web 03:28 Hello World! 05:32 The files 08:35 Controller method 17:20 Adding Swagger and testing
Easy & Free Vite Deployment to Firebase [React, TS, Google Cloud]
Переглядів 1,5 тис.2 місяці тому
NOTICE: If you have never used Firebase, you need to sign in to the Firebase console here: console.firebase.google.com/ and create a new project. If you still get an error with the firebase init hosting command, you can provision Hosting by clicking "Build" in the left-hand sidebar on the webpage for the firebase console and selecting "hosting". Now you should see a button "Get Started" which r...
A Pleasant Type-Safe Way To Communicate With REST APIs In Typescript! [swagger-typescript-api]
Переглядів 6442 місяці тому
API communication can be tedious, but it doesn't have to. In the video I use React, but this library works with any framework (it just builds Typescript boilerplate for you based on the API documentation). Source code from the video (with link to exact file the code was written to): github.com/uldahlalex/swager-typescript-api-demo/blob/main/src/App.tsx Preliminary knowledge: Basics of HTTP REST...
This React State Mangament Library Sparks Joy
Переглядів 4762 місяці тому
I'm demonstrating the useAtom() hook from Jotai: State management with extremely little boilerplate, configuration and you can get started with just one hook. Recommended preliminary knowledge: React basics. Source code from the video: github.com/uldahlalex/jotai-atoms-state-management-demo/blob/master/src/App.tsx If you want to code along you can clone the source code from the link above and r...
The Very Basics of Making React Components (No JS/TS knowledge required)
Переглядів 2323 місяці тому
Preliminary knowledge: Using npm to create boilerplate for a React app. If you don't know how to do this, please check out: ua-cam.com/video/8QmivfnRoXQ/v-deo.html I recommend having some basic programming knowledge (conditionals, loops, etc), but specifically Javascript / Typescript knowledge is not required. The editor used in the video is Jetbrains Webstorm, but you can use any editor you li...
What even is NodeJS and npm? [+ Creating a Vite App with npm]
Переглядів 3213 місяці тому
Recommended preliminary knowledge: How to open a terminal emulator and write some basic commands. Here's some help for that: ua-cam.com/video/8Sk2c_vyXq8/v-deo.html Timestamps: 00:00 Introduction 01:20 Nodejs & JS Runtimes 02:18 NPM intro 04:35 Nodejs hello world 05:37 npm init 06:40 npm install npm uninstall 12:28 Creating a Vite React TS app with npm 14:17 npm run-script to serve with Vite
Using the Terminal as a Noob [CMDs to Get Started With]
Переглядів 2383 місяці тому
My selection of commands to get started with. Timestamps: 00:00 Intro 00:36 Shells and terminals 03:00 ls ( tip: flags / options) 04:33 clear 04:42 cd 05:45 cp 06:50 rm 07:45 bonus: non-universal commands
Chat App Project Solution Walkthrough [Business Academy South-West Fullstack 2024 Assignment]
Переглядів 3918 місяців тому
I'm going though the most essential parts of an example solution for the Chat App with WebSockets. This video largely focuses on the back-and-forth communication and broader picture of how to achieve the goals rather than zooming into every feature. You can of course find the full source code if you're curious about individual feature implementations: github.com/uldahlalex/MiniProjectSolution/t...
Deploying .NET Websocket API to Heroku with Github Actions🚀 (C#, Fleck) [FULLSTACK 2024 VIDEO 6]
Переглядів 7088 місяців тому
Used for deployment: The buildpack used: github.com/jincod/dotnetcore-buildpack The Github Action referenced: github.com/AkhileshNS/heroku-deploy Source code by the end of video: github.com/uldahlalex/ws/tree/1e225f52abee7b571ad1a70cddec1fed8b5b3765 Preliminary knowledge: - All preliminary knowledge from previous videos in the series TIMESTAMPS: 00:00 Welcome & provisioning 01:28 Adding buildpa...
✨AI Content Filter For C# Websocket API with Azure Cogntive Services🪄 [FULLSTACK 2024 VIDEO 5]
Переглядів 4178 місяців тому
✨AI Content Filter For C# Websocket API with Azure Cogntive Services🪄 [FULLSTACK 2024 VIDEO 5]
Testing WebSocket API + CI/CD 🔬 [FULLSTACK 2024 VIDEO 4]
Переглядів 8838 місяців тому
Testing WebSocket API CI/CD 🔬 [FULLSTACK 2024 VIDEO 4]
Realtime Chatrooms💬: Stateful WebSocket APIs with .NET 8 & C# [FULLSTACK 2024 VIDEO 3]
Переглядів 1,7 тис.8 місяців тому
Realtime Chatrooms💬: Stateful WebSocket APIs with .NET 8 & C# [FULLSTACK 2024 VIDEO 3]
Event-Driven Architecture For Websockets With .NET 8 & C# 🛠️ [FULLSTACK 2024 VIDEO 2]
Переглядів 4 тис.9 місяців тому
Event-Driven Architecture For Websockets With .NET 8 & C# 🛠️ [FULLSTACK 2024 VIDEO 2]
Making A WebSocket Server With .NET 8🧑‍💻 [FULLSTACK 2024 VIDEO 1]
Переглядів 13 тис.10 місяців тому
Making A WebSocket Server With .NET 8🧑‍💻 [FULLSTACK 2024 VIDEO 1]
Making a 🖌️Front-end🖌️ for our API (Angular 16 & Ionic 7)
Переглядів 819Рік тому
Making a 🖌️Front-end🖌️ for our API (Angular 16 & Ionic 7)
Let's Create a Web API with .NET 8 (& Dapper) PART 1: 📚The Book Feed📚
Переглядів 6 тис.Рік тому
Let's Create a Web API with .NET 8 (& Dapper) PART 1: 📚The Book Feed📚
Making Automated API Tests with Postman & Github Actions! Testing 📚The Book API📚
Переглядів 977Рік тому
Making Automated API Tests with Postman & Github Actions! Testing 📚The Book API📚
Adding Full CRUD For The 📚Book Feed📚 API with .NET 8 & Dapper [PART 2]
Переглядів 911Рік тому
Adding Full CRUD For The 📚Book Feed📚 API with .NET 8 & Dapper [PART 2]
Making a UI for our app! 🖌️ [Part 8 of Fullstack with Firebase & Angular 2023]
Переглядів 158Рік тому
Making a UI for our app! 🖌️ [Part 8 of Fullstack with Firebase & Angular 2023]
Anti-toxic chat /w Express, Cloud Functions, TFjs [Part 7 of Fullstack with Firebase & Angular 2023]
Переглядів 200Рік тому
Anti-toxic chat /w Express, Cloud Functions, TFjs [Part 7 of Fullstack with Firebase & Angular 2023]
Cloud Function Triggers & Admin SDK Setup [Part 6 of Fullstack with Firebase & Angular 2023]
Переглядів 480Рік тому
Cloud Function Triggers & Admin SDK Setup [Part 6 of Fullstack with Firebase & Angular 2023]
Emulator Setup & First ⚡Cloud Function⚡ [Part 5 of Fullstack with Firebase & Angular 2023]
Переглядів 516Рік тому
Emulator Setup & First ⚡Cloud Function⚡ [Part 5 of Fullstack with Firebase & Angular 2023]
Avatars With Firebase 📂Storage📂 [Part 4 of Fullstack with Firebase & Angular 2023]
Переглядів 256Рік тому
Avatars With Firebase 📂Storage📂 [Part 4 of Fullstack with Firebase & Angular 2023]
🔒Authenticating🔒 with Firebase [Part 3 of Fullstack with Firebase & Angular 2023]
Переглядів 326Рік тому
🔒Authenticating🔒 with Firebase [Part 3 of Fullstack with Firebase & Angular 2023]

КОМЕНТАРІ

  • @gustavogomes5797
    @gustavogomes5797 27 днів тому

    Great video!

  • @ruslan_yefimov
    @ruslan_yefimov Місяць тому

    I love how you;ve not only covered basics, but actually made an example of how this stuff woulb be used in production

  • @CLeovison
    @CLeovison Місяць тому

    Hi Alex, I accidentally saw your youtube channel and i want to thankyou for making a great content. Hoping that you would continue to create a great content

  • @NaylinHla
    @NaylinHla Місяць тому

    8:17 lol

  • @nouchance
    @nouchance 2 місяці тому

    Thanks!

  • @nouchance
    @nouchance 2 місяці тому

    You are awesome! Thank you SIR!

  • @BillionaireDegenApeClub
    @BillionaireDegenApeClub 2 місяці тому

    umm....... why are we not using SignalR here ?! And I'm sorry... but Angular 🤮 lol. Nice tutorial tho - gets the point across. Maybe you can add a SignalR w/ Lit js lib and Typescript next!

  • @sakarnbuntudjun1868
    @sakarnbuntudjun1868 2 місяці тому

    🥰

  • @anahaddhaliwal5690
    @anahaddhaliwal5690 2 місяці тому

    great vid!

  • @solomonakinbiyi
    @solomonakinbiyi 2 місяці тому

    All I can say is thanks for bringing this to me!

  • @Meuhandle
    @Meuhandle 2 місяці тому

    I confirm that Jotai sparks joy 😄

  • @cungthanhlaptrinh
    @cungthanhlaptrinh 3 місяці тому

    Good

  • @gamenmetMark
    @gamenmetMark 3 місяці тому

    nice vid, did you perhaps also manage to deploy to azure? i am trying to but i have some problems with the domain and ports

  • @yekt3805
    @yekt3805 5 місяців тому

    Fleck hasn't been updated in over 3 years. I used it in the past but sadly, I think it's dead. And it seems like there are many GitHub issues related to wss and certificates. I wouldn't be comfortable using it in a new project. The only things I could find that is still active and not a one man project are Microsofts own WebSocket implementations (System.Net.WebSockets and Microsoft.AspNetCore.WebSockets).

  • @yasinkurt6444
    @yasinkurt6444 5 місяців тому

    very clear lesson 👍

  • @CodingByAmp
    @CodingByAmp 5 місяців тому

    How to bordcast all client

    • @alexdevden
      @alexdevden 5 місяців тому

      In short, if you have a List<IWebSocketConnection> connections, you can iterate over this list and send to each like this: foreach (var connection in connections) { var string = "hello world"; connection.Send(message); }

  • @JoeChiu-i8n
    @JoeChiu-i8n 6 місяців тому

    I do like this video!

  • @jurijowsienko
    @jurijowsienko 6 місяців тому

    12:39 So called 'primitives' are value objects not objects (they do not inherit from 'Object'), returning 1 as an object causes wraping '1' into System.Object (also know as boxing), which is implicit and causes an allocation on the heap.

  • @curtwaters6569
    @curtwaters6569 7 місяців тому

    "Promo sm"

  • @veeker77
    @veeker77 8 місяців тому

    Awesome video ! The only thing that isn't cleat at all to me on how to use for myself is your FindAnInectClientEventHandlers. I didn't find it anywhere

  • @StackOverflowMan
    @StackOverflowMan 8 місяців тому

    Why do you choose Flesk? Agree, API looks clearer than for System.Net.WebSockets, but maybe that abstraction level leaks?

  • @eribohwobernard299
    @eribohwobernard299 8 місяців тому

    Hey bro... please which microphone are you using ?

    • @alexdevden
      @alexdevden 8 місяців тому

      Hey bro, I'm using an Elegato Wave 3

    • @RoaringOrange
      @RoaringOrange Місяць тому

      That deep beautiful voice also gives you goosebumps?

    • @eribohwobernard299
      @eribohwobernard299 Місяць тому

      @@RoaringOrange okay

  • @eribohwobernard299
    @eribohwobernard299 9 місяців тому

    Great one

    • @eribohwobernard299
      @eribohwobernard299 9 місяців тому

      Please what do use for your screen record ?

    • @alexdevden
      @alexdevden 9 місяців тому

      ​@@eribohwobernard299 I use OBS Studio for screen recording + Droidcam for Android. I use KDENlive for editing

  • @tomasmuller1972
    @tomasmuller1972 9 місяців тому

    Thanks very helpful

  • @guillermomazzari8320
    @guillermomazzari8320 9 місяців тому

    Nice vid, could I stablish a ws connection to my database and update the Ui in real time when something changes in the database? for example, If I call data form a table of people, where I have john, Mary and Laura and I am seeing this list in my frontend ui, but someone else deletes Laura in another browser, will I see that change on my browser immediately? without having to refresh or make a new request to the data base?

    • @alexdevden
      @alexdevden 9 місяців тому

      Hey, thank you! There are DBMS's that support listening for database changes and can emit events for this use case. For instance, this repo: github.com/supabase/realtime uses Postgres and Websockets to achieve this effect.

    • @guillermomazzari8320
      @guillermomazzari8320 9 місяців тому

      @@alexdevden I was looking into signalR what are your thoughts on it?

    • @alexdevden
      @alexdevden 9 місяців тому

      SignalR doesn't use generic websockets since they try to "build on top of" websockets. That means you need a dedicated SignalR client. It's kind of the same deal with Socket.IO. I prefer to use open standards and protocols rather than technologies that lock you in to specific SDKs @@guillermomazzari8320

    • @guillermomazzari8320
      @guillermomazzari8320 9 місяців тому

      @@alexdevden Thanks for your answer! It is very helpful

  • @normatippit3618
    @normatippit3618 10 місяців тому

    🙋 P R O M O S M

  • @oliverager7448
    @oliverager7448 10 місяців тому

    Great new video keep up the good work

  • @franciscojavierblancograja3640

    hi, i like the video , but i have a problema , when call de "this.userArray.push(change.doc.data());" not see the registers,i can see de registers but a can´t de information with de method data()

    • @coffeewithmadi5959
      @coffeewithmadi5959 11 місяців тому

      The doc property of the change object has many properties . We use the method data() to specify we only want the data from the doc property nothing else

  • @fieryscorpion
    @fieryscorpion Рік тому

    Great video. Thanks! Next time we deploy to App Service, do we have to go through the same process again, i.e. creating a publish profile yet again?

    • @fieryscorpion
      @fieryscorpion Рік тому

      UPDATE: Figured it out. Go to Run -> Rerun the publish profile.

  • @samkaxe2488
    @samkaxe2488 Рік тому

    Does adding more claims will improve the security of the token ?

  • @motiveDay7
    @motiveDay7 Рік тому

    please i need help with my ionic installations.every time i have dependency conflict problem. How to do ?

  • @gregscolumn
    @gregscolumn Рік тому

    Thanks for sharing this course, I really appreciate the work you put in I'm explaining, please I have a question, when using Firestore database, do I still need to use the snapshot to get real-time updates?

  • @moudjahidinesalissou9011
    @moudjahidinesalissou9011 Рік тому

    Amazing work. Thanks.

  • @fantodk6002
    @fantodk6002 Рік тому

    No rest for the wicked, nice video Alex ! o/

    • @alexdevden
      @alexdevden Рік тому

      I'm glad you like it, Tawfik!

  • @Tadiaki
    @Tadiaki Рік тому

    Well, look who decided to grace us with another masterpiece. I was starting to lose hope.

    • @alexdevden
      @alexdevden Рік тому

      I'm always looking out for my people!

  • @Tadiaki
    @Tadiaki Рік тому

    Another slam dunk Alex. Concise and relevant. Keep up the great work!

    • @alexdevden
      @alexdevden Рік тому

      Thanks fam, always keeping it fresh for the 🔥fire-family🔥

  • @caterinez2572
    @caterinez2572 Рік тому

    hello bro , how can i contact you? i have many questions for my library management system project , im struggling with binding firebase storage files and firestore cloud datas, can you make a video on how to upload a file to firebase storage and put the link inside firestore , so that when i click on a card in my html then the datas and the image shows together

  • @fantodk6002
    @fantodk6002 2 роки тому

    The missing piece ! Thank you ! o/

  • @fantodk6002
    @fantodk6002 2 роки тому

    Thank you Alex for this video, it cleared some questions and Axios seems way easier to use than HttpClientModule 🖖.

  • @samkaxe2488
    @samkaxe2488 2 роки тому

    function returnsPromise(): Promise<number>; let num: typeof returnsPromise; // what do you expect from a language that promise it will return something ☕

  • @renarsmednieks7596
    @renarsmednieks7596 2 роки тому

    Great video Alex, helped a lot!

  • @samkaxe2488
    @samkaxe2488 2 роки тому

    thanks a lot , it make more sense now than before :D