Câu hỏi phỏng vấn .NET Developer.

71 Các câu hỏi phỏng vấn .NET Developer. được chia sẻ bởi các ứng viên

.NET framework đã trở thành một cái tên nổi tiếng và dễ nhận biết trong thế giới khung framework. Ngày càng có nhiều lập trình viên sử dụng .NET cho trong công việc vụ hàng ngày của mình. Do vậy, các công ty đang tìm kiếm những người thành thạo về .NET framework trong việc tạo ứng dụng và phát triển web. Nếu bạn đang muốn ứng tuyển vào vị trí công việc như vậy, hãy tìm hiểu các câu hỏi phỏng vấn .NET để cuộc phỏng vấn trở nên tốt đẹp hơn. Dưới đây là một số câu hỏi phỏng vấn bạn tham khảo

Các câu hỏi phỏng vấn về NET Developer

Câu 1: .NET là gì?

Nhà tuyển dụng có thể giả sử rằng:

Hãy tưởng tượng rằng tôi không biết gì về .NET. Bạn hãy giải thích cho tôi .NET là gì, .NET viết tắt của cái gì, v.v.

Người phỏng vấn muốn bạn giải thích mọi thứ trong câu hỏi phỏng vấn .NET bằng cách diễn đạt riêng của bạn. Tôi sẽ cung cấp cho bạn một số định nghĩa đơn giản, chính xác để bạn có thể đưa ra câu trả lời của mình.

''.NET'' không phải là từ viết tắt cho một cụm từ nào cả. Tuy nhiên, thuật ngữ đầy đủ phải là “Microsoft .NET”, vì Microsoft đã sáng tạo ra khung framework này.

Nói một cách đơn giản, .NET là một khung phát triển phần mềm và trang web. Nó được coi là một trong những framework tốt và đáng tin cậy. Tuy nhiên, việc học và tìm hiểu về .NET framework không phải đơn giản. Rất nhiều người yêu thích .NET vì ‘khả năng tương tác ngôn ngữ’ của nó - bất kỳ ngôn ngữ nào trong .NET đều có thể sử dụng code được viết bằng ngôn ngữ khác.

Các nhà phát triển khác đánh giá cao .NET còn là vì nó có nhiều chức năng và cài đặt sẵn.

Câu 2: .NET hỗ trợ bao nhiêu ngôn ngữ?

Tại thời điểm viết bài viết này, thì .NET hỗ trợ 44 ngôn ngữ khác nhau.

Câu 3: Tuổi thọ của các mục trong ViewState là bao lâu?

Các mục trong ViewState sẽ tồn tại cho đến khi trang mà chứa chúng ngừng hoạt động.

Câu 4: ‘CTS’ là gì?

CTS là từ viết tắt của Common-Type System (Hệ thống loại chung). Hệ thống này ra lệnh các loại dữ liệu được sử dụng trong hệ thống.

Bạn nên chú ý đến các câu hỏi liên quan đến CTS - đây là các câu hỏi phỏng vấn .NET khá quan trọng.

Câu 5: Định nghĩa ‘encapsulation’.

Encapsulation là một chức năng bao gồm các phương pháp và dữ liệu khác nhau trong một dự án. Điều này được thực hiện để đối tượng của chương trình có thể thực hiện các chức năng một cách trơn tru và không có bất kỳ lỗi nào.

Câu 6: Điểm khác biệt giữa ‘class’ (lớp) và ‘object’ (đối tượng) là gì?

Đây là một trong những câu hỏi phỏng vấn .NET dựa trên định nghĩa, câu hỏi này khá dễ nếu bạn đã quen thuộc với các ngôn ngữ lập trình .NET.

Nói một cách đơn giản, một “object” (đối tượng) là một cái gì đó xảy ra hoặc nằm trong “class” (lớp). Lớp (class) định hình đối tượng trông như thế nào, cách chúng hoạt động và loại thuộc tính nào chúng có. Đổi lại, các đối tượng hành động tương tự tạo nên các lớp đó.

Câu 7: Có sự khác biệt giữa ‘debug’ và ‘trace’ hay không?

Câu trả lời là có. Lớp Trace có thể được sử dụng để gỡ lỗi và phát hành một số bản dựng nhất định, trong khi Debug chỉ được sử dụng để gỡ lỗi.

