HTML là gì?

1. HTML là gì?

HTML (tiếng Anh, viết tắt cho HyperText Markup Language, tức là “Ngôn ngữ Đánh dấu Siêu văn bản”) là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web, nghĩa là các mẩu thông tin được trình bày trên World Wide Web. Được định nghĩa như là một ứng dụng đơn giản của SGML, vốn được sử dụng trong các tổ chức cần đến các yêu cầu xuất bản phức tạp, HTML giờ đây đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì. Phiên bản mới nhất của nó hiện là HTML 5, với rất nhiều cải tiến. Có thể tương lai của web.

HTML nói chung tồn tại như là các tập tin văn bản chứa trên các máy tính nối vào mạng Internet. Các file này có chứa thẻ đánh dấu, nghĩa là, các chỉ thị cho chương trình về cách hiển thị hay xử lý văn bản ở dạng văn bản thuần túy. Các file này thường được truyền đi trên mạng internet thông qua giao thức mạng HTTP, và sau đó thì phần HTML của chúng sẽ được hiển thị thông qua một trình duyệt web, một loại phần mềm trực quan đảm nhiệm công việc đọc văn bản của trang cho người sử dụng), phần mềm đọc email , hay một thiết bị không dây như một chiếc điện thoại di động.

Ðể viết HTML cho trang Web, bạn hãy start chương trình NotePad của Microsoft có đi kèm theo với Windows. Ðó là một ASCII Editor. Viết xong, bạn hãy save nó vào một folder nào đó dễ nhớ. Tên của file này bắt buộc phải có tận cùng là .htm hoặc .html Ví dụ: file.htm. Ðể thưởng thức thành quả của mình, bạn hãy open file đó bằng một Browser.

2. Cấu trúc cơ bản:

Một document HTML luôn bắt đầu bằng <html> và kết thúc bằng </html> (trong đó bạn cũng có thể viết nhỏ hoặc viết hoa <html> và </html>). Nhờ có cặp TAG này mà Browser biắt được đó là HTML – document để trình duyệt. Những chữ đó chỉ để dành riêng cho Browser, người đọc chỉ nhận được những gì viết giữa cặp TAG <body> và </body>. Trong một document html, chú thích được dùng như sau:

<!-- Ðây là dòng chú thích, chỉ dành riêng cho bạn, browser bỏ qua dòng này -->

Cấu trúc chuẩn của một tài liệu HTML như sau:

<html>
   <head>
     <title>Tiêu đề của trang web</title>
   </head>
   <body>
           Phần bạn cần trình bày nội dung
   </body>
</html>

Trong “head” ta còn có thể đưa rất nhiều thông tin vào cho browser, search engine… Cái đó sẽ được đề cập đến trong một mục riêng.

3. Các thẻ cơ bản trong HTML:

Một tài liệu HTML được tạo nên từ các cặp thẻ html

  • Thẻ HTML được bắt đầu bằng dấu < (dấu nhỏ hơn) và kết thúc bằng dấu > (dấu lớn hơn)
  • Nội dung nằm giữa dấu <> là tên thẻ. Ví dụ <b>, ta đọc là thẻ b
  • Cặp thẻ HTML được tạo nên từ thẻ mở và thẻ đóng
  • Các tag đầu tiên trong một cặp là thẻ bắt đầu, các thẻ thứ hai là thẻ kết thúc
  • Thẻ Bắt đầu và thẻ kết thúc còn được gọi là thẻ mởthẻ đóng
  • Thẻ đóng kết thúc bằng dấu / (</tenthe>)
  • Nội dung của thẻ sẽ được nằm giữa thẻ đóng và thẻ mở
  • Một số thẻ chỉ có thẻ mở mà không có thẻ đóng (như các thẻ <img>, <br />,  <hr />)

Ví dụ:  Về cặp thẻ: <b>Nội dung thẻ</b>

Các thẻ thường sử dụng trong HTML

3.1. Các thẻ tiêu đề (HTML Headings):

  • Bao gồm các thẻ từ <h1> đến <h6>: thường được sử dụng để thể hiện cho tiêu đề bài viết, bản tin, các mục nhấn mạnh . . .
  • Font chữ (size) của nội dung trong các thẻ giảm từ <h1> đến <h6> (h1 lớn nhất, h6 nhỏ nhất).

Khi xuất ra ngoài thì các bạn sẽ thấy như sau:

  • Nội dung thẻ h1

  • Nội dung thẻ h2

  • Nội dung thẻ h3

  • Nội dung thẻ h4

  • Nội dung thẻ h5
  • Nội dung thẻ h6

3.2. Đoạn văn bản trong HTML (HTML Paragraphs):

Đoạn văn bản trong tài liệu HTML được định nghĩa bằng thẻ <p>

 3.3. Liên kết (HTML Links):

  • Một trang website bao gồm rất nhiều trang web (web page), các web page liên kết lại với nhau để tạo lên website.
  • Liên kết trong HTML được định nghĩa bằng cặp thẻ <a>

Các thuộc tính (Attribute) của thẻ <a>

  • href: quy định địa chỉ (url) mà liên kết trỏ tới
  • target: (đích) thuộc tính này sẽ quy định liên kết sẽ được mở ra ở đâu: _self (trang hiện tại), _blank (cửa sổ mới), . .

3.4. HTML Line Breaks <br/>:

Sử dụng <br /> để xuống dòng trong một đoạn văn bản

Tuy nhiên chúng ta không nên sử dụng thẻ <br /> trong tài liệu HTML (khuyến cáo)

3.5. HTML Lines (<hr />):

Thẻ <hr /> sẽ tạo một đường kẻ ngang trong trang HTML. <hr /> là thẻ đơn không có thẻ đóng

<hr/>

 3.6. HTML images (Hình ảnh):

Để chèn hình ảnh vào tài liệu HTML ta sử dụng thẻ <img>, đây là thẻ HTML không có thẻ đóng

Các thuộc tính của thẻ <img>

  • src=”images.jpg”: Chỉ ra đường dẫn tập tin hình ảnh (có thể là đường dẫn tuyệt đối hoặc tương đối, vấn đề này mình sẽ giải thích ở một topic khác)
  • alt=”Mô tả ”:  Nội dung sẽ được hiển thị khi đường dẫn tới tập tin hình ảnh không tồn tại
  • title=”Tiêu đề”: Nội dung hiển thị khi đưa trỏ chuột lên hình.
  • width, height: Độ rộng và độ cao của file hình được tính bằng px, nếu không có thuộc tính width, height thì mặc định sẽ lấy kích thước gốc của file hình

