Các giải pháp lập trình CSharp- P24 ppsx

10 196 0
Các giải pháp lập trình CSharp- P24 ppsx

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

Thông tin tài liệu

231 Chương 6: Windows Form Hình 6.14 Phong cách Windows XP và phong cách kinh điển  Nếu bạn áp dụng file manifest cho một ứng dụng đang chạy trên phiên bản Windows trước Windows XP , nó sẽ bị bỏ qua, và phong cách kinh điển sẽ được sử dụng. Vì lý do này, bạn nên thử nghiệm ứng dụng của bạn cả khi có và không có file manifest. 21. 21. Thay đ i đ đ c c a formổ ộ ụ ủ Thay đ i đ đ c c a formổ ộ ụ ủ   Bạn muốn thay đổi độ đục của form để nó trong suốt hơn khi xuất hiện   Thiết lập thuộc tính Opacity của form với một giá trị nằm giữa 0% và 100% . Thuộc tính Opacity của một form kiểm soát mức độ đục hay trong của một cửa sổ. Ở mức 100%, form xuất hiện với trạng thái mặc định, nghĩa là không có các vùng trong suốt trên form. Ở mức 0%, form hoàn toàn trong suốt, cũng có nghĩa bạn không thể tương tác với form được nữa. Khi thay đổi độ đục của một form bằng mã lệnh, bạn phải sử dụng một số thực nằm giữa 0.0 và 1.0: private void Form1_MouseEnter(object sender, System.EventArgs e) { this.Opacity = 1.0; } private void Form1_MouseLeave(object sender, System.EventArgs e) { this.Opacity = 0.8; } 232 Chương 6: Windows Form Nếu chỉ muốn trong suốt những vùng nào đó trên form, bạn hãy sử dụng thuộc tính TransparencyKey . Bạn định nghĩa thuộc tính này là một màu nào đó. Nếu bất kỳ phần nào của form trùng với màu đó, nó sẽ trở nên trong suốt. Hình 6.15 trình bày một form với độ đục 80%. Chúng ta đặt một điều kiểm Panel lên form và thiết lập màu nền của Panel là màu mà ta đã định nghĩa trong thuộc tính TransparencyKey của form. Như thế, form sẽ trong suốt trên vùng thuộc Panel . Hình 6.15 Một form với độ đục 80% và một Panel có màu nền giống với thuộc tính TransparencyKey của form Bạn có thể bắt gặp một số ứng dụng dùng hình bitmap làm giao diện người dùng, nhất là các kiểu media player. Bạn có thể tạo kiểu giao diện thế này bằng cách tạo một hình bitmap với những vùng nào đó có màu là màu mà bạn muốn trong suốt. Kế tiếp, thiết lập thuộc tính BackgroundImage của form là file bitmap mà bạn đã tạo. Cuối cùng, thiết lập thuộc tính TransparencyKey của form là màu mà bạn muốn trong suốt trong hình bitmap. Bitmap Img = ((Bitmap)(Bitmap.FromFile("C:\\Example.bmp"))); // Màu tại Pixel(10,10) được sử dụng làm màu trong suốt. Img.MakeTransparent(Img.GetPixel(10, 10)); this.BackgroundImage = Img; this.TransparencyKey = Img.GetPixel(10, 10); Bạn cũng có thể gỡ bỏ thanh tiêu đề của form bằng cách thiết lập FormBorderStyle là None (xem mục 6.14). Để form có thể di chuyển được trong trường hợp này, bạn hãy áp dụng mục 233 Chương 6: Windows Form 6.15. Trên đây là một cách để tạo form có hình dáng bất thường, một cách khác sẽ được trình bày trong mục 8.3. 7 234 Chương 7:ASP.NET VÀ WEB FORM 235 236 Chương 7: ASP.NET và Web Form icrosoft ASP.NET là một nền dùng để phát triển các ứng dụng Web, và nó là một phần của Microsoft .NET Framework. ASP.NET cho phép bạn viết dịch vụ Web XML (sẽ được thảo luận trong chương 12) và phát triển website (được thảo luận trong chương này). Các trang ASP.NET sử dụng mô hình điều kiểm dựa-trên-sự-kiện, khiến cho việc viết mã cho chúng cũng tương tự như viết mã cho các ứng dụng dựa-trên-Windows thông thường. Tuy nhiên, sự tương tự này có thể là giả tạo. Như hầu hết các nhà phát triển ASP.NET chứng thực, các ứng dụng Web có cách diễn đạt riêng của chúng. Ví dụ, bạn sẽ cần thực hiện thêm các bước để duy trì trạng thái, chuyển thông tin giữa các trang, thụ lý những sự kiện phía client, thực hiện xác thực, và bảo đảm hiệu năng tối ưu khi sử dụng cơ sở dữ liệu. Chương này sẽ xem xét tất cả các vấn đề này. M  Chương này sẽ không giới thiệu về ASP.NET . Thay vào đó, chương này sẽ giúp những nhà phát triển ASP.NET trung cấp giải quyết những vấn đề thường gặp. Để tìm hiểu căn bản về ASP.NET , hãy vào trang [ http://www.asp.net ] hoặc tham khảo ở các tài liệu khác chuyên về ASP.NET . Các mục trong chương này trình bày các vấn đề sau đây:  Chuyển hướng các yêu cầu của người dùng (mục 7.1).  Duy trì trạng thái giữa các yêu cầu trang (mục 7.2 và 7.3).  Sử dụng JavaScript để cải tiến giao diện với các tính năng phía client (mục 7.4, 7.5, và 7.6).  Cho phép người dùng upload file (mục 7.7).  Xác thực client theo hai cách: Xác thực tích hợp với Windows (mục 7.8) và xác thực dựa-trên-form (mục 7.9).  Xác nhận tính hợp lệ của đầu vào mà không sử dụng điều kiểm validator của ASP.NET (mục 7.10).  Tạo động điều kiểm web (mục 7.11), hình ảnh (mục 7.12), và điều kiểm người dùng (mục 7.13).  Cải thiện hiệu năng với output-caching (mục 7.14) và data-caching (mục 7.15).  Giải quyết thông báo lỗi “Unable to start debugging on the Web server” (mục 7.16).  Thay đổi ngữ cảnh tài khoản Windows mà một ứng dụng ASP.NET chạy trong đó (mục 7.17). Chương này sử dụng các lớp web cơ bản thuộc không gian tên System.Web và các lớp điều kiểm web thuộc không gian tên System.Web.UI.WebControls . Khi sử dụng các lớp trong các không gian tên này, tên lớp đầy đủ sẽ không được chỉ định. 1. 1. Chuy n h ng ng i dùng sang trang khácể ướ ườ Chuy n h ng ng i dùng sang trang khácể ướ ườ   Bạn cần chuyển sự thực thi từ một trang ASP.NET sang một trang khác, hoặc bạn muốn chuyển người dùng đến một site hoàn toàn khác. 237 Chương 7: ASP.NET và Web Form   Sử dụng phương thức HttpResponse.Redirect để chuyển người dùng đến một URL mới, hoặc sử dụng phương thức HttpServerUtility.Transfer (nhanh hơn) để chuyển người dùng đến một Web Form ASP.NET khác trên cùng server. Cách dễ nhất để chuyển người dùng từ một trang này đến một trang khác là sử dụng phương thức HttpResponse.Redirect và cấp một URL mới. Bạn có thể truy xuất đối tượng HttpResponse hiện tại thông qua đối tượng HttpContext hoặc sử dụng thuộc tính Reponse của đối tượng Page hoặc Control . Phương thức thụ lý sự kiện dưới đây (đáp ứng cho một cú nhắp chuột vào Button ) sẽ chuyển người dùng đến một trang ASP.NET mới: private void cmdRedirect_Click(object sender, System.EventArgs e) { Response.Redirect("newpage.aspx"); } Phương thức Redirect có thể làm việc với URL tương đối (chỉ đến những tài nguyên trong cùng thư mục ảo), và với URL đầy đủ. URL có thể chỉ đến trang ASP.NET khác, kiểu tài liệu khác (như trang HTML hoặc hình ảnh), và web-server khác. Phương thức Redirect gửi chỉ thị chuyển hướng đến trình duyệt. Kế đó, trình duyệt sẽ yêu cầu trang mới. Kết quả là trình duyệt phải thực hiện hai chuyến đến web-server, và web-server phải xử lý thêm một yêu cầu nữa. Một tùy chọn hiệu quả hơn là sử dụng phương thức HttpServerUtility.Transfer , phương thức này sẽ chuyển sự thực thi đến một trang ASP.NET khác trên cùng web-server. Ví dụ: private void cmdRedirect_Click(object sender, System.EventArgs e) { Server.Transfer("newpage.aspx"); } Phương thức Transfer không cần thêm một chuyến đến client, nhưng nó sẽ không làm việc nếu bạn cần chuyển sự thực thi đến một server khác hoặc một kiểu tài nguyên khác với Web Form (bao gồm trang ASP cổ điển). 2. 2. Duy trì tr ng thái gi a các yêu c u c a trangạ ữ ầ ủ Duy trì tr ng thái gi a các yêu c u c a trangạ ữ ầ ủ   Bạn cần lưu trữ vài thông tin đặc thù của người dùng giữa các lần postback của trang.   Sử dụng view state (trạng thái nhìn), query string argument (đối số chuỗi truy vấn), session state (trạng thái phiên làm việc), hoặc cookie , tùy thuộc vào nhu cầu của bạn. ASP.NET là một mô hình lập trình phi trạng thái (stateless programming model). Mỗi khi một postback được phát sinh, mã sẽ nạp vào bộ nhớ, thực thi, và được giải phóng khỏi bộ nhớ. Nếu muốn giữ lại vết của thông tin sau khi mã đã hoàn tất việc xử lý, bạn phải sử dụng các kiểu quản lý trạng thái (state management). 238 Chương 7: ASP.NET và Web Form ASP.NET cung cấp nhiều cách để lưu trữ thông tin, hay trạng thái, giữa các yêu cầu (request). Kiểu trạng thái mà bạn sử dụng cho biết: thông tin sẽ sống bao lâu, sẽ được lưu trữ ở đâu, và sẽ được bảo mật như thế nào. Bảng 7.1 liệt kê những tùy chọn trạng thái khác nhau được cấp bởi ASP.NET. Bảng này không chứa đối tượng Cache , đối tượng này cung cấp kho lưu trữ tạm thời và sẽ được mô tả trong mục 7.5. Cú pháp cho các phương pháp lưu trữ dữ liệu là như nhau. Dữ liệu được lưu trữ trong một đối tượng tập hợp và được đánh chỉ mục bằng một tên chuỗi. Bảng 7.1 Các kiểu quản lý trạng thái Kiểu trạng thái Dữ liệu được phép Vị trí lưu trữ Thời gian sống Bảo mật View state Tất cả các kiểu dữ liệu khả-tuần- tự-hóa .NET. Một trường ẩn trong trang web hiện hành. Bị mất khi người dùng chuyển sang một trang khác. Mặc định là không an toàn. Tuy nhiên, bạn có thể sử dụng các chỉ thị trang để thực hiện mật hóa và băm để ngăn dữ liệu bị phá. Query string Dữ liệu chuỗi. Chuỗi URL của trình duyệt. Bị mất khi người dùng nhập một URL mới hoặc đóng trình duyệt. Tuy nhiên, nó có thể được lưu trữ trong một bookmark. Người dùng có thể nhìn thấy được và chỉnh sửa dễ dàng. Session state Tất cả các kiểu dữ liệu khả-tuần- tự-hóa .NET. Bộ nhớ server (có thể được cấu hình cho một tiến trình hoặc cơ sở dữ liệu bên ngoài). Hết hiệu lực sau một khoảng thời gian được định nghĩa trước (thường là 20 phút, nhưng khoảng thời gian này có thể thay đổi được). An toàn vì dữ liệu không bao giờ được chuyển cho client. Cookie Dữ liệu chuỗi. Máy tính client (trong bộ nhớ hoặc một file text, tùy thuộc vào các thiết lập cho thời gian sống của nó). Được thiết lập bởi lập trình viên. Có thể được sử dụng trong nhiều trang và có thể vẫn còn giữa các lần viếng thăm. Không an toàn, và có thể bị người dùng chỉnh sửa. 239 Chương 7: ASP.NET và Web Form Applicatio n state Tất cả các kiểu dữ liệu khả-tuần- tự-hóa .NET. Bộ nhớ server. Thời gian sống của ứng dụng (cho đến khi server được khởi động lại). Không giống với các phương pháp khác, dữ liệu ứng dụng là toàn cục đối với tất cả các người dùng. An toàn vì dữ liệu không bao giờ được chuyển cho client. Hình 7.1 trình bày một trang web thử nghiệm các kiểu quản lý trạng thái khác nhau. Khi người dùng nhắp vào nút Store Data, một đối tượng System.DateTime sẽ được tạo ra và được lưu trữ trong view state, session state, và một cookie tùy biến. Khi người dùng nhắp vào nút Get Data, thông tin này sẽ được lấy ra và hiển thị. Cuối cùng, nút Clear Data sẽ xóa thông tin này trong tất cả các trạng thái. Hình 7.1 Thử nghiệm các kiểu quản lý trạng thái Dưới đây là phần mã cho trang: using System; using System.Web; using System.Web.UI.WebControls; using System.Web.SessionState; public class TestState : System.Web.UI.Page { protected System.Web.UI.WebControls.Button cmdClear; protected System.Web.UI.WebControls.Button cmdStore; 240 Chương 7: ASP.NET và Web Form protected System.Web.UI.WebControls.Button cmdGetData; protected System.Web.UI.WebControls.Label lblData; // (Bỏ qua phần mã designer.) private void cmdStore_Click(object sender, System.EventArgs e) { // Tạo đối tượng thử nghiệm. DateTime now = DateTime.Now; // Lưu trữ đối tượng trong view state. ViewState["TestData"] = now; // Lưu trữ đối tượng trong session state. Session["TestData"] = now; // Lưu trữ đối tượng trong một cookie tùy biến. // Kiểm tra xem cookie đã tồn tại hay chưa (có tên là 07-02). if (Request.Cookies["07-02"] == null) { // Tạo cookie. HttpCookie cookie = new HttpCookie("07-02"); // Cookie chỉ có thể lưu trữ dữ liệu chuỗi. // Nó có thể lưu trữ nhiều giá trị, // mỗi giá trị ứng với một khóa khác nhau. cookie["TestData"] = now.ToString(); // (Bạn có thể chỉnh sửa các thuộc tính // của cookie để thay đổi ngày hết hiệu lực.) // Gắn cookie vào đáp ứng. // Nó sẽ được cung cấp với tất cả các yêu cầu đến // site này cho đến khi hết hiệu lực. Response.Cookies.Add(cookie); . tham khảo ở các tài liệu khác chuyên về ASP.NET . Các mục trong chương này trình bày các vấn đề sau đây:  Chuyển hướng các yêu cầu của người dùng (mục 7.1).  Duy trì trạng thái giữa các yêu cầu. file text, tùy thuộc vào các thiết lập cho thời gian sống của nó). Được thiết lập bởi lập trình viên. Có thể được sử dụng trong nhiều trang và có thể vẫn còn giữa các lần viếng thăm. Không. hầu hết các nhà phát triển ASP.NET chứng thực, các ứng dụng Web có cách diễn đạt riêng của chúng. Ví dụ, bạn sẽ cần thực hiện thêm các bước để duy trì trạng thái, chuyển thông tin giữa các trang,

