it-swarm-vi.com

Mối quan hệ giữa C #, .NET, ASP, ASP.NET, v.v.

Tôi thực sự không rõ ràng về sự khác biệt giữa C #, C # .NET và tương tự cho ASP và các ngôn ngữ '.NET' khác.

Theo những gì tôi hiểu, .NET là một thư viện/khung của ... những thứ. Tôi nghĩ rằng về cơ bản họ truy cập vào dữ liệu Windows, chẳng hạn như các phần tử biểu mẫu, nhưng điều đó dường như không áp dụng cho ASP.NET.

Ngoài ra, tôi thấy mọi người tự gọi mình là nhà phát triển '.NET'. Điều này có nghĩa là họ thông thạo C #, ASP và các ngôn ngữ khác?

Cuối cùng, tôi không bao giờ thấy C # mà không có .NET kèm theo. Là C # gắn chặt với .NET là không thể sử dụng mà không có nó?

Tóm lại: .NET cung cấp chính xác những gì? Làm thế nào nó liên quan đến C # và ASP, v.v? 'Nhà phát triển .NET' nghĩa là gì? Và cuối cùng, tại sao bạn không bao giờ thấy C # mà không có .NET?

[Bên cạnh đó, tôi nhận ra đây là nhiều câu hỏi, nhưng tôi nghĩ chúng rất liên quan đến nhau (hoặc ít nhất đó là ấn tượng mà các lập trình viên duyệt/SO, v.v.

146
Megan Walker

Tôi hiểu sự nhầm lẫn của bạn, hãy tin tôi, tôi có cùng quan điểm khi nói đến thế giới Java! Dù sao, tôi sẽ cố gắng phá vỡ các câu hỏi của bạn và giải quyết từng câu hỏi một ... cũng như thêm một số điểm khác trong đó hy vọng sẽ giúp làm rõ những gì đang diễn ra:

  1. C # và C # .NET là cùng một thứ ... C #
  2. .NET là, như bạn nói, một thư viện mã mà các ngôn ngữ .NET có thể nói chuyện.
  3. Các ngôn ngữ .NET có các hương vị khác nhau như: C # .NET, VB.NET, Managed C++, F #.
  4. Các ngôn ngữ .NET biên dịch thành CIL ( Ngôn ngữ trung gian chung ) có nghĩa là tất cả chúng bắt đầu "nói" cùng một ngôn ngữ và do đó có thể tương tác với nhau.
  5. ASP.NET là một phần của thư viện .NET được sử dụng để tạo các trang web. Có các phần phụ khác của ASP.NET như WebForms (cách tạo trang web cũ) hoặc thư viện MVC trưởng thành nhanh chóng cũng đáng xem.
  6. Biểu mẫu (công nghệ cũ) hoặc WPF mới (Windows Presentation Foundation) là những công nghệ bạn thường sử dụng trong .NET để tạo ra những gì bạn biết là ứng dụng máy tính để bàn truyền thống.

Một điều cuối cùng tôi muốn hoàn thành là sự khác biệt giữa thư viện và khung. Trong những năm gần đây, hai thuật ngữ này đã được sử dụng như những từ đồng nghĩa, tuy nhiên đó không phải là trường hợp. Cách dễ nhất tôi có thể nghĩ để phân biệt hai loại này là:

  • Một thư viện chứa nhiều phần chức năng mà bạn có thể chọn và chọn từ nghĩa là sử dụng một phần công nghệ không có nghĩa là bạn bị khóa trong phần còn lại. Điều này có nghĩa là tự do, tuy nhiên bạn sẽ có nhiều công việc hơn cho bạn.
  • Tuy nhiên, một khung làm việc đặt ra cách bạn sẽ làm việc. Nó cung cấp một quy trình công việc mà tốt hơn hoặc xấu hơn là khó thay đổi. Điều này có nghĩa là phát triển/tạo mẫu nhanh, nhưng nếu những thay đổi đáng kể được thực hiện trong tương lai thì có thể không thể (hoặc rất tốn thời gian) để thực hiện chúng.

Dự án bạn đang làm sẽ phụ thuộc vào sự lựa chọn của bạn.

172
PaulCarroll

.NET là một khung phát triển ứng dụng - nó chứa nhiều thư viện chứa một loạt các chức năng.

C # là ngôn ngữ được tạo để sử dụng với .NET. Đây không phải là ngôn ngữ tương thích .NET duy nhất - các tùy chọn khác bao gồm VB.NET, F #, Managed C++, IronRuby và IronPython. Bạn viết mã bằng ngôn ngữ bạn chọn để sử dụng chức năng trong khung .NET.

ASP.NET là một phần mở rộng của .NET giúp bạn viết các ứng dụng và trang web dựa trên web. Phần lớn khung tổng thể có sẵn (hoặc hữu ích, trong trường hợp ví dụ WinForms) trong bối cảnh này.

[Classic] ASP là một khung web cũ hơn, cũng từ Microsoft. Mặc dù có tên tương tự, ASP và ASP.NET khá khác nhau. Sự khác biệt đáng chú ý là các tùy chọn ngôn ngữ duy nhất của bạn cho ASP là VBScript và JScript. ASP là một công nghệ cũ và lỗi thời, đừng tự làm phiền mình với nó.

23
Grant Palin

Trước hết, .Net là một khung công tác mã byte, tương tự như Java bytecode .Net tuy nhiên chỉ là BYTECODE. Không có ngôn ngữ chính thức ".Net". Hai ngôn ngữ chính nhắm mục tiêu .Net là C # và VB.Net. ASP.Net là một phần mở rộng cho thư viện .Net được cung cấp để cho phép các ứng dụng được viết bằng C # hoặc VB.Net (hoặc các ngôn ngữ được nhắm mục tiêu .Net khác) hoạt động như một trang web.

Các nhà phát triển nói rằng họ biết .Net thường có nghĩa là họ biết C # hoặc VB.Net hoặc cả hai và có thể dễ dàng tìm hiểu bất kỳ ngôn ngữ nào họ không biết (C # và VB.Net là các ngôn ngữ cực kỳ giống nhau ngoài cú pháp chung)

Cuối cùng, ASP IS KHÔNG giống với ASP.Net. Chúng có sự khác biệt rất lớn

14
Earlz

Vì chỉ có một câu trả lời đề cập đến Mono mà không đi sâu vào chi tiết:

Mặc dù C # là ngôn ngữ ban đầu được phát triển tại Microsoft như một phần của .NET Framework, nhưng sau đó nó đã được chuẩn hóa bởi ECMA , có nghĩa là việc triển khai tuân thủ tiêu chuẩn độc lập của ngôn ngữ có thể được phát triển, và thực sự chúng đã được. Nổi bật nhất trong số đó là Mono .

Mono là một triển khai mã nguồn mở của một bộ công cụ tuân thủ tiêu chuẩn ECMA tương thích với .NET Framework, bao gồm trình biên dịch C # và triển khai CLI (Mono Runtime, tương đương với CLR của Microsoft - máy ảo của .NET Framework). Mục đích của nó là chạy các ứng dụng .NET đa nền tảng. Cho đến ngày hôm nay, nó hỗ trợ C # 4.0 và một phần đáng kể của các tính năng .NET Framework . Ngoài việc phản ánh việc triển khai của Microsoft, nhóm Mono cũng đang thực hiện những đổi mới của riêng mình.

Vì vậy, vâng, có thể và khả thi khi làm việc trong C # mà không cần .NET. Tuy nhiên, không chắc rằng Mono sẽ có thể cạnh tranh thị phần của Microsoft và vị trí của .NET Framework, không phải bây giờ và không trong tương lai trước mắt.

8
scrwtp

Cuốn sách của Jon Skeet, C # In Depth phá vỡ .NET khá ngắn gọn. Nó thường được sử dụng liên quan đến

  1. Ngôn ngữ lập trình (C #, VB)
  2. Thời gian chạy (CLR) chạy mã byte mà các ngôn ngữ được biên dịch thành.
  3. Thư viện khung (Windows Forms/ASP.NET)
7
mootinator

các câu trả lời khác làm tốt công việc giải thích từng công nghệ, nhưng tôi nghĩ rằng họ bỏ lỡ một trong những lý do chính cho sự nhầm lẫn. C # và C # .NET về cơ bản là đồng nghĩa, tuy nhiên VB.NET và VB là khác nhau và ASP và ASP.NET cũng khác nhau. VB thường đề cập đến VB6 trở lên và ASP đề cập đến ASP cổ điển. Các công nghệ này được thiết kế lại hoàn toàn với việc phát hành .NET framework và thay vì đưa ra các tên mới cho Các sản phẩm Microsoft đã thêm .NET vào hầu hết mọi thứ, nhưng C # cũng mới nên cả hai tên thực sự đề cập đến cùng một điều.

2
Ryathal

Bạn phải phân biệt giữa các ngôn ngữ, khung, CLR, mẫu và phương pháp lập trình.

ASP.Net sử dụng một mô hình lập trình hoàn toàn khác để phát triển Winforms mặc dù chúng có chung nền tảng. Bạn có thể lập trình các ứng dụng ASP.net và .Net bằng nhiều ngôn ngữ.

Sau đó, có ngôn ngữ Mono và C # được sử dụng trong ngữ cảnh Mono - có lẽ đáng để nghiên cứu.

Hãy đọc các liên kết này:
[.__.] http://en.wikipedia.org/wiki/Common_Lingu_R.78
[.___.] http://en.wikipedia.org/wiki/.NET_Framework#Alternative_im THỰCations
[.__.] http://en.wikipedia.org/wiki/File:Overview_of_the_Common_Lingu_Infr Hạ tầng.svg

0
Jeremy