3.7. Các thẻ định dạng text (HTML Text Formatting):
<b> (bold): Chữ In đậm

<u> (Underline): Chữ gạch chân

<i> (italic): Chữ in nghiên

<big> (Big): Chữ lớn hơn

<em>(emphasized): Chữ in nghiêng, Nhấn mạnh hơn <i>

 Tổng kết: Bài viết này là những kiến thức cơ bản về HTML và cấu tạo cũng như các thẻ hổ trợ trong HTML. Hy vọng bài viết này sẽ là tài liệu bổ ích cho những bạn mới đầu làm quen với thiết kế website. Ở những bài viết sau chúng ta sẽ cũng tìm hiểu các vấn để khác nhằm để xây dựng một giao diện website hoàn chỉnh.

Multiple file upload in ASP.NET MVC

Khi lập trình web với ASP.NET MVC hay bất kỳ ngôn ngữ nào khác như PHP chẳng hạn, chúng ta đều gặp những tình huống liên quan đến Upload file lên hosting, dễ thấy nhất là upload hình sản phẩm cho một sản phẩm nào đó.

Với ASP.NET MVC chúng ta dễ dàng làm được điều đó, bạn có thể upload 1 file hoặc upload nhiều file (Multiple file upload) trong ASP.NET MVC cùng lúc. Nó cực kỳ hữu ích trong nhiều trường hợp. Đoạn code nhỏ sau đây sẽ minh họa cho vấn đề này.

Multiple file upload in ASP.NET MVC
Multiple file upload in ASP.NET MVC

Code HTML

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Upload file trong ASP.NET MVC</title>
    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var max_fields = 10; //maximum input boxes allowed
            var wrapper = $(".myinput"); //Fields wrapper
            var add_button = $(".btnAddNew"); //Add button ID

            var x = 0; //initlal text box count
            $(add_button).click(function (e) { //on add input button click
                e.preventDefault();
                if (x < max_fields) { //max input box allowed
                    x++; //text box increment
                    $(wrapper).append('<div>   <input type="file" name="uploadFile['+x+']" /><a href="#" class="btnRemove">Xóa</a></div>'); //add input box
                }
            });

            $(wrapper).on("click", ".btnRemove", function (e) { //user click on remove text
                e.preventDefault(); $(this).parent('div').remove(); x--;
            })
        });
    </script>