Câu hỏi này có thể được coi là một câu hỏi mẹo trong danh sách câu hỏi phỏng vấn .NET vì bạn dễ dàng quên chức năng bổ sung của Trace.

Câu 8: Điểm khác biệt giữa ‘in-process’ và ‘out-of-process’ là gì?

Cả hai khái niệm này đều liên quan đến quản lý bộ nhớ phiên. In-process (quá trình lưu trữ trong) lưu trữ tất cả dữ liệu từ một phiên phát triển trên máy chủ web. Trái ngược với điều đó, out-of-process  (quy trình lưu trữ ngoài) lưu trữ cùng một dữ liệu trên một khu vực quản lý bộ nhớ ngoài. Có lẽ một trong những khu vực lưu trữ bộ nhớ ngoài phổ biến nhất sẽ là SQL server.

Câu 9: MSIL là gì?

MSIL (Microsoft Intermediate Language) có nghĩa là Ngôn ngữ trung gian của Microsoft. Nó được sử dụng để xác định các giá trị, lưu trữ bộ nhớ và các tác vụ cao cấp tương tự khác. Mỗi mã code mà .NET sử dụng trước tiên phải đi qua MSIL.

Câu 10: Điểm khác biệt giữa ‘managed code’ và ‘unmanaged code’ là gì?

Managed code (Mã được quản lý) là một loại mã code được tạo và biên dịch trong .NET framework. Ngược lại, unmanaged code (mã không được quản lý) đến từ một khung framework xây dựng phần mềm khác và mang theo tất cả các tính năng và cài đặt của khung khác.

Câu 11: Có thể cài đặt thủ công bộ đếm thời gian ‘session out’ không?

Câu trả lời là có. Đây là một câu hỏi phỏng vấn .NET với các câu hỏi mở rộng sau đó, vì nó sẽ không chỉ dừng lại ở “có” hay “không”.

Câu hỏi mở rộng có thể là “Bằng cách nào?” Và bạn phải thực sự thực hiện và truy cập web.config.

Câu 12: Có thể kết hợp các ngôn ngữ khác nhau trong thư mục ‘App_Code’ không?

Câu trả lời là không. Tập tin bạn đang làm việc phải được viết bằng một mã code cụ thể. Bạn không thể kết hợp các ngôn ngữ coding trong thư mục.

Câu 13: Có sự khác biệt giữa ‘stack’ và ‘queue’ hay không?

Câu trả lời sẽ là có. Một cách giải thích ngắn gọn và rõ ràng có thể là stacks là LIFO và queues là FIFO.

LIFO có nghĩa là Last in, first out (“nhập sau, xuất trước”). Stack xử lý các loại giá trị theo hệ thống phân cấp từ trên xuống. Mặt khác, FIFO có nghĩa là First-in, first-out (“nhập trước, xuất trước”). Queues tuân theo nguyên tắc này và chèn các mục từ phía dưới trong khi xóa các mục ở phía trên.

Kinh nghiệm phỏng vấn lập trình viên .NET thành công

Để có thể phỏng vấn thành công vị trí lập trình viên .NET, bạn hãy nhanh tay lưu lại những kinh nghiệm sau đây.

Trước khi phỏng vấn

Để có thể đến được vòng phỏng vấn, bạn cần chuyển bị cho mình 1 bản CV mô tả kinh nghiệm, các dự án đã từng thực hiện. Đối với những bạn sinh viên mới ra trường, có thể để đồ án tốt nghiệp và các chứng chỉ, công việc parttime mà bạn đã từng làm. Bạn có thể tham khảo các mẫu CV tốt nhất tại TopCV.

Sau khi đã vượt qua vòng CV, trước khi đi phỏng vấn bạn sẽ cần lưu ý những điều sau.

Chuẩn bị kiến thức chuyên môn kỹ càng

Đối với vị trí lập trình viên .NET, bạn sẽ cần chuẩn bị kiến thức cơ bản về lập trình OOP, ngôn ngữ lập trình C#, ASP.NET MVC, Web API, Entity Framework, ADO.NET.

Ngoài những kiến thức trên, bạn cũng cần phải lưu ý thêm về:

  • Kỹ năng Unit Test: Kỹ năng viết đoạn code kiểm thử mức đơn vị, trong .NET thông thường sẽ sử dụng MSUnit.
  • Kỹ năng về SQL Server
  • Kỹ năng quản lý Source Code
  • Một số Design Pattern
  • Kiến thức về Frontend
  • Tối ưu hóa code, cách viết code sạch

