Làm cách nào để phát triển ứng dụng máy tính bảng dành cho doanh nghiệp với tư cách là nhà phát triển .NET? [đóng cửa]


9

Công ty của tôi có nhiều kinh nghiệm trong việc phát triển .NET và một trong những sản phẩm của chúng tôi trong hệ thống ERP. Gần đây, một khách hàng hỏi chúng tôi rằng chúng tôi có thể cung cấp giao diện máy tính bảng cho hệ thống đó không, tức là phần mềm cho phép khách hàng xem thông tin sản phẩm và tạo đơn hàng trên máy tính bảng.

Tất nhiên, chúng tôi không vui mừng về ý tưởng đầu tư nhiều thời gian và tiền bạc vào việc học Objective-C, mua máy trạm phát triển Mac, trả phí cho Apple, v.v. chỉ cho một dự án này (chúng tôi thể bán ứng dụng này cho một vài khách hàng bổ sung sau đó, nhưng thị trường rất nhỏ, vì nó sẽ chỉ hữu ích cho các khách hàng hiện tại của hệ thống ERP của chúng tôi).

Vậy chúng ta nên làm gì? Theo như tôi có thể thấy, chúng ta có các tùy chọn sau:

  • Viết một " ứng dụng Windows cũ đơn giản " (WPF) và chạy nó trên máy tính bảng Windows 7, chẳng hạn như Samsung Slate hoặc Acer Iconia.

    Hạn chế: Các thiết bị nặng, đắt tiền với thời gian chạy ngắn (so với máy tính bảng "thật").

  • Đợi máy tính bảng chạy Windows 8 ARM và viết ứng dụng Metro (WinRT).

    Hạn chế: Chờ ít nhất một năm; Không rõ liệu Windows 8 ARM có hỗ trợ cài đặt các ứng dụng B2B tùy chỉnh mà không cần thông qua cửa hàng ứng dụng hay không.

  • Sử dụng mono cho Android và viết ứng dụng .NET cho Android.

    Hạn chế: Một thư viện UI khác (khác với WPF và Silverlight); một số nhà cung cấp không cho phép tải ứng dụng.

Cho đến nay, các tùy chọn 1 và 3 dường như là thực tế nhất. Tôi đã bỏ lỡ bất kỳ nhược điểm rõ ràng hoặc lợi thế? Có lựa chọn nào khác mà tôi chưa xem xét? Bạn đã từng ở trong một tình huống tương tự và (thành công) chọn một tùy chọn cụ thể?


2
@Downvoter: Phản hồi để cải thiện câu hỏi được đánh giá cao ...
Heinzi

11
Bạn đã quên hai tùy chọn khác: 1.) học Java và viết ứng dụng Android hoặc 2.) Nói không
Jetti

Để biết một số lời khuyên về phát triển di động cho các nhà phát triển .NET, hãy nghe podcast này: hanselminutes.com/305/ .
Treb

1
@FrustratedWithFormsDesigner Xem câu trả lời của tôi
ediblecode

1
@Nupul: Không, tôi không có câu trả lời, tôi chỉ có một tùy chọn (viết ứng dụng iPad gốc trong Objective-C) loại trừ. Vẫn còn những lựa chọn khác, có thể khả thi về mặt kinh tế, do đó câu hỏi của tôi ở đây. ;-)
Heinzi

Câu trả lời:


10

JQuery Mobile + Điện thoại xây dựng khoảng cách .

Về cơ bản, điều này nói rằng "sử dụng HTML5 và JavaScript để xây dựng ứng dụng của bạn", như đã nói trước đây, nhưng với một bước ngoặt quan trọng.

Dịch vụ Phone Gap Build của Nitobi (hiện thuộc sở hữu của Adobe) cho phép các nhà phát triển chuyển đổi ứng dụng HTML5 / JavaScript thành ứng dụng "gốc" (ứng dụng thực sự lai) có thể được triển khai cục bộ sang thiết bị. Theo hiểu biết của tôi, về cơ bản những gì đang diễn ra trong chương trình này đang đóng gói một tệp nhị phân nhỏ gọi trình duyệt riêng và tải lên trang web của bạn từ một tệp: // URL.

Bạn không cần phải nhắm mục tiêu bất kỳ khung JavaScript cụ thể nào - cùng một HTML & JavaScript sẽ hoạt động thực sự tốt trong một ứng dụng web di động sẽ hoạt động tốt.