</head>
<body>
    <div>
        <h2>Upload file trong ASP.NET MVC</h2>
        <div style="color:red">
            @Html.Raw(TempData["Msg"])
        </div>
        <fieldset>
            <legend>Upload file</legend>
            @using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
            {

                <label>Chọn file: </label>
                <br />
                <input type="file" name="uploadFile" required /><br />

                <input type="submit" value="Upload" />

            }
        </fieldset>
        <hr />
        <h3>Upload nhiều file trong ASP.NET MVC</h3>
        <fieldset>
            <legend>Upload multi file</legend>
            @using (Html.BeginForm("UploadMulti", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
            {

                <label>Chọn file: </label><br />
                <a class="btnAddNew" href="#">Thêm</a>
                <br />
                <div id="myinput" class="myinput">
                    <input type="file" name="uploadFile[0]" required /><br />
                </div>
                <br />
                <input type="submit" value="Upload" />

            }
        </fieldset>
        
Chia sẻ kiến thức Lập trình .NET
</div> </body> </html>

Code cs

/**   FileName: UploadController.cs 
          Project Name: DateTime Ajax
          Date Created: 12/17/2014 11:30:58 PM 
          Description:  File Upload trong ASP.NET MVC
          Version: 0.0.0.0 
          Author: Lê Thanh Tuấn - Khoa CNTT
          Author Email: [email protected] 
          Author Mobile: 0976060432
          Author URI: http://tuanitpro.com 
          License: 
     */

    public class UploadController : Controller
    {
        // GET: Upload
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Upload(HttpPostedFileBase uploadFile)
        {
            if (ModelState.IsValid)
            {
                string filePath = Path.Combine(HttpContext.Server.MapPath("/Uploads/demo"),
                                               Path.GetFileName(uploadFile.FileName));
                uploadFile.SaveAs(filePath);
                TempData["Msg"] = string.Format("Upload file {0} thành công", uploadFile.FileName);
            }
            return RedirectToAction("Index");
        }

        [HttpPost]
        public ActionResult UploadMulti(List<HttpPostedFileBase> uploadFile)
        {
            string abc = "";
            string def = "";
            foreach (var item in uploadFile)
            {

                string filePath = Path.Combine(HttpContext.Server.MapPath("/Uploads/demo"),
                                               Path.GetFileName(item.FileName));
                item.SaveAs(filePath);

                abc = string.Format("Upload {0} file thành công", uploadFile.Count);

                def += item.FileName + "; ";


            }
            TempData["Msg"] = abc + "</br>" + def;
            return RedirectToAction("Index");
        }
    }

Live demo

Chúc các bạn thành công.

Ajax là gì?

AJAX, viết tắt từ Asynchronous JavaScript and XML (JavaScript và XML không đồng bộ), là bộ công cụ cho phép tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và chỉ hiển thị những gì cần thiết, thay vì tải đi tải lại toàn bộ trang web. AJAX không phải một công nghệ đơn lẻ mà là sự kết hợp một nhóm công nghệ với nhau. Trong đó, HTML và CSS đóng vai hiển thị dữ liệu, mô hình DOM trình bày thông tin động, đối tượng XMLHttpRequest trao đổi dữ liệu không đồng bộ với máy chủ web, còn XML là định dạng chủ yếu cho dữ liệu truyền. Đây đều là công nghệ sẵn có nhưng Javacript đã lắp ráp chúng lại để thực hiện những “sứ mệnh” đáng khâm phục.

Từ Ajax được ông Jesse James Garrett đưa ra và dùng lần đầu tiên vào tháng 2 nãm 2005 để chỉ kỹ thuật này, mặc dù các hỗ trợ cho Ajax đã có trên các chương trình duyệt từ 10 năm trước. Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết hợp các ngôn ngữ:

  • HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin
  • Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị
  • Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủ web.
  • XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nào cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text), JSON và ngay cả EBML.

AJAX hoạt động như thế nào?

Ứng dụng web truyền thống (trái) và ứng dụng AJAX.
Ứng dụng web truyền thống (trái) và ứng dụng AJAX.

Theo mô hình hoạt động bình thường, client sẽ gửi một HTTP Request lên Server, sau đó Server thực hiện một số khâu xử lý như lấy lại dữ liệu, tính toán, kiểm tra sự hợp lệ của thông tin, sửa đổi bộ nhớ, sau đó gửi lại một trang HTML hoàn chỉnh tới máy khách. Về mặt kỹ thuật, phương pháp này nghe có vẻ hợp lý nhưng cũng khá bất tiện và mất thời gian, bởi khi server đang thực hiện vai trò của nó thì người dùng sẽ làm gì? Có vấn đề gì ở đây? Mỗi lần như vậy Client sẽ gửi toàn bộ nội dung website lên Server, và Server cũng trả về tương ứng. Bạn hình dung, khi xem một bài báo, hay website chia sẻ hình ảnh, bạn chỉ quan tâm nội dung bài báo, hình ảnh đó mà thôi, không cần tải hết cả trang làm gì đó. Đó là hạn chế, bạn sẽ phải tốn thời gian chờ đợi thứ không mong muốn. Không ai muốn chờ đợi cả.

Để khắc phục hạn chế trên, các chuyên gia phát triển giới thiệu hình thức trung gian – cơ chế xử lý AJAX – giữa máy khách và máy chủ. Điều này giống như việc tăng thêm một lớp giữa cho ứng dụng để giảm quá trình “đi lại” của thông tin và giảm thời gian phản ứng. Thay vì tải lại (refresh) toàn bộ một trang, nó chỉ nạp những thông tin được thay đổi, còn giữ nguyên các phần khác, thời gian chờ có thể thay bằng thông điệp ‘loading…’, ‘đang tải dữ liệu…’… Vì thế, khi duyệt một trang hỗ trợ AJAX, người sử dụng không bao giờ nhìn thấy một cửa sổ trắng (blank) và biểu tượng đồng hồ cát – dấu hiệu cho thấy máy chủ đang thực hiện nhiệm vụ. Ví dụ, trong một website ảnh, với ứng dụng truyền thống, toàn bộ trang chứa các ảnh sẽ phải mở lại từ đầu nếu có một thay đổi nào đó trên trang. Còn khi áp dụng AJAX, DHTML chỉ thay thế đoạn tiêu đề và phần vừa chỉnh sửa, do vậy tạo nên các giao dịch trơn tru, nhanh chóng.

Tương tác đồng bộ trong ứng dụng web truyền thống (trên) và dị bộ trong ứng dụng AJAX. (
Tương tác đồng bộ trong ứng dụng web truyền thống (trên) và bất đồng bộ trong ứng dụng AJAX.

Các ứng dụng AJAX

Hiện nay thì khá nhiều website đã và đang ứng dụng ajax. Đơn giản thì chúng ta hay đăng ký thành viên trên các diễn đàn, website. Ngay sau khi chúng ta nhập xong username hay email, hệ thống đã phản hồi cho chúng ta biết tài khoản đó tồn tại hay chưa, mà không cần nhấn nút Submit như truyền thống. Đó là một trong vô số các ứng dụng của AJAX.

Ưu điểm và hạn chế

Cũng như bất kỳ công nghệ khác, AJAX có thể bị sử dụng quá nhiều trong một website, vì họ chỉ thấy những ưu điểm mà AJAX mang lại chớ không quan tâm đến những khuyết điểm của AJAX, để tranh tình trang trên, có thể liệt kê một số đặc điểm của AJAX như sau:

– Ưu điểm

  • Nó giúp việc thiết kế web đa dạng hơn và tăng tính tương tác của website với người dùng.
  • Nó sử dụng các công nghệ đã có sẵn nên dễ học và sử dụng
  • Nhờ tính phổ biến của nó, đã khuyến khích việc phát triển các khuôn mẫu mà sẽ giúp lập trình viên tránh khỏi các vết xe đổ trước.
  • Được hỗ trợ trong các trình duyệt phổ biến hiện nay.
– Hạn chế
  • Bạn không thể bookmark nó vào favourite trên trinh duyệt hay gởi link đến cho bạn bè, vì tất cả quá trình nó thực hiện ngầm và không hiển thị trên address.
  • Không thể hiện thị nội dung trên các trang tìm kiếm vì các trang tìm kiếm hiện nay vẫn chưa hỗ trợ tìm vì rất khó tìm và gần như không thể tìm đc.
  • Không thể sử dụng nút back vì back cũng là chính nó.
  • Với một số trình duyệt, do nhu cầu bảo mật, sẽ tắt chức năng thực hiện javascript nên ajax không thể chạy, hay trong một vài host, không hỗ trợ vào sâu cấu hình server nên hay bị lỗi “Access denied”

Nhưng với những điểm hạn chế nói trên thì AJAX vẫn đang được các lập trình viên sử dụng rộng rãi và đang nghiên cứu để cải thiện nó, ví dụ như vừa update thông tin trên web, vừa thay đổi trên thanh address để có thể sử dụng một số chức năng liên quan tới địa chỉ tuyệt đối này.

Kết: sử dụng ajax là cả một nghệ thuật.

Ví dụ về việc sử dụng Ajax đơn giản

(Note: Ở đây thực hiện trong ASP.NET, bạn hoàn toàn có thể thực hiện trên ngôn ngữ khác được)
Ví dụ sau đây chúng ta thực hiện việc lấy giờ trên Server. Thông qua AJAX sẽ cho chúng ta biết thời gian của Server mà không cần tải lại toàn bộ trang web. Chỉ lấy những gì chúng ta cần mà thôi.
Chúng ta sẽ có 3 file. ajax.js, Default.aspx, Ajax.aspx (Có thể khác với ngôn ngữ khác. defaul.php, ajax.php….)
Đầu tiên chúng ta tạo 1 file ajax.js (File javascript này đảm nhiệm việc gọi XMLHttpRequest để trao đổi dữ liệu)
Code
File ajax.js

/** FileName: ajaxcore.js
Project Name: Ajax
Date Created: 30/10/2014 10:28:58 PM
Description: File Ajax core, thuần JavaScript, dùng để gọi Server xử lý
Version: 0.0.0.0
Author:	Lê Thanh Tuấn - Khoa CNTT
Author Email: [email protected]
Author Mobile: 0976060432
Author URI: http://tuanitpro.com

License: 
*/
var xmlHttp = null;

function loadXmlHttp() {
    if (window.XMLHttpRequest) { // IE7, Mozilla, Safari, Opera
        xmlHttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE 5.x, 6
        } catch (e) {}
    }
}

function sendRequest(url) {
    loadXmlHttp();
    if (xmlHttp) {
        xmlHttp.open("GET", url, true); // true = async
        xmlHttp.onreadystatechange = onCallback;
        xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xmlHttp.send(null);
    }
}

function onCallback() {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            var r = document.getElementById('results');
            r.innerHTML = xmlHttp.responseText;
        } else {
            alert('Error: ' + xmlHttp.status);
        }
    }
}

