Bên cạnh đó em xin gửi lời cảm ơn đến nhà trường và phòng đào tạo đã tạo điều kiện cho chúng em được học môn học Lập Trình web một cách chị tiết, day đủ những kiến thức để chúng em được
CHUONG 1: ASP.NET MVCGiới thiệu về ASP.NET MVC ASP.NET MVC là gì ?~ $% MVC Framework ASP.NET MVC Java: Struts, JSF, Spring
PHP: Laravel, Zend ASP.NET MVC phat trién qua cac giai doan (release chính thức):
MVC 4.0 VS 2010 SP1,VS 2012] NET 4.0/4.5 2012Luồng xử li trong MVCĐầu tiên, client sẽ gửi một request tới server thông qua Controller
Controller tiếp nhận request, và xử lý luỗng đi tiếp theo của yêu cầu Trong trường hợp chỉ chuyên từ trang này sang trang khác mà không yêu cầu gửi và nhận dữ liệu thì lúc này Controller sẽ redirect(chuyên hướng) lại cho browser và kết thúc luồng Lúc này luồng xử lý sẽ đi theo thứ tự l-> 6 ->7 -> 8
Nếu request của người dùng yêu cầu phải xử lý đữ liệu thì Controller gọi xuống Model dé lay dữ liệu Lúc này Model sẽ tương tác với database dé lay dữ liệu, dữ liệu được Model gửi về Controller, Controller gọi đến View phủ hợp với quest kèm theo dữ liệu cho View, View sẽ lắp đữ liệu tương ứng vào HTML và gửi lại một HTML cho Controller sau khi thực hiện xong nhiệm vụ của mình Cuối cùng Controller sẽ trả kết quả về Browser Lúc này luồng xử lý sẽ đi từ l -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8,
Nếu request của người dùng chỉ yêu cầu đữ liệu nhưng không chuyên trang thì thay vì Controller sé tra đữ liệu về cho View thì Controller sẽ respone lại cho trình duyệt thông qua API, dữ liệu trả về thường sẽ là dạng JSON Luôồng xử lý lúc này sẽ là | ->
Ưu điểm & Nhược điểm cia MVC Ưu điểmThê hiện tính chuyên nghiệp trong lập trình, PTTK Được chia thành các hành phần độc lập nên giúp phát triển ứng dụng nhanh, dễ nâng cấp, bảo trì Ứng dụng tạo ra chạy én định trên Windows Đáp ứng nhiều loại thiết bị truy cập 12
An toan, Dé tich hop Nhược điểm: Đối với dự án nhỏ việc áp dụng mô hình MVC gây công kènh, tốn thời gian trong quá trình phát triển
Tốn thời gian trung chuyền đữ liệu của các thành phân
1.5 Sự khác biệt với WebForm
Kiến trúc h Kiên trúc mô hình Webform | Kiên trúc sử dụng việc phân chia chương Q rv chương ; ; ình > Business } Database trinh thanh Models, View va Controllers tri
Cu phap Su dung cu phap cua Các sự kiện được điều khiển bởi chương Webform, tat cả các sự kiện Controllers, cac controls khéng do server trinh va controls do server quanly | quan ly
Sử đụng hầu hết các công ` ,
Truy cap dit ; Phan lon dung LINQ dé tao mô hình truy nghệ truy cập dù liệu trong nh liệu cập đôi tượng ứng dụng
Deb thực hiện tất cả bao gồm các Debug có thé str dung cac unit test kiém tra ebug cà lớp truy cập dữ liệu, sự hiên các phương thức trong controller thị, điều khiển các controls
Tốc độ Tốc độ phân tải chậm khi Phân tải nhanh hơn do không phải quản lý phân tải trong trang có quá nhiều các ViewState dé quan ly cac Control trong controls vi ViewState quá lớn | trang
Tương tác | Tuong tac voi Javascript kha ; oo "
Tương tác voi Javascript dé dang vi các đôi vol khó khan vi cac controls
` „ tượng không do Server quản lý
Javascript được điều khiên bởi Server
Câu trúc địa chỉ URL có , ;
URL Câu trúc dia chi ranh mach theo dạng dạng .aspx ?
1.6 Lợi ích web dựa trên mô hình MVC
Dễ dàng quản lý sự phức tạp của ứng dụng bằng cách chia ứng dụng thành Model, View, Controller
Không sử dụng view state hoặc server-based form Điều này tốt cho những lập trình viên muốn quản lý hết các khía cạnh của một ứng dụng
Sử dụng mẫu Front Controller, mẫu này giúp quản lý các requests (yêu cầu) chỉ thông qua một Controller Hỗ trợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử
Hỗ trợ tốt cho các ứng dụng được xây đựng bởi những đội có nhiều lập trình viên và thiết kế mà vẫn quản lý được tính năng của ứng dụng
2 Xây dựng ứng dụng Web MVC Từ Visual Studio 2022, chọn File ® New >® ProJect
3) Start Page - Microsoft Visual Studio File | Edit View Project Debug Team Tools Test Analyze Window’ Help
New ` L3 Project | % WebSite Shift+Alt+N © Start Page Dd File Ctrl+N
Close Project From Existing Code
1 2 : Hinh minh hoa xay dung MVC
Hoặc nhan tô hợp phim Ctrl+Shift +N 14
Tim toi muc Web réi chon ASP.NET Web Application:
New Project 2 Xx © Recent NET Framework 4.5.2 + Sorby: Default Te Cml+| Pe
4 Templates ED) as0.ner 2 Core Wed Appiation (NET Core) Viusl CF ) Project plications and ng ASP.NET SP.NET Web Ạ in ASP.NET
& ASP.NET Core Web Application (.NET Frame Visual C#
Othe ges © Other Project Types
E Online Name HelloWorld Location: G:\BaiTapWebMVO\ = Browse
V Create directory for solution ẹ Addto Source Control
1.2: ASP.NET Web Application Céu tric cia 1 du an MVC:
@H-|o-SOagp s Search Solution Explorer (Ctrl~;) 2I-
> af Properties b ® References 6 App _Date
Dl App Start b ow Content 4 & Controllers b sC* HomeController.cs
> Ml Shared a(@] _ViewStart.cshtml 242) Web.corfig b aq) Applicationinsights.config a) favicon.ico b ad} Globel.asax aq packages.config b aq Web.config
1 2 : Cấu trúc của mô hình MVC
Confrollers: Thư mục này chứa tất cả controller trong ứng dụng Các Controller đáp ứng yêu cầu đến từ trình duyệt, quyết định phải làm gì và phản hồi kết quả
Models: Các lớp mô hình dữ liệu được tổ chức để nắm giữ và thao tác dữ liệu Views: View chứa các mẫu giao diện người dùng của ứng dụng
Cấu trúc của l đự án MVC:
App_Data: hứa cỏc ủle dữ cơ sở liệu (nếu cú) 15
App_Start: Chứa lớp được chạy một lần khi ứng dụng bắt đầu
Content: Chứa tài nguyên tinh nhu hinh anh, CSS
Scripts: Chứa JavaScript cần thiết của ứng dụng
Global.asax: Tập tin sự kiện chứa các điều khiến sự kiện nhằm kiểm soát vòng đời của Request, Session, Application
Web.config: tập tin xml chứa thông tin cầu hình của ứng dụng web
Giới thiệu về ControllerĐể tạo mới Controller ta bdm chuot phai vao Controllers =®3 chọn Add ®3 Chon Controller : b ©) Content
View in Browser (Google Chrome) Browse With
Add ằ Äq1 Newltem Ctri+Shift+A s
40 Bssting kem New Scaffolded Item Shift+Alt+A, SG HN New Solution Explorer ew Solution Explorer View Vi ta NewFolder © View History
Add ASP.NET Folder ằ Exclude From Project
Za Docker Support % Cut Ctrl X
REST API Client Úl Copy Ctrl+C
New Azure WebJob Project Delet Del :
Existing Project as Azure Weblob my) OS
1 Rename Web API Controller Class (v2.1)
1 2 : Tao Controllers Chon MVC 5 Controller empty Inhan Add
> Common Controller MWVC 5 Cantroller - F: MVC 5 Controller by Microsoft - Empty v5.0.0.0
4g MVC 5 Controller with read/write actions An empty MYC controler a MVC5 Controller with views, using Entity Framework Ic: MvcControlierEmptyScattolder
Fy Web API2 Controller - Empty
*c Web API 2 Controller with actions, using Entity Framework
*y Web AP! 2 Controller with read/write actions
4 Web API 2 OData v3 Controller with actions using Entity Framework
4g Web API 2 OData v3 Controller with read/write actions
Click here to go online and find more scaffolding extensions
Ta giữ mặc định Controller đằng sau, đẳng trước thêm tên bất kỳ
Khi truy suất ta trỏ tới tên bất kỳ là MVC tự hiểu
Mặc định Action có tên Index() sẽ được xuất hiện, Lớp này kế thừa từ Controller
Seerch lool Ij @JHelloworia sing +] FHelloworic.Lontrotiers.He +f Index) ơ + v ( -| bx5S đ6 #óó|eâ
There are 3 ising em Ling p i popes no 4 ising Neb; btu References usable oe _ © App_Data controls 5 using System.Web.Mvc; Dl App Start in this 6 b i Content
Dsoan 7 =namespace Hellolorld.Controllers 4 = Controller: item 8 b ¢@ HelloController.cs onto this text to 10 9 CF public class HelloController : Controller { Db @ fonts p ủCđ HomeControier.cs add it to the 11 /] GET: Hello "` > snot Models toolbox 12 public ActionResult Index() 4 al Views
1.2 : Hinh minh họa của Controller khi được tạo
Giới thiệu về ViewQuay trở lai Action Index(), vi chuwa co View nên khi chạy ta thấy báo lỗi Ta tiến hành tạo view cho Index() như sau: Bấm chuột phải vào Action Index()3chọn Add View : public class HelloController : Controller {
// GET: Hello public ActionResult Tndex
{ ọ m return Content("Tui ] + a Go To View Add View
Remove and Sort Usings Peek Definition Go To Definition Go To Implementation mm traunme
1 2 : Hinh minh hoa tao View Trong man hinh Add View:
View name: Dat tén View
F2 Ctrl+R, Ctrl+G Alt+F12 F12 Ctrl+F12 moran
Template: Trong ví dụ này ta chon Empty(without model), cac loại khác sẽ được trình bày chỉ tiết ở những phần sau)
[_] Create as a partial view Reference script libraries Use a layout page:
(Leave empty if it is set in a Razor _viewstart file)
1.2 : Hinh minh họa hướng dẫn tạo View
Ta thấy Index.cshtml tự phát sinh, file này còn gọi là Code Razar cho View
3 ViewBag.Title = “Index"; iG App Data =
@_ TuilaMVC0: ActionResult D & C* HomeController.cs b # fonts
&(@) About.cshtml 131% ~ 4 cS a0® Contect.cshtml
@02) Index.cshtml sưng y Wes bi Shared x
1.2 : Hinh của View khi được tạo
Giới thiệu về ModelsMột model trong ứng dụng ASP.NET MVC chứa tất cả các nghiệp vụ logic mà không có trong controllers va views
Models chứa tất cả các tầng truy xuất đữ liệu logic và tầng nghiệp vụ logic
Vi du, néu str dung LINQ to SQL để truy nhập đữ liệu thi phai tao LINQ to SQL class (file dinh dang dbml) trong folder Models (chi tiết sẽ trình bày ở những phần sau).
Giới thiệu về Định tuyến 1 : Định tuyến là gì?ASP.NET Routing cho phép ban str dung cac URL khéng dẫn đến một file cu thé in Website Boi vi URL không dẫn đến một file cụ thể trong ứng đụng web, bạn có thê làm cho URL trở nên thân thiện hơn với người dùng Ở application không sử dụng routing (webform - đã bị khai tử), một request từ một URL thường được dẫn đến một tập tin xử lý request đó Chắng hạn: http://server/application/Products.aspx?id=4 sẽ dẫn đến file có tên Product.asp có chứa code xử lý và render đề trả lời trình duyệt
Web page này sử dụng query string ¡d = 4 để xác định nội dung được hiền thị (Quen thuộc quá phải không các bạn, ngày xưa bạn nào làm webform chắc không lạ gì.) Voi MVC, ở ví du sau:
URL sẽ khụng truy vấn tới ủle Products/show/beverages mà sẽ được định nghĩa bởi routing, chang han néu Routing dinh nghĩa URL là server/ application/ {area}/
{action}/ {category} thi 6 request URL trén, are = Product, action = show va category
Browser (trinh duyét) yéu cầu một địa chỉ ti Controller Acction trong MVC Framework được gọi là định tuyến URL (URL routing) URL routing sẽ chỉ định yêu cầu (request) tới Controller Action URL routing sử dụng một bảng định tuyến đề điều khiển các yêu cầu (request) Bảng định tuyến được tạo khi ứng dụng được chạy lần đầu tiên Bảng định tuyến được thiết lap trong file Global.asax
Một URL pattern có thế chứa các parameters các parameters ngăn cách nhau bởi dấu / (slash character)
Khi một request URL được yêu cầu, URL được phân tách thành cách đoạn như trong Routing đã định nghĩa, các giá trị được truyền vào từ URL sẽ được xử lý dưới dạng key-value
Trong URL pattern ta xác định chúng bằng cách đề vào dâu ƒ}, và định nghĩa dấu phân cách cho chúng, VD /, - Ví dụ {language} - {country} / {action} la m6t URL pattern đúng con {language} {country} / {action} la mét URL pattem sai vi khéng có dấu phan cach
6.4 Thém Routing vao MVC application
Thông thường, nếu bạn không cần các URL tương đối đặc biệt, bạn có thé str dung Routing được dinh nghia san khi tao project MVC, nếu bạn muốn chỉnh sửa routes trong ứng dụng MVC, bạn có thê sử dụng MapRoute Ví dụ đưới đây là đoạn code định nghia routes trong tng dung MVC
20 public class MvcApplication : System.Web.HttpApplication
{ public static void RegisterRoutes(RouteCollection routes) routes IgnoreRoute( a "); routes MapRoute(
"{controller}/{action}/{id}", \ th paramet ntroller “Home”, action “Index”, id f L
1.2 : Thém Routing vao MVC application
6.5 Làm thé nao URL khớp với Rotues
Khi Routing xử lý các URL request, nó sẽ có găng xử lý URL đề phù hợp với một route nào đó, với các điều kiện sau đây: © Cac routes patterns ban dinh nghia hoac cac default route patterns, nếu có trong project e Thi ty ban thém chung vao Routes collection e Bất ky default value nao bạn định nghĩa cho m6t route e Bất ky han ché(validate) nao ban dinh nghia cho một route ®© - Bạn xác định mét route dé request toi mot file vat ly Đề tránh việc sai sót trong xử lý các request, bạn phải xem xét tất cả các điều kiện trên khi bạn định nghĩa routes Bạn cũng nên tránh việc trùng lặp routes không cần thiết như vi dụ sau: Ví dụ: bạn có các rotues như sau:
Route | duoc dinh nghia la: {controller}/{action}/{id}
Route 2 được định nghia la: products / show / {id} Route sé không bao giờ phải xử lý bắt kỳ một request nào từ URL vì routes l được định nghĩa trước, và các request phù hợp với route 2 sẽ luôn phù hợp voi route 1, như: request http://server/application/products/show/bikes phù hợp với route 2 nhưng nó sẽ được xử lý bới route | với các g1á tri: ¡d là bikes Default values sẽ được sử dụng nếu request không chứa parameter được định nghĩa Bạn có thê xem xét ví dụ sau:
Route |: {report}/{year}/{month}, voi default values la year va month
Route 2: {report} / {year}, voi default value fla year Route 2 sé khéng bao g16 được xu ly request, boi vi voi default la year, month thi request phù hợp với Route 2 sẽ luôn phủ hợp voi Rotue 1 Diéu nay có thể trái với mong muốn của bạn vì Route L là report theo tháng còn route 2 là report theo năm Bạn có thê tránh được điều này bằng cách thêm vào một constaint, như là: annual / {report} / {year} và monthly / {report} /
{year} / {month} af Solution 'HelloWorld' (1 project) 4 1 HelloWorld đ>› Connected Services b af Properties b = References © App_Data 4< App Start b ac* BundleConfig.cs b ac* FilterConfig.cs 24 b ac* RouteConfig.cs 26 }
1.2: App Start / RouteConfig.cs 7, Xay dung wng dung web MVC voi CSDL
Bước L: Tạo CSDL tên ShopDemo như hình dưới dây:
Buc 2: Tao mot Project Website ShopDemo:
> Recent NET Framework4.52 Sort by: Default + HE) molt g P
1 2 : Hinh minh hoa Project Website ShopDemo Cau tric Project WebsiteQuanLySanPham
1.2 : Hinh minh hoa Project WebsiteQuanLySanPham Bước 3: Tạo LINQ để truy suất CSDL QuanLySanPham để tạo các Model Bắm chuột phải vào Models/ chọn New ® Chon LINQ to SQL Classes Nếu không thấy vào new Item ® Chọn LINQ to SQL Classes
1 Newltem Ctrl+ Shift+A H1 Baisting Item Shift+Alt+A -\ oS 698 v - a =] yx m a
New Scaffolded Item = Can #'a.# os
‘a New Folder k on Explores (Cert 2 bị
Add ASP.NET Folder ằ fion ‘WebsiteQuanLySanPham' (1 project)
VebsiteQuanlySanPham fa Docker Support B Connected Services
New Azure Weblob Project f References Ÿ App_Data Existing Project as Azure WebJob | App_Start
LINQ to SQL Classes } Content
JSON File TypeScript JSON Configuration File 1 View in Browser (Google Chrome)
3 Class Shift+ Alt+C Add al Scope to This b oe ~f New Solution Explorer View
1 2 : Hinh minh hoa Tao LINQ
Bước 4: Tạo các Controller, thường mỗi 1 Model sé di voi 1 Controller Trong vi du nay ta co 2 model la Catalog va Product nén sé c6 2 Controller la: CatalogController va ProductController
- Khi tao Controller, mặc định sẽ có tên Controller nối đăng sau Model - Khi truy suất thì bỏ chữ Controller đẳng sau đi, chỉ lấy tên Model
CHUONG 2: ENTITY FRAMEWORKNéu không chuyên về lĩnh vực website, bạn sẽ khó có thể nắm được khái niệm Entity Framework là gì? Được biết, Entity Framework ra đời nhằm hỗ trợ sự tương tác giữa các ứng dụng trên nên tảng Net với các cơ sở đữ liệu liên quan Hay nói một cách khác, đây chính là công cụ giúp ánh xạ giữa các đối tượng trong ứng dụng, phần mềm của một cơ sở dữ liệu
Các nhà phát triển Web sẽ nhờ đến Entity Framework để tương tác với đữ liệu theo phương pháp hướng đối tượng ít mã hơn với những ứng dụng truyền thống Lợi ích lớn nhất mà Entity Framework mang lại đó chính là giúp lập trình viên giảm thiểu việc lập trình mã nguồn, từ đó thực hiện truy cập, tương tác với cơ sở dữ liệu
2 Vì sao nên sử dụng Entiy Frame Work
Nếu bạn đang thắc mắc vì sao nên sử dụng Entity Framework thì hãy xem qua những lợi ích tuyệt vời mà nó mang lại dưới đây: ¢ Bạn sẽ không phải viết code sql nhờ việc sử đụng Linq to Entities thao tác với objects được sinh ra từ Entity Framework khi thực hiện truy vấn dữ liệu ® Update các classes,commands để dang hon khi mỗi khi cơ sở đữ liệu thay đổi và bạn còn tiết kiệm được kha khá thời gian ® Tự động tạo ra các classes,commands tương ứng cho việc select, 1msert, update,delete từ dữ liệu cơ sở
Tạo ra các classes để đáp ứng cho việc truy xuất cơ sở đữ liệu Nhờ đó, lập trình viên sẽ giảm thời gian viết code thao tác với đatabase
3 Cau tric cia Entity Frame Work EDM (Entity Data Model): ® Conceptual Model ¢ Mapping © Storage Model LINQ to Entities: 14 ng6n ngit truy vẫn sử dụng đề viết các truy vấn object model
Entity SQL: Đây là ngôn ngữ truy vấn khác, giỗng LINQ to Entities
Object Service: Object Service có trách nhiệm trong việc cu thê hóa quá trình chuyền đổi đữ liệu trả vé tir entity client data provider téi mét entity object structure
Entity Client Data Provider: Nhiém vu chính do la chuyén đổi L2E hoặc những truy vấn Entity SQL vào một truy vấn SQL Được hiểu bởi CSDL cơ bản
ADO.Net Data Provider: Thực hiện giao tiếp với CSDL băng sử dụng chuẩn ADO.Net
Mapping Layer ị Storage Layer Metadata Service
Data Providers SQL Client Other Providers
1 2 : Hình minh họa cho mô hình ADO.Net 4 Tính năng chính của Entiy Frame Work Đề mang lại nhiều lợi ích tuyệt vời, hỗ trợ hiệu quả cho các nhà phát triển website đó chính là Entity ấamework sở hữu nhiều tính năng đáng chú ý như:
26 ¢ H6 tro stored procedure ® Làm việc với bất kỳ cơ sở dữ liệu nào cé Entity Framework hop 1é ¢ Tao truy van SQL tir LINQ to Entities ® - Được phát triển như một sản phâm mã nguồn mở ® Là một sản phẩm của Microsoft s® - Cho phép tạo các câu lệnh, thêm, xóa, cập nhật © Theo dõi thay đổi của các đối tượng trong bộ nhớ
5 Cac tinh hudng ding Entiy Frame Work Entity framework được dùng nhiều nhất cho 3 tình huỗng dưới đây:
Database First: Nếu bạn đã có một CSDL hoặc muốn thiết kế CSDL trước khi làm các phần khác của ứng dụng
Code First: Khi bạn muốn tập trung vào các domain class rồi mới tạo CSDL từ các domain class đó
Model First: Khi bạn muốn thiết kế schema của CSDL trên visual designer roi mdi tao CSDL va cac class
Entity framework 1a khai niém quan trọng, nhiều thuật ngữ phức tạp Chính vì thế, để hiệu hơn về nó bạn cân dành nhiêu thời gian đê tìm hiệu
6 Hướng dan tao project va tao Entiy Frame Work trong C#
Dé tao project va cai dat Entity Framework, ban cd thê tham khảo hướng dẫn cụ thể dưới đây:
27 Mở Mở Visual Studio -> tạo một proJect Cài đặt: Irong mục Solution Explorer, chuột phải lên project -> chon Manage NuGet Packages
Click Entity Framework -> chon Install
Sau đó bạn 4n Chon | Accept
Khi cài đặt thành công, sẽ hiển thi thong bao nay 6 visual Chuẩn bị cơ sở đữ liệu, mở SQL Server Management Studio -> kết nối đến server
Tạo một cơ sở dữ liệu tên Entity DB Trong CSDL tao mét table tén Student gdm co 4 column 1a StudentID, StudentName, Student Gender va Address
CHUONG III: LINQThành phần cấu thành LINQTao dữ liệu truy van Thực thi truy vấn lây kết quả
[ Net Language Integrated Query(LINQ) ]
= L990,
Với cách viết như này, chúng ta sẽ rất dễ tiếp cận vì nó gần giống với truy vẫn cơ sở dữ liệu nhưng chúng ta sẽ không hiệu được bản chất của LINQ là gì nên tôi sẽ không đi quá chỉ tiết Vì khi biên dịch, cú pháp truy vấn cũng đưa về cú pháp phương thức
4 Thực thỉ truy vấn để lấy kết quảư
Có 2 kịch bản đề thực thi truy vấn:
Trì hoãn thực thỉ : (Deferred Execution): việc thực thi truy vấn chỉ khi thực hiện foreach nhu hinh dưới đây:
1 2 : Hinh minh hoa foreach Sử dụng cách thực thi này sẽ g1úp: © _ Cải thiện hiệu năng vì chỉ thực thi một lần © - Dữ liệu trả về là mới nhất
Thực thi ngay lập tức : (Immediate Execution): thực thị ngay lập tức câu lệnh vả trả về kết quả Đề thực thi ngay lập tức, chúng ta có thê dùng những toán tử chuyên đổi như ToList, ToArray, ToDictionary hoặc những toán tử thành phần như First, EirstOrDefault, Last, LastOrDefault Với ví dụ trên, chúng ta sửa code lại như sau đề thực thi câu lệnh ngay lập tức:
1.2 : Hinh minh họa thực thi ngay lập tức 5 Lưu ý
Sau khi tìm hiểu đến đây, mình đoán có nhiều bạn sẽ hỏi: Tại sao không sử dụng for hoặc foreach kết hợp if để truy vẫn? Hay LINQ hiệu năng như thế nào? Theo quan điểm cá nhân của mình thì việc sử dụng hay không sử dụng LINQ còn tủy thuộc vào quan điểm của mỗi người Mình thích dùng vi thấy dễ viết, ngắn gọn và đễ đebug Về hiệu năng thì mặc dù LINQ có chậm hơn so với việc sử dụng for hoặc foreach nhưng với việc cấu hình máy tính, máy chủ khủng như hiện nay thì khoảng chậm đó cũng không ảnh hưởng lắm đến hiệu năng
CHUONG IV : DOI TUONG VA TRUY VET1 Tại sao lại cần implicit Object
Trong quá trình hoạt động của l ứng dụng web được xây dựng bởi ASP.NET, các thông tin có liên quan đến quá trình hoạt động của ứng dụng như:
Thông tin yêu cầu từ phía người dùng (Client machine) Các đối tương lưu trữ thông tin về quá trình làm việc trong hệ thống (Session) Các biến toàn cục lưu trữ trạng thái của ung dung, (application object)
Tất cả đều được lưu trữ trong những đối tượng quy ước và xây dựng sẵn trên nền tảng của NET Framework, người lập trình hoàn toàn có thể khai thác dựa trên các thuộc tính, phương thức của những đối tượng này, chúng bao gồm:
Request ObJect Response Object Server Object 2 Request object — HttpRequestBase class
1 2 : Hinh minh hoa Request object 33 Đề quản lý các tương tác từ phía Client, NET Framework cung cấp các đối tượng Request thuộc lớp HttpRequestBase nhằm giúp chương trình web có thể khai thác các thông tin cần thiết từ phía may truy cap: URL, Browser, IP address,Parameter,
3 Thuộc tính : HttpRequestBase Class ApplicatdonPath: trả về “đường dân ảo” (Virtual path) của ứng dụng web x À
Browser: Được dùng để truy xuất thông tin về trình duyệt mà người dùng đang sử dụng đề truy cập ứng dụng VD: Tên trình duyệt, phiên bản, nền tảng của trình duyệt (Webkit, Mozilla, ) Tra về giá trị số mô tả cho kích thước của đữ liệu được gửi về từ
FilePath: Tương tự như ApplicationPath, tuy nhiên bao gồm cả tên trang aspx cần truy cập
QueryString: Thuộc tính này trả về giá trị tượng trưng cho tham số của Request (Request parameter) với các cặp giá trị theo kêu “name=value”,trone đó ngăn cách giữa các cặp tham số là đầu “&”
RequestType: Đây là thuộc tính mô tả cho phương thức truyền dit liệu của form dựa trên HT TP: “get” hoac “post”
Sự kiện mỉnh hoa khai thác thêng tỉn nấy truy cập dựa trên Request Ooject param name="e">