Trong quá trình phỏng vấn

Trong quá trình phỏng vấn, ngoài việc trả lời những câu hỏi chuyên môn về vị trí lập trình viên .NET, bạn sẽ cần phải lưu ý thêm một số điều sau:

  • Lựa chọn trang phục phù hợp cho bản thân
  • Nên thể hiện thái độ tự tin khi phỏng vấn để nhà tuyển dụng có thể tin tưởng hơn vào những câu trả lời của bạn
  • Tìm hiểu trước thông tin cơ bản của công ty trước khi đi phỏng vấn
  • Nên chuẩn bị trước 1 đến 2 câu hỏi để hỏi ngược lại nhà tuyển dụng khi nhận được câu “Bạn có thắc mắc gì về công việc/Bạn có thắc mắc gì với công ty không?”
  • Gửi lời cảm ơn đến người phỏng vấn sau khi hoàn thành buổi phỏng vấn. Điều này sẽ thể hiện sự chuyên nghiệp của bạn

Câu hỏi phỏng vấn

.NET Developer. được hỏi... 26/10/2023

Có sự thay đổi nổi bật nào trong .NET Framework 4.6.2 không? Tại sao lại bao gồm những thay đổi này?

1 câu trả lời

rất ít thay đổi/ bản vá lỗi trong .NET Framework 4.6.2 và các phiên bản mới hơn không tương thích hoàn toàn với các phiên bản .NET cũ. Các bản sửa lỗi này chỉ được bao gồm khi cần để đảm bảo bảo mật, tuân thủ những tiêu chuẩn phổ biến trong ngành hoặc để hiệu chỉnh sự không tương thích trước đó.

Ngoài ra, có một số bản sửa lỗi được bao gồm trong những phiên bản này sẽ chỉ được bật nếu bạn chọn viết lại ứng dụng cho những phiên bản đó. Những thay đổi này được gọi là những thay đổi tái định hướng mục tiêu.

.NET Developer. được hỏi... 26/10/2023

Chính sách Vòng đời cho các phiên bản khác của .NET Framework là gì?

1 câu trả lời

Đó là:

  • .NET Framework 1.1 SP1
  • .NET Framework phiên bản 2.0, 3.0 và 3.5
  • .NET Framework 3.5 SP1
  • .NET Framework 4
  • .NET Framework 4.5
  • .NET Framework 4.5.1
  • .NET Framework 4.5.2, 4.6 và 4.6.1
  • .NET Framework 4.6.2
  • .NET Framework 4.7
  • .NET Framework 4.7.1
  • .NET Framework 4.7.2
  • .NET Framework 4.8
  • .NET Framework 4.8.1
.NET Developer. được hỏi... 26/10/2023

ODBC là gì?

1 câu trả lời

  • ODBC là một giao diện để truy cập hệ thống quản lý cơ sở dữ liệu (DBMS).
  • ODBC được phát triển bởi SQL Access Group vào năm 1992, khi không có phương tiện tiêu chuẩn nào để giao tiếp giữa cơ sở dữ liệu và ứng dụng.
  • Nó không phụ thuộc vào một ngôn ngữ lập trình cụ thể hoặc một hệ thống cơ sở dữ liệu hoặc một hệ điều hành. Các lập trình viên có thể sử dụng giao diện ODBC để viết các ứng dụng có thể truy vấn dữ liệu từ bất kỳ cơ sở dữ liệu nào, bất kể môi trường mà nó đang chạy hoặc loại DBMS mà nó sử dụng.
  • Bởi vì trình điều khiển ODBC hoạt động như một trình dịch giữa ứng dụng và cơ sở dữ liệu, ODBC có thể đạt được sự độc lập về ngôn ngữ và nền tảng. Điều này có nghĩa là ứng dụng được giảm bớt gánh nặng khi biết ngôn ngữ cụ thể của cơ sở dữ liệu. Thay vào đó, nó sẽ chỉ biết và sử dụng cú pháp ODBS và trình điều khiển sẽ dịch truy vấn sang cơ sở dữ liệu bằng ngôn ngữ mà nó có thể hiểu được. Sau đó, kết quả được trả về ở định dạng mà ứng dụng có thể hiểu được. API phần mềm ODBC có thể được sử dụng với cả hệ thống cơ sở dữ liệu quan hệ và không quan hệ.
  • Một ưu điểm chính khác của việc có ODBC làm phần mềm trung gian phổ biến giữa ứng dụng và cơ sở dữ liệu là mỗi khi đặc điểm cơ sở dữ liệu thay đổi, phần mềm không cần phải cập nhật. Chỉ cập nhật trình điều khiển ODBC là đủ.