function loading() {
    document.getElementById("results").innerHTML = 'Đợi em tí...';
}

function getContent(url) {
    loading();
    sendRequest(url);
}

Cách dùng:

Trang default.aspx Ajax Demo

1. Trên trang HTML tạo một div.
Nơi chứa dữ liệu
2. gọi hàm getContent('URL'); VD: Load Content

Ajax Demo

DateTime: Ajax DateTime:
Vùng chứa dữ liệu, sẽ bị thay thế
http://tuanitpro.com

Trang default.aspx.cs

/** FileName: Default.aspx.cs
Project Name: DateTime Ajax
Date Created: 30/10/2014 10:28:58 PM
Description: Default.aspx, hiển thị dữ liệu
Version: 0.0.0.0
Author:	Lê Thanh Tuấn - Khoa CNTT
Author Email: [email protected]
Author Mobile: 0976060432
Author URI: http://tuanitpro.com
License: 
*/
using System;

public partial class Ajax_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            lblDatTime.Text = DateTime.Now.ToString();
        }
    }
}

Trang Ajax.aspx.cs. Không quan tâm phần giao diện HTML.

/** FileName: Ajax.aspx.cs
Project Name: DateTime Ajax
Date Created: 30/10/2014 10:28:58 PM
Description: Ajax.aspx, trả về kết quả hiển thị lên website
Version: 0.0.0.0
Author:	Lê Thanh Tuấn - Khoa CNTT
Author Email: [email protected]
Author Mobile: 0976060432
Author URI: http://tuanitpro.com
License: 
*/
using System;

public partial class Ajax_Ajax : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(DateTime.Now.ToString());
    }
}

Demo kết quả:

ajax-datetime
Demo Ajax DateTime

Tạo biểu đồ với Google Chart trong ASP.NET MVC

Khi làm việc với các ứng dụng liên quan đến số liệu chúng ta hay có nhu cầu thống kê. Có thể thống kê theo dạng bảng, tuy nhiên nó không trực quan như biểu đồ. Các ứng dụng được sử dụng biểu đồ nhiều nhất phải kể đến các ứng dụng phân tích tài chính như chứng khoán…, phân tích dữ liệu, thời tiết, địa lý, kinh tế… và nhiều lĩnh vực khác của cuộc sống. Biểu đồ cung cấp cho chúng ta cái nhìn trực quan, từ đơn giản đến chi tiết, từ đó đưa ra các phân tích, đánh giá, định hướng một cách hiệu quả hơn.
Để tạo biểu đồ trong ứng dụng web ASP.NET MVC chúng ta có thể dùng các plugin jQuery như Highcharts, Charts.JS , FlotjqPlot… trong đó có cả miễn phí và có phí.
Trong bài viết này sẽ hướng dẫn các bạn sử dụng biểu đồ trong ASP.NET MVC kết hợp JSON, thông qua một thư viện miễn phí, đó là Google Charts. Thư viện này cung cấp cho chúng ta rất nhiều kiểu biểu đồ khác nhau, tùy vào mục đích ứng dụng, như biểu đồ cột, biểu đồ phần trăm (pie), biểu đồ line, biểu đồ bar, area…

Yêu cầu bài toán đơn giản như sau:
Xây dựng website đơn giản bằng ASP.NET MVC thống kê số lượng sinh viên theo lớp học, thứ tự xếp hạng của từng lớp.

Bước 1: Tạo class Lop. Class này chứa các thuộc tính như Tên lớp, số lượng sinh viên, xếp hạng (thứ hạng)

Bước 2: Tạo Controller & View. Chúng ta tạo ra một Controller tên là Chart, View = Index
Index.cshtml

Bước 3: Tạo JsonResult trả về kiểu JSON. Hàm này viết luôn trong file ChartController.cs
Bước 4: Tạo hàm Ajax jQuery lấy dữ liệu từ JsonResult (Các bạn chú ý thêm thư viện jQuery vào.)

Bước 5: Tạo hàm javascript để tạo biểu đồ với Google Chart (Các bạn chú ý thêm thư viện jsapi của Google) Ví dụ 1: Vẽ biểu đồ phần trăm (pie) thể hiện số lượng sinh viên từng lớp.

Demo

Tạo biểu đồ với Google chart trong MVC
Tạo biểu đồ với Google Chart trong MVC

Ví dụ 2: Vẽ biểu đồ cột, thể hiện số lượng sinh viên và xếp hạng từng lớp.
Demo

Tạo biểu đồ cột với Google Chart trong ASP.NET MVC
Tạo biểu đồ cột với Google Chart trong ASP.NET MVC

Code full

ChartController.cs
Index.cshtml

Chúc các bạn thành công.

Hands on with ASP.NET MVC – Covering MVC 6

Sách hay nên đọc dành cho các bạn yêu thích lập trình ASP.NET MVC.

MVC (Model-View-Controller) is the popular Microsoft technology which enables you to build dynamic, data-driven, mobile websites, TDD site. Hands-On with ASP.NET MVC is not only written for those who are going to have affair with MVC for the 1st time, rather it is written in such a way that even experienced professional will love reading this book. This book covers all the tiny steps on using MVC at its best. With complete practical tutorials to illustrate the concepts, you will step by step build one End to End application which covers below mentioned techniques – Controllers, Views, Models, Forms and HTML helpers, Data annotation and Validation, Membership, Authorization, Security rather you will also learn how to bootstrap your design, then how to host the app in AZURE, Web API and Dependency Injection. It also covers MVC 5 and MVC 6 features like, • Mobile optimization, • Improved Scaffolding, • ASP.Net Identity, • One ASP.Net, Bootstrap • Common framework for MVC, • Web API and WebPages, • Self hosting, • Cloud Optimized, • No Build Dependency, • Cross platform support, •