Ngày đăng: 08/07/2014, 17:20

Mục lục

  • LỜI NÓI ĐẦU

  • CẤU TRÚC CỦA SÁCH

  • QUY ƯỚC

  • YÊU CẦU VỀ HỆ THỐNG

  • CÁCH SỬ DỤNG ĐĨA CD

  • MỤC LỤC

  • Chương 1:PHÁT TRIỂN ỨNG DỤNG

    • 1. Tạo ứng dụng Console

    • 2. Tạo ứng dụng dựa-trên-Windows

    • 3. Tạo và sử dụng module

    • 4. Tạo và sử dụng thư viện

    • 5. Truy xuất các đối số dòng lệnh

    • 6. Chọn biên dịch một khối mã vào file thực thi

    • 8. Tạo và quản lý cặp khóa tên mạnh

    • 9. Tạo tên mạnh cho assembly

    • 10. Xác minh một assembly tên mạnh không bị sửa đổi

    • 11. Hoãn việc ký assembly

    • 12. Ký assembly với chữ ký số Authenticode

    • 13. Tạo và thiết lập tin tưởng một SPC thử nghiệm

    • 14. Quản lý Global Assembly Cache

    • 15. Ngăn người khác dịch ngược mã nguồn của bạn

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

  • Đang cập nhật ...

Tài liệu liên quan