Đăng ký Đăng nhập
Trang chủ Sinh source code theo giao diện tự động...

Tài liệu Sinh source code theo giao diện tự động

.PDF
111
1512
99

Mô tả:

C LUẬN VĂN TỐT NGHIỆP H BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP KỸ THUẬT CÔNG NGHỆ KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN: CÔNG NGHỆ PHẦN MỀM ------------------oOo------------------ H U TE SINH SOURCE CODE THEO GIAO DIỆN TỰ ĐỘNG GVHD: ThS Lê Trung Hiếu Hồ Nguyễn Lê Hoàng Duy SVTH: Võ Như Phương – 10102127 Nguyễn Hoàng Quang – 10102137 Nguyễn Ngọc Phương Thảo – 10102172 TP HCM, Tháng 1/2006 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy TÓM TẮT NỘI DUNG Nhiệm vụ của luận văn này là cung cấp những giải pháp khác nhau và chọn một giải pháp để hiện thực ứng dụng cho phép người dùng thiết kế giao diện web bằng ngôn ngữ ASP.NET, Laszlo và sinh mã nguồn tự động cho trang Code-behind. Trong luận văn này, chúng tôi sẽ trình bày những phần chính sau: Chương 1 Yêu cầu thực tiễn của việc xây dựng một ứng dụng sinh mã nguồn tự động theo giao diện. Chương 2 Các kiến thức cơ sở phục vụ cho ứng dụng. Những hiểu biết về ngôn H ngữ lập trình ASP.NET rất cần thiết trong việc xây dựng ứng dụng. Ngoài ra, C chúng tôi còn trình bày một ngôn ngữ lập trình web mới là Laszlo, dự kiến sẽ làm hướng phát triển tương lai cho ứng dụng. U TE Chương 3 Trình bày chi tiết các giải pháp khả thi được dùng để xây dựng ứng dụng, bao gồm sử dụng mẫu qui định sẵn và kĩ thuật CodeDOM. Chương 4 Trình bày chi tiết thiết kế và cài đặt chương trình sinh mã nguồn tự động theo giao diện, các kết quả đạt được. Chương 5 Đánh giá kết quả đạt được của chương trình so với mục tiêu ban đầu và H hướng phát triển của đề tài này. SV Khóa 2001 – Lớp Công Nghệ Phần Mềm Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy LỜI CẢM ƠN Để có thể hoàn thành tốt luận văn này, chúng tôi đã được sự hướng dẫn, chỉ bảo của quý thầy cô khoa Công Nghệ Thông Tin trường Đại Học Dân lập Kỹ Thuật Công Nghệ , đặc biệt là thầy Lê Trung Hiếu. Chúng tôi cũng rất cảm ơn công ty Tân Thiên Niên Kỷ đã tạo mọi điều kiện tốt nhất giúp đỡ chúng tôi trong quá trình thực hiện luận văn. Chúng tôi cũng gửi lời cảm ơn chân thành đến anh Hồ Nguyễn Lê Hoàng Duy, nhân viên công ty Tân Thiên Niên K ỷ, vì sự quan tâm hướng dẫn H U TE C H của anh trong thời gian chúng tôi thực hiện đề tài này. SV Khóa 2001 – Lớp Công Nghệ Phần Mềm Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy MỤC LỤC Chương 1 ....................................................................Error! Bookmark not defined. PHÁT BIỂU VẤN ĐỀ ...............................................Error! Bookmark not defined. 1.1 Tiếp cận đề tài ............................................................Error! Bookmark not defined. 1.2 Nội dung đề tài ...........................................................Error! Bookmark not defined. Chương 2 ....................................................................Error! Bookmark not defined. CƠ SỞ KIẾN THỨC ..................................................Error! Bookmark not defined. H 2.1 Áp dụng lập trình hướng đối tượng trên môi trường .NET Error! Bookmark not defined. C 2.2 Ngôn ngữ lập trình web ASP.NET ...........................Error! Bookmark not defined. 2.1.1 Giới thiệu ..................................................................... Error! Bookmark not defined. U TE 2.1.1.1 Cấu trúc ASP.NET ............................................... Error! Bookmark not defined. 2.1.1.2. Các thành phần cơ bản của ASP.NET ................. Error! Bookmark not defined. 2.1.1.3. Chu kì sống của trang .......................................... Error! Bookmark not defined. 2.1.2 Hoạt động ..................................................................... Error! Bookmark not defined. 2.2.3 Các chuẩn trong ASP.NET .......................................... Error! Bookmark not defined. H 2.3 Ngôn ngữ lập trình web laszlo ..................................Error! Bookmark not defined. Cấu trúc của OpenLaszlo: ..................................................... Error! Bookmark not defined. 2.3.1 OpenLaszlo Compiler.............................................. Error! Bookmark not defined. 2.3.2 OpenLaszlo Servlet ................................................. Error! Bookmark not defined. 2.3.3 OpenLaszlo Runtime Framework Library............... Error! Bookmark not defined. Chương 3 ....................................................................Error! Bookmark not defined. CÁC GIẢI PHÁP HIỆN THỰC ỨNG DỤNG .........Error! Bookmark not defined. 3.1 Sử dụng các mẫu qui định sẵn để sinh mã nguồn (template) .... Error! Bookmark not defined. 3.1.1 Giới thiệu ..................................................................... Error! Bookmark not defined. 3.1.2 Sử dụng giải pháp cho ứng dụng.................................. Error! Bookmark not defined. SV Khóa 2001 – Lớp Công Nghệ Phần Mềm Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy 3.1.3 Đánh giá giải pháp ....................................................... Error! Bookmark not defined. 3.2 Dùng kĩ thuật CodeDOM để sinh mã nguồn...........Error! Bookmark not defined. 3.2.1 Giới thiệu ..................................................................... Error! Bookmark not defined. 3.2.2 Sử dụng CodeDOM ..................................................... Error! Bookmark not defined. 3.2.3 Đánh giá giải pháp ....................................................... Error! Bookmark not defined. 3.3 Chọn giải pháp sinh mã nguồn tự động...................Error! Bookmark not defined. 3.4 Kỹ thuật phối màu các controls dùng Cascading Style Sheets (CSS) .........Error! Bookmark not defined. 3.5. Trình duyệt Web trong ứng dụng ...........................Error! Bookmark not defined. 3.5.1 Giới thiệu ..................................................................... Error! Bookmark not defined. H 3.5.2 Ứng dụng ActiveX Control vào ứng dụng VS.NET .... Error! Bookmark not defined. C 3.5.3 Hiện thực trong ứng dụng ............................................ Error! Bookmark not defined. Chương 4 ....................................................................Error! Bookmark not defined. U TE THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH...........Error! Bookmark not defined. 4.1 Mô hình use case ........................................................Error! Bookmark not defined. 4.2 Đặc tả Use case:..........................................................Error! Bookmark not defined. 4.2.1 Use case Start up: ......................................................... Error! Bookmark not defined. 4.2.2 Use case Add Diagram................................................. Error! Bookmark not defined. H 4.2.3 Use case Add Connection ............................................ Error! Bookmark not defined. 4.2.4 Use case Edit Connection ............................................ Error! Bookmark not defined. 4.2.5 Use case Rename Connection ...................................... Error! Bookmark not defined. 4.2.6 Use case Publish .......................................................... Error! Bookmark not defined. 4.2.7 Use case Browse Page (Publish page) ......................... Error! Bookmark not defined. 4.2.8 Use case Add Form Control ......................................... Error! Bookmark not defined. 4.2.9 Use case Add Builder Control ..................................... Error! Bookmark not defined. 4.2.10 Use case Add File ...................................................... Error! Bookmark not defined. 4.2.11 Use case Generate Code ............................................. Error! Bookmark not defined. 4.3 Sơ đồ lớp .....................................................................Error! Bookmark not defined. 4.3.1 Package Project ............................................................ Error! Bookmark not defined. 4.3.2 Package MainTab......................................................... Error! Bookmark not defined. SV Khóa 2001 – Lớp Công Nghệ Phần Mềm Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy 4.3.3 Package Controls.......................................................... Error! Bookmark not defined. 4.3.4 Package CCGWizardClasses ....................................... Error! Bookmark not defined. 4.4 Sơ đồ thành phần .......................................................Error! Bookmark not defined. 4.5 Thiết kế màn hình giao diện .....................................Error! Bookmark not defined. 4.5.1 Màn hình chính: ........................................................... Error! Bookmark not defined. 4.5.1.1 Command Area .................................................... Error! Bookmark not defined. 4.5.1.2 ProjectExplorer..................................................... Error! Bookmark not defined. 4.5.1..3 PropertyGrid ........................................................ Error! Bookmark not defined. 4.5.1.4 ToolBox................................................................ Error! Bookmark not defined. 4.5.1.5 Design Area .......................................................... Error! Bookmark not defined. H 4.5.1.6 Message explorer.................................................. Error! Bookmark not defined. 4.5.1.7 Language editor .................................................... Error! Bookmark not defined. C 4.5.2 Phần giao diện wizard databinding: ............................. Error! Bookmark not defined. Chương 5 ....................................................................Error! Bookmark not defined. U TE ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ..................Error! Bookmark not defined. 5.1 Đánh giá kết quả đạt được ........................................Error! Bookmark not defined. 5.2 Đối chiếu với mục tiêu đề ra .....................................Error! Bookmark not defined. H 5.3 Hướng phát triển .......................................................Error! Bookmark not defined. SV Khóa 2001 – Lớp Công Nghệ Phần Mềm Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Chương 1 PHÁT BIỂU VẤN ĐỀ 1.1 Tiếp cận đề tài Lĩnh vực công nghiệp phần mềm ở nước ta đang phát triển nhanh chóng. Điều này đặt ra một nhu cầu to lớn trong việc xây dựng những ứng dụng có chất lượng cao, cung cấp những sản phẩm phần mềm nhằm đáp ứng kịp thời nhu cầu thực tiễn. H Những ứng dụng có qui mô lớn, được phát triển trong thời gian dài sẽ đòi hỏi rất nhiều thời gian và công sức của các lập trình viên khi hiện thực. Điều này dễ dẫn C đến những sai sót trong quá trình xây dựng và phát triển ứng dụng. Ngoài ra, lượng mã nguồn quá lớn gây nên tình trạng khó quản lý, rất khó khăn khi cần xem U TE lại mã nguồn để kiểm tra, sửa lỗi… Như vậy, vấn đề đặt ra là bằng cách nào giảm bớt sự vất vả cho các lập trình viên khi viết mã nguồn bằng tay, đồng thời mã nguồn phải rõ ràng, tuân theo một chuẩn nhất định để dễ đọc, dễ hiểu, thuận tiện cho việc kiểm tra, chỉnh sửa. H Ý tưởng xây dựng một phần mềm cho phép người dùng chỉ cần thiết kế giao diện và mã nguồn được phát sinh tự động xuất phát từ những yêu cầu thiết thực nói trên. 1.2 Nội dung đề tài Hiện nay đã có một số phần mềm hỗ trợ người dùng thiết kế giao diện trực quan và tự động sinh mã nguồn như: Microsoft Visual Studio .NET, CodeCharge Studio, và phần mềm mã nguồn mở như SharpDevelop. Trong luận văn này chúng tôi đề cập đến các phương pháp xây dựng ứng dụng cho phép người dùng thiết kế giao diện web và phát sinh mã nguồn tự động. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 1 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Nội dung được tr ình bày trong đề tài này bao gồm các kiến thức về ngôn ngữ lập trình web ASP.NET, Laszlo. Những kiến thức này là nền tảng để xây dựng ứng dụng. Ngoài ra cũng trình bày chi tiết các giải pháp kĩ thuật sinh mã nguồn tự động cùng một số kĩ thuật bổ trợ, phân tích những thuận lợi và hạn chế của từng kĩ thuật khi áp dụng vào chương trình. Trong luận văn này chúng tôi sử dụng kĩ thuật dùng mẫu (Template) và dùng CodeDOM để sinh mã nguồn cho trang ASP.NET. Chúng tôi sẽ xây dựng một chương trình cho phép người sử dụng thiết kế web trực quan bằng cách kéo thả control vào màn hình thiết kế, mã HTML và Code-behind sẽ do chương trình tự động phát sinh. Chương trình hỗ trợ tương tác H U TE C sở dữ liệu và thao tác trên dữ liệu. H với cơ sở dữ liệu. Bất kì thời điểm nào người dùng cũng có thể tạo kết nối đến cơ SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 2 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Chương 2 CƠ SỞ KIẾN THỨC 2.1 Áp dụng lập trình hướng đối tượng trên môi trường .NET Lập trình hướng đối tượng là khái niệm rất quen thuộc đối với người lập trình và được sử dụng rộng rãi do những ưu điểm của nó. Để tìm hiểu kĩ hơn về khái niệm này, chúng tôi đã đính kèm tài liệu có trình bày chi tiết vấn đề này. Trong phạm vi trên môi trường .NET. H luận văn chúng tôi chỉ đề cập một số điểm khác biệt của lập trình hướng đối tượng C Đặc điểm 1: Trong .NET không có hàm huỷ nhưng khi khai báo một phương thức giống như hàm huỷ ví dụ ~Employee() thì vẫn hợp lệ. Thật ra về bản chất thì cách U TE khai báo như vậy có ý nghĩa hoàn toàn khác nhau trong 2 ngôn ngữ: + trong C++, đó là hàm huỷ. + trong C#, đó là một cách để dùng phương thức System.Object.Finalize() mà sẽ được gọi khi bộ phận nhặt rác tự động sắp huỷ đối tượng. H Đặc điểm 2. Một lớp cha trong .NET là lớp sẽ được các lớp khác thừa kế, lớp này được nhận biết bởi từ khóa virtual hoặc abstract: + từ khóa virtual để chỉ một lớp mà bạn được phép tao một đối tượng của nó. + từ khóa abstract là một lớp trừu tượng mà không thể được khởI tạo. VD: lớp cha Employee() va hai lớp kế thừa là FullTimeEmp() và PartTimeEmp(). Nếu dung virtual thì bạn vẫn có thể tạo đối tượng của Employee() nhưng trên thực tế bất kỳ nhân viên nào cũng thuộc FullTimeEmp() hoặc PartTimeEmp(). Do đó dể ngăn việc khởi tạo này, bạn dùng từ khoá abstract. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 3 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Đặc điểm 3: Không còn dùng từ khoá friend, và thay vào đó là internal để cấp quyền truy xuất cho các lớp trong cùng chương trình hiện hành. Đặc điểm 4: Từ khoá base để gọi hàm dựng của lớp cha: Ví dụ: class Employee { String Name; public Employee(string sName) Name=sName; } class PartTimeEmp U TE { C } H { private int m_HoursOfWork=0; public PartTimeEmp(String sName,int h) : base(sName) { m_HoursOfWork=h; } H } 2.2 Ngôn ngữ lập trình web ASP.NET 2.1.1 Giới thiệu ASP.NET không chỉ là phiên bản kế tiếp của ASP (Active Server Page), nó đưa ra mô hình phát triển web thống nhất bao gồm nhiều dịch vụ hỗ trợ để người lập trình xây dựng những ứng dụng web mạnh. ASP.NET cung cấp bộ thư viện gồm nhiều lớp được thiết kế để xử lý các yêu cầu HTTP (HTTP request). Ngoài bộ thư viện này, ASP.NET còn bao gồm nhiều thành phần IIS dùng để quản lý các yêu cầu đó. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 4 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Những ưu điểm của ASP.NET Sự tách biệt mã nguồn và HTML Với ASP.NET, ta có thể hoàn toàn tách biệt giữa việc thiết kế và xử lý các sự kiện. Điều này giúp một nhóm phát triển web gồm các nhà lập trình và những nhà thiết kế dễ dàng kết hợp với nhau thật hiệu quả. ASP.NET là ngôn ngữ hướng đối tượng Mỗi yêu cầu (request) gửi tới ứng dụng ASP.NET đều được một lớp (hiện thực interface IHttpHa ndler) xử lý. Điều này giúp dễ dàng mở rộng khi muốn phát triển thêm. H Tận dụng được các dịch vụ hỗ trợ bởi môi trường .NET Môi trường .NET C Framework cung cấp sẵn những thư viện để sử dụng cho ứng dụng web. Quản lý trạng thái Cung cấp giải pháp quản lý trạng thái của session và ứng dụng. U TE Chẳng hạn như thông tin trạng thái có thể được giữ trong bộ nhớ hoặc lưu trữ trong cơ sở dữ liệu. Nó cũng có thể được chia sẻ qua các web-form. Những thông tin này có thể được phục hồi, thậm chí ngay cả khi máy chủ bị hỏn g hay bị ngắt kết nối. Cập nhật các tập tin trong khi máy chủ vẫn đang chạy Những thành phần trong H ứng dụng vẫn có thể được cập nhật trong khi máy chủ đang trực tuyến và các máy khách đang kết nối đến. Framework sẽ sử dụng những tập tin mới ngay khi chúng được sao chép vào ứng dụng. Những tập tin cũ vẫn còn được lưu giữ trong bộ nhớ cho đến khi những máy khách kết thúc. Những tập tin cấu hình dạng XML Các thiết lập cấu hình trong ASP.NET đều được lưu ở dạng các tập tin XML rất dễ đọc và sửa cho phù hợp. Ngoài ra ta có thể chép những tập tin này cùng với các tập tin khác của ứng dụng vào máy chủ khác. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 5 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy 2.1.1.1 Cấu trúc ASP.NET Cấu trúc ASP.NET dựa trên nền tảng cấu trúc của .NET Framework. Visual studio C H đưa ra một cách thức thống nhất nhằm kết hợp nhiều tính năng khác nhau. U TE Hình 1 Cấu trúc Visual Studio .NET Giải thích cấu trúc Visual Studio .NET Tầng Common Language Runtime (CLR) CLR có nhiệm vụ tải và thực thi mã nguồn. CLR có nhiệm vụ quản lý mã nguồn tại thời điểm thực thi, đồng thời đảm bảo sự bảo mật. Tóm tại, quản lý mã nguồn là một yếu tố cơ bản của CLR. Mã H nguồn đến CLR gọi là mã nguồn được quản lý, ngược lại mã nguồn không đến CLR gọi là mã nguồn không được quản lý. Tầng Base Classes .NET Framework cung cấp rất nhiều bộ thư viện, bao gồm các lớp cơ sở (Base Classes) , như những lớp thao tác về mạng, những lớp làm việc với dữ liệu, … Tất cả những bộ thư viện này được Services Framework cung cấp, và nó nằm ở vị trí ngay trên CLR (Xem hình vẽ). Tầng ADO.NET ADO.NET là mô hình Microsoft’s ActiveX Data Object (ADO). ADO.NET không đơn giản là việc chuyển từ mô hình ADO qua môi trường .NET, mà nó hoàn toàn là ộtm mô hình mới dùng để truy cập và xử lý dữ liệu. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 6 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy ADO.NET đặc biệt dùng để phát triển những ứng dụng web. Có thể nhận thấy điều này qua hai yếu tố sau: • Disconnected Datasets Trong ADO.NET, hầu hết việc xử lý dữ liệu được thực hiện bên ngoài kết nối đang mở (open connection) • Trao đổi dữ liệu dễ dàng ở dạng XML Datasets có thể được chuyển thành định dạng phổ biến trên Web là XML. Tầng Windows application và Web application ASP.NET bao gồm Web Forms H và Web Services. ASP.NET được xây dựng từ nhiều Web Forms với các control của nó tạo nên giao diện cho trang web. Những control này được khai báo trong C trang aspx dưới dạng thẻ HTML. Web Services cung cấp giải pháp kết nối nhiều U TE ứng dụng khác nhau thông qua internet. Tầng Common Language Specification Những đặc tính của môi trường .NET là sự hợp nhất của những ngôn ngữ lập trình khác nhau. Để đạt được điều đó, có một số luật được áp dụng và mọi ngôn ngữ phải tuân theo các luật trên. Common Language Specification là một tập hợp bao gồm các qui luật và những ràng buộc H mà mỗi ngôn ngữ phải tuân theo Những ngôn ngữ tương thích với .NET: VB.NET, C#, Managed C++ và JScript.NET. 2.1.1.2. Các thành phần cơ bản của ASP.NET XML Web Services Một XML Web service là một component mà có thể được gọi thông qua giao thức mạng TCP/IP bởi những ứng dụng khác. Nó thực thi một phương thức xác định – mọi thứ từ những tính toán từ đơn giản đến phức tạp – và trả về những giá trị gọi ứng dụng. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 7 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Những gì XML Web Services có thể làm duy nhất là chúng có thể gọi qua Web. XML Web Service được thực thi sử dụng yêu cầu HTML và SOAP và thay đổi dữ liệu với những components khác dùng XML. Một XML Web service hỗ trợ truy xuất phương thức server từ xa. Dùng XML Web services, cho phép thay ổđi dữ liệu giữa các mạng client -server hay serverserver, sử dụng các chuẩn giống HTTP và XML chuyển tin nhắn đưa dữ liệu qua firewalls. Với những ứng dụng XML Web services, người lập trình có thể viết với bất kỳ ngôn ngữ nào, dùng bất kỳ component model nào, và chạy trên mọi hệ điều H hành đều có thể truy cập XML Web services. Các đề án ứng dụng Web ASP.NET và sự triển khai (ASP.Net Web C Application Projects and Deloyment): U TE Khi bạn tạo một để án ứng dụng Web, nó có tạo một file Web.config chứa các định dạng và những chuyển đổi của các file cấu hình .NET. Trong ASP.NET, file cấu hình cho phép bạn thiết lập các thiếp lập xác định của đề án cho việc bảo mật, những tùy chọn biên dịch, xử lý lỗi, … Web Forms và ASP.NET Page Framework H Web Forms cho phép người lập trình xây dựng một cách mạnh mẽ những trang Web trên nền Forms. Khi tạo những trang này, bạo có thể dùng ASP.NET server controls những thành phần UI chung, và lập trình chúng bằng những tasks phổ biến. Bạn có thể tạo các trang HTML và các trang Web Forms như giao diện người dùng cho ứng dụng của mìn h. Các trang HTML được phát sinh sử dụng nội dung tĩnh. Trong khi đó, các trang Web Forms cho bạn một giao diện lập trình làm việc giống như một dạng Visual Basic, và giao diện được hiển thị bởi một trình duyệt Web hay thiết bị Web khác. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 8 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Các trang Web Forms được tạo trên nền ASP.NET Framework. Mỗi trang Web Form là một đối tượng mà chiết xuất từ lớp ASP.NET Page, mà hoạt động như một container cho controls. Mỗi trang có hai file: một file .aspx chứa các thành phẩn giao diện và một file lớp chứa mã chạy trang, được gọi là code-behind. Ứng dụng Web truy xuất dữ liệu: Hầu hết các ứng dụng Web ASP.NET thực hiện ít nhất một số mức truy cập dữ liệu. ASP.NET không truy xuất trực tiếp dữ liệu. Thay vào đó, những ứng dụng Web dùng bộ truy xuất dữ liệu ADO.NET. H ADO.NET hỗ trợ một nền hoàn chỉnh cho truy xuất và quản lý dữ liệu từ nhiều nguồn, gồm cả các cơ sở dữ liệu và các file XML hay các stream. ADO.NET có C bộ Providers – các lớp cho phép bạn kết nối nguồn dữ liệu, thực thi câu lệnh, và U TE đọc kết quả. Bạn có thể đỗ dữ liệu vào dataset, mà khi không còn kết nối, nó vẫn nằm trong memory cache. Cơ sở hạ tầng ứng dụng Web: Sự Bảo mật (Security), Sự Thực Thi (Performance), Theo Vết (Tracing) Bảo mật H Bảo mật làm một phần không thể thiếu trong ứng dụng của bạn. Những ứng dụng Web bằng định nghĩa cho phép người dùng truy cập đến tài nguyên trung tâm – the Web Server – và thông qua nó, ến đ nhiều database servers. Làm việc với những yêu cầu bảo mật, có hai khái niệm: Authentication: xác nhận những người dùng, những người có quyền truy cập. Authorization: là tiến trình của việc chấp thuận hay từ chối truy cập đến tài nguyên đối với những người dùng xác định. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 9 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Hơn nữa Windows cũng hỗ trợ một hệ thống bảo mật khá chắc chắn cho phép người quản trị tạo những tài khoản người dùng và cấp quuyền cho những người này truy cập dữ liệu. Sự thực thi Bạn có thể thiết lập sự thực thi ứng dụng của bạn bằng việc cache các trang và dữ liệu. ASP.NET chứa một cache xuất mà lưu những trang được yêu cầu trước đó. Bằng việc xác định các thiết lập cache, bạn có thể kiểm soát độ dài của các trang được cache và được làm tươi. H Theo vết C Bởi vì những ứng dụng Web chạy trên Server – thường là một server từ xa. Do đó, ASP.NET cho phép bạn gộp thông tin theo v ết một cách trực tiếp trong một trang U TE Web Forms. 2.1.1.3. Chu kì sống của trang Khi có một yêu cầu (request) gửi đến máy chủ (giả sử trang được yêu cầu lần đầu tiên), máy chủ sẽ xử lý một loạt các bước sau: H Giai đoạn Khởi tạo đối tượng Tải viewstate (LoadViewState) Mô tả Phương thức hay sự kiện cần override Các control nằm trong web-form và đối tượng Page được khởi tạo thông qua phương thức OnInit(). Những đối tượng này sẽ được dùng trong suốt thời gian sống (lifetime) của yêu cầu (request). Init (OnInit) Sau khi hàm OnInit() được gọi, các control có thể được gọi thông qua ID của nó. Trong sự kiện LoadViewState, property Phương thức LoadViewState SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 10 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy ViewState của mỗi control tự động được gán giá trị. Người dùng có thể hiện thực phương thức LoadViewState để tùy chỉnh sự phục hồi trạng thái. Phương thức LoadPostData Chú ý: Chỉ những control có xử lý dữ liệu trả về mới tham gia giai đoạn này. Thực thi các tác vụ phổ biến trong hầu hết các yêu cầu (requests), chẳng hạn như thiết lập câu truy vấn cơ sở dữ liệu. Tại thời điểm này, những server control được khởi tạo, trạng thái được phục hồi, và những form control hiển thị dữ liệu bên phía client. Load (OnLoad) Bắt những sự kiện thay đổi để đáp ứng sự thay đổi trạng thái giữa postback hiện tại và postback trước. Phương thức C H Xử lý dữ liệu trả về (postback data) Xử lý những dữ liệu được trả về từ webform và cập nhật các giá trị property phù hợp. U TE Load H Gửi thông báo thay đổi postback Xử lý postback. Prerender Chú ý: Chỉ có những control nào bắt sự kiện thay đổi postback mới tham gia giai đoạn này. Xử lý sự kiện phía client tạo postback và bắt những sự kiện tương ứng trên server. Chú ý: Chỉ có những control nào bắt sự kiện thay đổi postback mới tham gia giai đoạn này. Cập nhật trước khi kết quả được trả cho client. Bất kì sự thay đổi nào về trạng thái của control trong SV Khóa 2001 – Khoa Công Nghệ Phần Mềm RaisePostData_ ChangedEvent Phương thức RaisePostBackEvent PreRender (OnPreRender) Page 11 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy giai đoạn này sẽ được lưu lại, trong khi đó những thay đổi trong giai đoạn render sẽ bị mất. Property ViewState của một control sẽ tự động được lưu thành một đối tượng kiểu chuỗi sau giai đoạn này. Đối tượng chuỗi này sẽ được gửi đến cho client và đóng vai trò như một biến ẩn. Để tăng hiệu quả, một control có thể override phương thức SaveViewState để chỉnh sửa property ViewState. Phương thức SaveViewState Render Sinh ra kết quả để trả về cho server. Phương thức Render Dispose Giải phóng đối tượng. Những tham chiếu đến các nguồn tài nguyên chiếm dụng nhiều bộ nhớ sẽ được giải phóng. (chẳng hạn như kết nối cơ sở dữ liệu). Phương thức Dispose Giải phóng nguồn tài nguyên. Những control nói chung đều được dọn dẹp trong Dispose và sẽ ko xử lý sự kiện này. UnLoad (OnUnLoad) Save state C U TE H Unload H Lưu trạng thái Bảng 1 Chu kì sống của trangASP.NET 2.1.2 Hoạt động Nhận request và xử lý request Chu kì sống của một ASP.NET request SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 12 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Hình 2 Chu kì sống của một ASP.NET request Trong hình minh họa trên, ta thấy ASP.NET bao gồm nhiều thành phần IIS dùng để quản lý các request. Trong đó có ISAPI DLL tên ASPNET_ISAPI.DLL và worker process tên ASPNET_WP.EXE. ASP.NET cài đặt các sơ đồ trong IIS, để các yêu cầu trang ASPX, ASCX, ASHX, H chuyển và ASMX ASPNET_ISAPI.DLL. T ừ đây, ASPNET_ISAPI.DLL chuyển request cho đến C ASPNET_WP.EXE, tại đây ASP.NET sẽ tải các lớp (class) cần thiết để đáp ứng request. H U TE Nguyên lý hoạt động của các trang ASP.NET Web Form Hình 3 Cấu trúc Web Forms Page và lớp cơ sở Page SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 13 of 80 Luận văn tốt nghiệp Th.S Lê Trung Hiếu – Hồ Nguyễn Lê Hoàng Duy Các file lớp code -behind của tất cả các trang Web Forms trong một đề án được phiên dịch vào trong đề án bằng file thự viện liên kết động .dll (dynamic -link C H library). Trang .aspx cũng được biên dịch, nhưng có một số điểm khác. Hình 4 Hai tập tin của Web Form Page U TE Lần đầu tiên một người dùng duyệt đến trang .aspx, ASP.NET tự động sinh ra một file lớp .NET yêu cầu trang, và biên dịch nó đến một file .dll thứ hai. Lớp được sinh ra cho trang .aspx thừa kế từ lớp code -behind mà đã được biên dịch vào trong file .dll của đề án. Khi một người dùng yêu c ầu trang Web theo giao thức URL, H những file .dll chạy trên server và xử lý động xuất ra trang HTML. 2.2.3 Các chuẩn trong ASP.NET Bất kì ngôn ngữ nào cũng đều phải đưa ra một chuẩn chung cho phần code của mình, và ASP.NET cũng không ngoạ i lệ, cần phải có một chuẩn riêng nhằm thuận tiện trong việc thông nhất code, đưa code trong ASP.NET trở nên trong sáng, dễ hiểu hơn, thuận tiện trong việc sửa chửa, bảo trì sau này. Đồng thời đưa người lập trình Web lên bật chuyên nghiệp hơn, vì vậy một chuẩn ASP.NET là cần thiết đưa ra. Chẳng hạn về chuẩn đặt tên, cách tổ chức nộ i dung file, cách ghi chú thích trang như thế nào, cách đặt danh h iệu cho các hằng, các biến, các đối tượng ra sao….Các chuẩn này sẽ được trình bày chi tiết trong phần tài liệu đính kèm. SV Khóa 2001 – Khoa Công Nghệ Phần Mềm Page 14 of 80
- Xem thêm -

Tài liệu liên quan