Author(s): Rahul Sahay
Genre: Programming

Language: English
Year: 2014
File Size: 51 Mb
Format: PDF

Download Buy now on Amazon
Rahul Sahay, “Hands on with ASP.NET MVC – Covering MVC 6”

WHO SHOULD TAKE THIS BOOK

Hand-on with ASP.Net MVC is designed to teach ASP.NET MVC, from grass root level to advanced topics. I have written the book in such a way that even if you are new to ASP.Net background, you won’t feel difficulty in understanding the concepts.
I also understand that many ofour readers are familiar with ASP.NET Web Forms, so one important point to understand here that ASP.Net MVC is not a replacement to Web Forms at all. Now, onwards there will be one more design technique to build websites. I have worked hard to make sure that this book is valuable for developers who are experienced with ASP.NET MVC, or even freshers coming out ofcollege. This book is also very well suited to 3rd year and Final year student as this will
help them greatly while building their projects. Also, since ASP.NET MVC is one ofthe hottest trends across industry,
so from the point ofinterview preparation as well, it will be a good reference book. Now, apart from MVC you will also learn how to convert the same app to support mobile browsers, also how to host the app on Azure (Microsoft’s Cloud Version)

ASP.NET MVC 6 Features:

ASP.NET MVC 6 in many terms is a unique framework as it’s a major change in MVC. All these features will be discussed in the last chapter in detail, where we’ll see the glimpse of MVC 6. Below, I have listed some of the common features of MVC 6.

  • Common Framework for MVC,

Web API and Web Pages

  • Smooth Transiting from Web

Pages to MVC

  • Built DI First
  • Runs on IIS or Self Host
  • Based on the new Request

Pipeline in ASP.NET vNext

  • Runs Cloud Optimized
  • No Build Dependency
  • Enhanced developer experience
  • Open Source
  • Cross-Platform Support
Download Buy now on Amazon

Tấn công SQL Injection trong ASP.NET

Với mỗi lập trình viên chúng ta, tạo ra một sản phẩm website chính là đứa con tinh thần, bởi vì bạn đã bỏ ra rất nhiều công sức, ý tưởng sáng tạo để xây dựng nên. Nếu chúng ta làm cho khách hàng, thì nó còn là uy tín, thương hiệu cá nhân của bạn. Để có một sản phẩm như vậy đòi hỏi chúng ta phải làm rất nhiều việc, từ thiết kế giao diện, xây dựng cơ sở dữ liệu, viết code…

Tấn công SQL Injection trong ASP.NET
Tấn công SQL Injection trong ASP.NET

Và còn một điều cực kỳ quan trọng đó chính là vấn đề bảo mật website. Trong thời đại thông tin ngày nay, bảo mật luôn là yếu tố hàng đầu, nhất là những công ty lớn như Facebook, Micrcosoft, các công ty tài chính, ngân hàng. Bạn nghe nói về bảo mật, an toàn thông tin hàng ngày, hàng giờ. Chúng ta, những lập trình viên thì càng nên có ý thức xây dựng sản phẩm bảo mật ngay từ đầu, tức là từ trong code của chúng ta. Nếu bạn nào giữ suy nghĩ rằng, website của mình nhỏ, cần gì bảo mật… thì bài viết này sẽ không phù hợp với bạn. Bài viết này phù hợp với những bạn mới bước chân vào thế giới lập trình web. Còn nếu bạn pro rồi, thì không sao cả, bạn có thể đưa ra những đóng góp ý kiến giúp mình hoàn thiện hơn

Nói về bảo mật thì có rất nhiều lý thuyết mà hẳn bạn đã nghe qua, các hình thức tấn công như:

  1. Tấn công trên tham số truyền
  2. Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross Site Scripting)
  3. Tràn bộ đệm (Buffer OverFlow)
  4. Tấn công SQL (SQL Injection)
  5. Mã hoá URL
  6. Tấn công bằng mã độc
  7. Directory Transversal attack?
  8. Local attack
  9. Tấn công phiên làm việc
  10. Đánh cắp phiên làm việc (Session Hijacking)
  11. Để lộ thông tin
  12. Upload dữ liệu bất hợp lệ
  13. Tấn công từ chối dịch vụ (DDos)
  14. Kỹ thuật tấn công Cross Site Request Forgery (CSRF hay XSRF)

(Bạn nào chuyên sâu, còn hình thức tấn công nào nữa, xin góp ý mình bổ sung thêm)
Nhưng ở đây mình chỉ xin bàn về SQL Injection, là lỗ hổng bảo mật do sự chủ quan, hay thiếu kinh nghiệm của coder chúng ta. Và chỉ chính chúng ta mới khắc phục được, chứ không phải nhờ firewall hay server tốt.
Thật vậy, một sản phẩm dù đẹp như thế nào, bạn quảng cáo nó tốt đến đâu, chạy nhanh ra sao, nhưng nếu bảo mật kém thì hẳn là thiếu sót lớn. Hacker có thể khai thác được cơ sở dữ liệu của bạn, nếu cơ sở dữ liệu của bạn chứa thông tin khách hàng của bạn (Ngân hàng chẳng hạn…) thì bạn đã gián tiếp gây nguy hại cho an toàn thông tin của khách hàng. Tệ hại hơn nó làm gián đoạn hoạt động trên website của bạn, mất uy tín với khách hàng, và nhiều thứ khác nữa…

Vậy SQL Injection là gì? Nó có thể gây hại như thế nào đối với trang web của bạn?
SQL injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp. SQL injection có thể cho phép những kẻ tấn công thực hiện các thao tác, delete, insert, update,… trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy, lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase…
Các khai thác phổ biển của SQL Injection:
– Đăng nhập không mật khẩu
– Truy vấn lấy thông tin
– Cập nhật thông tin
– Xóa thông tin
– Xóa bảng
– Tấn công sử dụng stored-procedures
– …
Video Demo Tấn công SQL Injection trong ASP.NET

