Tìm hiểu về Framework - Giới thiệu một số Framework phổ biến.
Bài đăng này đã không được cập nhật trong 4 năm
Mở đầu
Framework là khái niệm cơ bản mà bất kỳ ai học hoặc làm việc liên quan đến ngành công nghệ phần mềm đều nên biết. Đó chỉ là một trong những công cụ có sẵn để giúp bạn phát triển tốt hơn và nhanh hơn! Tốt hơn, bởi vì một framework cung cấp cho bạn sự chắc chắn. Bạn đang phát triển một ứng dụng tuân thủ đầy đủ các quy tắc kinh doanh, có cấu trúc, và cả hai đều có thể duy trì và nâng cấp được. Vậy framework là gì? Tại sao sử dụng framework? Chúng ta cùng tìm hiểu trong bài viết sau nhé.
1. Framework là gì ?
Framework là các đoạn code đã được viết sẵn, cấu thành nên một bộ khung và các thư viện lập trình được đóng gói. Chúng cung cấp các tính năng có sẵn như mô hình, API và các yếu tố khác để tối giản cho việc phát triển các ứng dụng web phong phú, năng động. Các framework giống như là chúng ta có khung nhà được làm sẵn nền móng cơ bản, bạn chỉ cần vào xây dựng và nội thất theo ý mình.
Framework cung cấp cho các nhà lập trình những chức năng cơ bản nhất. Ở đó các lập trình viên nhận được sự trợ giúp trong quá trình xây dựng và phát triển website, ứng dụng web của mình. Chúng ta có thể ví framework như tập các “Vật liệu” cho từng lĩnh vực dành cho các lập trình viên. Có framework các lập trình viên không cần phải đau đầu thiết kế trước khi dùng, điều này giúp họ tiết kiệm thời gian. Vì vậy các lập trình viên chỉ cần tìm hiểu và sáng tạo trên những framework để tạo ra sản phẩm theo mong muốn của mình.
Ví dụ: Để thiết kế một website thương mại điện tử, nếu không có bộ framework chuyên dùng cho thiết kế web thương mại điện tử. Lúc này người lập trình viên phải tự tạo ra cho mình những mắt xích khung sườn rồi lắp ghép chúng lại. Ngược lại nếu có sẵn bộ framework các lập trình viên chỉ cần lấy ra từ framework những thứ họ cần để xây dựng web và kết hợp lại các phần với nhau. Các bạn hãy hình dung đơn giản cho bộ framework này như là một kho vật liệu xây dựng bao gồm: cát, đá, xi măng,… Các lập trình viên sẽ lấy ra những vật liệu này và thiết kế theo ý họ để tạo ra sản phẩm với hình dạng khác nhau.
2. Cách framework hoạt động.
Các framework được thiết kế để tiết kiệm thời gian và hỗ trợ các phím tắt. Đúng là bạn có thể làm một trang web rất đơn giản hoặc một ứng dụng web hiện đại mà không có nó. Framework tối ưu hóa quá trình phát triển và cho phép sử dụng, thay đổi và tích hợp mã đơn giản hóa công việc. Tất cả các lập trình viên chuyên nghiệp đều biết sử dụng 1 hoặc nhiều framework khác nhau. Và framework khác nhau hỗ trợ cho 1 hoặc nhóm ngôn ngữ lập trình tương ứng.
Theo thống kê việc sử dụng framework cho phép lập trình nhiều hơn trong thời gian ngắn hơn nhưng với chất lượng cao hơn rất nhiều. Đó là bởi vì ngay cả một lập trình viên thiếu kinh nghiệm sử dụng framework vẫn có thể dễ dàng tích hợp mã tuyệt vời vào chương trình của anh ta và nói chung đây là những gì lập trình viên làm vì trong vô số các quy trình đã tồn tại mã hoàn hảo. Tất cả chỉ còn lại là tích hợp nó. Giả sử dự án của bạn cần quy trình A + Quy trình B + Quy trình C. Nhà phát triển tìm mã tốt nhất cho từng quy trình và hợp nhất chúng, hoạt động trong một framework duy nhất.
Không giống như các thư viện, các framework cho phép đảo ngược của kiểm soát mã. Do đó, nếu bạn cần xác định quy tắc hay cách hoạt động là gì, hãy nói rằng đó là một công cụ được sử dụng để xây dựng các ứng dụng.
3. Những tính năng chính của framework.
Framework có hàng nghìn tính năng, nhưng mình chỉ liệt kê một số tính năng quan trọng nhất mà framework hỗ trợ viết code gồm:
- Đơn giản hóa quá trình thiết kế và xây dựng giao diện.
- Giảm / loại bỏ các nhiệm vụ lặp đi lặp lại.
- Tăng tính linh hoạt của ứng dụng thông qua sự trừu tượng.
- Tái sử dụng lại mã code.
- Hỗ trợ và đơn giản hóa cách sử dụng các công nghệ mới và phức tạp.
- Nó liên kết với nhau một loạt các đối tượng / thành phần riêng biệt thành một hệ thống hữu ích hơn.
- Mọi người đều có thể dễ dàng kiểm tra và gỡ lỗi mã, ngay cả mã mà họ không tham gia vào dự án.
- Quy trình khép kín từ khâu thiết kế giao diện, code và kiểm thử phần mềm.
4. Ưu - Nhược điểm của framework
4.1 Ưu điểm
Framework là một phần quan trọng để tạo nên rất nhiều phần mềm/ứng dụng hiện nay. Nó mang đến rất nhiều ưu điểm như:
- Framework có sẵn các tính năng chung cho ứng dụng/phần mềm. Ví dụ đa số tất cả các web thương mại điện tử đều cần có phần đăng ký, đăng nhập, quản lý dữ liệu người dùng,… Framework đã xây dựng sẵn các tính năng này và người lập trình chỉ cần đưa vào sử dụng khi xây dựng website.
- Giúp lập trình viên tiết kiệm được tối đa thời gian, công sức khi phát triển phần mềm/ứng dụng.
- Cho phép sản phẩm ứng dụng kế thừa các tính năng, cấu trúc đã được tiêu chuẩn hóa. Điều này giúp cho quá trình vận hành và bảo trì/khắc phục sự cố ứng dụng dễ dàng hơn.
- Cho phép người dùng mở rộng tùy ý dựa trên những gì mà Framework đã cung cấp. Lập trình viên có thể mở rộng các tính năng bằng cách ghi đè có chọn lọc lên các lớp có sẵn hoặc viết thêm chức năng mới trên nền tảng Framework, miễn là tuân thủ theo một số tiêu chuẩn nhất định.
4.2 Nhược điểm
Bên cạnh những lợi ích thiết thực, Framework cũng tồn tại một số nhược điểm nhất định:
- Cần tốn khá nhiều thời gian và công sức để học cách làm chủ Framework
- Khi dùng Framework, kích thước của ứng dụng/phần mềm sẽ rất lớn. Trong nhiều trường hợp, một trang web có thể nặng đến hàng trăm MB code dù chưa chứa bất kỳ nội dung nào.
- Khi viết code, lập trình viên cần tuân thủ đúng các quy tắc mà Framework đã đề ra.
- Framework thường có kích thước lớn nên sẽ không thích hợp với việc phát triển ứng dụng quá nhỏ. Ví dụ, nếu bạn muốn xây dựng một ứng dụng nhỏ cập nhật các thông tin của Festival hoa Đà Lạt 2019 thì việc sử dụng Framework là không cần thiết. Thay vào đó, tự viết code sẽ tiết kiệm thời gian hơn nhiều.
5. Tại sao sử dụng framework ?
5.1 Đầu tư vào nhiệm vụ, không phải trong công nghệ
Đây là nguyên tắc cơ bản của một framework. Không phải phát minh lại bánh xe. Và loại bỏ việc báo trước, các nhiệm vụ có giá trị gia tăng thấp để tập trung hoàn toàn vào các quy tắc kinh doanh.(ví dụ: phát triển các thành phần chung)
Ví dụ, một framework sẽ giúp nhà phát triển không phải mất 2 hoặc 3 ngày để tạo một biểu mẫu xác thực. (Không phải là một nhiệm vụ cụ thể). Thời gian được lưu có thể được dành riêng cho các thành phần cụ thể hơn cũng như cho các bài kiểm tra đơn vị tương ứng. Cung cấp cho bạn mã vững chắc, bền vững và chất lượng cao.
5.2 Đảm bảo nâng cấp và bảo trì
Về lâu dài, một framework đảm bảo tuổi thọ của các ứng dụng của bạn. Nếu một nhóm phát triển làm việc theo ý họ. Chỉ có nhóm cụ thể đó mới có thể duy trì và nâng cấp ứng dụng một cách dễ dàng. Cách mà một nhà xuất bản hỗ trợ một giải pháp độc quyền.
Mặt khác, cấu trúc mà một framework công tác cung cấp cho ứng dụng giúp hoàn toàn có thể tránh được cạm bẫy này . Và nó mang lại cho bất kỳ nhà phát triển nào .
- Dù họ có tham gia vào sự phát triển của nó hay không
- Khả năng dễ dàng áp dụng ứng dụng. Để duy trì nó theo thời gian và để nâng cấp nó nhanh chóng và gọn gàng, bất cứ khi nào cần thiết.
Về vấn đề này, một khung không phải là một hộp đen! nó vẫn là PHP … Các ứng dụng được phát triển không giới hạn trong vũ trụ và chúng có thể tương tác với bất kỳ thư viện PHP nào khác.
6. So sánh framewok với công nghệ khác.
6.1 So sánh Framework và CMS
6.1.1 CMS là gì ?
Như chính cái tên, CMS - viết tắt của Content Management System (có nghĩa là Hệ thống quản lý nội dung) giúp chủ sở hữu doanh nghiệp quản lý nội dung website của họ. Khi website đã hoàn tất và sẵn sàng đi vào sử dụng, bạn có thể đăng nhập và truy cập vào bất kỳ chức năng nào của website.
Sau đó, bạn toàn quyền có thể thay đổi nội dung văn bản trên bất kỳ trang nào, bắt đầu một Ecommerce site, quản lý hàng tồn, thêm sản phẩm mới, thay đổi giá sản phẩm và thực hiện bất kỳ chức năng nào sau khi bạn có quyền truy cập vào website thông qua CMS. Tóm lại, bạn có thể dễ dàng thực hiện các thay đổi cho website của mình mà không cần phải phụ thuộc vào các developers. Một số tùy chọn CMS phổ biến nhất là Drupal, WordPress và Joomla.
Chức năng chính của CMS bao gồm:
- Tạo, lưu trữ nội dung
- Chỉnh sửa nội dung
- Chuyển tại và chia sẻ nội dung
- Tìm kiếm và phân quyền người dùng
6.1.2 So sánh
– CMS là một hệ thống quản trị nội dung, thường được sử dụng trong xây dựng website, và nó có thể coi là một sản phẩm đã hoàn thiện. Việc xây dựng website đôi khi chỉ cần kéo thả hoặc cài đặt thêm các tính năng có sẵn.
– Framework là nền tảng để xây dựng nên website. Không như CMS, việc xây dựng website bằng framework đòi hỏi nhiều công sức và kỹ thuật hơn và mất nhiều thời gian hơn.
– Framework có thể dùng để xây dựng lên một CMS, còn ngược lại thì không
– Framework có thể dùng để xây dựng phần mềm cho máy tính, điện thoại hay website
6.2 So sánh Framework và Library
6.2.1 Library là gì ?
Library là một tập hợp các chức năng (functions), các lớp (class) được viết sẳn để có thể tái sử dụng. Mỗi function hoặc class phục vụ cho một công việc cụ thể nào đó. Các functions, class có thể gọi ra bởi những câu lệnh định sẵn giúp cho lập trình viên tiết kiệm được thời gian trong việc xử lý các thuật toán. Ngoài ra, việc có thể tái sử dụng cũng giúp cho hệ thống được gọn gàng, bớt shitcode, tăng đốc độ xử lý dữ liệu cho hệ thống. Library không phải là thành phần chính của hệ thống cho nên việc sử dụng hay không thì không ảnh hưởng tới hoạt động của phần mềm, hệ thống
6.2.2 So sánh
– Framework và Library đều cung cấp các tính năng (functions) được viết sẵn để chúng ta có thể tái sử dụng.
– Framework lớn hơn và phức tạp hơn Library.
– Sử dụng Framework bạn phải thay đổi cấu trúc code của dự án (project’s structure) theo các quy tắc của framework đó để có thể sử dụng được các functions mà framework đó cung cấp.
– Chúng ta có thể sử dụng các functions của Library một cách trực tiếp mà không cần thay đổi cấu trúc code của dự án.
– Framework có thể hiểu là một khung chương trình, người dùng bổ sung code và tuân theo quy tắc để tạo ra ứng dụng. Còn Library chỉ cung cấp các chức năng tiện ích hay các class để sử dụng trong quá trình xây dựng ứng dụng.
– Framework hoạt động chủ động. Nghĩa là nó có thể đưa ra các quyết định gọi hoặc bị gọi bởi các Library hay ứng dụng nào đó.
– Library hoạt động bị động. Nghĩa là nó chỉ được gọi khi nào chúng ta cần dùng nó.
7. Các loại framework.
Hiện nay có nhiều framework cho backend, front end, ứng dụng mobile…phổ biến nhất có lẽ là các web framework và các framework cho mobile.
7.1 Web framework
WEB framework là một khuôn khổ phần mềm được thiết kế để hỗ trợ phát triển các ứng dụng web bao gồm các dịch vụ web, tài nguyên web và các API web, cung cấp các chức năng cần thiết để tạo ra một ứng dụng WEB.
Các framework ứng dụng web là các framework phần mềm được sử dụng để sắp xếp hợp lý các ứng dụng web và phát triển trang web, các dịch vụ web và các tài nguyên web. Một loại framework ứng dụng web phổ biến là kiến trúc Model-View-Controller (MVC). Như chúng ta đã biết để lập trình một website chúng ta sử dụng tới 3 ngôn ngữ thành phần là HTML, CSS và Javascript sau đó kết hợp với một ngôn ngữ kịch bản máy chủ như PHP, ASP.NET, JAVA… với mỗi thành phần này chúng ta có các framework khác nhau.
Bằng cách sử dụng WEB framework lập trình viên có thể phát triển dựa trên hàng ngàn,hàng chục ngàn dòng mã đã được viết bởi các kỹ sư chuyên nghiệp, ngay cả những người mới bắt đầu sẽ có thể phát triển các ứng dụng WEB hoàn chỉnh trong một khoảng thời gian ngắn.Việc phát triển ứng dụng theo các quy tắc của WEB framework, người lập trình có thể dễ dàng thêm các chức năng khác nhau và ngăn chặn các cuộc tấn công mạng mà không cần viết một số lượng lớn mã code.
Mỗi ngôn ngữ lập trình có ít nhất một framework. Các thư viện trong mỗi framework cung cấp các gói có thể sử dụng lại của ngôn ngữ đó.
Một framework cho web bao gồm:
- Libraries: Thư viện là các đoạn mã xây dựng sẵn cho một chức năng nào đó (Design pattern), bạn có thể tái sử dụng chức năng đó mà ko phải code lại. Có nhiều tools quản lý thư viện như NPM, Composer…
- API: là phương thức trao đổi dữ liệu giữa các ứng dụng chính và ứng dụng khác. Đọc thêm RESTful API là gì nhé.
- Scaffolding: Một bộ khung các quy tắc mà một framework MVC sử dụng quy hoạch cơ sở dữ liệu có thể được truy cập như thế nào.
- AJAX: update thông tin lên database mà không cần load lại trang.
- Caching: giúp giảm request đến máy chủ, tăng tốc độ load trang.
- Security: framework xác thực và ủy quyền user.
- Compilers : trình biên dịch từ code của bạn qua ngôn ngữ cho máy.
7.2 Framework cho Mobile
Framework cho ứng dụng di động giúp bạn có thể viết code một lần và có thể chạy trên iOS và Android. Đó chính là điểm mạnh của nó để giảm thời gian phát triển sản phẩm so với native code. Hiện tại các framework này đa số dùng Javascript làm ngôn ngữ phát triển nổi bật như là React Native của Facebook, ngoài ra còn có Xamarin của Microsoft dùng C#, Flutter dùng ngôn ngữ Dart của Google.
8. Giới thiệu một số framework phổ biến.
8.1 Một số framework web phổ biến
8.1.1 Web Framework của Ruby : Ruby on Rails
Ruby on Rails là một Framework mạnh mẽ và đầy thú vị được phát triển trên ngôn ngữ lập trình Ruby. Phiên bản đầu tiên của Ruby on Rails được giới thiệu ra cộng đồng vào năm 2015. Ruby on Rails là phần mềm mã nguồn mở miễn phí được phát triển bởi David Heinemeier Hansson.
Ruby là ngôn ngữ lập trình, sử dụng Ruby các lập trình viên có thể phát triển nhiều loại ứng dụng khác nhau ngoài việc tạo website ví dụ như các phần mềm chạy trên máy tính cá nhân hay máy chủ. Ruby on Rails là web framework được viết sử dụng ngôn ngữ Ruby. Ruby on Rails chỉ giới hạn trong việc xây dựng và phát triển các ứng dụng web.
Lý do mà Ruby on Rails được yêu thích:
- Ngôn ngữ Ruby dễ học, framework hoàn chỉnh (full-stack), các định nghĩa hàm sâu sắc và thông minh (bằng các convention)
- Rails dùng ít code hơn các framework khác, tốc độ tạo ra những Prototype (ứng dụng mẫu) nhanh chóng nhưng tại tốn ít chi phí bảo trì
- Hiểu được Rails, bạn sẽ dễ dàng hiểu được các framework hiện đại khác của PHP, Python,..
Ngay từ lần đầu tiên sử dụng Ruby on Rails, một nhà phát triển Web có tên David Heinemeyer Hanson đã nói rằng “Hiệu suất gấp 10 lần so với Java”. Trên thực tế có rất nhiều các website nổi tiếng được viết dựa trên framwork này như CookPad、Retty、Wantedly,…
8.1.2 Web Framework của PHP : CakePHP
CakePHP là một Web Framework được tạo ra với mục đích cung cấp một framework cho người sử dụng PHP ở mọi cấp độ đều có thể phát triển nhanh chóng, mạnh mẽ và linh hoạt. CakePHP là một web framwork đơn giản, việc xây dựng môi trường cũng tương đối dễ dàng.
Hiện nay, nó được giới thiệu [số lượng lớn nhất các web application] trên phạm vi toàn cầu, cung cấp các chức năng có thể đáp ứng được những yêu cầu cao của người dùng. Ở trong PHP, có rất nhiều framework được yêu thích, nhưng nếu bạn lập trình viên mới bắt đầu phát triển trang web quy mô nhỏ thì CakePHP là một sự lựa chọn tốt nhất. Nó được tạo ra sao cho người mới bắt đầu sử dụng, hầu hết không cần phải chỉnh sửa lại môi trường hoạt động và thay đổi cài đặt máy chủ mà vẫn có thể đưa vào sử dụng một cách dễ dàng.
CakePHP có một showcase thực sự đáng chú ý, nó tạo sức mạnh cho các trang web của các thương hiệu lớn như BMW,Hyundai, và Express. Đây là một công cụ tuyệt vời cho việc tạo ra các ứng dụng web cần cấp độ bảo mật cao, vì nó có nhiềutính năng bảo mật tích hợp như xác nhận đầu vào, phòng chống SQL injection, XSS (cross-site scripting), CSRF (cross-site request forgery), và nhiều thứ khác.
8.1.3 WEB Framework dành cho JAVA : Spring
URL:https://projects.spring.io/spring-framework/
Spring framework là một Java Platform mã nguồn mở, một giải pháp gọn nhẹ dành cho Java Enterprise. Với Spring Framework các nhà phát triển có thể tạo ra các mã có hiệu suất cao, dễ kiểm thử và có thể sử dụng lại được. Các tính năng core của Spring Framework có thể được sử dụng trong việc phát triển bất kỳ ứng dụng Java hoặc xây dựng các ứng dụng web trên nền tảng Java EE. Mục tiêu của Spring Framework là làm cho việc phát triển ứng dụng J2EE dễ dàng hơn và thúc đẩy việc lập trình tốt hơn bằng mô hình POJO-based.
Spring Framework được phát triển dựa trên các quan điểm như sau:
- Đơn giản hóa công việc phát triển thông qua việc sử dụng các đối tượng Java đơn giản hay còn được gọi là POJO (Plain Old Java Object)
- Nới lỏng ràng buộc giữa các thành phần thông qua việc sử dụng Dependency Injection và viết các interface
- Tiếp cận lập trình khai báo bằng cách sử dụng các quy tắc (convention) và các khía cạnh (aspect) chung
- Giảm thiểu các mã nghi thức và soạn sẵn (boilerplate) thông qua việc sử dụng các khuôn mẫu (template) và các khía cạnh
- Spring Framework thường được sử dụng khi phát triển hệ thống quy mô lớn.
8.1.4 Web Framework của JavaScript : Angular
Angular là một JavaScript framework dành xây đựng ứng dụng web động (dynamic web app). Đây là một bộ Javascript Framework rất mạnh và thường được sử dụng để xây dựng project Single Page Application (SPA). Nó hoạt động dựa trên các thuộc tính mở rộng HTML (các atributes theo quy tắc của Angular). AngularJS là framework có những chức năng tương đối lớn giống như Ruby on Rails. Tuy nhiên
- Angular là một framework phát triển dựa trên Javascript để tạo các ứng dụng web phong phú
- Angular thường dùng để phát triển frontend thông qua các API, sử dụng mô hình MVC rất mạnh mẽ
- Mã nguồn Angular tự động fix với các trình duyệt khác nhau nên bạn không cần phải lo vấn đề tương thích trình duyệt
- Angular là mã nguồn mở, hoàn toàn miễn phí và được phát triển bởi hàng ngàn các lập trình viên trên thế giới.
8.1.5 Framework dùng trong Design của CSS/JS : Bootstrap
Bootstrap được gọi là framework design web và được cấu trúc từ CSS/JavaScript. Bootstrap là một framework được phát triển bởi Twitter nên chúng ta có thể dễ dàng tạo ra một flat design giống như Twitter. Bootstrap là một tợp hợp các thuộc tính, giá trị có sẵn giúp các web web designer tiết kiệm thời gian thực hiện một dự án web không phải tạo thêm các đoạn mã css,javascript, html, font trong khi chúng lặp đi lặp lại.
Điều tuyệt vời ở Bootstrap chính là Responsive Web Design có thể đối ứng với nhiều kích thước màn hình khác nhau (PC, Tablet,SmartPhone), vì vậy mà ngay cả với những lập trình không giỏi thiết kế cũng có thể tạo ra được giao diện đẹp một cách dễ dàng. Template của bootstrap vô cùng phong phú từ miễn phí đến trả phí, vì vậy bằng cách thay đổi màu sắc, kiểu chữ … thì chúng ta hoàn toàn có thể tạo ra trang web theo trí tưởng tượng của mình.
8.2 Một số framework mobile phổ biến
8.2.1 React Native
URL : https://reactnative.dev/ React Native là một framework cho phép các lập trình viên phát triển ứng dụng di động thiết kế các ứng dụng di động đa nền tảng với sự trợ giúp của javascript. Với React – Native, lập trình viên có thể sử dụng một bộ mã duy nhất cho cả nền tảng iOS và Android.
Ưu điểm:
- Hiệu quả về mặt thời gian khi mà bạn muốn phát triển một ứng dụng nhanh chóng.
- Hiệu năng tương đối ổn định.
- Cộng đồng phát triển mạnh.
- Tiết kiệm tiền.
- Team phát triển nhỏ.
- Ứng dụng tin cậy và ổn định.
- Xây dựng cho nhiều hệ điều hành khác nhau với ít native code nhất.
- Trải nghiệm người dùng tốt hơn là hybrid app.
Nhược điểm:
- Vẫn đòi hỏi native code.
- Hiệu năng sẽ thấp hơn với app thuần native code.
- Bảo mật không cao do dựa trên JS.
- Quản lý bộ nhớ.
- Khả năng tùy biến cũng không thực sự tốt đối với một vài module.
8.2.2 Flutter
URL : https://flutter.dev/
Flutter là mobile UI framework của Google để tạo ra các giao diện native chất lượng cao trên iOS và Android trong khoảng thời gian ngắn sử dụng ngôn ngữ Dart. Flutter hoạt động với source code có sẵn, được sử dụng bởi các nhà phát triển và các tổ chức trên khắp thế giới, đồng thời nó open-source và miễn phí.
8.2.3 Xamarin
Là 1 nền tảng lập trình ứng dụng di động cross-platform (có nghĩa là code một lúc có thể chạy trên được cả iOS lẫn Android). Xamarin có những đặc điểm riêng biệt, hiếm có so với các frameworks hiện tại trên thị trường khi mà khả năng native access và trải nghiệm người dùng native vẫn đang bị đặt nghi vấn
Ưu điểm:
- Ứng dụng mẫu của Xamarin giúp công việc khởi đầu suôn sẻ hơn; ứng dụng được viết rất rõ ràng và còn có thể được dùng là mẫu tham khảo.
- Xamarin có thể chia sẻ đến 75% code được viết ra đến các nền tảng di động lớn, từ đó tiếp kiệm rất nhiều thời gian và chi phí.
- Cung cấp functionality testing và quality assurance (kiểm tra tính năng và đảm bảo chất lượng) cho vô số thiết bị để đảm bảo tích hợp chuẩn xác (Xamarin thậm chí còn có giả lập Android riêng)
Nhược điểm :
- Với Xamarin, vì sự cố tương thích, bạn sẽ vẫn không thể sử dụng được vô số thư viện nguồn mở cho iOS và Android. Phiên bản miễn phí vô cùng hạn chế, rất khó dùng trong các project lớn.
8.2.4 PhoneGap
URL : https://phonegap.com/
PhoneGap cũng là một framwork ứng dụng di động đa nền tảng nguồn mở cho phép các lập trình viên xây dựng các ứng dụng di động bằng HTML, CSS và Javascript. Nó tập trung một kiến trúc có khả năng bổ trợ để giúp các lập trình viên bằng cách tạo các ứng dụng nổi bật với việc sử dụng các khả năng của thiết bị qua các API.
Ưu điểm:
- Cho phép tạo ứng dụng lai bằng những công nghệ web phổ biến (HTML5, CSS3 và JavaScript),
- Cho phép bạn deploy một code base duy nhất lên nhiều nền tảng khác nhau, trong đó có iOS, Android, Windows Phone, BlackBerry, Firefox OS,…
- Cấu trúc cho phép áp dụng plugin, mở rộng (theo module) APIs thiết bị và nhiều lợi ích khác.
- Cho phép áp dụng thanh toán tích hợp/in-app thông qua App Store cho iOS, Google Play Store cho Android,…
Nhược điểm :
- Khả năng hỗ trợ đồ họa hạn chế cho ứng dụng. Bạn hiển nhiên vẫn có thể tìm một số plugin cho từng yêu cầu cụ thể, nhưng plugin cho một số platform cần thiết có thể bị lỗi thời, hoặc bị bỏ ngang.
Kết luận
Trên đây là những khái niệm theo tìm hiểu của mình về Framework, các loại framework và những Framework được đông đảo người sử dụng. Hy vọng với bài viết các bạn sẽ hiểu rõ hơn về chúng. Từ đó có được những lựa chọn phù hợp cho mình, các bạn hãy nhớ việc sử dụng tốt các framework sẽ giúp các bạn tiết kiệm được rất nhiều thời gian.
Cảm ơn các bạn đã dành thời gian cho bài viết của mình. Bài viết của mình khó tránh khỉ những sai xót rất mong các bạn thông cảm và có thể phản lại để mình chỉnh sửa để đưa đến mọi ngượi những thông tin chính xác nhất.
Và cuối cùng, chúc các bạn thật mạnh khỏe và có một ngày làm việc vui vẻ, hiệu quả!!!
Tài Liệu Tham Khảo
https://topdev.vn/blog/framework-la-gi/
https://techtalk.vn/web-framework-la-gi-top-5-web-framework-tot-nhat【java-ruby-php-js-css】.html
All rights reserved