![Học lập trình cùng Nam](/img/default-banner.jpg)
- Видео 79
- Просмотров 130 521
Học lập trình cùng Nam
Норвегия
Добавлен 18 июн 2023
Kho kiến thức dành cho người làm phần mềm chuyên nghiệp đến từ Nam - một developer chuyên nghiệp sống tại Na Uy với hơn 25 năm kinh nghiệm.
Nội dung trải rộng từ ngôn ngữ lập trình, lập trình mạng, phân tích và thiết kế hệ thống, kiến trúc phần mềm, hệ điều hành, lập trình .NET...
Nội dung trải rộng từ ngôn ngữ lập trình, lập trình mạng, phân tích và thiết kế hệ thống, kiến trúc phần mềm, hệ điều hành, lập trình .NET...
ASP.NET - Phần 3 - Các Attribute thường dùng
ASP.NET - Phần 3 - Các Attribute thường dùng
Просмотров: 436
Видео
ASP.NET - Phần 2 - Controller và action method
Просмотров 45514 часов назад
ASP.NET - Phần 2 - Controller và action method
ASP.NET - Phần 1 - Giới thiệu về ASP.NET và viết chương trình đầu tiên
Просмотров 1 тыс.16 часов назад
ASP.NET - Phần 1 - Giới thiệu về ASP.NET và viết chương trình đầu tiên
nShop - Day 1 - Giới thiệu khái quát về dự án và những bước đầu tiên cần làm
Просмотров 1,4 тыс.14 дней назад
nShop - Day 1 - Giới thiệu khái quát về dự án và những bước đầu tiên cần làm
Học lập trình .NET - Phần 41 - Sử dụng thư viện HttpClient
Просмотров 38314 дней назад
Học lập trình .NET - Phần 41 - Sử dụng thư viện HttpClient
Học lập trình .NET - Phần 40 - Giải bài tập viết Web server (phần 4)
Просмотров 56621 день назад
Học lập trình .NET - Phần 40 - Giải bài tập viết Web server (phần 4)
Học lập trình .NET - Phần 39 - Giải bài tập viết Web server (phần 3)
Просмотров 46228 дней назад
Xây dựng đối tượng response để trả dữ liệu về
Học lập trình .NET - Phần 38 - Giải bài tập viết Web server (phần 2)
Просмотров 376Месяц назад
Trong phần này chúng ta sẽ hoàn thiện phần đọc request, và refactor lại một số code.
Học lập trình .NET - Phần 37 - Giải bài tập viết Web server (phần 1)
Просмотров 1 тыс.Месяц назад
Học lập trình .NET - Phần 37 - Giải bài tập viết Web server (phần 1)
Học lập trình .NET - Phần 36 - Lập trình mạng với Socket
Просмотров 992Месяц назад
Học lập trình .NET - Phần 36 - Lập trình mạng với Socket
Học lập trình .NET - Phần 35 - Sử dụng lớp Task
Просмотров 615Месяц назад
Học lập trình .NET - Phần 35 - Sử dụng lớp Task
Học lập trình .NET - Phần 34 - Xử lý bất đồng bộ với hàm async
Просмотров 741Месяц назад
Học lập trình .NET - Phần 34 - Xử lý bất đồng bộ với hàm async
Học lập trình .NET - Phần 33 - Sử dụng lock, Monitor để kiểm soát các critical section
Просмотров 453Месяц назад
Học lập trình .NET - Phần 33 - Sử dụng lock, Monitor để kiểm soát các critical section
Học lập trình .NET - Phần 32 - Sử dụng Semaphore
Просмотров 730Месяц назад
Semaphore cho phép chúng ta kiểm soát số thread truy cập cùng một lúc vào một tài nguyên
Học lập trình .NET - Phần 31 - Sử dụng EventWaitHandle để đồng bộ hoạt động nhiều thread
Просмотров 642Месяц назад
Học lập trình .NET - Phần 31 - Sử dụng EventWaitHandle để đồng bộ hoạt động nhiều thread
Học lập trình .NET - Phần 30 - Làm quen với Thread
Просмотров 1 тыс.Месяц назад
Học lập trình .NET - Phần 30 - Làm quen với Thread
Học lập trình .NET - Phần 29 - Reflection
Просмотров 1,2 тыс.Месяц назад
Học lập trình .NET - Phần 29 - Reflection
Khám phá mã máy sinh ra bởi chương trình .NET bằng Sharplab
Просмотров 3792 месяца назад
Khám phá mã máy sinh ra bởi chương trình .NET bằng Sharplab
Học lập trình .NET - Phần 28 - Caching (và decorator design pattern)
Просмотров 1,1 тыс.2 месяца назад
Học lập trình .NET - Phần 28 - Caching (và decorator design pattern)
Học lập trình .NET - Phần 27 - Dependency Injection
Просмотров 1 тыс.2 месяца назад
Học lập trình .NET - Phần 27 - Dependency Injection
Học lập trình NET - Phần 26 - Sử dụng Configuration
Просмотров 7262 месяца назад
Học lập trình NET - Phần 26 - Sử dụng Configuration
Học lập trình NET - Phần 25 - Attribute
Просмотров 5802 месяца назад
Học lập trình NET - Phần 25 - Attribute
Học lập trình .NET - Phần 24 - Logging
Просмотров 7622 месяца назад
Học lập trình .NET - Phần 24 - Logging
Học lập trình .NET - Phần 23 - .NET Generic host
Просмотров 6922 месяца назад
Học lập trình .NET - Phần 23 - .NET Generic host
Clean Architecture - Phần 3 - Áp dụng Clean Architecture vào một ứng dụng thực tế
Просмотров 2,6 тыс.2 месяца назад
Clean Architecture - Phần 3 - Áp dụng Clean Architecture vào một ứng dụng thực tế
Clean Architecture - Phần 2 - Phân tích các thành phần và kết nối chúng với nhau
Просмотров 2,3 тыс.2 месяца назад
Clean Architecture - Phần 2 - Phân tích các thành phần và kết nối chúng với nhau
Clean Architecture - Phần 1 - Làm quen với các khái niệm
Просмотров 6 тыс.2 месяца назад
Clean Architecture - Phần 1 - Làm quen với các khái niệm
Học lập trình .NET - Phần 22 - Sử dụng các chỉ dẫn tiền biên dịch
Просмотров 8523 месяца назад
Học lập trình .NET - Phần 22 - Sử dụng các chỉ dẫn tiền biên dịch
Dạ thầy ơi. Ở phút 16:33 có biến bool b nó đang là biến local trong vùng nhớ stack. Thì làm sao các thread khác có thể truy cập liên tục giá trị của nó từ các luồng khác để kiểm tra vậy ạ. Trước giờ em chỉ biết là biến static hoặc biến toàn cục nằm trong heap thì các luồng khác mới truy cập được đến.
Là biến b phải không? Stack cũng chỉ là một vùng nhớ trong không gian thực thi của chương trình nên các thread vẫn truy cập được bình thường, C# nó tự biết ngữ cảnh này và vẫn cho phép mình truy cập vào các biến local :)
Để học phần này ta cần nắm chắc kiến thức gì ạ,em cảm ơn anh
Em chỉ cần học chắc phần .NET cơ bản là được
Hay quá anh ơi, cảm ơn anh nhiều ạ
<3
28:38 cho em hỏi làm sao để schema nó chỏ vào cái http đó vậy ạ bên em thì nó để <No Schema Selected>
Sao anh không thấy chỗ nào nhỉ?
@@hoc-lap-trinh dạ em thấy rồi do em đặt tên file sai. Em đặt là appsetting.json nhma đúng là appsettings.json ạ
Mong a có nhiều sức khỏe và làm liên tục những series về .NET anh nhé
Cảm ơn em
anh Nam cho em hỏi, ví dụ mình là người mới khi vào project có sẵn của công ty thì mình cần làm những việc gì để hiểu project nhanh nhất và có thể làm tốt task được giao ạ.Em cảm ơn.
Đầu tiên nhất là phải set up được môi trường dev trên máy local, sao cho em có build, test, reset lại dễ dàng nhất mà không ảnh hưởng môi trường production. Xong rồi thì bắt đầu xem cấu trúc tổng thể, nắm được cấu trúc cơ bản, biết cách build rồi thì bắt tay vọc thôi.
Trên trường chả dạy mấy cái này, cảm ơn kiến thức của anh :D
🥰
Chỗ dung FromService IRepository trong method, so với injject trực tiếp vào Controller constructor thì có ưu điểm gì hơn ko anh nhỉ.
Anh nghĩ nếu action method mình gọi tới mà không dùng đến IRepository thì nó không cần khởi tạo biến repo, trong khi dùng contructor thì dùng hay không đều phải khởi tạo, còn có dùng thì như nhau thôi.
Rất tuyệt vời ạ, cảm ơn anh rất nhiều <3
🥰
Video bị mờ a :(
Để a kiểm tra lại
Anh xem lại thấy rất rõ mà, có thể đường truyền chậm nên nó mờ
Anh gắn link git source code được ko ạ ❤❤❤
Em check trong repo này nhé: github.com/daohainam/LearnDotNet-Samples
Video bị mờ anh ạ.
Video quay màn hình mà sao mờ được nhỉ? Có thể do đường truyền chăng?
Rất quan tâmmm❤
Cực kỳ quan tâm series này, anh ra video là coi liền
hay quá anh mỗi ngày 1 video luôn
❤ tiếp tục học mỗi khi anh ra video
đây rồiiii
a cho e hỏi là Webserver trước được viết chạy http thì có redirect như asp.net này được ko ạ ?
Là web server trong phần bài tập hả em? Nếu là cái đó thì không. Nhưng em có thể nghiên cứu và thêm vào được mà 😘.
Hóng mãi 😍
🕺🕺🕺
Hay<3
like dau tien
Cmt đầu ❤❤❤
Ơ không ngủ à em? :O
@@hoc-lap-trinh e đang đọc sách ạ
Quá kinh.
chú Nam ơi, cháu đang bị lỗi này khi thêm tham số -compress D:\Work_C#\Pet_project\dbexporter\DBExporter\bin\Debug et8.0>DBExporter "Server=BUISON; DATABASE=HR; Trusted_Connection=True; TrustServerCertificate=True" -q:"SELECT * FROM countries" -f:D:\Work_C#\testDBExport12HAHAHA1231 -server:SqlServer -format:csv -compress System.ObjectDisposedException: Cannot access a closed file. at System.IO.FileStream.Seek(Int64 offset, SeekOrigin origin) at System.IO.Compression.ZipArchive.WriteFile() at System.IO.Compression.ZipArchive.Dispose(Boolean disposing) at System.IO.Compression.ZipArchive.Dispose() at DBExporter.Program.ExportToZipFile(ExportSource database, ExportOptions exportOptions) in D:\Work_C#\Pet_project\dbexporter\DBExporter\Program.cs:line 77 at DBExporter.Program.Main(String[] args) in D:\Work_C#\Pet_project\dbexporter\DBExporter\Program.cs:line 43 Nếu không có tham số -process thì code vẫn hoạt động bình thường ạ
Đã sửa, lỗi này do khi đóng một stream thì nó đóng luôn stream bên dưới
này là bài cuối của .Net cơ bản đúng k anh? :v
Đúng rồi em
Âm thanh em thấy hơi nhỏ anh ạ. Không biết mn có bị giống em không. Nhưng mà nội dung rất hấp dẫn anh nha
Ok em, có thể do đôi khi a ngồi hơi xa mic nên bị vậy, sẽ cải tiến thêm 😘
Chào anh, cho e hỏi tí ạ, với Flow mà authen Server trả về 1 mã Code thay vì trả thẳng token, tại sao lại bảo mật hơn anh nhỉ, vì nếu attacker có thể can thiệp để đón token trả về, thì cũng có thể lấy được mã Code đó, để gửi lại authen server và lấy dc token, chỉ là phải xử lý thêm 1 request ạ.
Khác ở chỗ là quá trình code exchange, tức là gửi code cho server để lấy về token sẽ được thực hiện qua kênh khác chứ không phải trên kênh web, hay nói cách khác token sẽ không được gửi về máy người dùng mà gửi thẳng về web server (chạy app người dùng đang sử dụng). Bản thân kênh này là bảo mật và có thể web server phải được đăng ký trước vào một white list, do vậy ngay cả khi bị lộ code thì attacker cũng không chắc có thể request được token.
<3<3<3
Anh Nam ơi, em chờ project xong rồi mua member 1 tháng xem cả thể được không a. 500k 1 tháng với em hơi quá sức
Tất nhiên là được rồi 👍
<3<3<3
a cho e hỏi chút là. cách nào để xác nhận là client đã gửi kết thúc resquest ạ, ngoại trừ thời gian 3s. Như method post chẳng hạn sau kí tự xuống dòng header có giá trị ạ .
Khi gặp một dòng trống thì sẽ kết thúc request, tức là nếu thấy hai ký tự xuống dòng liên tiếp thì biết hết request. 3 giây kia là để kiểm soát không cho client gửi quá lâu chứ không phải để biết hết request hay chưa em ạ.
@@hoc-lap-trinh e cảm ơn ạ. Dạ trong bài a có nói là thực tế ít dùng stream, thế thực tế thường dùng gì để nhận dữ liệu socket này ạ?
Stream có một nhược điểm là dữ liệu đọc một chiều, tức là đọc ra xong nếu chưa xử lý hết thì không đẩy ngược lại vào được. Ví dụ em đọc 1000 byte, sau đó em thấy request của em chỉ chiếm 800 byte, vậy thì 200 byte còn lại sẽ thuộc về request tiếp theo (vì client có thể gửi liên tục nhiều request trên một connection), nhưng không có cách nào để trả lại 200 byte đó. Do vậy em sẽ phải sử dụng một bộ đệm để lưu lại 200 byte này và kết hợp với dữ liệu đọc được trong lần đọc kế tiếp, đôi khi em sẽ phài làm thao tác copy 200 byte này về đầu một array để đọc tiếp vào phía sau, bản thân thao tác copy này không phù hợp với ngữ cảnh hiệu năng cao. Hiện tại chúng ta có thể sử dụng System.IO.Pipelines.PipeReader thay vì sử dụng Stream, PipeReader sẽ quản lý giúp chúng ta bộ đệm này và cung cấp các phương thức để truy cập vào mảng byte bên dưới. Đây cũng là cách máy chủ web của ASP.NET sử dụng.
@@hoc-lap-trinh e cảm ơn ạ
Em tưởng project này chỉ dành cho hội viên VIP? Anh Nam định public hay là clip này chỉ làm trailer cho nShop thôi ạ?
Chỉ có clip này là public thôi :D
a public seri nShop project này à? tưởng seri này giành cho members chứ. 😍😍😍. Cảm ơn anh Nam nhiều...
ko phải cho members đâu, cho vip á...
Đây là teaser thôi :)
Tiếng của chú hơi bé chú có thể cho tiếng hơn chút không ạ
Yes, cải tiến trong clip tới
dự án này khoảng bao lâu thì hoàn thành vậy chú và khóa này là học thiết kế vậy nên mình implement bằng ngôn ngữ khác vẫn dc đk chú?
Để làm full thì chắc cũng lâu lắm, và đúng rồi, em có thể implement bằng ngôn ngữ khác, nhưng ngoài C# thì có lẽ dễ nhất là Java.
Ủng hộ chú Nam
<3
a nam có làm 1 clip là Thread, ngắt hoạt động thế nào?, vậy nên xem clip đó hay clip này trước v a
Nên xem clip đó trước nhé
luôn like cho các clip của a để đến được với nhiều người xem nhất có thể
Củm ơn :D
a làm video tiếng nhỏ quá
Mấy clip sau này tiếng ổn mà em nhỉ? Có thể đôi khi anh quay sang gõ bàn phím nên không hướng vào mic.