Sử dụng WCF trên ứng dụng Windows Form

Sử dụng WCF trên ứng dụng Windows Form
5 (100%) 2 vote[s]

Trong bài viết trước các bạn đã biết cách sử dụng WCF Service trên ứng dụng Windows Phone. Nếu bạn chưa biết cách sử dụng WCF Service hãy cùng xem lại các bài viết này:

Trong bài viết này chúng ta sẽ cùng tìm hiểu cách thức sử dụng WCF trên ứng dụng Windows Form.

Mở đầu

Trong kỉ nguyên của điện toán đám mây thì các lập trình viên thường sẽ thấy và quan tâm nhiều hơn đến các ứng dụng web và mobile thế nhưng với các ứng dụng đòi hỏi độ bảo mật cao, hiệu năng nhanh, giao diện đẹp đẽ, tính năng phong phú như các ứng dụng cho doanh nghiệp thì ứng dụng Windows Form lại hết sức phù hợp. Tuy Microsoft đã ra mắt công nghệ WPF để làm công nghệ chủ đạo trong việc xây dựng các ứng dụng Desktop nhưng thực sự công nghệ này chưa thành công bởi hiệu năng và độ trưởng thành của nó chưa thể bằng công nghệ Windows Form. Vì vậy nhu cầu xây dựng các ứng dụng Windows Form vẫn rất lớn, trong bài viết này chúng ta sẽ cùng tìm hiểu cách thức xây dựng một ứng dụng Windows Form quản lý Sinh viên sử dụng WCF Service để thao tác dữ liệu.

Cách thức sử dụng WCF Service trên Windows Form tương tự như trên ứng dụng Windows Phone 8.1 Silverlight đó là sử dụng Add Service Reference.

Tạo WCF Service thao tác dữ liệu

Trước tiên chúng ta sẽ tạo WCF Service để tương tác dữ liệu.

  • Bước 1: Trong Visual Studio 2013 chúng ta tạo mới 1 project web

  • Bước 2: Thêm Item mới cho project và chọn WCF Service

  • Bước 3: Xóa gen code mặc định của Visual Studio và bổ sung 4 method thao tác dữ liệu như bên dưới:


    Ở đây chúng ta sử dụng class Student để lưu thông tin Sinh viên truyền qua lại giữa client và server

  • Bước 4: Implement các method, để demo ở đây chúng ta sẽ không sử dụng database mà sẽ dùng thẳng một static List như bên dưới thay thế bảng dữ liệu database

  • Bước 5: Service đã xây dựng xong, bước cuối cùng là kiểm tra bằng browser xem mọi thứ đã ổn chưa

Như vậy là phần chuẩn bị service đã xong, chúng ta cùng sang phần tiếp theo đó là xây dựng một ứng dụng Windows form sử dụng service này

Sử dụng WCF Service trên Winform Application

Trong phần này chúng ta sẽ xây dựng một ứng dụng Winform quản lý sinh viên sử dụng WCF Service ở trên. Cách thức xây dựng bao gồm 5 bước đơn giản như sau:

  • Bước 1: Trong solution Tungnt.NET.WCFWinForm ta tạo một Project Windows Form App như hình dưới

  • Bước 2: Thiết kế giao diện ứng dụng Windows Form, ứng dụng này sẽ đơn giản chỉ gồm 1 DataGridView và các button Thêm, Sửa, Xóa, Nạp
    • Đổi tên Form1 thành StudentManagerForm và đổi tên Title Form thành Student Manager
    • Thêm ToolStrip có 4 chức năng Thêm, Sửa, Xóa, Nạp theo các bước: Thêm Toolstrip từ Toolbar, Thêm các Item chuẩn, Chỉnh sửa các Item Chuẩn

      Khi chỉnh sửa các Item chuẩn một số thuộc tính cần chú ý đặt lại như: tên toolitem, Text của toolItem và đặc biệt là DisplayStyle: ImageAndText để hiển thị cả Image và Text như hình dưới
    • Thêm SplitContainer, chuyển mode về Horizontal Splitter Orientation.Sau đó kéo DataGridView vào Panel1, chọn Dock in Parent Container, đặt tên là gridStudent, chọn selectionMode = FullRowSelect để lựa chọn cả một row trên Grid chứ không phải từng cellCuối cùng thiết kế giao diện để Thêm, Sửa một sinh viên trong Panel2 như hình dưới, chú ý Label đặt AutoSize bằng FalseTextAlign bằng MiddleLeft cho đẹp

      Chúng ta đã vẽ xong được một giao diện ứng dụng Winform có các chức năng cơ bản:

  • Bước 3: Right-click vào References và chọn Add Service Reference. Sau đó ta nhấn Discover để tìm các service trong cùng Solution. Ta sẽ thấy WCFServiceDemo service xuất hiện, ta tiến hành đặt tên Namespace service là WCFDemo và nhấn OK


  • Bước 4: Viết Code xử lý cho các sự kiện trên Toolbar và button Save. (Chú ý: double click vào từng toolItem và button Save trên designer để Visual Studio sinh cho ta các event handler tương ứng)
    Ở đây trong bài này để phục vụ mục đích demo nên chúng ta không sử dụng các cơ chế binding tự động qua BindingSource cũng như DataSet trên DataGridView mà sẽ viết hoàn toàn trong code.

