Windows phone external library and Nuget Package Manager

Phần 1: Giới thiệu

Đây là bài viết mình muốn chia sẻ về các bộ thư viện mở trên môi trường Windows Phone 8/8.1, dành cho các bạn đã, đang và sẽ lập trình ứng dụng trên môi trường Windows Phone. Vì mình sẽ không nhắc lại các bước cơ bản như tạo project hay ngôn ngữ c# nên nếu có thắc mắc gì các bạn cứ thoải mái hỏi lại, mình sẽ giải đáp nhanh nhất có thể.

Nếu bạn không biết về những thư viện này, không sao cả, là người lập trình bạn hoàn toàn có thể custom lại mọi thứ mà môi trường lập trình không có sẵn (trừ khi người ta cấm hoàn toàn thì chịu :D). Tuy nhiên biết về những bộ thư viện này sẽ vô cùng có lợi khi bạn muốn làm nhanh ứng dụng trước khi tùy chỉnh lại giao diện sau khi các chức năng chính đã hoàn thành, hay muốn tiết kiệm được đáng kể thời gian.

Theo kinh nghiệm của mình, khi bắt đầu học một môi trường lập trình mới: android, windows phone. Ngoài kiến thức cơ bản, bạn nên đầu tư tìm hiểu sơ lược về danh sách các bộ thư viện mã nguồn mở hiện có trên môi trường đó. Có 1 nghịch lý thế này: Khi đang học mà chưa thực hành, thì việc tìm hiểu trước thực sự rất … dễ nản. Nhưng lúc đang thực hành làm app, cảm thấy thiếu, cần thư viện gì đó thì lại phải mò khắp nơi với đủ thứ từ khóa, đến mức google bắt bạn phải nhập mã captcha vì search quá nhiều =)), và khoảng này cực kì tốn thời gian. Vậy cách hiệu quả nhất là bạn nên biết sơ lượt về các bộ thư viện trên môi trường đang làm việc, ít nhất là biết tên, từ khóa và công dụng của nó, vì khi cần dùng là bạn sẽ nhớ là nó có tồn tại, việc “google” sẽ có định hướng hơn.


Phần 2: Nuget Package là gì ?

Theo như https://www.nuget.org/. Nuget Package là 1 extension (xin phép không dịch từ này vì thật sự dịch sang tiếng Việt nghe không hay và làm mất ý nghĩa), giúp bạn dễ dàng hơn trong việc quản lý, cài đạt thêm, xóa các bộ thư viện và công cụ từ bên thứ ba vào project sử dụng môi trường .NET. Nhận thấy rằng khi muốn thêm 1 thư viện vào project, bạn đều phải lặp đi lặp lại việc tải thư viện về, “gắn” nó vào project, và điều chỉnh lại project, Nuget add-on được cài vào Visual Studio cho phép quản lý vô số các thư viện mở và làm các việc trên giúp bạn.

Có 2 cách dùng nuget để cài đặt thư viện, dùng powershell command và dùng giao diện trực quan được nuget cung cấp. Cụ thể cài đặt các bạn tìm hiểu theo link:

http://www.codedigest.com/Articles/VisualStudio/396_What_is_NuGet_How_to_use_NuGet.aspx

Để thêm thư viện là .dll, bạn nhấn chuột phải vào liên kết Reference ở project, chọn Add Reference, ở đây bạn có nhiều lựa chọn thêm thư viện:

  • Thêm từ file thư viện .dll, .winmd trong máy
  • Thêm từ library project khác trong cùng solution

Mình sẽ trình bày kĩ hơn phần này với từng thư viện trong mỗi bài viết.

Phần chính trong bài viết hôm nay là thư viện Toastinet

Thư viện Toastinet

Bạn cảm nhận thế nào về MessageBox trong Windows Phone

Thực sự khá chán, nhất là khi bạn chỉ cần thông báo cho người dùng biết về 1 sự kiện thành công hay thất bại. Và người dùng chỉ cần nhìn thấy dòng thông báo chứ không hẳn là phải nhấn phím OK kia.

/* và do mình thực sự nhớ Toast trên android */

Để cài bộ thư viện, có 2 cách dùng nuget

cách 1/ Chuột phải vào Reference trong Project, Manage Nuget Package.

Trong tab Online ở bên trái, bạn search từ khóa Toastinet, chờ vài giây tới vài năm (tùy ăn ở :D), bạn chọn install thư viện Toastinet mới nhất — hiện tại là 1.5.4 đã được bổ sung để sử dụng với WinRT.

cách 2/ Bạn mở Tools -> Nuget Package Manager -> Package Manager Console

Bạn gõ vào dấu nháy sau chữ PM> Install-Package Toastinet, nhấn enter và mọi thứ được cài đặt tự động sau đó

Và đây là bộ thư viện đã được add vào reference của project:

Cùng xem Toastinet có thể làm được những gì:

Trước hết, khác với MessageBox đơn giản và cố định, Toastinet là một controls có thể tùy chỉnh nhiều thông số khác nhau, từ màu sắc, nội dung, cỡ chữ, font chữ, cả vị trí xuất hiện, thời gian xuất hiện và 1 dạng animation có sẵn khi toast xuất hiện và biến mất.

Do đó Toastinet phải được định nghĩa bằng xaml trong một trang và chỉ có thể sử dụng trong trang đó.

Bên xaml, khai báo namespace như sau:

Ở vị trí bạn muốn hiện thông báo toast, bạn định nghĩa 1 Toast mới với các thông số như sau:

Bạn cần định nghĩa các thông số sau:

  • Tên toast: cần để tạo đối tượng và điều chỉnh thông số của Toast sau này
  • AnimationType:
  • LeftToLeft: xuất hiện từ trái qua phải và biến mất từ phải qua trái, RightToRight: dĩ nhiên là ngược với LeftToLeft, LeftToRight, RightToLeft: xuất hiện bên này và biến mất bên kia (làm biếng gõ lại =)) ).
  • Rotation: xoay tại chỗ.Vertical: đi từ trên xuống.
  • ShowLogo: có hiện logo của app hay không.
  • Duration: thời gian hiện
  • Foreground, Background: màu chữ, màu nền.

Để toast này xuất hiện với nội dung bạn muốn, trong phần code bạn gán giá trị nội dung cho thuộc tính Message như sau:

Nội dung thông báo sẽ hiện theo tùy chỉnh như trên:

Các bạn có thể tùy ý chỉnh lại thông số cho vừa mắt thẩm mĩ riêng và mục đích.