2.3.1.1 Định nghĩa .NET
.NET có nghĩa một nền tảng hơn là một sản phẩm đơn lẻ, cho nên cách định nghĩa nó có thể đa dạng. Một cách đơn giản .NET đƣợc định nghĩa dƣới dạng một khung ứng dụng (application framework). .NET cung cấp một khung cho những ứng dụng nào đƣợc xây dựng, nó xác định những ứng dụng truy nhập các hàm nhƣ thế nào qua các hệ thống và các mạng. .NET cung cấp một nền tảng mà trên đó các giải pháp và các dịch vụ Web có thể đƣợc xây dựng, một nền tảng giải phóng những sự ràng buộc và tự bản thân nó giải phóng khỏi Microsoft Windows (về mặt kĩ thuật). Nói cách khác, .NET là một cách để xây dựng các ứng dụng và các dịch vụ mà nó hoạt động không phụ thuộc vào một nền tảng (platform) nào. Đây là một cách để tạo ra các trao đổi thông tin (truyền thông) giữa những hệ thống đa dạng và các ứng dụng cũng nhƣ tích hợp nhiều thiết bị vào trong việc trao đổi thông tin này.
Ý tƣởng .NET đƣợc thiết kế để hỗ trợ chúng ta tiến tới một Web thân thiện hơn, tích hợp tốt hơn, một nơi mà ở đó các ứng dụng và các quá trình giao dịch có thể tƣơng tác với nhau một cách tự do không phụ thuộc vào chƣơng trình và nền tảng.
Tóm lại, .NET làm cho thông tin trên Web có thể đƣợc tiếp cận một cách dễ dàng, tại đó có thể sử dụng bất kì thiết bị nào, trên bất kì nền tảng nào. .NET còn có thể hỗ trợ các hệ thống máy phục vụ và ứng dụng liên lạc với nhau một cách thông suốt và xây dựng hệ thống tính toán phân tán trên Web, làm cho Web trở thành một nơi tƣơng tác nǎng động hơn giữa các dịch vụ Web, các ứng dụng và khách hàng. .NET đƣợc thực thi thông qua .NET framework và các công cụ, hoặc thông qua các các khối (block) hợp nhất và các dịch vụ nhƣ Microsoft Visual Studio .NET. Hiện Microsoft đang tǎng số lƣợng các cộng sự, các nhà phát triển và họ đang tạo ra các sản phẩm bổ xung hữu ích cho việc thực thi .NET (.NET Implementation).
2.3.1.2 Mục tiêu của .NET
Microsoft .NET trợ giúp loại bỏ các thành phần riêng biệt khỏi một nền tảng và ứng dụng, nhƣ vậy nó cho phép thông tin đƣợc trao đổi và xây dựng trên một nền tảng chung hơn. .NET giúp những ngƣời sử dụng có quan niệm rằng sự cạnh tranh phải dựa trên những sản phẩm, chứ không phải các chuẩn. .NET cung cấp một kiểu tiếp cận các chuẩn trên Web một cách hợp lý từ các dịch vụ ứng dụng đƣợc xây dựng ngay cả trên các sản phẩm không phải của Microsoft. Một trong những mục tiêu của .NET là thoát khỏi sự cạnh tranh các chuẩn. Cách tiếp cận này là một tin tức tốt lành cho mọi khách hàng và cho thƣơng mại điện tử.
Mục tiêu thứ hai của nền tảng .NET (.NET platform) là truyền thông thƣơng mại điện tử (TMĐT). Điều đó có nghĩa là .NET cung cấp một cách cho các ứng dụng khác nhau sử dụng phần mềm khác nhau trong những môi trƣờng Web khác nhau để trao đổi và sử dụng thông tin. Thành quả này đƣợc hoàn tất khi sử dụng XML
(Extensible Markup Language - Ngôn ngữ Đánh dấu Mở rộng). XML đƣợc một số lƣợng lớn ngƣời sử dụng và có thể đƣợc dùng làm tiêu chuẩn hoá các máy phục vụ truyền thông, nơi những ứng dụng khác nhau và các dịch vụ chạy trên các ứng dụng này có thể dễ dàng liên lạc với một ứng dụng khác và trao đổi thông tin một cách tự nhiên.
2.3.1.3 Các dịch vụ của .NET
Để thực thi mô hình .NET, một vài khối hợp nhất (building block) cơ sở phải đƣợc đặt đúng chỗ. Các block cơ sở định rõ các dịch vụ web đƣợc xây dựng nhƣ thế nào. Các dịch vụ này cố gắng để trợ giúp các nhà phát triển xây dựng các ứng dụng .NET. Microsoft định nghĩa các dịch vụ khối hợp nhất .NET sau đây:
Authentication: Khi sử dụng các công nghệ Authentication (chứng thực) cũng nhƣ Passport (hộ chiếu) của Microsoft các nhà phát triển tạo ra các dịch vụ cho riêng mình và bảo vệ các dịch vụ nhƣ mong muốn.
Messaging: Đặc tính Messaging (truyền thông điệp) của .NET đƣợc xây dựng trên MSN Hotmail Web đã dựa vào dịch e-mail, Microsoft Exchange Server 2000, và Instant Messaging (truyền thông điệp tức thì). Những hệ thống truyền thông điệp này có thể đƣợc phân tán đến bất kì thiết bị nào do tính không phụ thuộc nền tảng của chúng.
Personalized Experience (kinh nghiệm cá nhân): .NET cho ngƣời dùng nhiều kiểm soát hơn thông qua các quy tắc xử lý dữ liệu và quyền ƣu tiên mà nó xác định rõ dữ liệu phải đƣợc di chuyển và quản lý nhƣ thế nào.
XML (Extensible Markup Language): XML đƣợc xem nhƣ một ngôn ngữ chung, nó cho phép dữ liệu đƣợc di chuyển từ dạng này sang dạng khác trong khi bảo trì tính toàn vẹn của nó. Cùng với SOAP (Simple Object Access Protocol - Giao thức truy nhập đối tƣợng đơn giản), XML có thể cung cấp một dịch vụ linh hoạt để quản lý và điều khiển dữ liệu.
2.3.1.4 Ảnh hƣởng của .NET
Tùy thuộc vào đối tƣợng ngƣời dùng mà .NET có những ảnh hƣởng tác động khác nhau.
Đối với các chuyên gia công nghệ thông tin (CNTT): Những nhà phát triển nhận thấy có một tác động mạnh mẽ từ ý tƣởng .NET. Trƣớc đây các nhà phát triển xây dựng các ứng dụng trên các dịch vụ hệ thống cục bộ. Một ứng dụng riêng biệt đƣợc xây dựng để chạy trên các dịch vụ đƣợc cung cấp bởi một hệ điều hành riêng biệt. Trong hệ thống này những nhà phát triển đã có thể kiểm soát một cách cụ thể ứng dụng hoạt động nhƣ thế nào trên nền tảng đó. Những ứng dụng cho những nền tảng riêng biệt thì không liên lạc (truyền thông) tốt đƣợc với nhau. Giai đoạn thứ hai của sự thay đổi xuất hiện có nghĩa các nhà phát triển phải chuyển sang một mức độ khác, gọi là mức thứ n (n-tier). Điều đó cho phép các nhà phát triển tạo ra các ứng dụng mà nó hoạt động trên một
mức mạng. Chúng ta hiện đang ở vào giai đoạn tiếp theo của công cuộc thay đổi thông qua XML và SOAP, dịch vụ Web. Dịch vụ Web cho phép các ứng dụng tƣơng tác với nhau thông qua Internet và cung cấp các dịch vụ tới ngƣời dùng hay các ứng dụng khác. Một dịch vụ Web hoàn tất một vài kiểu giao dịch và trao đổi thông tin. Khi xây dựng trên XML, các dịch vụ Web có thể đƣợc sử dụng bởi bất kỳ ngƣời nào với bất kỳ thiết bị đơn lẻ nào tại bất kỳ thời điểm đã cho nào. Quy trình dịch vụ Web đƣợc hoàn thành bởi việc sử dụng cả hai đặc tính chƣơng trình ghép nối lỏng và ghép nối chặt. Quy trình nghiệp vụ của việc tính toán n-tier (ghép nối chặt) đƣợc kết hợp với các chuẩn truyền thông điệp ghép nối lỏng và các phƣơng pháp truy nhập dữ liệu trên Internet. Do ý tƣởng .NET đƣợc tìm thấy trên cơ sở của XML và khái niệm dịch vụ Web, các nhà phát triển có một cách mới để tạo ra các ứng dụng mà nó hoạt động và tích hợp dễ dàng hơn. Sự thách thức của các nhà phát triển là tích hợp những khái niệm đó với cái mà nền tảng .NET đƣợc xây dựng trên nó. Các chuyên gia CNTT phải nhìn thấy sự giải toả chung trong việc quản trị bởi vì mô hình tính toán phân tán .NET đã đƣợc sẵn sàng, nhƣng việc quản lý các máy chủ (Enterprise server) .NET và các máy trạm sẽ hoạt động phần lớn theo cùng một cách.
Đối với ngƣời dùng thông thƣờng: Nền tảng .NET có thể có tác động sâu sắc đến kinh nghiệm ngƣời dùng (theo hƣớng tích cực). .NET có khả nǎng thay đổi cách tiếp cận. Do sức mạnh của Internet, ngƣời dùng không còn thấy cần thiết phải lƣu giữ tất cả dữ liệu và phần mềm trên máy tính cá nhân của họ. Thay vào đó, dữ liệu và ngay cả việc sử dụng các ứng dụng có thể đƣợc lƣu trữ trên các máy phục vụ trên Internet (thông thƣờng chi phí ở đây là không đáng kể). Đặc tính này đã xoá bỏ trách nhiệm ngƣời dùng về mặt quản lý. Ngƣời dùng truy nhập và thao tác dữ liệu, nhƣng ngƣời quản trị trên máy sẽ quản lý công việc lƣu giữ, ghi nhận lỗi và lập kế hoạch cấu hình. Ngƣời dùng không còn phải lƣu giữ dữ liệu cục bộ. Một khi dữ liệu đƣợc đƣa lên Internet, chiến lƣợc .NET sẽ bắt đầu vận hành. .NET cho ta một cách để truyền dữ liệu một cách thông suốt thông qua XML và SOAP.
2.3.1.5 Ghép nối lỏng các dịch Web
Tại mức cơ sở, quan điểm ghép nối lỏng có nghĩa các ứng dụng hay các dịch vụ không bị liên kết chặt với các hàm chức nǎng. Điều đó có nghĩa các dịch vụ Web có thể thực hiện nhiều công việc khác nhau với những ngôn ngữ khác nhau qua các ứng dụng khác nhau trên các nền tảng khác nhau.
Các nhà lập trình và các nhà phát triển đã dành thời gian để làm việc với ý tƣởng này dƣới dạng nối mạng phân tán thông qua DCOM [6] cũng nhƣ các mô hình ứng dụng phân tán khác nhƣ CORBA (Common Object Request Broker Architecture) và RMI (Remote Method Invocation). Các mô hình này cho phép các mạng chạy các dịch vụ trên các hệ thống ở xa và đem lại nhiều tiềm nǎng cho mạng cục bộ.
Tuy nhiên, ý tƣởng các giao dịch phân tán trên Web vẫn còn là mới. DCOM và các mô hình ứng dụng khác không thể sánh đƣợc với Internet bởi vì chúng đƣợc xây dựng đặc thù trên hạ tầng cơ sở tƣơng tự. Nói cách khác, bạn không thể thay đổi giao diện máy chủ (server interface) lẫn giao diện khách hàng (client interface). Mô hình này rõ ràng là không làm việc đƣợc trên Internet.
Thông qua ghép nối lỏng, tiến trình và các dịch vụ không bị ràng buộc vào một hạ tầng cơ sở riêng biệt nào. Để đạt đƣợc mục tiêu này, XML đƣợc sử dụng để đƣa ra dữ liệu theo những ứng dụng không chuyên biệt (non-application-specific). Trong cách này ghép nối lỏng đã đƣợc thực hiện hoàn tất do dữ liệu không bị ràng buộc vào một nguồn hay một cấu trúc riêng biệt nào. Cùng với XML, HTTP (HyperText Transfer Protocol) hoặc ngay cả SMTP (Simple Mail Transfer Protocol) đƣợc sử dụng sao cho các ứng dụng và các giao diện truyền thông với nhau thông qua thông điệp (messages) hơn là bằng một giao diện thành phần (component interface). Sử dụng cách tiếp cận này, nơi gửi thông điệp không thừa nhận về việc nơi nhận sẽ tiếp nhận và xử lý thông điệp thế nào. Nơi gửi không quan tâm đến những sự khác biệt giữa những nơi nhận do sự trao đổi dữ liệu đƣợc dựa trên cơ sở thông điệp.
2.3.1.6 Cơ sở hạ tầng .NET
Để nó có thể làm việc đƣợc, chiến lƣợc .NET phải cung cấp một cơ sở hạ tầng mà trên đó các dịch vụ Web có thể đƣợc xây dựng. .NET đã cung cấp cơ sở hạ tầng này để giúp các nhà lập trình tập trung hơn vào việc xử lý các tác vụ kinh doanh hơn là chú trọng đến việc lập trình bản thân nó. Tại mức cơ sở cơ sở hạ tầng, .NET xem những thành phần chƣơng trình nhƣ những dịch vụ Web, nó lấy ra những đặc tính tốt nhất của COM[11] của Microsoft và kết hợp chúng với ý tƣởng truyền thông điệp ghép nối lỏng. Do những đặc tính này mà cơ sở hạ tầng tồn tại cho ngƣời lập trình và nhƣ vậy họ có thể tập trung vào công việc xử lý các tác vụ kinh doanh cần sự phát triển mà không cần phải tạo ra các thành phần (component) riêng biệt hoạt động với nhau.
Cơ sở hạ tầng .NET tạo ra framework (khung) trên đó các dịch vụ Web đƣợc xây dựng. Ba thành phần cho.NET framework bao gồm:
Thực thi ngôn ngữ chung CLR (Common Language Runtime): Tất cả các ngôn
ngữ lập trình đều có một runtime (thi hành), một dịch vụ hoạt động cùng với ngôn ngữ lập trình. Common Language Runtime (CLR) là một thành phần cốt lõi (cơ bản nhất) của .NET, nó là bộ thi hành ngôn ngữ chung. CLR cung cấp nền cơ sở mà trên đó các ứng dụng cho. NET đƣợc xây dựng. CLR quản lý nhiều khía cạnh của chu trình phát triển theo quan điểm của ngƣời phát triển. Chẳng hạn, khi làm việc với COM, các nhà phát triển phải lƣu tâm đến vấn đề quản lý bộ nhớ, những sự khởi tạo luồng (thread), các thành phần bảo mật và những vấn đề tƣơng tự. Điều đó làm cho các nhà phát triển phải tiêu tốn quá nhiều thời gian vào các vấn đề này. Bộ thi hành ngôn ngữ chung CLR quản lý
tất cả các vấn đề nảy sinh đó một cách tự động và giải phóng cho các nhà phát triển tập trung vào việc xử lý giao dịch logic. CLR cung cấp một runtime chung mà nó đƣợc sử dụng với tất cả các ngôn ngữ. Thành phần này làm cho .NET có một khả nǎng "hỗ trợ mọi ngôn ngữ" (language-free).
Các lớp lập trình hợp nhất (Unified Programming Classes): Những thƣ viện lớp lập trình hay các giao diện lập trình ứng dụng (API) đƣợc sử dụng bởi nhiều ngôn ngữ khác nhau. Để sử dụng những ngôn ngữ lập trình khác nhau, các nhà phát triển nghiên cứu các bộ thƣ viện lớp khác nhau để làm việc với các ngôn ngữ lập trình khác nhau. Vấn đề này đã làm chậm quá trình phát triển ứng dụng và làm mất khá nhiều thời gian. .NET cung cấp các lớp lập trình hợp nhất với một bộ API dùng chung cho mọi ngôn ngữ lập trình. Các ngôn ngữ có thể tƣơng tác với một ngôn ngữ khác và các lớp lập trình hợp nhất này cho phép các nhà phát triển lựa chọn bất cứ ngôn ngữ nào mà họ muốn trong khi chỉ cần duy nhất một bộ API mà thôi.
ASP.NET (Active Server Pages .NET): ASP.NET đƣợc sử dụng chung với các lớp lập trình mà nó có thể tạo các ứng dụng Web một cách dễ dàng cho ngƣời lập trình. ASP.NET cung cấp cách truy cập giao diện HTML chung và nó chạy trên chƣơng trình máy phục vụ nhƣng thể hiện kết quả thông qua HTML (ví dụ nhƣ text box chẳng hạn). Giao diện ASP.NET làm cho việc phát triển các ứng dụng Web trở nên nhanh hơn. ASP.NET đƣợc sử dụng ở phần trên của hai thành phần thực thi ngôn ngữ chung CLR và các ngôn ngữ lập trình hợp nhất để tạo ra các dịch vụ Web.
Tóm lại, Microsoft .NET đã đƣa ra một tập các dịch vụ đầy tiềm nǎng, nó trợ
giúp ngƣời sử dụng đang ở vào giai đoạn 3 của Internet, đó là các dịch vụ web hay web có thể chƣơng trình hoá (programmable Web). Nền tảng .NET cho phép các nhà phát triển tạo ra các ứng dụng và các dịch vụ Web mà nó hoạt động không phụ thuộc vào các ngôn ngữ lập trình và nền tảng. Kết quả là một giải pháp phát triển Web ghép nối lỏng, đầy sức mạnh và nó có thể hợp nhất Internet, các ngôn ngữ lập trình và cả những gì phức tạp trong việc chuyển dịch dữ liệu. Dựa vào Common Language Runtime (CLR), unified programming classes (các lớp lập trình hợp nhất) và ASP.NET, .NET thúc đẩy tiềm nǎng của XML và SOAP để cho quá trình web và dữ liệu luôn sẵn có ở bất cứ đâu, tại bất cứ thời điểm nào và với bất cứ nền tảng nào. Chiến lƣợc .NET của Microsoft là một giai đoạn phát triển tiếp theo về mặt công nghệ trong thế giới điện toán.