Hỗ trợ ngoại tuyến cũng không khó. Với lưu trữ trình duyệt cục bộ được hỗ trợ tốt với nhiều thiết bị di động, bạn có thể xây dựng các ứng dụng ngoại tuyến thực sự mạnh mẽ theo cách này. Cách tốt nhất để đóng gói các phụ thuộc bên ngoài của bạn cục bộ thay vì sử dụng CDN, để ứng dụng của bạn hoạt động tốt ngoại tuyến.

Các khung như KnockoutJSBackboneJS rất hữu ích trong việc cho phép bạn xây dựng các ứng dụng JavaScript được thiết kế tốt và chúng hoạt động tốt với dịch vụ xây dựng của Phone Gap.

Khi thiết bị đang trực tuyến, bạn có thể dễ dàng sử dụng thiết bị này để kết thúc dịch vụ ASP.NET/MVC, WebAPI hoặc WCF để làm mới dữ liệu.

Các ứng dụng kết quả thực sự khá tốt và có thể được phân phối trên thị trường Apple và Android. Đã có rất nhiều ứng dụng trong các thị trường được xây dựng với Phone Gap Build và các sản phẩm tương tự khác, và 99% mọi người (bao gồm hầu hết các nhà phát triển) không thể nói lên sự khác biệt.

Rõ ràng là bạn sẽ không cố gắng xây dựng Angry Birds theo cách này (mặc dù, với Canvas tôi cho rằng bạn có thể thử), nó hoạt động rất tốt với các loại ứng dụng bạn đang nói đến.

Đừng tin lời tôi. PhoneGap đã thực hiện các vòng trên mạch PodCast, gần đây đã có mặt trên Hanselminutes , DotNetRocksTablet Show . Ngoài ra, tôi đã viết về nó trong một bài đăng trên blog gần đây .


+1 Tôi nghĩ rằng đây là sự thỏa hiệp tốt nhất để viết một ứng dụng máy tính bảng gốc.
Eric King

Tôi chỉ có thể thử điều này để có được một hoặc hai ứng dụng trên mặt đất ...
SoftwareSavant

13

xem thông tin sản phẩm và tạo đơn hàng

Âm thanh giống như công cụ trong khả năng của HTML 5 (và các công nghệ liên quan thường được đề cập trong cùng một hơi thở). Viết một ứng dụng Web phong phú và bạn ngay lập tức hỗ trợ bất kỳ thiết bị nào có trình duyệt .


2
Từ quan điểm kỹ thuật, bạn đúng, nhưng theo kinh nghiệm của tôi, những người sẵn sàng mua máy tính bảng mong đợi một thứ gì đó sáng bóng hơn một ứng dụng web.
Treb

3
@Treb - Jakob Nielsen có một số suy nghĩ thú vị về chủ đề này: useit.com/alertbox/mobile-sites-apps.html
jfrankcarr

2
Nhiều máy tính bảng cho phép bạn "cài đặt" ứng dụng web để ứng dụng này hoạt động giống như một ứng dụng. Vì vậy, tôi sẽ không tính đến điều này vì HTML5 không xuất hiện giống như ứng dụng. Đây dường như là lựa chọn tốt nhất với tôi.
RationalGeek

3
Ngoài ra ... điều này không loại trừ việc có hai phần: Ứng dụng web và ứng dụng gốc. HTML5 là một tùy chọn chăn ... một khi được xây dựng và hoạt động, bạn có thể tạo một ứng dụng Android / Apple / Metro / Blackberry tùy chọn nếu doanh nghiệp chọn nó. Nhiều trang web cung cấp cho bạn tùy chọn cài đặt ứng dụng cho trang web của họ.
WernerCD

2
@Treb - Có thể tạo một ứng dụng web khá sáng bóng. Ít nhất tôi sẽ xem xét các yêu cầu liên quan đến tỏa sáng của họ.
psr

4

Tôi khuyên bạn nên phát triển nó như một ứng dụng web MVC. Điều này sẽ cho phép bạn chạy nó trên hầu hết mọi thiết bị từ máy tính để bàn đến điện thoại thông minh miễn là bạn thiết kế tốt. HTML5 có thể hoạt động nhưng nó sẽ phụ thuộc vào loại thiết bị / trình duyệt bạn cần hỗ trợ. Sẽ thật tuyệt nếu bạn có thể thoát khỏi việc sử dụng nó. Hãy chắc chắn rằng bạn thiết kế nó ở nơi bạn có thể điều chỉnh các phần của nó thành phần phụ trợ WCF cho ứng dụng Metro trong tương lai.


3

