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

1 chuong 01

16 51 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 422,16 KB

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

Nội dung

Với các Web Form,Microsoft cố gắng che đi HTTP cùng bản chất vô định của nó và HTML thứ tại thời điểm đó chưa quen thuộc với nhà phát triển bằng việc mô hình hoá giao diện người dùng UI

Trang 1

CHAPTER 1

Đặt ASP.NET MVC vào bối cảnh

ASP.NET MVC là một nền tảng phát triển Web của Microsoft kết hợp sự hiệu quả của mô hình cấu trúc model-view-controller (MVC),các ý tưởng mới nhất

và các kĩ thuật phát triển linh hoạt,và những gì tốt nhất của nền tảng ASP.NET hiện tại.Đây là một thay thế hoàn chỉnh cho các dạng Web Form ASP.NET truyền thống,đem đến nhiều ưu điểm nhưng chủ yếu dành cho các

dự án phát triển Web.Trong chương này,bạn sẽ tìm hiểu tại sao Microsoft tạo

ra ASP.NET MVC,so sánh với người tiền nhiệm và các thay thế của nó,và,cuối cùng là những điểm mới trong ASP.NET MVC 5 và những thứ được đề cập trong cuốn sách này

Hiểu rõ về lịch sử của Asp.net

ASP.NET là một sự thay đổi to lớn khi được xuất hiện lần đầu tiên vào năm 2002.Hình 1-1 minh hoạ các lớp công nghệ của Microsoft đã xuất hiện

Hình 1-1.Các tầng công nghệ của ASP.NET Web Forms

Trang 2

Với các Web Form,Microsoft cố gắng che đi HTTP ( cùng bản chất vô định của nó) và HTML (thứ tại thời điểm đó chưa quen thuộc với nhà phát triển) bằng việc mô hình hoá giao diện người dùng (UI) thành một bậc của đối tượng điều khiển về phía server.Mỗi một control sẽ theo dõi trạng thái của nó thông qua các yêu cầu (sử dụng chức năng View State),trình bày nó dưới dạng HTML khi cần thiết và tự động liên kết các sự kiện bên phía client(lấy ví dụ,một button click) với code handler của sự kiện phản hồi tương ứng từ phía server.Về mặt hiệu ứng,Web Forms là một lớp trừu tượng khổng lồ được thiết

kế để cung cấp giao diện đồ hoạ người dùng theo hướng sự kiện trên Web

Ý tưởng đề ra là khiến cho phát triển Web cũng giống như với phát triển Windows Forms.Các nhà phát triển không cần phải làm việc với một loạt các yêu cầu HTTP độc lập và phản hồi.Họ có thể nghĩ về một giao diện người dùng trạng thái,và Microsoft có thể liên tục chuyển giao nguồn nhân lực từ các nhà phát triển trên Windows vào thế giới của ứng dụng web

Điều gì không ổn với ASP.NET Web Forms ?

Sự phát triển của ASP.NET Web Forms truyền thống rất tốt về mặt nguyên tắc,nhưng thực tế chứng minh lại phức tạp hơn nhiều:

+ Tầm quan trọng của View State: Cơ chế thực cho việc duy trì trạng

thái thông qua các yêu cầu (View State) hình thành một khối lượng dữ liệu được truyền phát giữa client và server.Dữ liệu này có thể lên tới hàng trăm kilobyte ngay cả trong những ứng dụng Web nhỏ,và nó di chuyển qua lại với mỗi một yêu cầu,dẫn đến làm chậm thời gian phản hồi và tăng nhu cầu băng thông của server

+ Chu kì tồn tại của trang:cơ chế kết nối các sự kiện bên phía client với

bộ code quản lý sự kiện bên server,từng phần của chu kì tồn tại,có thể bất thường.Một số ít nhà phát triển đã vận dụng thành công hệ thống điều khiển theo bậc tại thời gian khởi chạy mà không gặp lỗi bên View State hay phát hiện bất cứ xử lý sự kiện gặp lỗi khi khởi chạy

