Series C# hay ho: Tại sao WinForm vẫn “chưa chết” – Có nên học WinForm hay không ?

WinFom là một công nghệ của Microsoft, cho phép lập trình các ứng dụng Windows. Nhờ tính tiện ích, dễ code, giao diện design kéo thả đơn giản, … Win Form đã được sử dụng để phát triển rất nhiều ứng dụng. Vì tuổi đời đã khá cao (ra đời vào năm 2003) nên WinForm chính thức bị Microsoft khai tử vào năm 2014. Tuy nhiên, ở Việt Nam, Win Form vẫn còn sống khỏe, sống tốt. Tại sao vậy? Thử đọc bài viết để biết nhé.

2

WinForm, người bạn của tuổi thơ – đơn giản mà hiệu quả

Đa phần lập trình viên C#. NET nào cũng từng học/sử dụng Win Form. Thuở còn ngồi trên ghế nhà trường, mình được tiếp xúc với ngôn ngữ C# lần đầu vào năm thứ hai, vài ngày sau đó là WinForm. Thật sự, mình rất ấn tượng khi lần đầu tiếp xúc với WinForm: Giao diện kéo thả dễ sử dụng; Gắn các event cho các button chỉ cần double click, lại hỗ trợ quá trời event như click, hover,…; Việc viết code cũng vô cùng trực quan: từ việc lấy text từ TextBox cho tới show dữ liệu bằng MessageBox, hoặc dùng Grid để kết nối SQL. Đó là một trong các lý do mà nó được các trường/sinh viên ưa thích: WinForm rất dễ học và dễ dạy.

Vì dễ code, chỉ cần kéo thả, lại có nhiều component có sẵn, WinForm rất phù hợp để làm các phần mềm quản lý, tính tiền, thống kê… . Đây cũng là loại ứng dụng mà các công ty/doanh nghiệp vừa và nhỏ cần. Ngoài ra, chỉ cần sử dụng component như TelerikUI hoặc DevExpress (Ở Việt Nam, hầu như chúng ta đều dùng crack nên các component này hoàn toàn miễn phí), WinForm có thể tạo ra các giao diện hiện đại, đẹp như mơ, long lanh hoa mĩ.

winforms-grid-control-banner

Với những ưu điểm trên, WinForm vẫn sống khỏe, sống tốt ở Việt Nam. Tuy nhiên, nếu có ai hỏi mình: Em có nên học và tập trung vào WinForm không? Câu trả lời của mình sẽ là: Học cho biết thì được, chứ đừng nên tập trung công sức và thời gian vào nó. Vì sao vậy? Đọc phần sau sẽ rõ.

Đừng nên đầu tư quá nhiều thời gian/công sức vào WinForm

WinForm đã bị Microsoft khai tử, do đó vài năm sau rất có thể nó cũng sẽ tử ẹo như VB6. Hiện nay, số lượng các công ty tuyển dụng yêu cầu WinForm cũng không nhiều. Nếu công ty đòi hỏi kiến thức WinForm, có lẽ bạn sẽ phải bảo trì một (hoặc nhiều) dự án WinForm cũ rích. Hẳn là không bạn nào muốn làm công việc bảo trì nhàm chán qua ngày này tháng nọ phải không?

WPF là đứa đàn em “sinh sau đẻ muộn”, với mục đích kế thừa Win Form. WPF sử dụng ngôn ngữ XAML để làm giao diện nên khá linh hoạt: hỗ trợ animation, tạo user control, … tốt hơn WinForm nhiều. Microsoft cũng muốn định hướng cho giới developer sử dụng WPF để thay thế cho WinForm, có khá nhiều dự án cũng đang migrate từ WinForm sang WPF.
IC120105

Nhắc lại lời khuyên của mình về WinForm: Có thể thử tiếp xúc với nó, cố gắng nắm vững các khái niệm: Event, Control, Component, … vì chúng khá có ích. Tuy nhiên, đừng nghiên cứu quá sâu về nó, còn nhiều thứ đáng học hỏi hơn nhiều.  Về phần WPF thì cũng nên thử, trong WPF có một số khái niệm rất hay: mô hình MVVM, data-binding, … các khái niệm này khá hữu dụng khi sau này bạn học AngularJS/các  javascript framework khác. Kiến thức XAML có được khi học WFP sẽ giúp ích cho bạn khi bạn muốn tập viết app cho Windows Phone.

Còn WebForm thì sao?

Nhắc tới WinForm cũng phải nói đôi chút về WebForm. Từ sau khi ASP.NET MVC ra đời, WebForm có vẻ bị thất sủng. Người thì chê nó chậm, nặng nề (viewstate), kẻ thì bảo nó khó tích hợp Ajax, khó quản lý HTML. Nói vậy cũng không sai, nhưng lại khá là oan ức cho WebForm. Nó được ra đời để lập trình viên có thể viết ứng dụng Web một cách nhanh chóng đơn giản dễ dàng, chỉ cần kéo thả component như WinForm, không cần phải học đủ thứ về Web như Response, Request, Query String, Params, ….

Nhiều người cho rằng WebForm cũng sẽ chết, và ASP.NET MVC sẽ hoàn toàn thay thế nó. Theo ý kiến cá nhân mình, WebForm vẫn sẽ sống khỏe, sống tốt, vì có vô số ứng dụng được xây dựng dựa trên nó, cũng như có vô số lập trình viên có kinh nghiệm WebForm. Một công nghệ sẽ chưa chết chừng nào nó vẫn còn hữu dụng.

Tuy nhiên, nếu phải chọn giữa WebForm và ASP.NET MVC thì mình khuyên các bạn nên học MVC nhé. Hiện tại các công ty tuyển nhân sự C#.NET đều đòi hỏi kiến thức về MVC. Biết đâu 3-5 năm nữa sẽ có thứ khác hay hơn “đè chết” ASP.NET MVC cũng nên :P. À mà hiện giờ cũng có rồi ấy chứ. Xây dựng ứng dụng dạng SPA (Single-page Application), sử dụng javascript cho front-end và REST API cho back-end cũng là một giải pháp được nhiều developer/công ty lựa chọn.

Một số bài so sánh khá hay về WebForm và ASP.NET MVC:

http://hoccachlam.com/so-sanh-asp-net-web-form-va-asp-net-mvc/

http://tuanitpro.com/tim-hieu-asp-net-mvc-va-su-khac-biet-voi-asp-net-webform

Trên đây là chỉ suy nghĩ của mình, còn các bạn thì sao? Hãy chia sẻ suy nghĩ/kinh nghiệm của bản thân về WinForm/WebForm trong phần comment nhé.

 

 

8 thoughts on “Series C# hay ho: Tại sao WinForm vẫn “chưa chết” – Có nên học WinForm hay không ?”

  1. Bên mình cũng đang xây dựng 1 dự án CMS base trên nền webform. Webform đc lợi thế về việc sử dụng lại các control, nếu cố gắng optimize các hạn chế của webform thì webform vẫn là 1 lựa chọn cho việc phát triển các hệ thống quản lý trên nền web

    Liked by 1 person

  2. Anh có thể viết nhiều về javascrip được k anh,chia sẻ nên học js như thế nào được không a,em không biết học js bắt đầu từ đâu a!

    Like

  3. Xin lỗi ad em dùng Visual Studio 2015 vẫn thấy hỗ trợ winform C# mà ad. Em không hiểu mong ad chỉ bảo cho

    Liked by 1 person

Leave a comment