Sau khi đã hoàn tất 4 bước trên chúng ta có thể chạy và hưởng thụ ngay kết quả:

Kết luận

Trong bài viết này chúng ta đã cùng tìm hiểu cách thức sử dụng WCF trên ứng dụng Windows Form. Mặc dù công nghệ Windows Form đã ra đời rất lâu và các lập trình viên ngày nay không thực sự hào hứng với nó nhưng cho đến hiện nay nó vẫn rất thịnh hành trong việc xây dựng các ứng dụng cho doanh nghiệp. Vì vậy nhu cầu nắm vững ứng dụng Winform nhất là việc kết nối sử dụng service là rất quan trọng. Ví dụ demo trong bài này hết sức cơ bản nên không đặt nặng việc sử dụng database cũng như thiết kế ở phía Windows Form, các bạn hoàn toàn có thể nghiên cứu để mở rộng thêm.

Trong các bài viết sau chúng ta sẽ cùng đi sâu hơn tìm hiểu cách thức xây dựng ứng dựng Windows form hoàn chỉnh từ việc thiết kế giao diện cho đến việc sử dụng Database.

Hy vọng bài viết này sẽ giúp ích cho các bạn trong quá trình xây dựng các ứng dụng của riêng mình. Nếu bạn có bất kì câu hỏi hay kinh nghiệm nào hãy chia sẻ bằng comment bên dưới bài viết và đừng quên chia sẻ cho bạn bè nếu thấy hữu ích.

Happy coding. Stay tuned.

P/s: Source code example các bạn có thể download tại đây: WCFWinformDemo

Comments

  1. Nam says

    Service của em viết bằng nodejs, có GET, POST, PUT, DELETE
    dùng trên winform như nào vậy anh.

  2. Nguyễn Viết Khánh says

    Anh ơi cho em hỏi là khi áp ụng vào những phần mềm có dữ liệu lớn thì WCF có thể áp dụng để giải quyết những loại phầm mềm nào ạ! Giống như bài toán về CRM (Customer Relationship Management: Quản lý quan hệ khách hàng) ấy ạ! Em cảm ơn

    • tungnt185 says

      Hi Khánh,

      WCF rất mạnh và có thể ứng dụng để giải quyết tất cả các loại bài toán vì nó chỉ là công nghệ kết nối thôi.

      Regards

  3. Toan says

    1. Chào anh, em mới tìm hiểu về c#, và data base. em muốn hỏi, trong ví dụ này, nếu mình sử dụng winform kết nối trực tiếp với database có được ko ạ.
    Sử dụng WCF trung gian giữa from và data base, thì có ích lợi gì ạ.

    2. là trong bài viết của anh, đoạn tạo project WCF, vì sao lại ko chọn vào mục WCF chọn WCF class library, mà lại chọn vào web và chọn Asp Net Empty Web Application.

    Cảm ơn anh ạ

    • tungnt185 says

      Hi Toàn,

      1. Hoàn toàn có thể kết nối trực tiếp với Database bằng ADO.NET hoặc Entity Framework nhé. Sử dụng WCF trung gian thì mình có thể đưa service này lên online và các ứng dụng Winform có thể kết nối được đến để tương tác như ứng dụng Mobile vậy.
      2. Mình không chọn WCF class library vì muốn minh họa từ đầu cho các bạn cách thức để tạo WCF service.

      Thanks

Leave a Reply to Nguyễn Viết Khánh Cancel reply

Your email address will not be published. Required fields are marked *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.