Nếu bạn muốn tận dụng kiến ​​thức .NET hiện có, bạn nên tìm cách tiếp cận SOA và đưa càng nhiều chức năng càng tốt vào một dịch vụ web (SOAP hoặc REST, chọn bất kỳ cách nào phù hợp với bạn hơn). Bằng cách đó, bạn chỉ cần một ứng dụng khách nhỏ trên thiết bị, sẽ chỉ gọi chức năng dịch vụ web và hiển thị kết quả. Điều này sẽ dễ dàng phát triển hơn nhiều so với một khách hàng toàn diện thực hiện logic kinh doanh, bất kể bạn chọn khách hàng nào.

Nó cũng cho phép thêm hỗ trợ cho các thiết bị khác nhau sau này, tất cả những gì bạn cần là một ứng dụng khách nhỏ cho thiết bị mới.

Để chọn một thiết bị, tôi thấy hai tiêu chí:

  1. Chọn một ứng dụng khách hàng hiện tại của bạn (nếu họ yêu cầu ứng dụng máy tính bảng, họ sẽ suy nghĩ về nó)
  2. Chọn một trong đó rất có thể được chấp nhận bởi các khách hàng khác là tốt. Đây rất có thể là iPad, hoặc có lẽ là Kindle Fire, vì mọi người đã nhìn thấy chúng.

Trong mọi trường hợp, đừng chờ đợi các thiết bị chưa có trên thị trường. Điều đó sẽ loại trừ tùy chọn 2 của bạn (Windows 8 trên máy tính bảng ARM).


Theo thông báo ngày hôm nay, Microsoft Surface, các thiết bị có thể sẽ sớm có mặt trên thị trường.
Mamta D

0

Bất kỳ ứng dụng Windows nào cũng có nghĩa là bạn bị ràng buộc với MS. Ngoài ra, Silverlight và iOS / IE 10 không hợp nhau. Sử dụng HTML 5 và JavaScript với Dịch vụ web và / hoặc JQuery. Các công cụ của bên thứ ba như Telerik-Kendo UI sẽ làm cho GUI của bạn đủ mát cho Ứng dụng LOB. Dot Net chỉ có thể có giá trị ở phía máy chủ.


-1

Nhận xét cuối cùng đó nói lên tất cả thực sự: 'Dot Net chỉ có thể có giá trị ở phía máy chủ' - có lẽ Microsoft nên gọi nó. Không? Hoặc .WindowsOnly?

Bạn thậm chí không thể viết các ứng dụng phía máy khách Windows RT bằng .Net.

Đúng là để chơi trong trò chơi đa nền tảng, logic kinh doanh và dịch vụ dữ liệu của bạn được viết bằng .Net, phải sống trên máy chủ windows và hiển thị API thân thiện với Web. API Web mới nhất của ASP.Net gần như là sức mạnh công nghiệp vào tháng 4 năm 2013. Điều này sẽ cho phép bạn trưng ra các đối tượng .Net của mình dưới dạng JSON để các ứng dụng phía máy khách JQuery / JS có thể tích hợp dễ dàng.

Về phía khách hàng, bạn không thể sử dụng .Net. Bạn phải viết tất cả mã UI của mình bằng HTML / CSS / JQuery và logic của bạn bằng cách sử dụng JS với Knockout để liên kết theo định hướng dữ liệu.

Đối với chúng tôi, các nhà phát triển .Net, chỉ cần vẽ giao diện người dùng của chúng tôi MÀ KHÔNG CẦN VIẾT MarkUP là Niết bàn của việc phát triển ứng dụng LOB. Bất cứ ai đến với khung máy khách .Net hoạt động tốt như VS / .Net / WinForms / C # / VB.Net sẽ thống trị thế giới - và theo tôi - Mono không ở đâu (không có hỗ trợ từ các nhà cung cấp thành phần bên thứ 3) gần VS / .Net / WinForms.


Tôi phải đánh giá thấp câu trả lời này vì tuyên bố sai "Bạn thậm chí không thể viết các ứng dụng phía máy khách Windows RT bằng .Net."
Ramhound

Xin lỗi, tôi hoàn toàn không đồng ý với khẳng định của bạn rằng bạn có thể viết các ứng dụng .Net cho Windows RT - bằng chứng của bạn ở đâu?
TriSys

Tôi sẽ cắn. Ý bạn là gì chính xác bởi "ứng dụng phía khách hàng" bởi vì tôi đã lấy nó có một cái gì đó rất cụ thể một năm trước. Bởi vì tôi hứa với bạn tôi đã viết .NET 4.5.1 Windows Store/WinRTđơn và xuất bản chúng cho cửa hàng. Tôi đã sử dụng C # nếu thắc mắc của bạn và toàn bộ ứng dụng được lưu trữ phía máy khách.
Ramhound
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.