Trang 3

+ Cảm giác về phân chia của các vấn đề sai: mô hình mã code nằm

phía sau của ASP.NET Web Forms cung cấp phương tiện để lấy phần code ứng dụng ra khỏi ngôn ngữ đánh dấu trong HTML của nó và đưa vào một lớp code nền đằng sau.Kết quả cuối có thể hơi khó hiểu

+ Giới hạn kiểm soát trong HTMLL: các control của server biểu hiện

chính nó dưới dạng HTML,nhưng không nhất thiết phải là HTML mà bạn muốn.Trong các phiên bản trước của ASP.NET,HTML đầu ra không đáp ứng tiêu chuẩn Web hay tận dụng tốt CSS (Cascading Style Sheets),các control của server được khởi tạo không lường trước và các giá trị thuộc tính ID phức tạp khó tiếp cận bằng Javascript.Những vấn

đề đó được cải thiện phần lớn trong Web Form phát hành gần đây,nhưng vẫn khó khăn để có được HTML mà bạn mong muốn

+ Sự trừu tượng sai,lệch lạc:Web Form cố giấu đi HTML và HTTP ở

bất cứ nơi nào có thể.Khi bạn cố gắng cài đặt một hành vi tuỳ chỉnh,bạn thường đi xa khỏi tưởng tượng ,buộc bạn phải đảo ngược cơ chế sự kiện hoặc thực hiện các hành vi khó hiểu để làm nó sinh ra mã HTML mong muốn.Thêm vào đó,tất cả khái niệm trừu tượng này có thể đóng vai trò như một rào cản gây khó chịu cho các nhà phát triển thông thạo

+ Khả năng nghiệm thu kém:các nhà phát triển Web Form không hề biết

trước được rằng kiểm nghiệm tự động sẻ trở thành một thành phần thiết yếu của quá trình phát triển phần mềm.Không hề ngạc nhiên lắm,kiến trúc gắn kết chặt chẽ mà họ thiết kế không phù hợp cho các bài kiểm nghiệm chi tiết.Kiểm nghiệm tính tương thích,hoà hợp cũng biến thành một thử thách khó khăn

Web Forms không phải tất cả đều kèm,xấu và Microsoft đã bỏ nhiều công sức vào việc phát triển các tiêu chuẩn,đơn giản hoá quá trình phát triển,và thêm vào đó lấy thêm các tính năng từ ASP.NET MVC

Việc phát triển Web hiện nay

Bên ngoài Microsoft,công nghệ phát triển web đã phát triển nhanh chóng,liên tục và theo nhiều chiều hướng khác nhau kể từ khi Web Form lần đầu xuất hiện

Các tiêu chuẩn về web và REST

Sự phát triển trong các tiêu chuẩn Web đã tăng vào các năm gần đây.Các website được truy cập trên nhiều thiết bị khác nhau và trình duyệt nhiều hơn

so với trước đây,và các chuẩn Web (HTML,CSS,JavaScript,và nhiều thứ khác) vẫn là niềm hy vọng lớn để tận hưởng trai nghiệm duyệt web phù hợp.Các nền tảng web hiện đại không thể bỏ qua các mục đích kinh doanh và tầm quan trọng của niềm đam mê,quan tâm của các nhà phát triển dành cho các tiêu chuẩn Web

Trang 4

HTML5 đã bắt đầu du nhập vào trào lưu sử dụng và cung cấp những khả năng tiềm tàng cho nhà phát triển Web,cho phép client có thể đảm nhận được công việc trước đây vốn là trách nhiệm của riêng server.Những khả năng mới và sự phát triển ngày càng tăng của các thư viện Javascript như AngularJS,jQuery,jQuery Ui,và jQuery Mobile chứng tỏ rằng những tiêu chuẩn đó đã trở nên quan trọng hơn và hình thành một nền tảng quan trọng cho nhiều ứng dụng Web hơn