Tóm tắt Video

  • Tạo Cơ sở dữ liệu bảng Member (Lưu thông tin thành viên)
  • Tạo dự án ASP.NET mới
  • Tạo trang Đăng nhập, trang quản lý Member
  • Viết code đăng nhập, code tìm kiếm thành viên
  • Demo tấn công SQL Injection
  • Đăng nhập không mật khẩu
  • Truy vấn lấy thông tin bảng Member
  • Thêm, Xóa, Sửa trên bảng Member
  • Xóa bảng Member…
  • Cách phòng tránh.
Trong thực tế thì hoàn toàn không đơn giản như vậy, nhưng không vì thế mà chúng ta chủ quan, lơ là vấn đề bảo mật.
Nếu bạn đã hoàn thành theo hướng dẫn mà vẫn gặp khó khăn, hãy tải mã nguồn ứng dụng tại đây:  Download

Cảm ơn bạn đọc và mình luôn đánh giá cao phản hồi của bạn.

Hướng dẫn cài đặt IIS trên Windows 7, 8, 10

IIS (Internet Information Services) là dịch vụ WebServer trên Windows (có mặt trên các phiên bản khác nhau, XP, Vista, Windows 7, 8, Windows Server). Mặc định hệ thống đã ẩn chức năng đó đi. Tuy nhiên chúng ta hoàn toàn dễ dàng kích hoạt nó lên để sử dụng. Ở đây hướng dẫn các bạn cách bật IIS trên Windows 8, 8.1 (Windows 7 tương tự) để chạy các ứng dụng ASP.NET, ASP.NET MVC.

Các bước để cài đặt IIS trên Windows 8, Windows 10

Trên thanh Charm chọn Search, chọn Setting gõ Programs and Features

tuanitpro.com-cai-dat-iis-buoc-1

Trong cửa sổ Programs and Features Click Turn Windows features on or off

tuanitpro.com-cai-dat-iis-buoc-2

Mở rộng Internet Information Service. Trong đó có 3 phần, bạn chỉ cần quan tâm Web Management Tools & World Wide Web Services. Mở rộng 2 nhánh này và tick chọn vào checkbox. (Mẹo: nên chọn hết để sau này khỏi mất công đôi khi không chạy)

tuanitpro.com-cai-dat-iis-buoc-3

Nhấn OK và chờ vài phút để hệ thống cập nhật lại. Khởi động lại máy tính của bạn nếu cần.

tuanitpro.com-cai-dat-iis-buoc-4

Bạn mở trình duyệt lên gõ: http://localhost hoặc http://127.0.0.1. Nếu trình duyệt xuất hiện màn hình như dưới đây thì xin chúc mừng, bạn đã cài đặt thành công. (Hình bên dưới là IIS 8.5 trên Windows 8.1, của bạn có thể khác một chút)

tuanitpro.com-cai-dat-iis-buoc-5

Để khởi động IIS, vào ô Search gõ IIS

tuanitpro.com-cai-dat-iis-buoc-6

tuanitpro.com-cai-dat-iis-buoc-7

Chúc các bạn thành công.

Hướng dẫn Cách thêm site mới vào IIS

Tìm hiểu ASP.NET MVC và sự khác biệt với ASP.NET WebForm

Thời gian gần đây, khi lập trình web trên ngôn ngữ ASP.NET, các bạn thường quan tâm ngay và luôn đến MVC. Bạn cũng có nghe về ASP.NET WebForm truyền thống, cả những điểm yếu và giới hạn của nó. Không lẽ ASP.NET WebForm đã chết, không hoàn toàn như vậy, Microsoft muốn mọi người hiểu rằng có hai nền tảng song song nhau, hỗ trợ cho nhau, và cả hai đều là đối tượng cho việc phát triển hiện tại. Theo đánh giá của bản thân người viết, đã làm việc với 2 nền tảng công nghệ này, thì năng lực của chúng hoàn toàn tương đương nhau. Việc chọn lựa mô hình nào để học, hay làm việc là tùy hoàn cảnh, tùy sở thích người học. 🙂

Trước khi nêu ra sự khác biệt ASP.NET MVCASP.NET WebFrom ta cần biết một số khái niệm cơ bản về mô hình MVC.

Để tìm hiểu thêm về MVC 4, MVC 5 bạn có thể tải về 2 cuốn ebook tại đây. Sách nay nên đọc.

Tổng quan về ASP.NET MVC:

ASP.NET MVC
ASP.NET MVC

Mẫu kiến trúc Model – View – Controller được sử dụng nhằm chi ứng dụng thành ba thành phần chính: model, view và controller. Nền tảng ASP.NET MVC giúp cho chúng ta có thể tạo được các ứng dụng web áp dụng mô hình MVC thay vì tạo ứng dụng theo mẫu ASP.NET Web Forsm. Nền tảng ASP.NET MVC có đặc điểm nổi bật là nhẹ (lighweigt), dễ kiểm thử phần giao diện (so với ứng dụng Web Forms), tích hợp các tính năng có sẵn của ASP.NET. Nền tảng ASP.NET MVC được định nghĩa trong namespace System.Web.Mvc và là một phần của name space System.Web.

MVC là một mẫu thiết kế (design pattern) chuẩn mà nhiều lập trình viên đã quen thuộc. Một số loại ứng dụng web sẽ thích hợp với kiến trúc MVC. Một số khác vẫn thích hợp với ASP.NET Web Forms và cơ chế postbacks. Đôi khi có những ứng dụng kết hợp cả hai kiến trúc trên.

– Model: Được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa dữ liệu. Tất cả các nghiệp vụ logic được thực thi ở Model. Dữ liệu vào từ người dùng sẽ thông qua View để kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất, xác nhận và lưu dữ liệu là một phần của Model.

– View: Hiển thị các thông tin cho người dùng của ứng dụng và được giao nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gởi đi các yêu cầu đến bộ điều khiển, sau đó là nhận lại các phản hồi từ bộ điề khiển và hiển thị kết quả cho người dùng. Các trang HTML, JSP, các thư viện thể và các file nguồn là một phần của View.

– Controller: là tầng trung gian giữa Model và View. Controller được giao nhiệm vụ nhận các yêu cầu từ phía máy khách. Một yêu cầu được nhận từ máy khách được thực hiện bởi một chức năng logic thích hợp từ thành phần Model và sau đó sinh ra các kết quả cho người dùng và được thành phần View hiển thị. ActionServlet, Action, ActionForm, struts-config.xml là các thành phần của Controller.

