1. Trang chủ
  2. » Công Nghệ Thông Tin

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

10 196 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 2,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ẽ

Trang 1

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. 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;

}

Trang 2

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

Trang 3

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

Trang 4

7 234

Chương 7:ASP.NET VÀ WEB FORM

Trang 5

235

Trang 6

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. Chuy n h Chuy n h ể ướ ể ướ ng ng ng ng ườ ườ i dùng sang trang khác 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.

Trang 7

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. 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).

Trang 8

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

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

Trang 9

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;

Trang 10

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);

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

HÌNH ẢNH LIÊN QUAN

Hình 6.14 Phong cách Windows XP và phong cách kinh điển - Các giải pháp lập trình CSharp- P24 ppsx
Hình 6.14 Phong cách Windows XP và phong cách kinh điển (Trang 1)
Hình 6.15 Một form với độ đục 80% - Các giải pháp lập trình CSharp- P24 ppsx
Hình 6.15 Một form với độ đục 80% (Trang 2)
Bảng 7.1 Các kiểu quản lý trạng thái - Các giải pháp lập trình CSharp- P24 ppsx
Bảng 7.1 Các kiểu quản lý trạng thái (Trang 8)
Hình 7.1 Thử nghiệm các kiểu quản lý trạng thái - Các giải pháp lập trình CSharp- P24 ppsx
Hình 7.1 Thử nghiệm các kiểu quản lý trạng thái (Trang 9)
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 - Các giải pháp lập trình CSharp- P24 ppsx
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 (Trang 9)