Ghi chú: tôi đã làm việc trên HTML5,jQuery,và các người anh em của nó trong cuốn sách này,nhưng tôi không đi vào chuyên sâu bởi vì sẽ có những chủ đề riêng của chúng.Nếu bạn muốn nội dung hoàn chỉnh,thì Apress

đã phát hành những cuốn sách của tôi cho những chủ đề này : Pro AngularJS, Pro jQuery 2.0, Pro JavaScript for Web Apps, and The Definitive Guide to HTML5

Tại thời điểm đó, giao thức truyền thông hai chiều-Representational State Transfer (REST đã trở thành kiến trúc chủ đạo cho các ứng dụng tương tác trên HTTP,hoàn toàn che mờ đi SOAP (công nghệ đằng sau sự giao tiếp truyền thống của ASP.NET đến dịch vụ Web),REST mô tả một ứng dụng dưới định nghĩa của các tài nguyên (Urls) đại diện chỉ các thực thể và hoạt động tiêu chuẩn (phương thức HTTP) đại diện cho các thao tác có sẵn trên nguồn tài nguyên đó.Lấy ví dụ,bạn có ĐẶT một urls mới

http://www.example.com/Products/Lawnmowerhoặc XOÁ đi:

http://www.example.com/Customers/Arnold-Smith

Các ứng dụng Web hiện nay không chỉ hỗ trợ cho HTML.Thông thường,chúng còn hỗ trợ JSON hay dữ liệu XML kết nối với công nghệ client như AJAX và các ứng dụng điện thoại thông minh.Điều nay diễn ra môt cách

tự nhiên với REST,loại bỏ sự phân biệt giữa dịch vụ Web và ứng dụng Web,nhưng đòi hỏi sự tiếp cận đến HTTP và xử lý URL,những thứ không còn được hỗ trợ dễ dàng trên nền ASP.NET Web Forms

Sự phát triển kiểm thử,linh hoạt

Không chỉ phát triển Web đã trưởng thành Phát triển phần mềm như một khối trọn vẹn đã thay đổi theo hướng phương pháp linh hoạt Điều này có ý nghĩa với rất nhiều thứ khác nhau, nhưng nó phần lớn là về việc chạy dự án phần mềm quy trình như các tiến trình thích nghi khám phá và hạn chế kế hoạch chuyển tiếp thừa Sự linh hoạt trong phương pháp agile hướng đến kết hợp với một tập hợp các ứng dụng phát triển và công cụ (thường là mã nguồn mở) nhằm thúc đẩy và hỗ trợ các ứng dụng này

Trang 5

Hướng phát triển kiểm thử (TDD),và các mối quan hệ chặt chẽ với nó,phát triển hành vi định hướng (BDD).là hai ví dụ.Ý tưởng để thiết kế phần mềm của bạn bắt đầu bằng việc đầu tiên là mô tả ví dụ về hành vi mong muốn( còn gọi là kiểm tra hoặc thông số kĩ thuật),vì vậy tại bất cứ lúc nào,bạn cũng có thể xác minh tính ổn định và chính xác của ứng dưng bằng cách chạy bài test trong quá trình cài đặt,triển khai.Không hề thiếu công cụ Net để hỗ trợ TDD/BDD.nhưng các công cụ này không làm việc tốt với Web Forms :

+ Công cụ kiểm tra đơn vị cho phép bạn xác định hành vi của các lớp

cụ thể hoặc thành phần code nhỏ khác trong sự cô lập riêng biết Đây chỉ có thể được áp dụng hiệu quả cho phần mềm đã được thiết kế dưới dạng một tập hợp các mô-đun độc lập, do đó mỗi bài kiểm tra có thể được chạy độc lập Đáng tiếc,chỉ vài ứng dụng Web Forms có thể được kiểm tra theo cách này

+ Công cụ tự động hóa giao diện người dùng cho phép bạn mô phỏng một loạt các tương tác người dùng trong một phiên khởi chạy hoàn chỉnh của ứng dụng Công cụ này có thể được sử dụng với Web Forms, nhưng chúng có thể ngưng hoạt động bất cứ khi nào bạn thực hiện một thay nhỏ đến bố cục trang Nếu không có sự chú trọng đặc biệt, Web Forms sẽ thay đổi cấu trúc HTML và thành phần ID, làm hỏng các bộ thử nghiệm

Các nhà cung cấp mã nguồn mở NET và phần mềm độc lập (công đồng ISV đã không ngừng đưa ra frameworks thử nghiệm chất lượng đơn vị hàng đầu (NUnit và xUnit), Mocking frameworks (Moq và Rhino Mocks), container đảo ngược cơ chế điều khiển (Ninject và AutoFac), máy chủ tích hợp liên tục (Cruise Control và TeamCity), bản đồ đối tượng quan hệ (NHibernate và Subsonic), ASP.NET Web Forms truyền thống sẽ không tuân theo những công cụ và kỹ thuật vì thiết kế nguyên khối của nó, và từ đó Web Forms nhận được ít nhiều sự quan tâm từ các dự án này

Ruby on Rails

Năm 2004, Ruby on Rails là một đóng góp mã nguồn mở,khá kín tiếng từ một người ẩn danh Đột nhiên gây sự chú ý, chuyển hoá các quy tắc của phát triển Web.Ruby on Rails không hề chứa công nghệ mang tính cách mạng, nhưng cách mà ý tưởng này chọn những thành phần sẵn có và trộn lẫn cùng nhau môt cách thuyết phục và cuốn hút đã khiến các nền tảng tương tự hiện tại phải cảm thấy xấu hổ

Ruby on Rails (hay Rails,như cách nó thường được gọi),nắm giữ kiến trúc MVC,thứ mà tôi sẽ miêu tả trong chương 3.Bằng việc áp dụng MVC và làm việc với các điều chỉnh giao thức HTTP,bằng cách giới thiệu các quy ước thay cho các yêu cầu tuỳ chỉnh,và việc tích hợp ánh xạ quan hệ đối tượng(công cụ ORM trong cốt lõi),các ứng dụng Rails ít nhiều đều đi đúng hướng mà không cần nhiều nỗ lực.Nó sẽ là vậy nếu đó từng là cách phát triển

Trang 6

Web từ lâu.Rails cho thấy các tiêu chuẩn tuân thu Web và sự hoàn chỉnh REST không cần phải quá khó.Nó cũng cho thấy khả năng phát triển linh động và TDD hoạt động tốt nhất khi nền tảng framework được thiết kế để hỗ trợ chúng.Phần còn lại của thế giới phát triển Web đã đuổi kịp từ bao giờ

Node.js

Một xu hướng khác đó là việc chuyển sang sử dụng JavaScript làm ngôn ngữ lập trình chính.AJAX lần đầu tiên chỉ ra rằng JaveScript rất quan trong;jQuery cho chúng ta được sự mạnh mẽ và tinh tế;và mở nguồn mở V8 JavaScript của Google cho thấy rằng nó rất nhanh.Ngày nay,JavaScipt đang dần trở thành một ngôn ngữ lập trình hướng server chính thức.Nó còn là ngôn ngữ truy xuất dữ liệu cho một vài cơ sở dữ liệu không quan hệ,bao gồm CouchDB và Mongo,và nó được dùng làm ngôn ngữ chính trong nền tảng server như Node,js,Node,js đã xuất hiện từ năm 2009 và dần được chấp nhận nhanh chóng.Các đổi mới chủ chốt được liệt kê như sau:

+ Sử dụng JavaScript:Các nhà phát triển chỉ cần làm việc trên một loại ngôn ngữ,từ code trên client,thông qua logic server,và thậm chí trong logic truy xuất dữ liệu qua CouchDB hoặc tương tự

+ Không đồng bộ hoàn toàn:hàm API của Node.js không để lộ ra bất kì cách nào ngăn chặn một luồng trong khi chờ dữ liệu input/output (I/O) hoặc bất kì hoạt động khác.Tất cả I/O được cài đặt ngay khi bắt đầu tiến trình và sau đó nhận tin gọi ngược lại khi I/O hoàn thành.Điều này có nghĩa Node.js tận dụng hiệu quả tài nguyên hệ thống và có thể xử lý

10000 yêu cầu cùng lúc trên mỗi CPU.(nền tảng thay thế có xu hướng giới hạn còn khoảng 100 yêu cầu trên mỗi CPU)

Node.js vẫn là một công nghệ thích hợp.Đóng góp to lớn của nó đối với phát triển ứng dụng web đã,đang dần cung cấp một bộ công cụ JavaScript phù hợp mà dựa vào đó các công cụ phát triển có thể được viết ra.Nhiều nền tảng JavaScript từ phía Client mới nổi,như AngularJS,có những hỗ trợ công cụ dựa trên việc dùng Node.js

Sự chấp nhận dành cho Node.js trong phát triển ứng dụng Web đã chậm hơn.Hầu hết các ứng dụng kinh doanh thực tế trong khung thời gian giới hạn thông thường cần cơ sở hạ tầng trong nền tảng gói gọn đầy đủ như Ruby on Rails và ASP.NET MVC.Node.js được đề cập ở đây chỉ để đưa vài thiết kế ASP.NET MVC vào trong phạm vi theo xu hướng công nghiệp.Ví dụ,ASP.NET MVC bao gồm các controller không đồng bộ (Điều mà tôi sẽ nói trong chương 19).Đây là cách để xử lý yêu cầu HTTP cùng I/O không bị chặn

và mở rộng để xử lý nhiều yêu cầu cho mỗi CPU

Lợi ích quan trọng của ASP.NET MVC

Trong tháng 10/2007,Microsoft công bố một nền tảng phát triển MVC Web,được xây dựng dựa trên cốt lỗi của nên tảng ASP.NET,được thiết kế rõ

Trang 7

ràng để đối trọng trực tiếp với sự phát triển của công nghệ như Rails và đáp lại những chỉ trích phê bình của Web Forms.Phần tiếp theo sẽ mô tả làm thế nào nền tảng mới vượt qua giới hạn của Web Forms và đem ASP.NET ra khỏi

bờ vực bị loại bỏ

Cấu trúc MVC

Điều quan trọng là phải phân biệt giữa mô hình kiến trúc MVC và ASP.NET MVC Framwork.Các mô hình MVC không phải là mới – nó có mặt từ năm

1978 và trong dự án Smalltalk at Xeror PARC-nhưng nó đã trở nên phổ biến rộng rãi ngày nay như là một mô hình cho các ứng dụng web,vì những lí do sau:

+ Tương tác người dùng với một ứng dụng MVC tuân theo một chu kì

tự nhiên:người dùng thực hiện một hành động,và để đáp ứng thì ứng dụng sẽ thay đổi mô hình dữ liệu và đưa ra một view đã được cập nhật đến người dùng.Và chu kì tiếp tục lặp lại.Đó là sự phù hơp thuận tiện cho các ứng dụng Web khi cung cấp một loạt yêu cầu HTTP và phản hồi

+ Các ứng dụng web đòi hỏi cần phải kết hợp một vài công nghệ (cơ sở

dữ liệu,HTML,mã thực thi),thường được chia thành các tầng hay lớp.Các mô hình phát sinh từ những bản đồ kết hợp tự nhiện dựa trên khái niệm trong MVC

ASP.NET MVC Framework thực hiện mô hình MVC và trong lúc làm vậy,cung cấp sự cải thiện trong phân chia của quan hệ.Trong thức tế,ASP.NET MVC cung cấp một biến thể hiện đại của mô hình MVC,nó đặc biệt thích hợp cho ứng dụng Web.Bạn sẽ tìm hiểu thêm về lý thuyết và thực hành của kiến trúc này ở chương 3

Bằng cách nắm bắt và thích ứng với mô hình MVC,ASP.NET MVC Framework tạo ra sự cạnh tranh mạnh mẽ với Ruby on Rails và các nền tảng tương tự,và đưa mô hình MVC vào xu hướng chủ đạo của thế giới NET.Bằng cách tận dụng kinh nghiệm và thực tiễn được khám phá bởi nhà phát triển sử dụng các nền tảng khác,ASP.NET MVC đã,bằng nhiều cách,đã tiến xa hơn những gì Rails đạt được

Khả năng mở rộng

MVC Framework được xây dựng như một loạt các thành phần độc lập đáp ứng giao diện NET hay được xây dựng trên một lớp cơ sở trừu tượng.Bạn có thể dễ dàng thay thế các thành phần,như hệ thống định tuyến,cơ chế view,và controller,với từng thứ khác tuỳ vào thiết lập của bạn.Nói chung,the MVC Framework đưa ra cho bạn 3 lựa chọn cho mỗi một thành phần:

+ Sử dụng các cài đặt mặc định của các thành phần (gần đủ cho hầu hết các ứng dụng)

Trang 8

+ Rút ra một lớp con của cài đặt mặc định để tinh chỉnh hành vi hoạt động của nó

+ Thay thế hoàn toàn thành phần với thiết lập cài đặt mới của giao diện hay lớp cơ sở trừu tượng logic

Bạn sẽ tìm hiểu tất cả về các thành phần khác nhau,và cách thức,tại sao bạn muốn tinh chỉnh hay thay thế mỗi thứ trong đó,bắt đầu trong chương 14

Kiểm soát chặt chẽ hơn đối với HTML và HTTP

ASP.NET MVC tạo ra tiêu chuẩn đánh dấu rõ ràng phù hợp.Phương pháp tích hợp hỗ trợ HTML của nó tạo ra chuẩn output,nhưng có một sự thay đổi đáng

kể so với Web Forms.Thay vì tạo ra khoảng không cho HTML mà bạn có ít quyền kiểm soát,MVC Framework khuyến khích bạn tạo ra đánh dấu đơn giản với phong cách của CSS

Tất nhiên,nếu bạn muốn ném vào một vài phụ tùng có sẵn cho các yếu

tố giao diện phức tạp như chọn ngày hay dạng menu tầng,cách tiếp cận

“không theo yêu cầu đặc biệt” của ASP.NET MVC để đánh dấu khiến công việc dễ hơn bằng sử dụng các thư viện giao diện lai tạo tốt nhất như jQuery

UI hay thư viện Bootstrap CSS.ASP.NET MVC ăn khớp tốt với jQuery,ví dụ,Microsoft chuyển jQuery thành một phần tích hợp trong mẫu dự án mặc định ASP.NET MVC trong Visual Studio,kèm theo các thư viện phổ biến khac,như Bootstrap,Knockout and Modernizr

Tip 1: Tôi không quan tâm chi tiết của thư viện JavaScript trong cuốn sách này vì chúng không phải là cốt lõi của MVC Framework và làm việc trong trình duyệt.Phát triển bên Client dành cho ứng dụng MVC Framework

là một chủ đề quan trong,tuy nhiên,bạn có thể tìm hiểu thêm trong cuốn sách của tôi Pro ASP.NET MVC 5 Client,sẽ được phát hành bởi Apress vào năm 2014.Có một số thư viện,cung cấp hỗ trợ cho tính năng cốt lõi như xác nhận

và yêu cầu Ajax,và tôi mô tả chúng trong phần 2 của cuốn sách này.Tôi mô tả Knockout trong chương 27 và tôi dùng Bootstrap (mặc dụ không giới thiệu chi tiết) xuyên suốt cuốn sách

Các trang khởi tạo của ASP.NET MVC không chứa bất kì dữ liệu về View State,nên chúng nhỏ hơn trang thông thường từ ASP.NET Web Forms.Dù cho có các kết nối nhanh chóng hiện nay.ngành công nghiệp băng thông này vẫn mang lại một trải nghiệm cải thiện cho người dùng cuối và giúp giảm chi phí vận hành một ứng dụng web phổ biến

ASP.NET MVC làm việc phối hợp cùng HTTP.Bạn có quyền kiểm soát trên các yêu cầu đi qua giữa trình duyệt và server,nên bạn có để điều chỉnh trải nghiệm của người dùng theo ý mình.AJAX được thực hiện dễ dàng,và không có bất kì postbacks tự động nào để can thiệp với trang thái client

Khả năng kiểm nghiệm

Trang 9

Kiến trúc MVC cho bạn một khởi đầu tố trong việc tạo nên một ứng dụng duy trì và kiểm tra được vì bạn chia các mối liên quan,quan hệ thành các phần độc lập.Tuy nhiên,các nhà thiết kế ASP.NET MVC không chỉ dừng lại ở đó.Để hỗ trợ kiểm nghiệm chi tiết,họ đã lấy thiết kế thành phần hướng đối tượng của framework và đảm bảo rằng từng phần riêng biệt được cấu trúc để thoả mãn yêu cầu của việc kiểm nghiệm và các công cụ liên kết

Họ thêm trình thuật sĩ Visual Studio để tạo ra các dự án thử nghiệm thay cho bạn,có thể được tích hợp với công cụ kiểm nghiệm mã nguồn mở như Nunit và xUnit cũng như các công cụ test đi kèm trong Visual Studio,thứ

mà tôi giới thiệu trong chương 6.Ngay cả khi bạn chưa bao giờ viết một bài test,bạn cũng sẽ có một khởi đầu thuận lợi

Trong cuốn sách này,bạn sẽ thấy các ví dụ về cách viết các bài test gọn gàng ,đơn giản cho bộ điều khiển của ASP.NET MVC và tác dụng cung cấp cài đặt triển khai của các thành phần framework để mô phỏng bất cứ trường hợp nào,sử dụng một loạt các bài test và chiến lược mô phỏng tính năng

Khả năng kiểm thử không chỉ là vấn đề của unit-testing.Ứng dụng ASP.NET MVC cũng làm việc tốt với công cụ thử nghiệm giao diện người dùng tự động hoá.Bạn có thể viết kịch bản kiểm tra mô phỏng các tương tác người dùng mà không cần đoán xem cấu trúc thành phần HTML,các lớp CSS,hay IDs mà framework sẽ tạo ra,và bạn không phải lo về sự thay đổi cấu trúc bất ngờ

Hệ thống định tuyến mạnh mẽ

Phong cách của URLs đã tiến hoá khi công nghệ web ứng dụng phát triển.URLs dạng :

/App_v2/User/Page.aspx?action=show%20prop&prop_id=82

742

đang trở hiếm dần,được thay thế bằng định dạng dễ hơn,gọn hơn giống như: /to-rent/chicago/2303-silver-street

Có một số lý do tốt khi quan tâm về cấu trúc URLs.Đầu tiên,bộ máy tìm kiếm giao trọng trách cho từ khoá trong URL.Một tìm kiếm cho từ “rent in Chicago” có nhiều khả năng hiển thị đường đẫn URL đơn giản hơn.Thứ 2,nhiều người dùng Web hiện nay đủ hiểu biết về một URL,và đánh giá cao lựa chọn cho việc điều hướng bằng cách đánh nó vào thanh địa chỉ trình duyệt của họ.Thứ 3,khi ai đó hiểu cấu trúc URL,họ dễ liên kết đến nó hơn,chia sẽ nó với một người bạn,hay thậm chí đọc lớn nó qua điện thoại.Thứ 4,nó không hiện chi tiết kĩ thuật,thư mục,cấu trúc tên file ứng dụng của bạn với mạng internet chung,nên bạn có thể tự dọ thay đổi cài đặt phía dưới mà không phá

vỡ tất cả liên kết sắp tới

Trang 10

Một URL gọn rất khó để thực hiện trong nền tảng trước,nhưng ASP.NET MVC dùng một tính năng gọi là định tuyến URL để tạo ra đường dẫn URL ngắn gọn theo mặc dịnh.Điều này cho phép bạn kiểm soát lược đồ đường dẫn URL của bạn và mối quan hệ của chúng với ứng dụng của bạn,cho bạn sự tự do để tạo ra một mô hình đường dẫn có ý nghĩa và tiện ích cho người dùng,không cần thiết phải thoả theo một mô hình định trước.Và,tất nhiên,điều này có nghĩa là bạn có thể dễ dàng định hình một lược đồ URL theo hướng REST hiện đại nếu bạn muốn.Bạn sẽ tìm thay mô tả kĩ lưỡng của định tuyến URL trong chương 15 và 16

Xây dựng dựa trên những phần tốt nhất của nền tảng ASP.NET

Nền tảng Microsoft ASP.NET hiện tại cung cấp một bộ các thành phần hiệu quả được kiểm chứng và công cụ để phát triển hiệu quả ứng dụng Web.Đầu tiên và rõ ràng nhất,vì ASP.NET MVC dựa trên nền tảng NET,bạn có sự linh hoạt để viết code với bất kì ngôn ngữ NET và tiếp cận với cùng tính năng API-không chỉ nằm trong MVC mà còn thư viện lớp NET rộng lớn và các hệ sinh thái của thư viện NET của bên thứ ba

Thứ hai,tính năng tạo sẵn của nền tảng ASP.NET – như chứng thực,thành viên,vai trò,cấu hình,và toàn cầu hoá-có thể làm giảm khối lượng code bạn cần để phát triển và duy trì bất kì ứng dụng Web nào.và những tính năng này cũng rất hiệu quả khi được dùng trong nền tảng MVC Framework vì chúng là dự án Web Form cổ điển.Các nền tảng bên dưới ASP.NET cung cấp một bộ công cụ phong phú có thể dựa trện đó để xây dựng ứng dụng Web với MVC Framework

Ghi chú:Tôi diễn tả phần lớn tính năng được sử dụng của nền tảng ASP.NET

vì chúng liên quan đến sự phát triển MVC trong cuốn sách này,nhưng nền tảng bản thân nó đã là một chủ đề.Để có chi tiết đầy đũ của các chức năng

mạnh mẽ cung cấp bởi ASP.NET ,hãy đón xem trong cuốn sách Pro ASP.NET MVC 5 Platform,sẽ được phát hành bởi Apress vào năm 2014

API hiện đại

Nền tảng Net của Microsoft đã tiến hoá,phát triển cùng mỗi bản phát hành lớn,hỗ trợ-và thậm chí xác định-hình thái của khía cạnh của lập trình hiện đại ASP.NET MVC 5 được thiết kế cho NET 4.5.1,nên các hàm API có thể thừa hưởng tất cả ưu điểm của các ngôn ngữ gần đây và các bước đột phá thời gian khởi chạy,bao gồm từ khoá chờ,phương thức mở rộng,định nghĩa lambdam,file dynamic và ẩn danh,và ngôn ngữ truy xuất tích hợp (LINQ-Language Integrated Query).Nhiều phương thức hàm API của MVC Framework và mô hình code đi theo một sự tổng hợp tốt hơn,ý nghĩa hơn.Đừng lo lắng nếu bạn chưa sẵn sàng để bắt kịp tính năng ngôn ngữ C# mới nhất;Tôi đã làm một bản tóm tắt của phần lớn các tính năng quan trọng của C# cho phát triển MVC trong chương 4

ASP.NET MVC là mã nguồn mở

Ngày đăng: 23/10/2019, 21:16

TỪ KHÓA LIÊN QUAN

w