HTTP Request
Hình 3.6: Công nghệ HTTP Request
Một HTTP client (máy khách) gửi một HTTP request (yêu cầu) lên server (máy chủ) nhờ một thông điệp có định dạng như sau:
29
- Không có hoặc có thêm các header (General|Request|Entity) theo sau bởi một ký hiệu CRLF (carriage return line feed – báo hiệu trở về đầu dòng tiếp theo)
- Một dòng trống (VD một dòng mà không có gì ở trước CRLF) báo hiệu kết thúc phần header
- Có hoặc không có phần nội dung thông điệp. Request-Line
- Request-line được bắt đầu bằng một token (dấu hiệu, báo hiệu), theo sau là một Request-URI cùng với phiên bản của giao thức và kết thúc với CRLF. Các thành phần được chia tách bằng khoảng trống.
Request-Line = Method SP Request:-URI SP HTTP-Version CRLF - VD: GET http://codegym.vn/career/ HTTP/1.1
Request Method
- Phương thức request xác định phương thức (HTTP Method)) sẽ được thực hiện đối với tài nguyên được chỉ định bởi Request-URI. Tên phương thức phân biệt hoa thường và luôn được lưu ý là sử dụng các chữ cái viết hoa. Bảng sau liệt kê tất cả các phương thức được hỗ trợ trong HTTP/1.1[6].
30
Request-URI
- Request-URI là một bộ Nhận dạng (định danh) Tài nguyên Thống nhất (Uniform Resource Identifier) và xác định tài nguyên để thực hiện request. Dưới đây là một định dạng phổ biến nhất được sử dụng để mô tả một URI:
Request-URI = “*” | absoluteURI | abs_path | authority
Các thành phần của Request Header
- Chúng ta sẽ nghiên cứu về General-header và Entity-header trong một chương riêng khi học về các trường của HTTP header. Bây giờ chúng ra sẽ tìm hiểu xem các thành phần của HTTP header là gì.
- Các thành phần của request-header cho phép client truyền các thông tin bổ sung cho request, và thông tin của chính client tới server. Những thành phần này hoạt động như những request modifier (phần sửa đổi của request). Dưới đây là một danh sách các thành phần quan trọng của Request-header:
Accept-Charset Accept-Encoding Accept-Language Authorization Expect From Host
31 If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Max-Forwards Proxy-Authorization Range Referer TE User-Agent AJAX
a. Khái niệm về AJAX
- AJAX, là viết tắt của Asynchronous JavaScript and XML, (tạm dịch là JavaScript và XML không đồng bộ), là một kỹ thuật mới để tạo các ứng dụng web giàu tính tương tác, nhanh hơn và mượt mà hơn với sự giúp đỡ của XML, HTML, CSS và JavaScript.
- AJAX không phải là ngôn ngữ lập trình mới. Tên AJAX ở đây không có nghĩa là bạn phải học XML trước khi cần học AJAX. Điều này là không cần thiết. - AJAX cho phép các trang web được cập nhật một cách không đồng bộ bằng
cách trao đổi các lượng dữ liệu nhỏ với Server. Tức là AJAX giúp cập nhật các phần nhỏ trong trang mà không cần tải lại toàn bộ trang. Nếu đến đây bạn chưa hiểu thì các dòng tiếp theo đây sẽ giúp bạn hiểu cách AJAX làm việc hơn.
- Như các bạn đã biết, các ứng dụng web truyền thống (trước khi có AJAX) truyền tải thông tin tới và từ Server một cách không đồng bộ. Tức là, khi bạn điền thông tin vào một Form, nhấn nút Submit và sau đó bạn sẽ được hướng tới một trang khác với thông tin mới từ Server trả về.
- Với AJAX, khi bạn nhấn nút Submit, JavaScript sẽ tạo một Request tới Server, thông dịch các kết quả, và cập nhật màn hình hiện tại (chứ không tải lại toàn bộ trang hoặc hướng bạn tới một trang khác như trên). Tất nhiên là người sử dụng sẽ không bao giờ biết được những gì đã được truyền tải tới Server.
- AJAX là một kỹ thuật phát triển Web độc lập với các phần mềm Web Server. - Với AJAX, người dùng có thể tiếp tục sử dụng ứng dụng trong khi các chương
trình trên Client tạo Request để lấy thông tin từ Server.
b. AJAX là ứng dụng giàu tính Internet
- Từ AJAX được ông Jesse James Garrett đưa ra và dùng lần đầu tiên vào 2/2005 để chỉ kỹ thuật này. AJAX là một ứng dụng giàu tính Internet và bên cạnh đó AJAX cũng không thể làm việc một cách độc lập, kỹ thuật mới này sử dụng kết hợp:
32
- Sử dụng đối tượng XMLHttpRequest để nhận dữ liệu từ một Web Server một cách không đồng bộ.
- Sử dụng mô hình DOM với sự trợ giúp của JavaScript để hiển thị/sử dụng dữ liệu.
- JavaScript to make everything happen. Bootstrap
a.Khái niệm về Bootstrap
- Bootstrap là một framework cho phép thiết kế website reponsive nhanh hơn và dễ dàng hơn
- Bootstrap là bao gồm các HTML templates, CSS templates và Javascript tao ra những cái cơ bản có sẵn như: typography, forms, buttons, tables, navigation, modals, image carousels và nhiều thứ khác. Trong bootstrap có thêm các plugin Javascript trong nó. Giúp cho việc thiết kế reponsive của bạn dễ dàng hơn và nhanh chóng hơn.
b.Lý do sử dụng Bootstrap
- Rất dễ để sử dụng: Nó đơn giản vì nó được base trên HTML, CSS và Javascript chỉ cẩn có kiến thức cơ bản về 3 cái đó là có thể sử dụng bootstrap tốt. - Tính năng Responsive: Bootstrap’s xây dựng sẵn reponsive css trên các thiết
bị phones, tablets, và desktops
- Mobile: Trong Bootstrap 3 mobile-first styles là một phần của core framework - Tương thích với trình duyệt: Nó tương thích với tất cả các trình duyệt
(Chrome, Firefox, Internet Explorer, Safari, and Opera) nhưng lưu ý vì em IE vẫn rất hãm với IE phiên bản cũ vì thế việc IE9 hay IE8 đổ xuống không support là chuyện bình thường. Các bạn có dùng nên luy ý điểm này theo như mình dùng làm dự án thì nó support tuyệt vời trên IE10 đổ lên nhé, thấp nhất có lẽ là IE9 thôi còn IE8 thì không nên xài nhé.
SQL sever 2008
a.Nền tảng dữ liệu của Microsoft
Cuộc cách mạng trong việc phát triển các ứng dụng cơ sở dữ liệu Microsoft® SQL Server™ 2008 là trái tim của một nền tảng dữ liệu toàn diện, cho phép bạn có thể truy cập và gia công dữ liệu cho doanh nghiệp từ các thiết bị khác nhau, các nền tảng và dịch vụ dữ liệu trong doanh nghiệp.
b.Các tính năng mới điển hình
- Ánh xạ các cấu trúc dữ liệu cho các thực thể của doanh nghiệp bằng ADO.NET Entity Framework mới
- Sử dụng cú pháp thích hợp để truy vấn dữ liệu gồm nhiều loại khác nhau thông qua những phần mở rộng của ngôn ngữ truy vấn tích hợp .NET (LINQ) cho Microsoft Visual C#® và Microsoft Visual Basic® .NET
- Tạo các giải pháp kết nối bằng SQL Server 2008 Compact Edition và Microsoft Synchronization Services
33
- Lưu trữ dữ liệu hợp nhất thông qua SQL Server 2008 hỗ trợ cho dữ liệu quan hệ, XML, Filestream và dựa trên vị trí địa lý.
c.Tính năng suất
Tính năng suất được cải thiện, cho phép các chuyên gia phát triển phần mềm có được năng suất cao trong công việc bằng sự tích hợp xuyên suốt giữa các kiến trúc (framework), các công nghệ kết nối dữ liệu, các ngôn ngữ lập trình, dịch vụ Web, công cụ phát triển và dữ liệu.
- Xây dựng các ứng dụng trung tâm dữ liệu thế hệ kế tiếp với ADO.NET Entity Framework
- Định nghĩa một mô hình đối tượng trên khái niệm phong phú dựa vào Entity Data Model (EDM) và các bảng cơ sở dữ liệu logic và các cột trong thực thể mức cao hơn. Mô hình hóa các ứng dụng cơ sở dữ liệu nhanh bằng sử dụng ADO.NET Entity Framework để tạo các thực thể đáp ứng chặt chẽ với nhu cầu doanh nghiệp. Cho phép tập trung vào việc phát triển các giải pháp doanh nghiệp mà không phải quan tâm về cách dữ liệu được tổ chức ra sao trong một cơ sở dữ liệu. Hiểu và duy trì ở mọi kích cỡ của ứng dụng cơ sở dữ liệu bằng việc trừu tượng hóa mô hình dữ liệu khái niệm từ cách dữ liệu được lưu ra sao trong một cơ sở dữ liệu.
- Khai thác các công nghệ nền tảng dữ liệu với Visual Studio
- Mang tất cả các công nghệ nền tảng dữ liệu của Microsoft (Microsoft Data Platform) vào cùng một sản phẩm để có thể sử dụng dễ dàng và hiệu quả đó là Microsoft Visual Studio®. Viết mã cho nhiều ứng dụng Internet phong phú, các ứng dụng trình khách và trình chủ, sự cảm nhận môi trường phát triển mạnh mẽ xuyên suốt từ đầu đến cuối trong quá trình phát triển ứng dụng. Nâng cao năng suất thông qua Microsoft IntelliSense® và sự hỗ trợ kèm theo cho ADO.NET Entity Framework và LINQ. Sự cộng tác triệt để giữa các kiến trúc sư, các chuyên gia phát triển và kiểm tra viên bằng Visual Studio Team System Edition.
d.Xây dựng các ứng dụng có khả năng nâng cấp cao với SQL Server 2008
Phát triển các thủ tục cho hiệu suất cao có thể truy cập và quản lý dữ liệu trong một cơ sở dữ liệu thông qua sự tích hợp SQL Server Common Language Runtime (CLR) bằng cách sử dụng Microsoft .NET Framework và các ngôn ngữ lập trình đã có như C# và Visual Basic .NET. Tạo sự không đồng bộ, các giải pháp dựa trên message sử dụng cấu trúc hướng dịch vụ để điều chỉnh trong toàn bộ doanh nghiệp và phát triển xa hơn nữa với Service Broker. Xây dựng các giải pháp có khả năng nâng cấp cao giải pháp dữ liệu phân bố bằng sử dụng sự hỗ trợ cho các chuẩn như SOAP và HTTP. Microsoft Data Platform cung cấp một loạt công nghệ và sản phẩm cho phép các chuyên gia phát triển phần mềm có thể xây dựng được các ứng dụng cơ sở dữ liệu mạnh mẽ phù hợp với nhu cầu của bất kỳ doanh nghiệp nào.
Visual Studio 2012 và .NET Framework 4.5
- Visual Studio 2012 kết hợp với nền tảng của Microsoft, cung cấp môi trường phát triển phong phú nhất, giúp xây dựng các ứng dụng hấp dẫn hiện đại nhằm đáp
34
ứng nhu cầu đáp ứng nhu cầu luôn thay đổi, cần truy cập mọi nơi và cần dữ liệu đa dạng, phức hợp của khách hàng. Các ứng dụng hiện đại của ngày hôm nay là:
- Hướng người dùng: Giúp xây dựng ứng dụng đưa khách hàng trung tâm và có thể truy cập từ bất kỳ thiết bị nào
- Xã hội: Tích hợp với định danh người sử dụng, kết nối được tới đồng nghiệp và bạn bè
- Hướng dữ liệu: Tích hợp dữ liệu với công việc tức thì, cho phép đưa ra quyết định theo bối cảnh
a. Quản lý vòng đời hiện đại
- Visual Studio 2012 giúp việc áp dụng Quản lý vòng đời ứng dụng hiện đại (Modern Application Lifecycle Management) trở nên nhanh hơn, giảm thiểu rủi ro, và liên tục cung cấp các ứng dụng chất lượng cao cho doanh nghiệp và người tiêu dùng. Biện pháp quản lý vòng đời ứng dụng hiện đại của Visual Studio 2012 bao gồm:
- Công cụ quản lý và lập dự án linh hoạt: giúp giữ cho các nhóm luôn được thông suốt với thông tin thống nhất. Công cụ này bao gồm quản lý tồn đọng sản phẩm, lập kế hoạch phát hành/đóng số, quản lý và dự báo về năng lực của nhóm, truy xuất được thông tin nhờ tích hợp với các công cụ nhóm (các công cụ quản lý về yêu cầu, phát triển, thử nghiệm, và thông tin phản hồi), và khả năng hiển thị thời gian thực của tình trạng giao hàng và rủi ro.
- Công cụ và quy trình giúp tách nhóm hoặc phá đi rào cản về tích hợp chức năng. Tích hợp người dùng và các bên liên quan đưa ra được phản hồi sớm và thường xuyên về tính năng sản phẩm và định hướng, năng suất và sự hợp tác của người lập trình, tích hợp thử nghiệm để giảm đi thời gian phát hiện lỗi và vá lỗi. Đồng thời tích hợp với vận hành (DevOps) để gia tốc quá trình phát triển ứng dụng và giảm đi thời gian MTTR (thời gian trung bình để sửa chữa).
b. NET Framework 4.5.
NET Framework. 4,5 là phương thức phong phú và hiệu quả nhất cho các chuyên gia lập trình để tạo ra các ứng dụng trên máy trạm (Windows Forms, WPF, Windows 8 Apps Store), tại doanh nghiệp (Windows Server) và trên đám mây (Windows Azure).
ADO.NET
Trong thực tế, có rất nhiều ứng dụng cần tương tác với cơ sở dữ liệu. .NET Framework cung cấp một tập các đối tượng cho phép truy cập vào cơ sở dữ liệu, tập các đối tượng này được gọi chung là ADO.NET.
- ADO.NET tương tự với ADO, điểm khác biệt chính ở chỗ ADO.NET là một kiến trúc dữ liệu rời rạc, không kết nối (Disconnected Data Architecture). Với kiến trúc này, dữ liệu được nhận về từ cơ sở dữ liệu và được lưu trên vùng nhớ cache của máy người dùng. Người dùng có thể thao tác trên dữ liệu họ nhận về và chỉ kết nối đến cơ sở dữ liệu khi họ cần thay đổi các dòng dữ liệu hay yêu cầu dữ liệu mới.
35
- Việc kết nối không liên tục đến cơ sở dữ liệu đã đem lại nhiều thuận lợi, trong đó điểm lợi nhất là việc giảm đi một lưu lượng lớn truy cập vào cơ sở dữ liệu cùng một lúc, tiết kiệm đáng kể tài nguyên bộ nhớ. Giảm thiểu đáng kể vấn đề hàng trăm ngàn kết nối cùng truy cập vào cơ sở dữ liệu cùng một lúc.
- ADO.NET kết nối vào cơ sở dữ liệu để lấy dữ liệu và kết nối trở lại để cập nhật dữ liệu khi người dùng thay đổi chúng. Hầu hết mọi ứng dụng đều sử dụng nhiều thời gian cho việc đọc và hiển thị dữ liệu, vì thế ADO.NET đã cung cấp một tập hợp con các đối tượng dữ liệu không kết nối cho các ứng dụng để người dùng có thể đọc và hiển thị chúng mà không cần kết nối vào cơ sở dữ liệu.
- Các đối tượng ngắt kết nối này làm việc tương tự đối với các ứng dụng Web.
a. Cơ sở dữ liệu và ngôn ngữ truy vấn SQL
- Để có thể hiểu rõ được cách làm việc của ADO.NET, chúng ta cần phải nắm được một số khái niệm cơ bản về cơ sở dữ liệu quan hệ và ngôn ngữ truy vấn dữ liệu, như: khái niệm về dòng, cột, bảng, quan hệ giữa các bảng, khóa chính, khóa ngoại và cách truy vấn dữ liệu trên các bảng bằng ngôn ngữ truy vấn SQL : SELECT, UPDATE, DELETE … hay cách viết các thủ tục ( Store Procedure) …. Trong phạm vi của tài liệu này, chúng ta sẽ không đề cập đến các mục trên.
b. Một số loại kết nối hiện đang sử dụng
- Để truy cập được tất cả Datastore, dùng OLEDB provider thông qua ODBC. Là vỏ bọc của ODBC hoặc không. OLEDB dễ sử dụng hơn ODBC, nhưng chỉ có 1 số ít ngôn ngữ có thể hiểu được (C++), vì thế ra đời ADO. OLEDB là giao diện ở mức lập trình hệ thống để quản lý dữ liệu. OLEDB đơn giản chỉ là một tập các giao diện COM đóng gói thành các system service để quản trị các CSDL khác nhau. Gồm 4 đối tượng chính : Datasource, Session, Command, Rowset.
- ADO là một COM, do đó được dùng với bất kỳ ngôn ngữ nào tương thích với COM. ADO không độc lập OS, nhưng độc lập ngôn ngữ : C++,VB, JavaScript, VBScript …Là vỏ bọc của OLEDB và ADO gồm 3 đối tượng chính : Connection, Command, Recordset.
- Remote Data Services ( RDS ) của Microsoft cho phép dùng ADO thông qua các giao thức HTTP, HTTPS và DCOM để truy cập dữ liệu qua Web.
- Microsoft Data Access Components (MDAC) là tổ hợp của ODBC, OLEDB, ADO và cả RDS.
- Ta có thể kết nối dữ liệu bằng một trong các cách: dùng ODBC driver (DSN), dùng OLEDB thông qua ODBC hoặc OLEDB không thông qua ODBC.
c. Kiến trúc ADO.NET
36
Hình 3.7: Kiến trúc ADO.NET
DataSet là thành phần chính cho đặc trưng kết nối không liên tục của kiến trúc ADO.NET. DataSet được thiết kế để có thể thích ứng với bất kỳ nguồn dữ liệu nào. DataSet chứa một hay nhiều đối tượng DataTable mà nó được tạo từ tập các