3.3.1. Ngôn ngữ lập trình C#
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mƣời mấy kiểu dữ liệu đƣợc xây dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hƣớng đối tƣợng. Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại. Và ngôn ngữ C# hội đủ những điều kiện nhƣ vậy, hơn nữa nó đƣợc xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.
Phần cốt lõi hay còn gọi là trái tim của bất cứ ngôn ngữ lập trình hƣớng đối tƣợng là sự hỗ trợ của nó cho việc định nghĩa và làm việc với những lớp. Những lớp thì định nghĩa những kiểu dữ liệu mới, cho phép ngƣời phát triển mở rộng ngôn ngữ để tạo mô hình tốt hơn để giải quyết vấn đề. Ngôn ngữ C# chứa những từ khóa cho việc khai báo những kiểu lớp đối tƣợng mới và những phƣơng thức hay thuộc tính của lớp, và cho việc thực thi đóng gói, kế thừa, và đa hình, ba thuộc tính cơ bản của bất cứ ngôn ngữ lập trình hƣớng đối tƣợng.
Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp điều đƣợc tìm thấy trong phần khai báo của nó. Định nghĩa một lớp trong ngôn ngữ C# không đòi hỏi phải chia ra tập tin header và tập tin nguồn giống nhƣ trong ngôn ngữ C++. Hơn thế nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML để phát sinh tự động các document cho lớp.
C# cũng hỗ trợ giao diện interface, nó đƣợc xem nhƣ một cam kết với một lớp cho những dịch vụ mà giao diện quy định. Trong ngôn ngữ C#, một lớp chỉ có thể kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừa nhƣ trong ngôn ngữ
29
C++, tuy nhiên một lớp có thể thực thi nhiều giao diện. Khi một lớp thực thi một giao diện thì nó sẽ hứa là nó sẽ cung cấp chức năng thực thi giao diện.
Trong ngôn ngữ C#, những cấu trúc cũng đƣợc hỗ trợ, nhƣng khái niệm về ngữ nghĩa của nó thay đổi khác với C++. Trong C#, một cấu trúc đƣợc giới hạn, là kiểu dữ liệu nhỏ gọn, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệ điều hành và bộ nhớ so với một lớp. Một cấu trúc thì không thể kế thừa từ một lớp hay đƣợc kế thừa nhƣng một cấu trúc có thể thực thi một giao diện.
Ngôn ngữ C# cung cấp những đặc tính hƣớng thành phần (component-oriented), nhƣ là những thuộc tính, những sự kiện. Lập trình hƣớng thành phần đƣợc hỗ trợ bởi CLR cho phép lƣu trữ metadata với mã nguồn cho một lớp. Metadata mô tả cho một lớp, bao gồm những phƣơng thức và những thuộc tính của nó, cũng nhƣ những sự bảo mật cần thiết và những thuộc tính khác. Mã nguồn chứa đựng những logic cần thiết để thực hiện những chức năng của nó.. Do vậy, một lớp đƣợc biên dịch nhƣ là một khối self-contained, nên môi trƣờng hosting biết đƣợc cách đọc metadata của một lớp và mã nguồn cần thiết mà không cần những thông tin khác để sử dụng nó.
Một lƣu ý cuối cùng về ngôn ngữ C# là ngôn ngữ này cũng hỗ trợ việc truy cập bộ nhớ trực tiếp sử dụng kiểu con trỏ của C++ và từ khóa cho dấu ngoặc [] trong toán tử. Các mã nguồn này là không an toàn (unsafe). Và bộ giải phóng bộ nhớ tự động của CLR sẽ không thực hiện việc giải phóng những đối tƣợng đƣợc tham chiếu bằng sử dụng con trỏ cho đến khi chúng đƣợc giải phóng.
Tại sao nên sử dụng C#
Nhiều ngƣời tin rằng không cần thiết có một ngôn ngữ lập trình mới. Java, C++, Perl, Microsoft Visual Basic, và những ngôn ngữ khác đƣợc nghĩ rằng đã cung cấp tất cả những chức năng cần thiết.
30
Ngôn ngữ C# là một ngôn ngữ đƣợc dẫn xuất từ C và C++, nhƣng nó đƣợc tạo từ nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java. Không dừng lại ở đó, Microsoft đƣa ra một số mục đích khi xây dựng ngôn ngữ này. Những mục đích này đƣợc đƣợc tóm tắt nhƣ sau:
C# là ngôn ngữ đơn giản C# là ngôn ngữ hiện đại
C# là ngôn ngữ hƣớng đối tƣợng C# là ngôn ngữ mạnh mẽ và mềm dẻo C# là ngôn ngữ có ít từ khóa C# là ngôn ngữ hƣớng module C# sẽ trở nên phổ biến 3.3.2. Microsoft Silverlight Vì sao lại có Silverlight?
- Sự khó khăn của các doanh nghiệp khi xây dựng web:
Ngày nay khi sự phát triển các ứng dụng trên web các doanh nghiệp phần mềm thƣờng đau đầu với những khó khăn về sự hỗ trợ trên trình duyệt và hệ điều hành. Điều họ muốn là với những ngôn ngữ và công cụ phát triển đã vốn quen thuộc từ trƣớc đến giờ đều có thể làm cho họ những ứng dụng chạy tốt trên mọi nền tảng, mọi trình duyệt. Silverlight ra đời nhƣ một công nghệ phù hợp cho phép họ làm đƣợc những việc nhƣ thế. Nếu bạn đã quen thuộc với công nghệ .NET Framework thì khi tiếp cận với Silverlight bạn sẽ tiết kiệm đƣợc rất nhiều thời gian và chi phí cho công nghệ web mới.
- Nhu cầu cần thiết của thế giới đa phƣơng tiện:
Các công nghệ Plug-in trên web trƣớc đây không cho phép bạn truyền tải những dữ liệu hình ảnh chất lƣợng cao nhƣ 720p HDTV. Trong khi chất
31
lƣợng đƣờng truyền mạng ngày nay đang ngày càng tốt hơn và nhu cầu xem những video chất lƣợng cao cũng tăng lên thì sự ra đời của Silverlight đã đem đến cho ngƣời đam mê thế giới đa phƣơng tiện một sự thỏa mãn thật sự.
Silverlight là gì?
Silverlight là một dạng plug-in dựa trên công nghệ của Microsoft.NET. Nó độc lập với đa nền tảng và đa trình duyệt đặc biệt là các ứng dụng trên web. Silverlight cung cấp một mô hình lập trình mềm dẻo và đồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn ngữ lập trình .Net nhƣ Visual Basic, C#. Khả năng đa phƣơng tiện của Silverlight thể hiện ở mức độ truyền tải âm thanh và hình ảnh chất lƣợng cao một cách nhanh chóng và hiệu quả trên tất cả các trình duyệt chính nhƣ IE, Firefox, Safari.
Với việc sử dụng Expression Studio và Visual Studio, các nhà thiết kế và phát triển có thể hợp tác một cách hiệu quả hơn bằng cách sử dụng chính kỹ năng của họ có hiện nay để làm phát triển các sản phẩm web tƣơng lai.
Các đặc tính của Silverlight
Silverlight kết hợp nhiều công nghệ vào một nền tảng phát triển, nó cho phép lựa chọn nhiều công cụ và ngôn ngữ lập trình thích hợp để giải quyết bài toán. Silverlight cung cấp các tính năng sau:
- Sự kết hợp của WPF và XAML:
Silverlight là một gói nhỏ của công nghệ Windows Presentation Foundation (WPF). Nó đƣợc mở rộng nhiều hơn các phần tử (Element) trong trình duyệt để tạo giao diện ngƣời dùng. WPF cho phép tạo đồ họa 3 chiều, hình ảnh động, đa phƣơng tiện và nhiều tính năng phong phú khác trên máy Client. XAML (Extensible Application Markup Language) cung cấp các cú pháp đánh dấu đặc trƣng cho việc tạo các Element.
32
Silverlight cung cấp việc mở rộng cho các ngôn ngữ kịch bản (Javascript) ở một số các trình duyệt phổ biến để thể hiện việc trình bày giao diện và thao tác ngƣời dùng một cách phong phú hơn.
- Sự tích hợp với các ứng dụng đã có:
Silverlight tích hợp liền mạch với ngôn ngữ javascript và mã Ajax của ASP.NET để bổ sung các chức năng đã xây dựng đƣợc. Bạn có thể tạo những tài nguyên trên nền máy chủ có ASP.NET để tƣơng tác với tài nguyên trên nền máy chủ đó mà không làm gián đoạn ngƣời dùng.
- Sử dụng mô hình ngôn ngữ lập trình trên nền tảng .Net Framework và các công cụ để kết hợp:
Bạn có thể tạo các ứng dụng trên nền tảng Silverlight và sử dụng các ngôn ngữ động nhƣ IronPython cũng nhƣ các ngôn ngữ C# và Visual Basic. Bạn cũng có thể sử dụng các công cụ phát triển nhƣ Visual Studio để tạo ứng dụng trên nền tảng Silverlight.
- Hỗ trợ mạng:
Silverlight bao gồm các hố trợ cho HTTP qua TCP. Bạn có thể kết nối tới các dịch vụ của WCF, SOAP hoặc ASP.NET Ajax và nhận về các định dạng theo cấu trúc XML, JSON hay dữ liệu RSS.
- Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ):
Điều này cho phép bạn truy cập dữ liệu bằng cách sử dụng cú pháp trực quan tự nhiên và mạnh mẽ, đƣợc gõ bởi các đối tƣợng có trong các ngôn ngữ .NET Framework.
Kiến trúc tổng thể và các mô hình lập trình của Silverlight - Kiến trúc và thành phần:
Về cơ bản Silverlight là một nền tảng thống nhất của nhiều thành phần khác nhau. Tuy nhiên có thể nhóm lại các thành phần chính của Silverlight theo bảng dƣới đây:
33 Nền tảng trình
bày cơ sở
Các thành phần và dịch vụ hƣớng tới giao diện ngƣời dùng và tƣơng tác ngƣời dùng, bao gồm các control cho dữ liệu cho ngƣời dùng nhập, thiết bị đa phƣơng tiện, quản lý phân quyền số, trình bày dữ liệu, đồ họa vector, chữ, hình ảnh động cũng bao gồm XAML để đặc tả bố trí giao diện
.NET
Framework cho Silverlight
Là một gói nhort trong .NET Framework, bao gồm các thành phần và các thƣ viện, kể cả việc tƣơng tác dữ liệu, khả năng mở rộng các control, mạng, garbage collection, CLR.
Cài đặt và cập nhật
Là thành phần để xử lý các tiến trình cài đặt làm sao để đơn giản hóa cho lần cài đặt tự nhiên, tiếp sau đó chỉ cung cấp cơ chế tự động cập nhật và tƣơng tác ở mức thấp.
Core Presentation Components:
Tính năng Mô tả
Dữ liệu vào (Input)
Xử lý dữ liệu đầu vào từ các thiết bị phần cứng nhƣ bàn phím, chuột, bảng vẽ hoặc các thiết bị đầu vào khác
Trình bày giao diện ngƣời dùng (UI Rendering)
Trình bày vector và các đồ họa ảnh bitmap, ảnh động và văn bản
Thiết bị nghe, nhìn (Media)
Các tính năng phát và quản lý một vài thể loại file âm thanh, hình ảnh nhƣ .WMP và .MP3
Controls Hỗ trợ mở rộng cho các control để có khả năng tùy chỉnh về kiểu dáng và khuôn mẫu
Xếp đặt Layout Cho phép khả năng xếp đặt vị trí động các thành phần giao diện ngƣời dùng
34 liệu (Data
Binding)
phần giao diện ngƣời dùng
DRM Khả năng quản lý phân quyền số XAML Cung cấp phân tách cho XAML
Các lập trình viên có thể tƣơng tác với thành phần nền tảng trình bày cơ sở trên đây bằng cách sử dụng XAML để đặc tả. XAML là một yếu tố quan trọng nhất trong việc tƣơng tác giữa .Net Framwork và các kiểu trình bày Layout. Ngoài ra các lập trình viên cũng có thể sử dụng cơ chế quản lý code bên trong để thao tác với lớp trình bày.
.NET Framework cho Silverlight:
Tính năng Mô tả
Data Hỗ trợ ngôn ngữ truy vấn tích hợp (LINQ) với đặc tả XML, dễ dàng xử lý việc tích hợp và làm việc với dữ liệu từ nhiều nguồn khác nhau. Hỗ trợ việc sử dụng XML và các lớp biến đổi hóa (serialization) để xử lý dữ liệu
Base class library
Thuộc thƣ viện của .Net Framework, nó cung cấp các chức năng lập trình chủ yếu nhƣ việc xử lý chuỗi, biểu thức chính quy, đầu vào và đầu ra, ánh xạ, tập hợp và toàn cục hóa
Window
Communication Foundation (WCF)
Cung cấp các tính năng để đơn giản hóa việc truy cập dữ liệu từ xa. Cơ chế này bao gồm một đối tƣợng trình duyệt, HTTP request và HTTP response, RSS, JSON, POX và các SOAP
Windows Presentation Foundation (WPF)
Cung cấp các control nhƣ Button, Calendar, CheckBox, DataGrid, DatePicker, HyperlinkButton, ListBox, RadioButton, ScrollViewer
35 Dynamic
Language Runtime (DLR)
Hỗ trợ việc biên dịch và thi hành với tính năng động của các ngôn ngữ kịch bản nhƣ Javascript và IronPython cho các chƣơng trình trên nền tảng Silverlight
- Mô hình lập trình Managed API:
Trong lập trình Silverlight theo kiểu Managed API, bạn có thể lập trình với cả file XAML và file code bên trong.
Khi Silverlight nhúng tải một file XAML nó sẽ tạo một cây mô hình mà ta cũng có thể gõ bằng các mã lệnh bên trong (C#, Visual Basic, …)