giáo trình giảng dạy silverlight2

112 102 0
giáo trình giảng dạy silverlight2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

GIÁO TRÌNH GIẢNG DẠY SILVERLIGHT Nhóm tác giả thuộc cơng ty Infoway: Phạm Chí Cường Trần Duy Biên Trần Duy Long Website: www.infomap.vn Email: Contact@infoway.com.vn Infoway Solutions MỤC LỤC MỤC LỤC: Chương I: Tổng quan silverlight Vì lại có silverlight? Silverlight Các đặc tính silverlight 3.1 Sự kết hợp WPF XAML 3.2 Mở rộng cho ngôn ngữ kịch 3.3 Sự tích hợp với ứng dụng có 3.4 Sử dụng mơ hình ngơn ngữ lập trình tảng Net Framework công cụ để kết hợp 3.5 Hỗ trợ mạng 3.6 Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ) Kiến trúc tổng thể mơ hình lập trình Silverlight 4.1 Kiến trúc thành phần 4.2 Các mô hình lập trình silverlight Khả hỗ trợ trình duyệt, hệ điều hành cơng nghệ liên quan 5.1 Hỗ trợ hệ điều hành trình duyệt 5.2 Các công nghệ công cụ liên quan silverlight Hướng dẫn cài đặt sử dụng công cụ Silverlight Visual studio 2008 6.1 Các bước cài đặt cơng cụ silverlight Các ví dụ thực hành 7.1 Chương trình “Hello World” Tài liệu tham khảo Chương II: XAML Layout Tổng quan XAML 1.1 Xaml gì? 1.2 Khai báo đối tượng 1.3 Thiết lập đặc tính cho đối tượng 1.4 Root elements namespace XAML 1.5 Sự kiện 1.6 Các namescope XAML Sử dụng XAMLReader.Load XAML Custom class XAML Type Converter Layout 6.1 Canvas 6.2 StackPanel 6.3 Grid Infoway Solutions MỤC LỤC Chương III: Sử dụng Silverlight Expression Blend Visual Studio 2008 Giới thiệu công cụ phát triển Expression Blend kết hợp với VS2008 1.1 Expression Blend làm việc nào? 1.2 Những tính có từ Expression Blend Bắt đầu nhanh với Silverlight Expression Blend 2.1 Tạo Project cho ứng dụng Silverlight 2.2 Vẽ khn hình (Shape) ứng dụng Silverlight 2.3 Thiết kế Control ứng dụng Silverlight Xây dựng chương trình Silverlight với Expression Blend Visual Studio 2008Triển khai ứng dụng Chương IV: Các Control User control Silverlight Giới thiệu control phổ biến Silverlight SDK tích hợp VS2008 Các Control Phổ biến Silverlight User Control Visual Studio 2008 Chương V: Xử lý đồ họa Silverlight Giới thiệu Shapes and Drawing 2.1 Ellipse 2.2 Line 2.3 Path 2.4 Polygon 2.5 Polyline 2.6 Rectangle Geometries 3.1 EllipseGeometry 3.2 PathGeometry 3.3 GeometryGroup Brushes 3.1 Solid Color 3.2 Gradient 3.3 Images 3.4 Video 3.5 Deep Zoom Chương VI: Media Animation Animation 1.1 Storyboard 1.2 Key-Frame Animations Infoway Solutions MỤC LỤC 1.3 Double Animation 1.4 Color Animation 1.5 Point Animation Media 2.1 MediaElement Object 2.2 Controlling Media Playback Interactively 2.3 Timeline Markers 2.4 Server-Side Playlist Ch ương VII: Làm việc với sở liệu Silverlight Giới thiệu vài công nghệ để truy cập liệu Silverlight Sử dụng Data Binding Sử dụng Isolated Storage Khái quát làm việc với liệu XML Truy cập liệu SQL Server với WCF Chương VIII: Giao tiếp mạng với silverlight Giao tiếp HTTP bảo mật Silverlight 1.1 Mặc định hỗ trợ giao thức HTTP 1.2 Kịch giao tiếp HTTP 1.3 Giao tiếp domain 1.4 Giao tiếp Cross-domain 1.5 Thiết lập triệu gọi HTTP Các hạn chế truy cập mạng với silverlight Truy cập web service silverlight 3.1 Bảo mật cho truy cập Service 3.2 Tạo Service vượt qua phạm vi domain Làm việc với socket 4.1 Hỗ trợ giao thức mạng 4.2 Lập trình mạng với Socket Mã hóa liệu service Chương IX: Hiệu suất hoạt động ứng dụng Silverlight Làm để chương trình bạn chạy nhanh ổn định 1.1 Thử nghiệm nhiều hệ điều hành trình duyệt 1.2 Đặt EnableFrameRateCounter cho thời gian phát triển 1.3 Sử dụng Transparent Background 1.4 Tránh việc sử dụng kịch làm biến đổi kích cỡ font Text 1.5 Tránh sử dụng chế độ Windowless 1.6 Sử dụng Visibility thay cho việc sử dụng Opacity nhiều trường hợp khơng cần đến có mặt Opacity 1.7 Silverlight sử dụng Multi-Core Rendering Media Infoway Solutions MỤC LỤC 1.8 1.9 1.10 1.11 1.12 1.13 Trong chế độ Full-Screen, ẩn đối tượng khơng sử dụng Tránh sử dụng thuộc tính Width Height đối tượng MediaElement Tránh sử dụng thuộc tính Width Height đối tượng Path Nguy đổ vỡ CPU sử ly cường độ lớn công việc Nguy đổ vỡ ứng dụng có Package lớn Sử dụng Double.ToString(CultureInfo.InvariantCulture) hiệu Double.ToString() 1.14 Sử dụng Background Worker 2.1 Bắt đầu với việc tạo BackGroundWorker 2.2 Tạo Event handler cho background worker DoWork event 2.3 Tạo event handler cho kiện ProgressChanged backgroundworker 2.4 Tạo kiện cho RunWorkerCompleted 2.5 Bổ xung kiện vào BackGroundWorker 2.6 Bắt đầu chạy background gọi thủ tục RunWorkerAsync 2.7 Hủy bỏ hoạt động background gọi thủ tục CancelAsync Infoway Solutions CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Vì lại có Silverlight? Sự khó khăn doanh nghiệp xây dựng chiến lược Web Ngày phát triển ứng dụng web doanh nghiệp phần mềm thường đau đầu với khó khăn hỗ trợ trình duyệt hệ điều hành Điều họ muốn với ngôn ngữ công cụ phát triển vốn quen thuộc từ trước đến làm cho họ ứng dụng chạy tốt tảng, trình duyệt Silverlight đời công nghệ phù hợp cho phép họ làm việc Nếu bạn quen thuộc với cơng nghệ Net Framework tiếp cận với Silverlight bạn tích kiện nhiều thời gian chi phí cho cơng nghệ web Nhu cầu cần thiết giới đa phương tiện Các công nghệ plug-in web trước không cho phép bạn truyền tải liệu hình ảnh chất lượng cao 720p HDTV, Trong chất lượng đường truyền mạng tốt nhu cầu xem video chất lượng cao tăng lên đời Silverlight đem đến cho người đam mê giới đa phương tiện thỏa mãn thật Silverlight gì? Silverlight dạng plug-in dựa công nghệ Microsoft Net, độc lập với đa tảng đa trình duyệt, cho phép phát triển ứng dụng đa phương tiện đặc biệt ứng dụng web Silverlight cung cấp mơ hình lập trình lập trình mềm dẻo đồng nhất, hỗ trợ Ajax, Python, Ruby ngơn ngữ lập trình Net Visual basic, C# Khả đa phương tiện silverlight thể mức độ truyền tải âm hình ảnh chất lượng cao cách nhanh chóng hiệu tất trình duyệt Internet Explorer, Firefox, Safari Infoway Solutions CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Với việc sử dụng Expression Studio Visual Studio, nhà thiết kế phát triển hợp tác cách hiệu cách sử dụng kỹ họ có để làm phát triển sản phẩm web tương lai “Light up the web” Các đặc tính Silverlight Silverlight kết hợp nhiều công nghệ vào tảng phát triển, cho phép bạn lựa chọn nhiều cơng cụ ngơn ngữ lập trình thích hợp để giải toán bạn Silverlight cung cấp tính sau: 3.1 Sự kết hợp WPF XAML Silverlight gói nhỏ cơng nghệ Windows Presentation Foundation (WPF) Nó mở rộng nhiều Element trình duyệt để tạo giao diện người dùng PWF cho phép bạn tạo đồ họa chiều, hình ảnh động, đa phương tiện nhiều tính phong phú khác máy khách XAML (Extensible Application Markup Language) cung cấp cú pháp đánh dấu đặc trưng cho việc tạo Element 3.2 Mở rộng cho ngôn ngữ kịch Silverlight cung cấp việc mở rộng cho ngôn ngữ kịch (Javascript) số trình duyệt phổ biến để thể việc trình bày giao diện thao tác người dùng cách phong phú 3.3 Sự tích hợp với ứng dụng có Silverlight tích hợp liền mạch với ngơn ngữ javascript mã Ajax ASP.Net để bổ sung chức bạn xây dựng Bạn tạo tài nguyên máy chủ có ASP.NET sử dụng khả Ajax ASP.NET để tương tác với tài nguyên máy chủ mà khơng làm gián đoạn người dùng 3.4 Sử dụng mơ hình ngơn ngữ lập trình tảng Net Framework công cụ để kết hợp Bạn tạo ứng dụng tảng Silverlight sử dụng ngôn ngữ động InronPython ngôn ngữ C# Visual Basic Bạn sử dụng cơng cụ phát triển Visual Studio để tạo ứng dụng tảng Silverlight 3.5 Hỗ trợ mạng Silverlight bao gồm hỗ trợ cho HTTP qua TCP Bạn kết nối tới dịch vụ WCF, SOAP, ASP.NET AJAX nhận định dạng theo cấu trúc XML, JSON hay liệu RSS 3.6 Hỗ trợ ngơn ngữ tích hợp truy vấn (LINQ) Điều cho phép bạn truy cập liệu cách sử dụng cú pháp trực quan tự nhiên mạnh mẽ, gõ đối tượng có ngơn ngữ Net Framework Infoway Solutions CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Kiến trúc tổng thể mơ hình lập trình Silverlight 4.1 Kiến trúc thành phần Về Silverlight tảng thống nhiều thành phần khác Tuy nhiên chúng tơi nhóm lại thành phần silverlight vào bảng Thành phần Diển tả Nền tảng trình bày sở Các thành phần dịch vụ hướng tới giao diện người dùng tương tác người dùng, bao gồm control cho 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 liệu, đồ họa vector, chữ, hình ảnh động bao gồm XAML để đặc tả việc bố trí giao diện Net Framework cho silverlight Là gói nhỏ Net Framework, bao gồm thành phần cá thư viện, kể tương việc tương tác liệu, khả mở rộng control, mạng, garbage collection, CLR Cài đặt cập nhật Là thành phần để sử lý tiến trình cài đặt để đơn giản hóa cho lần cài đặt đầu tiên, tiếp sau cung cấp chế tự động cập nhật tương tác mức thấp Dưới hình ảnh mơ tả thành phần kiến trúc Silverlight với thành phần dịch vụ liên quan khác Core Presentation Components: Tính Dữ liệu vào (input) Mô tả Xử lý liệu đầu vào từ thiết bị phần cứng bàn phím, chuột, bảng vẽ Infoway Solutions CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Trình bày giao diện người dùng (UI Rendering) Thiết bị nghe nhìn (Media) Controls Xếp đặt Layout Trình bày liệu (Data Binding) DRM XAML thiết bị đầu vào khác Trình bày vector đồ hoạ ảnh bitmap, ảnh động, văn Các tính phát quản lý vài thể loại file âm hình ảnh WMP MP3 Hỗ trợ mở rộng cho control để có khả tùy chỉnh kiểu dáng khuôn mẫu Cho phép khả xếp đặt vị trí động thành phần giao diện người dùng Cho phép việc kết nối liệu đối tượng thành phần giao diện người dùng Khả Quản lý phân quyền số Cung cấp trình phân tách cho XAML Các lập trình viên tương tác với thành phần tảng trình bày sở cách sử dụng XAML để đặc tả XAML yếu tố quan trọng việc tương tác Net Framwork kiểu trình bày Layout, ngồi lập trình viên sử dụng chế quản lý code bên để thao tác với lớp trình bày Net Frame work for Silverlight: Tính Data Base class library Window Communication Foundation (WCF) Common language runtime (CLR) Windows Presentation Foundation controls (WPF) Dynamic language runtime (DLR) 4.2 Mơ tả Hỗ trợ ngơn ngữ truy vấn tích hợp (LINQ) LINQ với đặc tả XML, dễ dang xử lý việc tích hợp làm việc với liệu từ nhiều nguồn khác Hỗ trợ việc sử dụng XML lớp biên đổi hóa (serialization) để xử lý liệu Thuộc thư viện Net Framework, cung cấp chức lập trình chủ yếu việc xử lý chuỗi, biểu thức quy, đầu vào đầu ra, ánh xạ, tập hợp toàn cục hóa Cung cấp tính để đơn giản hóa việc truy cập liệu từ xa Cơ chế bao gồm đối tượng trình duyệt, HTTP request HTTP Response, RSS, JSON, POX, SOAP Cung cấp việc quản lý nhớ, dọn dẹp nhớ thừa, xử lý ngoại lệ… Cung cấp control giầu tính Button, Calendar, CheckBox, DataGrid, DatePicker, HyperlinkButton, ListBox, RadioButton, and ScrollViewer Hỗ trợ việc biên dịch thi hành với tính động ngơn ngữ kịch Javascript IronPython cho chương trình tảng Silverlight Các mơ hình lập trình silverlight Ở phiên Silverlight 1.0 cung cấp cho bạn mơ hình lập trình Javascript API, phiên Silverlight 2.0 cung cấp hai mô hình lập trình Managed API Javascript API Trong Javascipt API cho phép bạn gõ mã lệnh Javascript để tương tác với trình duyệt Managed API sử dụng chế làm việc Common Language Infoway Solutions CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Runtime (CLR) kể Dynamic Language Runtime (DLR) để biên dịch thi chương trình code (C#, VB ) bạn 4.2.1 Javascript API Trong chương trình silverlight nhúng theo kiểu Javascript API, tải trang XAML đơn lẻ thay tải gói ứng dụng Trang XAML bao gồm tham chiều URI từ nguồn bên máy chủ khác đoạn video hình ảnh Silverlight nhúng sử dụng XAML để tạo đối tượng mà bạn thao tác lập trình với javascript lưu trữ bên trang HTML Javascript API không cung cấp mơ hình ứng dụng có khả hỗ trợ ứng dụng tổ hợp với điều hướng bên Tuy nhiên cho phép làm kịch theo kiểu Splash screan Bạn làm điều hướng Javascript API cách tải lại trang XAML tải lại trang web trình duyệt 4.2.2 Managed API Trong lập trình silverlight theo kiểu Managed API, bạn thao tác lập trình với file XAML file code bên Khi Silverlight nhúng tải file XAML, tạo mơ hình mà bạn gõ mã lệnh bên ( thường C#, Visual basic ) Khả hỗ trợ trình duyệt, hệ điều hành công nghệ liên quan 5.1 Hỗ trợ hệ điều hành trình duyệt mô tả bảng Operating system Internet Explorer Internet Explorer Firefox 1.5, 2.x, and 3.x Safari 2.x and 3.x Windows Vista có — có — Windows XP SP2 có có có — Windows XP SP3 có có có — Windows 2000 — có — — Windows Server 2003 (excluding IA-64) có có có — Mac OS 10.4.8+ (PowerPC) — — — — Mac OS 10.4.8+ (Intel-based) — — có Có 5.2 Các cơng nghệ công cụ liên quan silverlight Microsoft Expression Blend: Sử dụng cơng cụ bạn bạn tạo thay đổi cách xắp xếp trình bày Layer ứng dụng cách thao tác đến canvas control XAML, làm việc với chức đồ họa, Lập trình với ngơn ngữ Javascript Visual Studio 2008: Visual Studio cung cấp công cụ hiệu cho việc phát triển ứng dụng có hỗ trợ thao tác code bên tron Tất phiên có Visual Studio có khả hỗ trợ Silverlight,Tuy nhiên phiên hỗ trợ tính đặc Infoway Solutions • CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT Tạo request HTTP + Nếu bạn muốn tạo triệu gọi HTTP bạn, bạn sử dụng lớp cung cấp namespace System.Net + WebClient + HttpWebRequest HttpWebResponse Những lớp cho phép bạn tạo request GET POST cho phép request header vài trường hợp Thêm nữa, bạn thiết lập lớp để tăng cường download với GET request • Lớp WebClient Lớp WebClient cung cấp kiện đơn giản, dựa mơ hình cho phép bạn tải xuống tải lên suối strings Các WebClient lựa chọn tốt bạn không muốn sử dụng proxy lớp học Nói chung, lớp dễ sử dụng, cung cấp tùy chọn để tùy chỉnh message gửi qua mạng Bảng sau tóm tắt header hỗ trợ cho lớp WebClient Giao thức HTTP GET POST Gọi domain Header chấp nhận Header chấp nhận Gọi Cross-Domain Request header không chấp nhận Request headers chấp nhận thông qua tập tin cross-domain policy Để tạo POST request với WebClient tải lên tập tin chuỗi, bạn sử dụng phương thức sau + WebClient ::.OpenWriteAsync + WebClient ::.UploadStringAsync Bạn xét header cho POST request thơng qua thuộc tính WebClient ::.Headers Request header phải cho phép tập tin crossdomain policy Đoạn mã ví dụ tạo POST request sử dụng WebClient // Tạo instance WebClient WebClient client = new WebClient(); public Page() { Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT InitializeComponent(); // Đăng ký hóng kiện UploadStringCompleted client.UploadStringCompleted += new UploadStringCompletedEventHandler(client_UploadStringCompleted); } private void Button_Click(object sender, RoutedEventArgs e) { // Tạo request string postRequest = "" + "New Restaurant" + "" + " " + "

