.NET Framework là cơ sở hạ tầng cho việc xây dựng, triển khai và chạy các ứng dụng và dịch vụ Web. Nó cung cấp một môi trường đa ngôn ngữ, dựa trên nền các chuẩn với hiệu nǎng cao, cho phép tích hợp những đầu tư ban đầu với các ứng dụng và dịch vụ thế hệ kế tiếp và giải quyết những thách thức của việc triển khai và vận hành các ứng dụng trên quy mô Internet
Thực tế .NET Framework là kết quả của hai dự án lớn của Microsoft:
Dự án đầu tiên nhằm mục đích cải tiến công việc phát triển các ứng dụng trên nền Windows, hãy nhìn cụ thể vào công việc cải tiến COM (Component Object Model – Mô hình Đối tượng Thành phần) của Microsoft.
Dự án thứ hai tập trung tạo ra nền tảng cho việc chuyển giao phần mềm như một dịch vụ. Sản phẩm này đã cải thiện đáng kể nǎng suất cho người phát triển, đơn giản hóa công việc triển khai và thực thi ứng dụng một cách đáng tin cậy.
Mục đích thiết kế .NET Framework
.NET Framework là thành quả tối ưu của sự kết hợp công sức và trí tuệ của Microsoft, nhằm tạo ra một nền tảng cho việc xây dựng và triển khai nhanh chóng các dịch vụ và ứng dụng Web XML. Tầm nhìn của nền tảng .NET Framework kết hợp một mô hình lập trình đơn giản, dễ sử dụng với các giao thức mở và biến đổi được của Internet. Để đạt được tầm nhìn này, việc thiết kế .NET Framework nhằm một số mục đích:
Sự hợp nhất thông qua các chuẩn Internet công cộng: Để giao tiếp với những đối tác kinh doanh, những khách hàng phụ thuộc vào các khu vực theo vị trí địa lý, thậm trí cả những ứng dụng cho tương lai, những giải pháp phát triển cần được đề nghị hỗ trợ cho các chuẩn Internet mở và tích hợp chặt chẽ với các giao thức mà không bắt buộc người phát triển phải thông hiểu cơ sở hạ tầng bên dưới nó.
Khả nǎng biến đổi được thông qua một kiến trúc “ghép nối lỏng”: Đa số các hệ thống lớn, biến đổi được trên thế giới được xây dựng trên những kiến trúc không đồng bộ dựa trên nền thông điệp (message-based). Nhưng công việc xây dựng các ứng dụng trên một kiến trúc như vậy thường phức tạp và có ít các công cụ hơn so với những môi trường phát triển ứng dụng N lớp (N-tier) “ghép nối chặt”. .NET Framework được xây dựng để đem lại những lợi thế về nǎng suất của kiến trúc “ghép nối chặt” với khả nǎng biến đổi được và vận hành với nhau của kiến trúc “ghép nối lỏng”.
Hỗ trợ nhiều ngôn ngữ: Các nhà phát triển sử dụng những ngôn ngữ khác nhau do mỗi ngôn ngữ riêng có những ưu thế đặc thù : một số ngôn ngữ đặc biệt thích hợp với thao tác toán học; một số khác lại đa dạng ở các hàm tính toán tài chính v.v. .NET Framework cho phép các ứng dụng được viết trong nhiều ngôn ngữ lập trình khác nhau và chúng có khả nǎng tích hợp với nhau một cách chặt chẽ. Ngoài ra, với .NET Framework, các công ty còn có thể tận dụng những lợi thế của kỹ nǎng phát triển sẵn có mà không cần phải đào tạo lại và cho phép những người phát triển sử dụng ngôn ngữ mà họ ưa thích.
Nâng cao nǎng suất cho các nhà phát triển: Với số lượng các nhà phát triển ứng dụng không nhiều nên mỗi giờ làm việc họ phải cho ra kết quả công việc cụ thể. Các nhóm phát triển với .NET Framework có thể loại bỏ những công việc lập trình không cần thiết và tập trung vào viết các lôgic doanh nghiệp. Chẳng hạn như .NET Framework có ưu điểm tiết kiệm thời gian như thực hiện các giao dịch tự động và dễ sử dụng, quản lý bộ nhớ một cách tự động và có chứa một tập các đối tượng điều khiển đa dạng bao hàm nhiều tác vụ phát triển chung.
Bảo vệ những sự đầu tư thông qua việc bảo mật đã được cải tiến: Một trong những vấn đề liên quan lớn nhất đến Internet hiện nay là bảo mật. Kiến trúc bảo mật của .NET Framework được thiết kế từ dưới lên để đảm bảo các ứng dụng và dữ liệu được bảo vệ thông qua một mô hình bảo mật dựa-trên-bằng-chứng (evidence-based) và tinh vi.
Tận dụng những dịch vụ của hệ điều hành: Windows cung cấp một số lượng đa dạng các dịch vụ có sẵn với bất kỳ nền tảng nào; như truy cập dữ liệu một cách toàn diện, bảo mật tích hợp, các giao diện người dùng tương tác, mô hình đối tượng thành phần đáng tin cậy và các giám sát quá trình giao dịch. .NET Framework đã tận dụng lợi thế đa dạng và phong phú này để đưa ra cho mọi người theo cách dễ sử dụng nhất.
Những đặc tính của .NET Framework
Hỗ trợ các chuẩn dịch vụ Web XML
Sự sử dụng ngôn ngữ đánh dấu mở rộng XML ở khắp mọi nơi: XML là một định dạng dữ liệu cho việc trao đổi tài liệu lẫn nhau có cấu trúc trên Web. .NET Framework sử dụng XML ở khắp mọi nơi từ việc mô tả các đối tượng cho đến bảo mật các tập tin cấu hình.
Khả nǎng vận hành với nhau qua việc hỗ trợ SOAP: .NET Framework cho phép những người phát triển đưa ra và sử dụng các dịch vụ Web XML một cách trong suốt (transparently) thông qua SOAP (Simple Object Access Protocol), một vǎn phạm XML chuẩn tạo khả nǎng thao tác giữa các phần trong ứng dụng.
Mô tả dễ dàng các dịch vụ Web XML với WSDL: .NET Framework tạo ra những mô tả WSDL (Web Services Description Language – Ngôn ngữ Mô tả các Dịch vụ Web) cho các dịch vụ Web XML.
Đưa ra những dịch vụ Web với SOAP Discovery (viết tắt Disco): SOAP Discovery cung cấp cơ chế bởi những dịch vụ Web XML nào được tìm thấy trên một máy phục vụ Web (Web server) ; .NET Framework cung cấp một cách thức để công bố các dịch vụ Web XML thông qua SOAP Discovery.
Hỗ trợ UDDI: .NET Framework sử dụng UDDI (Universal Description, Discovery and Integration) cho phép những dịch vụ Web XML cung cấp cơ chế bởi những dịch vụ Web XML nào được tìm thấy trên Internet.
Hiệu suất cho người phát triển
Tích hợp nhiều ngôn ngữ lập trình: .NET Framework cung cấp khả nǎng tích hợp ngôn ngữ lập-trình-chéo (cross-programming language), chặt chẽ, thúc đẩy nǎng suất do sự cho phép người phát triển mở rộng những thành phần một ngôn ngữ lập trình bên trong một ngôn ngữ khác theo cách kế thừa ngôn-ngữ-chéo (cross-language), gỡ lỗi và xử lý lỗi.
“Versioning” tự động là phần của bản chất tự mô tả của mỗi thành phần và ứng dụng .NET Framework ở chỗ mỗi thành phần đó có một tên (name) duy nhất được lưu giữ bên trong. Do các ứng dụng kết các tên duy nhất của các thành phần lại với nhau, bộ thực hiện (runtime) của .NET Framework có khả nǎng điều khiển ?versioning? của những thành phần dùng chung một cách thông minh và làm mất đi cái gọi là “DLL hell”.
Triển khai theo kiểu “No-touch” (không can thiệp): .NET Framework bao hàm những đặc tính được cải tiến cho việc triển khai các ứng dụng. Việc cài đặt một ứng dụng vào trong hệ thống cũng đơn giản như việc sao chép nó vào trong một thư mục đích và cho nó chạy mà không cần đǎng ký như Windows Registry.
Quản lý bộ nhớ tự động: .NET Framework là một môi trường “gom rác” (garbage-ollected). Công việc “gom rác” giải phóng các ứng dụng sử dụng các đối tượng .NET Framework từ sự cần thiết loại bỏ dứt khoát các đối tượng này và làm giảm đi những lỗi lập trình chung không đáng có.
Các thành phần tự-mô-tả: Siêu dữ liệu (metadata) mà mỗi đối tượng trong .NET Framework chứa đựng cho phép bộ thực hiện (runtime) “chất vấn” các đối tượng về những kiểu dữ liệu, chức nǎng hoạt động, v.v. để xác định các đối tượng đã được gọi đúng cách chưa hơn là để cho lời gọi xảy ra và nhận lấy thất bại. Đặc tính này được gọi là “reflection”.
Mô hình điều khiển giao diện người dùng ASP.NET và các đối tượng điều khiển được cải thiện làm tǎng thêm nǎng suất và hiệu quả do việc “đóng gói” những tương tác phức tạp trong các thành phần (component) trên máy phục vụ.
Sự tách biệt giữa mã và nội dung cho phép người phát triển và người tạo ra nội dung làm việc song song với nhau do việc lưu giữ nội dụng trong một file tách biệt khỏi các mã của ứng dụng.
Tích hợp nền tảng chặt chẽ:
.NET Framework cho phép những nhà phát triển sử dụng tất cả các ứng dụng Windows và các dịch vụ hiện hữu. Với ưu thế đó, người phát triển có thể sử dụng mã đang tồn tại trong khi tận dụng những lợi điểm, thế mạnh trong .NET Framework.
Viết ít mã hơn: do .NET Framework sử dụng thiết kế “thành phần hóa” cao, những nhà phát triển có thể tập trung vào việc viết lôgic doanh nghiệp hơn là những công việc như quản lý bộ nhớ, quản lý trạng thái hay xác định khả nǎng của một trình duỵệt client?
Sự nhạy cảm khi giải quyết các thách thức đối với doanh nghiệp thời nay
Hỗ trợ những chuẩn Internet công cộng:
Những chuẩn được xem là phần lõi để chuyển giao phần mềm như là một dịch vụ. Microsoft trình bày những đặc tả cho ngôn ngữ lập trình C# và cơ sở hạ tầng ngôn ngữ chung CLI (Common Language Infrastructure) và chuyển tới ECMA cho việc chuẩn hóa.
Hỗ trợ dị bộ (không đồng bộ):
.NET Framework tích hợp hai công nghệ truyền thông dị bộ cho khả nǎng biến đổi được và tính đáng tin cậy: SOAP và MSMQ (Microsoft Message Queuing Services).
Hỗ trợ giao dịch:
Những nhà phát triển ứng dụng có thể thực hiện cả những công việc thao tác .NET Framework bên trong các giao dịch có chứa những hoạt động khác như cập nhật CSDL chẳng hạn. .NET Framework hỗ trợ các giao dịch thông qua MTS (Microsoft Transaction Services – các Dịch vụ Giao dịch của Microsoft) và COM+[16] và cung cấp một giao diện XA tương hợp các chuẩn.
Biên dịch ASP.NET làm tǎng khả nǎng thực hiện bởi việc biên dịch các trang thay vì phải thông dịch chúng.
Giám sát phiên ASP.NET tự động và khởi động lại làm tǎng thêm độ tin cậy qua việc giám sát chạy các ứng dụng ASP.NET và thậm chí dừng và bắt đầu lại quá trình chạy nếu thấy cần thiết.
Truy nhập dữ liệu toàn bộ với ADO.NET:
.NET Framework có chứa ADO.NET, một giao diện hiệu nǎng truy nhập tới bất kỳ một CSDL nào được thiết kế riêng cho kiểu “ghép nối lỏng”. ADO.NET cung cấp các dịch vụ truy cập dữ liệu cho các ứng dụng trên nền Web biến đổi được và các dịch vụ Web XML, bao gồm cả sự hỗ trợ mô hình dữ liệu đang kết nối (connected) cũng như ngừng kết nối (disconnected).
Cải thiện các thao tác
An ninh bảo mật dựa trên nền tảng bằng chứng (evidence-based):
Hệ thống bảo mật truy cập mã của .NET Framework cho phép các nhà phát triển định ra những “giấy phép” được yêu cầu rằng mã của họ cần để hoàn thành sản phẩm. Bộ thực thi ngôn ngữ chung (common language runtime) chịu trách nhiệm bảo đảm rằng những “giấy phép” này là phù hợp hay bị loại bỏ, phụ thuộc vào chứng cớ bao gồm nhận diện người dùng, nhận diện mã, mã nào thực sự đang được sử dụng, mã được bắt nguồn từ nơi nào?
Windows Authentication tích hợp:
.NET Framework cũng tích hợp với Windows Authentication (Chứng thực Windows). Windows Authentication tích hợp trước đây được biết như chứng thực NT LAN Manager và Windows NT Challenge/Response. Trong Windows Authentication tích hợp, trình duyệt cố gắng sử dụng những (giấy) ủy nhiệm của người dùng hiện hành từ một đǎng nhập tên miền. Nếu những ủy nhiệm này không được chấp nhận thi Windows Authentication tích hợp sẽ nhắc người dùng cho một tên và mật khẩu người dùng thông qua một hộp thoại. Khi Windows Authentication tích hợp đang được sử dụng thì mật khẩu người dùng không qua được từ máy khách đến máy phục vụ. nếu một người dùng đã đǎng nhập như là một người sử dụng tên miền trên một máy tính cục bộ, người dùng sẽ không bị chứng thực lần nữa khi truy nhập một máy tính mạng trong miền đó.
Chứng thực Internet:
Người dùng Internet thường cần những cơ chế chứng thực khác nhau. Các ứng dụng dùng .NET Framework có thể nắm lấy lợi thế và được cấu hình cho chứng thực sử dụng một sự kết hợp của máy phục vụ Web (Web server) và các nhà cung cấp chứng thực .NET Framework.
Hiệu suất được cải thiện:
.NET Framework cải thiện hiệu suất các ứng dụng Web đặc thù. ASP.NET sử dụng khả nǎng tối ưu hoá cho những bộ xử lý nào đó và với việc cất giữ một cách linh động ASP.NET có thể cải thiện hiệu suất hơn hai đến ba lần so với các ứng dụng ASP hiện hành.
Sự tin cậy vững chắc:
Giành được sự tin cậy mức xí nghiệp với .NET Framework, thông qua việc quản lý bộ nhớ một cách tự động, tính tương thích phiên bản có bảo hành, vòng lặp chu kỳ ứng dụng động và các dịch vụ xí nghiệp đã được cung cấp bởi COM+.