.NET Developer. được hỏi... 26/10/2023

ADO là gì?

1 câu trả lời

  • ADO là một tập hợp các đối tượng COM (Chế độ Đối tượng Thành phần) hoạt động như một giao diện để truy cập dữ liệu trong các nguồn dữ liệu.
  • ADO được phát triển vào năm 1996 bởi Microsoft như một phần của Microsoft Data Access Components (MDAC).
  • ADO tạo thành một lớp phần mềm trung gian giữa các ứng dụng được viết bằng một số ngôn ngữ lập trình và OLE DB (một API dữ liệu được phát triển bởi Microsoft và kế thừa của ODBC).
  • Lập trình viên có thể sử dụng ADO để truy cập dữ liệu mà không cần biết chi tiết triển khai cơ bản của cơ sở dữ liệu. Mặc dù bạn không bắt buộc phải biết bất kỳ SQL nào để sử dụng ADO, bạn chắc chắn có thể thực thi các câu lệnh SQL bằng cách sử dụng nó.
.NET Developer. được hỏi... 26/10/2023

Sự khác biệt giữa ODBC và ADO là gì?

1 câu trả lời

  • ODBC là một giao diện mở, có thể được sử dụng bởi bất kỳ ứng dụng nào để giao tiếp với bất kỳ hệ thống cơ sở dữ liệu nào, trong khi ADO là một trình bao bọc xung quanh OLE DB (là giao diện kế thừa của ODBC).
  • Nếu cơ sở dữ liệu không hỗ trợ OLE (môi trường không phải OLE) thì ODBC là lựa chọn tốt nhất.
  • Nếu môi trường không phải SQL, thì bạn phải sử dụng ADO (vì ODBC chỉ hoạt động với SQL). Nếu các thành phần cơ sở dữ liệu có thể tương tác được yêu cầu, thì ADO cần được sử dụng thay vì ODBC.
  • Tuy nhiên, để truy cập dữ liệu 16-bit, ODBC là lựa chọn duy nhất (ADO không hỗ trợ 16-bit). Cuối cùng, ADO là lựa chọn tốt nhất để kết nối với nhiều cơ sở dữ liệu cùng một lúc (ODBC chỉ có thể kết nối với một cơ sở dữ liệu tại một thời điểm).
.NET Developer. được hỏi... 26/10/2023

Tuổi thọ của các mục trong ViewState là bao lâu?

1 câu trả lời

Các mục trong ViewState sẽ tồn tại cho đến khi trang mà chứa chúng ngừng hoạt động.

.NET Developer. được hỏi... 26/10/2023

‘CTS’ là gì?

1 câu trả lời

CTS là từ viết tắt của Common-Type System (Hệ thống loại chung). Hệ thống này ra lệnh các loại dữ liệu được sử dụng trong hệ thống.

.NET Developer. được hỏi... 26/10/2023

Định nghĩa ‘encapsulation’?

1 câu trả lời

  • Encapsulation là một chức năng bao gồm các phương pháp và dữ liệu khác nhau trong một dự án.
  • Điều này được thực hiện để đối tượng của chương trình có thể thực hiện các chức năng một cách trơn tru và không có bất kỳ lỗi nào.
.NET Developer. được hỏi... 26/10/2023

Điểm khác biệt giữa ‘class’ (lớp) và ‘object’ (đối tượng) là gì?

1 câu trả lời

  • Nói một cách đơn giản, một “object” (đối tượng) là một cái gì đó xảy ra hoặc nằm trong “class” (lớp).
  • Lớp (class) định hình đối tượng trông như thế nào, cách chúng hoạt động và loại thuộc tính nào chúng có. Đổi lại, các đối tượng hành động tương tự tạo nên các lớp đó
.NET Developer. được hỏi... 26/10/2023

Có sự khác biệt giữa ‘debug’ và ‘trace’ hay không?

1 câu trả lời

Câu trả lời là

Lớp Trace có thể được sử dụng để gỡ lỗi và phát hành một số bản dựng nhất định, trong khi Debug chỉ được sử dụng để gỡ lỗi.