Lựa chọn áp dụng MVC trong xây dựng ứng dụng

Bạn cần phải xem xét kỹ càng việc áp dụng mô hình ASP.NET MVC hay mô hình ASP.NET Web Forms khi xây dựng một ứng dụng. Mô hình MVC không phải là mô hình thay thế cho Web Forms, bạn có thể dùng một trong hai mô hình.

Trước khi quyết định sử dụng MVC hay Web Forms cho một web site cụ thể, bạn cần phải phân tích lợi ích khi chọn một trong hai hướng.

Lợi ích của ứng dụng web dựa trên mô hình MVC

Nền tảng ASP.NET MVC mang lại những lợi ích sau:

  • 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 ba thành phần model, view, controller
  • Nó 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.
  • Nó 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. Nhờ đó bạn có thể thiết kế một hạ tầng quản lý định tuyến.
  • Hỗ trợ tốt hơn cho mô hình phát triển ứng dụng hướng kiểm thử (TDD)
  • Nó hỗ trợ tốt cho các ứng dụng được xây dự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

Lợi ích của ứng dụng được xây dựng trên nền tảng Web Forms

  • Nó hỗ trợ cách lập trình hướng sự kiện, quản lý trạng thái trên giao thức HTTP, tiện dụng cho việc phát triển các ứng dụng Web phục vụ kinh doanh. Các ứng dụng trên nền tảng Web Forms cung cấp hàng tá các sự kiện được hỗ trợ bởi hàng trăm các server controls.
  • Sử dụng mẫu Page Controller.
  • Mô hình này sử dụng view state hoặc server-based form, nhờ đó sẽ giúp cho việc quản lý trạng thái các trang web dễ dàng.
  • Nó rất phù hợp với các nhóm lập trình viên quy mô nhỏ và các thiết kế, những người muốn tận dụng các thành phần giúp xây dựng ứng dụng một cách nhanh chóng.
  • Nói tóm lại, áp dụng Web Forms giúp giảm bớt sự phức tạp trong xây dựng ứng dụng, bởi vì các thành phần (lớp Page, controls,…) được tích hợp chặc chẽ và thường thì giúp bạn viết ít code hơn là áp dụng theo mô hình MVC.

Các tính năng của nền tảng ASP.NET MVC

  • Tách bạch các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic giao diện), dễ dàng kiểm thử và mặc định áp dụng hướng phát triển TDD. Tất cả các tính năng chính của mô hình MVC được cài đặt dựa trên interface và được kiểm thử bằng cách sử dụng các đối tượng mocks, mock object là các đối tượng mô phỏng các tính năng của những đối tượng thực sự trong ứng dụng. Bạn có thể kiểm thử unit-test cho ứng dụng mà không cần chạy controller trong tiến trình ASP.NET, và điều đó giúp unit test được áp dụng nhanh chóng và tiện dụng. Bạn có thể sử dụng bất kỳ nền tảng unit-testing nào tương thích với nền tảng .NET.
  • MVC là một nền tảng khả mở rộng (extensible) & khả nhúng (pluggable). Các thành phần của ASP.NET MVC được thiết kể để chúng có thể được thay thế một cách dễ dàng hoặc dễ dàng tùy chỉnh. Bạn có thể nhúng thêm view engine, cơ chế định tuyến cho URL, cách kết xuất tham số của action-method và các thành phần khác. ASP.NET MVC cũng hỗ trợ việc sử dụng Dependency Injection (DI) và Inversion of Control (IoC). DI cho phép bạn gắn các đối tượng vào một lớp cho lớp đó sử dụng thay vì buộc lớp đó phải tự mình khởi tạo các đối tượng. IoC quy định rằng, nếu một đối tượng yêu cầu một đối tượng khác, đối tượng đầu sẽ lấy đối tượng thứ hai từ một nguồn bên ngoài, ví dụ như từ tập tin cấu hình. Và nhờ vậy, việc sử dụng DI và IoC sẽ giúp kiểm thử dễ dàng hơn.
  • ASP.NET MVC có thành phần ánh xạ URL mạnh mẽ cho phép bạn xây dựng những ứng dụng có các địa chỉ URL xúc tích và dễ tìm kiếm. Các địa chỉ URL không cần phải có phần mở rộng của tên tập tin và được thiết kế để hỗ trợ các mẫu định dạng tên phù hợp với việc tối ưu hóa tìm kiếm (URL) và phù hợp với lập địa chỉ theo kiểu REST.
  • Hỗ trợ sử dụng đặc tả (các thẻ) của các trang ASP.NET(.aspx), điều khiển người dùng (.ascx) và trang master page (.marter). Bạn có thể sử dụng các tính năng có sẵn của ASP.NET như là sử dụng lồng các trang master page, sử dụng in-line expression (<%= %>), sử dụng server controls, mẫu, data-binding, địa phương hóa (localization) và hơn thế nữa.
  • Hỗ trợ các tính năng có sẵn của ASP.NET như cơ chế xác thực người dùng, quản lý thành viên, quyền, output caching và data caching, seession và profile, quản lý tình trạng ứng dụng, hệ thống cấu hình…
  • ASP.NET MVC 3 còn bổ sung một view engine mới là Razor View Engine cho phép thiết lập các view nhanh chóng, dễ dàng và tốn ít công sức hơn so với việc sử dụng Web Forms view engine.

Bảng so sánh giữa ASP.NET Webform và ASP.NET MVC

Các tính năng ASP.NET WebForm ASP.NET MVC
Kiến trúc chương trình Kiến trúc mô hình WebForm –> Bussiness –> Database Kiến trúc sử dụng việc phân chia chương trình thành: Models, Views, Controllers
Cú pháp chương trình Sử dụng cú pháp của WebForm, tất cả các sự kiện và controls do server quản lý Các sự kiện được điều khiển bởi controllers, các controls không do server quản lý.
Truy cập dữ liệu Sử dụng hầu hết các công nghệ truy cập dữ liệu trong ứng dụng Phần lớn dùng LINQ và SQL class để tạo mô hình truy cập đối tượng.
Debug Debug phải thực hiện tất cả bao gồm các lớp truy cập dữ liệu, sự hiển thị, điều khiển các controls. Debug có thể sử dụng các unit test để kiểm tra các phương thức trong controllers.
Tốc độ phân tải Tốc độ phân tải chậm khi trong trang có quá nhiều các controls vì ViewState quá lớn Phân tải nhanh hơn do không phải quản lý ViewState để quản lý các controls trong trang.
Tương tác với JavaScript Tương tác với JavaScript khó khăn vì các controls được điều khiển bởi server Tương tác với JavaScript dễ dàng vì các đối tượng không do server quản lý điều khiển không khó
URL address Cấu trúc địa chỉ URL có dạng:
<filename>.aspx?&<các tham số>
Cấu trúc địa chỉ rành mạch theo dạng Controllers/Action/ID

 

