[Series C#] TẠI SAO WINFORM VẪN “CHƯA CHẾT” – CÓ NÊN HỌC WINFORM HAY KHÔNG ?

9/16/2020 2:54 PM | Lập trình

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é.

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ĩ.

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.
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.

Tác giả: Phạm Huy Hoàng

Tin tức khác

  • Tạo chatbot với CHAT GPT sử dụng C#

    Tạo chatbot với CHAT GPT sử dụng C#

    Trong hướng dẫn này, chúng ta sẽ đi sâu vào quá trình xây dựng chatbot bằng ChatGPT và C#. Chúng tôi sẽ đề cập đến mọi thứ, từ thiết lập quyền truy cập API ChatGPT đến triển khai chatbot của bạn. Bắt đầu nào!

  • Remote SQL Server. Cách mở port 1433 để kết nối với sqlserver từ xa.

    Remote SQL Server. Cách mở port 1433 để kết nối với sqlserver từ xa.

    Hiện nay nhiều người có xây dựng cơ sở dữ liệu trên server và kết nối tới để làm việc cho tiện. Nên mình chia sẻ bài viết này cho người mới nhé.

  • Sự khác nhau giữa Application, Virtual Direction và Site. Cách tạo 1 Virtual Direction.

    Sự khác nhau giữa Application, Virtual Direction và Site. Cách tạo 1 Virtual Direction.

    Trong IIS, bạn có thể tạo các trang web, ứng dụng và thư mục ảo để chia sẻ thông tin với người dùng qua Internet, mạng nội bộ hoặc mạng phụ. Mặc dù các khái niệm này đã tồn tại trong các phiên bản trước của IIS, một số thay đổi trong IIS 7 trở lên ảnh hưởng đến định nghĩa và chức năng của các khái niệm này. Quan trọng nhất, các trang web, ứng dụng và thư mục ảo giờ đây hoạt động cùng nhau theo mối quan hệ phân cấp như những khối xây dựng cơ bản để lưu trữ nội dung trực tuyến và cung cấp dịch vụ trực tuyến.

  • Design pattern là gì? Tại sao nên sử dụng Design pattern?

    Design pattern là gì? Tại sao nên sử dụng Design pattern?

    Design pattern là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ biến trong thiết kế phần mềm mà chúng ta thường gặp phải hàng ngày. Đây là tập các giải pháp đã được suy nghĩ, đã giải quyết trong tình huống cụ thể.

  • CDN là gì? Khi nào thì cần xài CDN cho website

    CDN là gì? Khi nào thì cần xài CDN cho website

    Thuật ngữ CDN có thể bạn sẽ bắt gặp khá nhiều bài viết trên thachpham.com, hoặc khi bạn cần một người có kinh nghiệm tư vấn giải pháp tiết kiệm băng thông máy chủ và tăng tốc độ website đều sẽ được nghe tư vấn là sử dụng CDN. Vậy CDN chính xác là cái gì, có bao nhiêu loại CDN, và website của bạn có thích hợp để sử dụng CDN không thì bài này sẽ cung cấp cho bạn các thông tin cần thiết đó.

  • Giao thức HTTP và HTTPS là gì? Tại sao nên sử dụng HTTPS?

    Giao thức HTTP và HTTPS là gì? Tại sao nên sử dụng HTTPS?

    Môi trường internet phát triển, kéo theo tội phạm mạng tăng cao, vì thế cần có những chuẩn bảo mật web cao hơn. Đó là lí do giao thức HTTPS dần thay thế hoàn toàn HTTP. Vậy, giao thức HTTPS là gì? HTTP và HTTPS khác nhau như thế nào? Và tại sao các website nên dùng HTTPS thay vì HTTP? Bài viết này sẽ giúp bạn giải đáp tất cả những thắc mắc đó.

  • Tích hợp zalo vào website.

    Tích hợp zalo vào website.

    Nếu bạn là một người có website bán hàng thì việc liên hệ thuận lợi nhanh cho khách hàng luôn là ưu tiên hàng đầu. Cũng chính vì lí dó này mình đã tìm hiểu sau khi chèn cho website của mình. Thấy hay nên chia sẻ cho mọi người có nhu cầu.