.NET Developer. được hỏi... 26/10/2023

Điểm khác biệt giữa ‘in-process’ và ‘out-of-process’ là gì?

1 câu trả lời

Cả hai khái niệm này đều liên quan đến quản lý bộ nhớ phiên. In-process (quá trình lưu trữ trong) lưu trữ tất cả dữ liệu từ một phiên phát triển trên máy chủ web. Trái ngược với điều đó, out-of-process  (quy trình lưu trữ ngoài) lưu trữ cùng một dữ liệu trên một khu vực quản lý bộ nhớ ngoài. Có lẽ một trong những khu vực lưu trữ bộ nhớ ngoài phổ biến nhất sẽ là SQL server.

.NET Developer. được hỏi... 26/10/2023

MSIL là gì?

1 câu trả lời

MSIL (Microsoft Intermediate Language) có nghĩa là Ngôn ngữ trung gian của Microsoft. Nó được sử dụng để xác định các giá trị, lưu trữ bộ nhớ và các tác vụ cao cấp tương tự khác. Mỗi mã code mà .NET sử dụng trước tiên phải đi qua MSIL

.NET Developer. được hỏi... 26/10/2023

‘Inheritance’ là gì?

1 câu trả lời

Inheritance (Kế thừa) xảy ra khi một lớp nhỏ hơn đảm nhận các tính năng và tham số của lớp khác lớn hơn. Lớp lớn hơn này sau đó được xem như là một “lớp mẹ” của lớp nhỏ hơn (lớp con).

.NET Developer. được hỏi... 26/10/2023

Điểm khác biệt giữa ‘managed code’ và ‘unmanaged code’ là gì?

1 câu trả lời

Managed code (Mã được quản lý) là một loại mã code được tạo và biên dịch trong .NET framework. Ngược lại, unmanaged code (mã không được quản lý) đến từ một khung framework xây dựng phần mềm khác và mang theo tất cả các tính năng và cài đặt của khung khác.

.NET Developer. được hỏi... 26/10/2023

‘Int’ và ‘System.Int32’ có khác biệt hay không?

1 câu trả lời

Không có sự khác biệt nhiều giữa “int” và “System.Int32”. “Int” có thể được hiểu đơn giản là một phiên bản ngắn hơn của  “System.Int32”.

.NET Developer. được hỏi... 26/10/2023

Định nghĩa ‘caching’ là gì?

1 câu trả lời

Caching (Bộ nhớ đệm) là một quá trình khi bạn giữ các tệp và dữ liệu thường được sử dụng nhất trong một bộ nhớ riêng. Vị trí riêng biệt này - bộ đệm cache - là nơi bạn có thể truy cập tất cả các tệp được chỉ định. Bộ nhớ đệm tiết kiệm cho các nhà lập trình .NET rất nhiều thời gian và tăng khả năng quản lý bộ nhớ.

.NET Developer. được hỏi... 26/10/2023

‘Assembly’ là gì?

1 câu trả lời

Assembly là nơi chứa tất cả các công cụ cần thiết để xây dựng trang web và chương trình sử dụng .NET. Một nhà phát triển có thể cần có nơi tập trung private (riêng) và shared (chung).

.NET Developer. được hỏi... 26/10/2023

.NET có phải là OOP hay AOP framework không?

1 câu trả lời

.NET đề cập trước đó. .NET hoàn toàn là một khung OOP - các khái niệm đã đề cập như Encapsulation và Inheritance là một số tính năng chính của khung lập trình hướng đối tượng.

.NET Developer. được hỏi... 26/10/2023

Có thể kết hợp các ngôn ngữ khác nhau trong thư mục ‘App_Code’ không?

1 câu trả lời

Câu trả lời là Không. Tập tin bạn đang làm việc phải được viết bằng một mã code cụ thể. Bạn không thể kết hợp các ngôn ngữ coding trong thư mục.

.NET Developer. được hỏi... 26/10/2023

Tập tin ‘.dll’ là gì?

1 câu trả lời

Tập tin DLL là những tập tin cần được ẩn. Đây là thuật ngữ viết tắt của “Dynamic Link Library”. Các thư viện này rất rộng lớn, chứa một lượng lớn tệp và lệnh. DLL cũng có thể được chia sẻ giữa các chương trình và ứng dụng khác.

Đang xem 21 - 40 trong 71 câu hỏi phỏng vấn