ASP.NET MVC4 Sending Email

ASP.NET MVC 4 SendMail
ASP.NET MVC 4 Send Mail
[ASP.NET MVC4 Sending Email] Trong quá trình lập trình web, luôn có trường hợp chúng ta cần gửi email cho ai đó, người dùng của chúng ta, ví dụ khi đăng ký thành viên, cần gửi email kích hoạt. Khi quên mật khẩu, gửi email yêu cầu lấy lại.  Khi khách hàng mua hàng online, cần gửi email xác nhận, hay có phản hồi từ người dùng, và nhiều trường hợp khác nữa…

Trong phạm vi hướng dẫn này, tôi trình bày các bạn cách gửi email từ gmail trong MVC 4, bạn có thể áp dụng cho MVC 3, MVC 5 hay ASP.NET webform. Kịch bản của chúng ta đó là form liên hệ, phản hồi trên website. Khi một khách hàng viếng thăm và để lại lời nhắn, nó sẽ gửi email về hòm thư của chúng ta thiết lập trước (hoặc gửi thư cảm ơn khách hàng phản hồi – tùy chọn)

Để tìm hiểu thêm về MVC 4, MVC 5 bạn có thể tải về 2 cuốn ebook tại đây. Sách nay nên đọc.

Tóm tắt video:

  • Tạo một dự án mới (New Project)
  • Tạo ContactModel class
  • Tạo EmailService class
  • Tạo SendMail Controller
  • Tạo Form gửi liên hệ
  • Demo kết quả.
  • Áp dụng được cho MVC 3, 4 , 5, ASP.NET webform

Nếu bạn đã hoàn thành theo hướng dẫn mà vẫn gặp khó khăn, hãy tải mã nguồn ứng dụng tại đây: Download

Cảm ơn bạn đọc và phản hồi của bạn luôn được đánh giá cao.

——–

UpdateTrong nhiều trường hợp, các bạn không thể gửi email được. Xin vui lòng đừng bỏ cuộc, hãy đi tìm nguyên nhân & cách khắc phục vấn đề. Đầu tiên sau khi download mã nguồn về, các bạn hay thay đổi thành email của các bạn. Email trong demo của mình đã đổi password, nên chắc chắn không thể gửi được.

Các bạn dùng email của mình. Lưu ý, hiện nay Google đã thay đổi chính sách bảo mật. Các bạn không thể dùng password mà các bạn đăng nhập hàng ngày để gửi email. Thay vào đó google cho phép chúng ta tạo ra một loại password mới, đó là App Passwords. Đầu tiên các bạn truy cập vào đây để tạo 2 lớp bảo mật cho Gmail. Sau đó truy cập vào đây để tạo mới một app password. Các bạn sẽ dùng password này để gửi email. Password này không dùng thay thế password hiện tại. Nên bạn không thể dùng để đăng nhập Gmail.

Chúc các bạn thành công.

Pro ASP.NET MVC 4, 4th Edition

Pro ASP.NET MVC 4
Pro ASP.NET MVC 4

The ASP.NET MVC 4 Framework is the latest evolution of Microsoft’s ASP.NET web platform. It provides a high-productivity programming model that promotes cleaner code architecture, test-driven development, and powerful extensibility, combined with all the benefits of ASP.NET.

ASP.NET MVC 4 contains a number of significant advances over previous versions. New mobile and desktop templates (employing adaptive rendering) are included together with support for jQuery Mobile for the first time. New display modes allow your application to select views based on the browser that’s making the request while Code Generation Recipes for Visual Studio help you auto-generate project-specific code for a wide variety of situtations including NuGet support.

In this fourth edition, the core model-view-controller (MVC) architectural concepts are not simply explained or discussed in isolation, but are demonstrated in action. You’ll work through an extended tutorial to create a working e-commerce web application that combines ASP.NET MVC with the latest C# language features and unit-testing best practices. By gaining this invaluable, practical experience, you’ll discover MVC’s strengths and weaknesses for yourself—and put your best-learned theory into practice.

The book’s authors, Steve Sanderson and Adam Freeman, have both watched the growth of ASP.NET MVC since its first release. Steve is a well-known blogger on the MVC Framework and a member of the Microsoft Web Platform and Tools team. Adam started designing and building web applications 15 years ago and has been responsible for some of the world’s largest and most ambitious projects. You can be sure you are in safe hands.

What you’ll learn

  • Gain a solid architectural understanding of ASP.NET MVC 4, including basic MVC
  • Explore the entire ASP.NET MVC Framework
  • Learn what’s new in version 4 and how how best to apply these new features
  • See how MVC and test-driven development work in action
  • Capitalize on your existing knowledge quickly and easily through comparison of features in classic ASP.NET to those in ASP.NET MVC

Who this book is for

This book is for web developers with a basic knowledge of ASP.NET and C# who want (or need) to start using the new ASP.NET MVC 4 Framework.

Book Details

Publisher: Apress
By: Adam Freeman
ISBN: 978-1-4302-4236-9
Year: 2012
Pages: 756
Language: English
File size: 24.8 MB
File format: PDF
Download

Table of Contents

1. What’s The Big Idea
2. Your first MVC Application
3. The MVC Pattern
4. Essential Language Features
5. Working with Razor
6. Essential Tools for MVC
7. Sports Store: A Real Application
8. Sports Store: Navigation
9. Sports Store: Cart
10. Sports Store: Admin
11. Sports Store: Security and Finishing Touches
12. Overview of MVC Projects
13. URL Routing
14. Advanced Routing Features
15. Controllers and Actions
16. Filters
17. Controller Extensbility
18. Views
19. Helper Methods
20. Templated Helper Methods
21. URL and Ajax Helper Methods
22. Model Binding
23. Model Validation
24. Bundles and Display Modes
25. Web API
26. Deployment

Download