There is a new Thai restaurant in town!

" + "

I ate there last night and it was fabulous.

" + "

Make sure and check it out!

" + " " + " " + " " + " Pilar Ackerman" + " packerman@contoso.com" + " " + ""; // Gửi request tới URL cụ thể client.UploadStringAsync(new create?blogID=1234", UriKind.Absolute), postRequest); } Uri("http://blogs.contoso.com/post- // Hóng kiện UploadStringCompleted void client_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) { // Hiển thị kết nhận if (e.Error != null) tb1.Text = e.Error.Message; else tb1.Text = e.Result; } 1.6 Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT Các hạn chế truy cập mạng với silverlight Phiên Silverlight hỗ trợ hai kiểu sau để ứng dụng kết nối tới máy chủ từ xa: • • Lớp WebClient lớp HTTP có namespace System.Net – lớp sử dụng giao thức HTTP or HTTPS cho giao tiếp mạng Những lớp Sockets namespace System.Net.Sockets – lớp cung cấp interface mức độ thấp socket sử dụng rộng cách rộng rãi giao tiếp mạng Ở hai trường hợp trên, cần phải cung cấp bảo mật ngăn chặn ứng dụng Silverlight kết nối tới từ kết nối không phép Những mối đe doạ cơng từ mạng bao gồm: • • • Tấn công từ trối dịch vụ (DoS) – Một số lượng lớn máy từ xa sử dụng nhằm mục tiêu công vào trang web để mục tiêu request dịch vụ hợp lệ Tấn công thay đổi thông tin DNS – Sử dụng DNS để quản lý máy chủ cập nhật lại tên máy chủ tới địa IP nạn nhân, cho phép truy cập vào máy chủ khác vào máy chủ thực website Reverse tunnel attack – Use a remote client’s outgoing connection as a back tunnel to the client’s private network Các sách bảo mật hệ thống kết hợp Silverlight thiết kế để ngăn chặn mối đe dọa mạng Ngồi ra, hệ thống sách nhằm mục đích cung cấp cho quản trị viên kiểm soát nhiều nguồn lực từ xa mà khách hàng phép để kết nối đến Trước thiết kế cho mạng có khả bổ sung giới hạn kết nối đến máy chủ trang web web gốc Điều có nghĩa trang web đó, ứng dụng giao tiếp lại cho triển khai máy chủ, đó, mạng lưới ứng dụng phép để kết nối đến máy chủ mà từ chúng tải Silverlight bao hỗ trợ kết nối cross-domain cho phép ứng dụng để truy cập vào tài nguyên từ địa điểm khác(sub domaint, ) với trang web gốc Đây tính quan trọng để tạo điều kiện cho ứng dụng Silverlight sử dụng dịch vụ có web Các sách an ninh hệ thống Silverlight runtime bây giờ, đòi hỏi tập tin cross-domain policy tải trước kết nối phép truy cập vào tài ngun Điều ảnh hưởng đến sách bảo mật hệ thống domain qua mạng truy cập cho WebClient HTTP lớp namespace System.Net Đối với sockets, sách an ninh hệ thống Silverlight ảnh hưởng đến quyền truy cập trang web gốc cross-domain Chính sách bảo mật bắt buộc cho kết nối kiểu socket, chí kết nối lại tới trang web Điều Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT khác từ hành vi ứng xử Silverlight Beta 1, nơi socket cho phép kết nối cho phép từ site gốc Các nội dung phần cung cấp thông tin chi tiết việc làm để sử dụng hệ thống sách bảo mật Silverlight mơ tả sách tập tin định dạng hỗ trợ 2.1 Khái niệm sách bảo mật hệ thống Silverlight hỗ trợ hai loại tập tin quy định cách ứng sử bảo mật: Tập tin sách Adobe Flash - crossdomain.xml Tập tin sách sử dụng WebClient lớp HTTP namespace System.Net Qua tập tin sách Flash, cho phép truy cập vào tất tên miền sử dụng Silverlight Tập tin sách Silverlight – clientaccesspolicy.xml Tập tin sử dụng lớp WebClient lớp HTTP namespace System.Net cho lớp sockets namespace System.Net.Sockets Tập tin sách định dạng khác với tập tin sách Flash Trước cho phép kết nối với tài nguyên mạng, Silverlight cố gắng tải tập tin sách bảo mật từ tài nguyên mạng Có hai phương pháp khác sử dụng để tải sách bảo mật mà phụ thuộc vào việc kết nối request từ WebClient HTTP lớp request kết nối từ sockets Nếu yêu cầu kết nối từ WebClient lớp HTTP tới cross-domain site, Silverlight cố gắng tải tập tin sách bảo mật cách sử dụng giao thức HTTP Silverlight cố gắng tải tập tin sách Silverlight với tên "clientaccesspolicy.xml" gốc site mục tiêu cách sử dụng giao thức HTTP Nếu tập tin sách Silverlight trả lại (thậm chí có lỗi phân tích cú pháp tập tin), sử dụng sách cho tập tin mà request cross-domain tất request tới máy chủ cho phiên làm việc ứng dụng Silverlight Nếu tập tin sách Silverlight khơng tìm thấy, Silverlight sau cố gắng tải tập tin sách Flash có tên "crossdomain.xml" gốc site mục tiêu yêu cầu cách sử dụng giao thức HTTP Các sách tập tin Flash phải cho phép kết nối đến tất tên miền cho sử dụng Silverlight WebClient lớp HTTP Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT Nếu yêu cầu kết nối từ sockets cho trang web (cross-domain site site gốc), Silverlight cố gắng để mở kết nối TCP vào cổng 943 trang web mục tiêu Nếu kết nối TCP thiết lập, Silverlight gửi chuỗi đặc biệt đến server để yêu cầu tập tin sách Silverlight Silverlight đợi để sau nhận trả lời từ web mục tiêu có chứa tập tin sách Silverlight Nếu tập tin sách Silverlight trả lại (thậm chí có lỗi phân tích cú pháp tập tin), sử dụng tập tin sách cho request socket tất request cho trang web mục tiêu tất session ứng dụng Silverlight Nếu tập tin sách tải thành cơng phân tích cú pháp cho phép, cuối mở kết nối đến host mục tiêu Nếu tập tin sách tải khơng hợp lệ khơng thể phân tích cú pháp cách xác, sau kết nối tới tài ngun mạng Silverlight bị từ chối yêu cầu kết nối khơng thành cơng Nếu khơng có sách tập tin tìm thấy, sau kết nối vào mạng nguyên bị từ chối Silverlight yêu cầu kết nối không thành công Bổ sung hạn chế cách sử dụng lớp sockets ứng dụng mạng cho phép kết nối với cổng phạm vi 4502-4534 Ứng dụng Silverlight phép kết nối tới cổng sử dụng socket Nếu cổng mà bạn truy cập phạm vi cổng này, cố gắng kết nối thất bại Để triển khai tập tin sách bảo mật sử dụng kết nối từ WebClient lớp HTTP, quản trị viên hệ thống cần phải cấu hình Web service cho địa IP mà cung cấp cho tập tin định nghĩa sách tạo tập tin sách bảo mật Flash Silverlight để tìm thấy qua giao thức HTTP Để triển khai tập tin sách bảo mật máy cho socket, quản trị viên hệ thống cần phải cấu hình dịch vụ xác thực riêng biệt cổng 943 cho địa IP cung cấp định nghĩa tập tin sách Truy cập web service silverlight Ứng dụng máy khách Silverlight chạy trình duyệt thường cần phải kết nối tới nhiều nguồn sở liệu khác Một ví dụ điển hình việc truy cập liệu vào sở liệu từ máy chủ hiển thị lên giao diện người dùng Silverlight Kịch phổ biến khác cập nhật liệu service thông qua ứng dụng Silverlight để truyển tải thơng tin tới service Những nguồn liệu thường lấy từ Web service Những service SOAP service tạo sử dụng Windows Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT Communication Foundation(WCF) vài tảng SOAP khác đơn giản HTTP Service tĩnh Ứng dụng Silverlight máy khách truy cập Web service trực tiếp sử dụng proxy sinh từ metadata published service.Silverlight cung cấp tính cần thiết để làm việc với loạt định dạng liệu sử dụng Service Bao gồm định dạng XML, JSON, RSS, Atom Những định dạng liệu truy cập sử dụng Serialization components, Linq to XML, Linq to JSON, Syndication components 3.1 • Bảo mật cho truy cập Service Bảo vệ ứng dụng máy khách Silverlight liệu người dùng Để bảo vệ ứng dụng silverlight khỏi service độc hại, bạn phải biết số vấn đề bảo mật đây: + Service gửi thông tin mà làm cho ứng dụng máy khách Silverlight trình duyệt người dụng bị treo lỗi Điều với liệu có định dạng XML, JSON, RSS, Atom SOAP Để tránh việc cần thực sau: + Tránh khởi tạo giao tiếp tới service không tin tưởng mà bị lỗi treo gây liệu ứng dụng người dùng Ví dụ, lưu lại cơng việc người dùng xuống máy trước khởi tạo giao tiếp + Tránh tự động khởi tạo tới service không tin tưởng, mà không cho phép người dùng lựa chọn Điều dẫn tới ứng dụng bạn khơng thể dùng Hãy ghi nhớ dịch vụ độc hại khơng ln trả liệu độc hại • Bảo vệ Service Hãy ghi nhớ service mà bạn publish cho ứng dụng máy khách Silverlight truy cập người sử dụng với cách mà bạn khơng mong đợi Xem xét việc phòng ngừa sau đây: + Không nên đưa liệu thừa với mục đích sử dụng + Chắc chắn sử dụng xác thực người dùng thích hợp mặt cơng nghệ 3.2 Tạo Service vượt qua phạm vi domain Để cho phép Silverlight quản lý quyền truy cập vào service domain khác, service phải tuỳ chỉnh rõ ràng cross-domain phép truy cập Bằng việc tuỳ chỉnh, Silverlight control truy cập tới service cách thật an tồn, mà khơng gây ảnh hưởng xấu đến liệu mà lưu trữ service Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT Silverlight hỗ trợ hai chế khác cho service để tuỳ chỉnh quyền truy cập crossdomain: - Đặt tập tin clientaccesspolicy.xml gốc domain nơi mà service lưu trữ để thiết lập quyền truy cập cross-domain tới service - Đặt tập tin crossdomain.xml hợp lệ gốc domain nơi service lưu trữ Tập tin phải đánh dấu public cho toàn domain • Sử dụng tập tin clientaccesspolicy.xml phép truy cập cross-domain Tạo service cho phép máy khách Silverlight truy cập Tạo tập tin clientaccesspolicy.xml, cho phép truy cập vào service Thiết lập cho phép truy cập từ domain tới nguồn tài nguyên domain • Lưu tập tin clientaccesspolicy.xml tới gốc domain nơi service lưu trữ Cho ví dụ này, service lưu trữ http://fabrikam.com tập tin phải đặt http://fabrikam.com/clientaccesspolicy.xml Sử dụng tập tin crossdomain.xml phép truy cập cross-domain Tạo service cho phép Silverlight client truy cập Tạo tập tin crossdomain.xml có thiết lập Tập tin phải cấu hình phép truy cập vào service từ tên miền khác, khơng nhận Silverlight Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT Lưu tập tin crossdomain.xml vào gốc domain nơi mà service lưu trữ máy chủ Ví dụ, service lưu trữ máy chủ http://fabrikam.com tập tin phải đặt http://fabrikam.com/crossdomain.xml Làm việc với socket Namespace System.Net.Sockets thêm vào phiên Silverlight cung cấp quản lý việc triển khai thực socket giao tiếp mạng cho người lập trình viên mà cần phải kiểm soát chặt chẽ quyền truy cập vào mạng Trên Windows, System.Net.Sockets cung cấp tên quản lý việc triển khai thực Windows sockets (Winsock) Với Apple hệ điều hành Mac OS X, namespace System.Net.Sockets cung cấp, quản lý việc triển khai thực sockets dựa Berkeley Software Distribution (BSD) UNIX Namespace System.Net.Sockets cung cấp chế cho thời gian thực, hai giao tiếp với mạng lưới tài nguyên từ xa cho phép mức độ cao API để giao tiếp qua bi-directional Điều cho phép ứng dụng để nội tác client với service TCP 4.1 Hỗ trợ giao thức mạng Namespace System.Net.Sockets hỗ trợ việc sử dụng giao thức IPv4 hay IPv6 cần mạng máy tính kích hoạt hỗ trợ cho IPv4 IPv6 Các lớp thêm vào namespace System.Net Silverlight để làm việc với System.Net.Sockets Những lớp bao gồm sau đây: + EndPoint - xác định địa mạng Đây lớp trừu tượng + DnsEndPoint - đại diện cho mạng lưới endpoint tên máy chủ chuỗi ký tự đại diện địa IP số cổng + Ipaddress - Cung cấp địa giao thức mạng (IP) + IPEndPoint - đại diện cho mạng lưới endpoint địa IP số cổng + SocketAddress – Lưu trữ thông tin xếp kế thừa từ lớp EndPoint Lớp Socket cung cấp tập hợp phương thức cho giao tiếp mạng Lớp Socket cho phép bạn thực thi bất đồng việc truyền tải liệu sử dụng giao thức giao Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT tiếp liệt kê kiểu ProtocolType Hiện tại, Silverlight hỗ trợ loại giao thức TCP Một hạn chế việc sử dụng sockets Silverlight cổng phải phạm vi 4502-4534 Chỉ cổng cho phép kết nối cách sử dụng sockets ứng dụng Silverlight Nếu kết nối đến cổng phạm vi cổng này, việc kết nối khơng thành cơng 4.2 Lập trình mạng với Socket Lớp Socket cho phép bạn thực thi bất đồng truyền tải liệu sử dụng phương thức sau đây: + ConnectAsync - Bắt đầu Asynchronous request tới máy chủ + SendAsync - Ghi liệu từ hay nhiều buffers tới Socket kết nối + ReceiveAsync - Đọc liệu vào nhiều buffers từ Socket kết nối + Shutdown - Kết thúc thao tác gửi chờ, tín hiệu endpoint kết nối bị đóng lại Nếu việc gửi xác định, liệu nhận máy chủ kết thúc kết nối (chỉ nhận byte) + Close - Là đóng kết nối máy chủ lưu trữ tất tài ngun quản lý khơng quản lý có liên quan tới Socket Trong lớp Socket, hoạt động asynchronous Socket mô tả khả dùng lại System.Net.Sockets.SocketAsyncEventArgs phân bổ trì đối tượng ứng dụng Các ứng dụng tạo SocketAsyncEventArgs đối tượng mà cần Ví dụ, ứng dụng Silverlight cần phải có 10 Socket cho thao tác lúc, phân bổ 10 SocketAsyncEventArgs cho đối tượng trường hợp Vòng đời SocketAsyncEventArgs sử dụng asynchronous Socket động xác định tham chiếu tới mã ứng dụng tham chiếu tới asynchronous I / O Nó khơng cần thiết cho ứng dụng để trì tham chiếu cho đối tượng SocketAsyncEventArgs sau gửi tham số vào phương pháp asynchronous Socket Nó tham chiếu trả hồn tất Tuy nhiên, lợi cho ứng dụng để giữ lại tham chiếu đến đối tượng SocketAsyncEventArgs để tái sử dụng cho asynchronous socket hoạt động Mã hóa liệu service Namespace System.Security.Cryptography chứa lớp mà cho phép bạn thực hai loại mã hoá đối xứng mã hoá bất đối xứng, tạo hashes chữ ký số, số ngẫu nhiên Phần mô tả cách thức để tạo mã hash chữ ký số Infoway Solutions CHƯƠNG VIII: GIAO TIẾP MẠNG TRONG SILVERLIGHT Các bạn dọc thêm NET Framework, Cryptographic Services Infoway Solutions CHƯƠNG IX: HIỆU SUẤT HOẠT ĐỘNG TRONG ỨNG DỤNG SILVERLIGHT CHƯƠNG IX: HIỆU SUẤT HOẠT ĐỘNG TRONG ỨNG DỤNG SILVERLIGHT Làm để chương trình bạn chạy nhanh ổn định Để ứng dụng bạn hoạt động ổn định với hiệu suất cao bạn cẩn phải chọn phương án khả thi tối ưu tránh sai lầm việc lựa chọn phương án Chúng đưa số gợi ý giúp cho ứng dụng chạy nhanh hiệu 1.1 Thử nghiệm nhiều hệ điều hành trình duyệt Nếu bạn phát triển Silverlight dành cho ứng dụng dựa nhiều hệ điều hành (ví dụ: máy Macintosh, Windows) trình duyệt (ví dụ: Internet Explorer, Mozilla Firefox, Apple Safari) bạn nên thường xuyên kiểm tra ứng dụng bạn tảng trình duyệt mà bạn nhắm tới Những khác tảng cách thức hoạt động trình duyệt, mã Silverlight lập trình ứng dụng ảnh hưởng đến hiệu suất ứng dụng Bạn nên kiểm tra kỹ lưỡng bạn tạo ứng dụng có sử dụng nhúng plug-in có kiểm trứng minh bạch nguồn gốc plug-in 1.2 Đặt EnableFrameRateCounter cho thời gian phát triển Hiệu suất render plug-in khác với thông số liệu phức tạp Chúng khuyên bạn nên đặt EnableFrameCounter trình phát triển Thiết lập hiển thị khung hình giây (fps: frame per second) Silverlight trạng thái trình duyệt, bạn tinh chỉnh ứng dụng bạn với yêu cầu mà bạn đặt ra: Fps: currentFramerate / maxFramerate CurrentFramerate số tỷ lệ khung hình giây hành ứng dụng dựa điểu kiện môi trường plug-in maxFramerate số tỉ lệ khung hình tối đa cấu hình thông qua tham số framerate initialization giá trị maxFramerate giá trị tới hạn, nghĩa trường hợp số thực tế currentFramerate thấp maxFramerate Ví dụ bạn vào trang HTML Silverlight maxFramerate mạc định 24khung hình / giây 1.3 Sử dụng Transparent Background Sử dụng Transparent background hữu ích với ví dụ sau: bạn muốn hiển thị đồng thời giao thoa lớp đối tượng đồ họa chồng lớp lên image, shape Tuy nhiên tránh việc lạm dụng Transparent background đâu, làm ảnh hưởng đến hiệu suất hoạt động ứng dụng 1.4 Tránh việc sử dụng kịch làm biến đổi kích cỡ font Text Thay đổi kích cỡ Text ảnh hưởng tiêu tốn nhiều tài nguyên hệ thống, Silverlight sử dụng hinting để làm mịn văn render text Nếu bạn biến đổi text size transform thuộc tính FontSize Silverlight làm mịn lại tồn text cho frame, việc dó làm tiêu tốn tài nguyên Infoway Solutions CHƯƠNG IX: HIỆU SUẤT HOẠT ĐỘNG TRONG ỨNG DỤNG SILVERLIGHT Nếu ứng dụng bạn đòi hỏi phải thay đổi quy mơ văn lớn, tốt sử dụng đồ họa vector làm đại diện văn 1.5 Tránh sử dụng chế độ Windowless Chỉ nên đặt thuộc tính Windowless cần thiết Hiệu suất bị ảnh hưởng nghiêm trọng chế độ Windowless Do khuyến cáo bạn không nên sử dụng chế độ 1.6 Sử dụng Visibility thay cho việc sử dụng Opacity nhiều trường hợp khơng cần đến có mặt Opacity Nếu bạn đơn giản muốn thực tắt hiển thị đối tượng hồn tồn khơng nên sử dụng thuộc tính opacity, trường hợp tơi khun bạn nên sử dụng thuộc tính Visibitily Opacity sử dụng chi phí tài ngun cao đối tượng sử dụng kỹ thuật Rendered Sử dụng Visibility để tránh việc lãng phí tài nguyên 1.7 Silverlight sử dụng Multi-Core Rendering Media Silverlight mang lại ưu điểm Multi-core cho Render đồ họa Media Bởi ứng dụng Silverlight bạn chạy nhanh hệ thống Multi-core( đa lõi) 1.8 Trong chế độ Full-Screen, ẩn đối tượng không sử dụng Khi ứng dụng bạn chế độ Full-Screen, ẩn đối tượng không Render ngắt kết nối chúng Bạn ẩn đối tượng tùy chỉnh thuộc tính Visibility Collapsed 1.9 Tránh sử dụng thuộc tính Width Height đối tượng MediaElement Tránh việc thiết lập Width Height đối tượng MediaElement Thay vào cho phép MediaElement hiển thị kích cỡ tự nhiên Nếu bạn cần thay đổi kích cỡ hình hiển thị Element, cách tốt mã hóa lại file Media với kích cỡ mong muốn cơng cụ khác 1.10 Tránh sử dụng thuộc tính Width Height đối tượng Path Tránh thiết lập thuộc tính Width, Height cho đối tượng Path Thiết lập thuộc tính bổ sung stretching tự động nới rộng phạm vi ảnh hưởng đến hiệu suất Thay vào vào tọa đọ rõ ràng đối tượng Path điều khiển hình dạng vị trí nó, Width Height tự động set 1.11 Nguy đổ vỡ CPU sử ly cường độ lớn công việc Khi thực thi mã code (C# hay VisualBasic) plug-in ngừng vẽ Thông thường điều vấn đề ta thực công việc tối thiểu mà dễ dàng kiểm sốt Tuy nhiên ứng dụng có quy mơ tương đối có sử dụng lập trình thread, khuyên bạn nên chia nhỏ công việc tác vụ Điều cho phép ứng dụng Render theo kịp với tỷ lệ Frame mong muốn Infoway Solutions CHƯƠNG IX: HIỆU SUẤT HOẠT ĐỘNG TRONG ỨNG DỤNG SILVERLIGHT 1.12 Nguy đổ vỡ ứng dụng có Package lớn Trong số trường hợp Silverlight plug-in thành công chạy ứng dụng có tập tin (.Xap) lớn, bạn cần cân nhắc tập chung số nguồn lực, tập hợp thư viện vào modul riêng biệt tải theo yêu cầu nhằm tối ưu hóa hệ thống nguồn lực 1.13 Sử dụng Double.ToString(CultureInfo.InvariantCulture) hiệu Double.ToString() Phương thức Double.ToString(IFormatProvider) cung cấp giá trị CultureInfo.InvariantCulture tối ưu hóa hiệu suất Tổng quan phương thức Double.ToString(CultureInfo.InvariantCulture) thực thi tốt bạn không muốn hiển thị liệu tới người dung dùng cho việc so sánh String Nếu ứng dụng bạn hiển thị số tới người dùng bạn muốn hiển thị chúng xác, bạn nên sử dụng phương thức Double.ToString(IFormatProvider) với giá trị CultureInfo.CurrentCulture Với yếu tố hữu ích bạn nên thực việc chuyển đổi Sử dụng BackGroundWorker 2.1 Bắt đầu với việc tạo BackGroundWorker C# BackgroundWorker bw = new BackgroundWorker(); // Xác thuộc tính để hệ thống background cho phép hủy bỏ báo cáo tiến trình bw.WorkerSupportsCancellation = true; bw.WorkerReportsProgress = true; 2.2 Tạo Event handler cho background worker DoWork event DoWork event handler nơi mà bạn chạy hệ thống thread Bất kỳ thay đổi hệ thống thông qua đối số DoWorkEventArgs đối tượng thơng qua với kiện handler Để thơng báo tiến trình quay trở lại gọi tới hàm ReportProgress thơng qua hồn thành giá trị từ đến 100 ReportProgress gây lên kiện ProgressChanged mà bạn xử lý riêng biệt Chú ý: báo cáo tiến trình WorkerReportsProgress BackGroundWorker khơng đặt True mà bạn gọi thủ tục ReportProgress, ngoại lệ xảy Để xác định xem có yêu cầu chờ thực thi yêu cầu hủy bỏ background ngầm, kiểm tra thuộc tính CancellationPending BackgroundWorker Nếu thuộc tính trả True thủ tục CancelAsync gọi Đối tượng BackGroundWorker hủy bỏ hệ thống dừng lại Để chuyển liệu quay trở lại trình xử lý, thiết lập thuộc tính cho DoWorkEventArgs đối tượng thông qua với kiện handler Giá trị đọc mà RunWorkerCompleted kiện gây kết thúc hệ thống C# Infoway Solutions CHƯƠNG IX: HIỆU SUẤT HOẠT ĐỘNG TRONG ỨNG DỤNG SILVERLIGHT private void bw_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; for (int i = 1; (i

Ngày đăng: 10/03/2019, 23:18

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan