Perusahaan saya memiliki banyak pengalaman dalam pengembangan .NET, dan salah satu produk kami dalam sistem ERP. Baru-baru ini, seorang pelanggan bertanya kepada kami apakah kami dapat menyediakan antarmuka tablet ke sistem itu, yaitu, perangkat lunak yang memungkinkan pelanggan untuk melihat informasi produk dan membuat pesanan pada tablet.
Tentu saja, kami tidak senang dengan ide menginvestasikan banyak waktu dan uang untuk mempelajari Objective-C, membeli workstation pengembangan Mac, membayar biaya kepada Apple, dll. Hanya untuk proyek yang satu ini (kami mungkin dapat menjual aplikasi tersebut) kepada beberapa pelanggan tambahan sesudahnya, tetapi pasar sangat kecil, karena hanya akan berguna bagi pelanggan yang sudah ada dalam sistem ERP kami).
Jadi apa yang harus kita lakukan? Sejauh yang saya bisa lihat, kami memiliki opsi berikut:
Tulis " aplikasi Windows lama yang biasa " (WPF) dan jalankan di tablet Windows 7, seperti Samsung Slate atau Acer Iconia.
Kerugian: Perangkat berat dan mahal dengan waktu pengoperasian yang singkat (dibandingkan dengan tablet "asli").
Tunggu tablet berbasis ARM Windows 8 dan tulis aplikasi Metro (WinRT).
Kekurangan: Tunggu setidaknya satu tahun; tidak jelas apakah Windows 8 ARM akan mendukung pemasangan aplikasi B2B khusus tanpa melalui app store.
Gunakan mono untuk Android dan tulis aplikasi .NET untuk Android.
Kelemahan: Namun perpustakaan UI lain (berbeda dari WPF dan Silverlight); beberapa penyedia melarang pembatalan aplikasi.
Sejauh ini, opsi 1 dan 3 tampaknya paling realistis. Apakah saya kehilangan kekurangan atau kelebihan yang jelas? Apakah ada opsi lain yang belum saya pertimbangkan? Apakah Anda pernah berada dalam situasi yang sama dan (berhasil) memilih satu opsi tertentu?
Jawaban:
JQuery Mobile + Phone Gap Build .
Ini pada dasarnya mengatakan "gunakan HTML5 dan JavaScript untuk membangun aplikasi Anda", seperti yang telah dikatakan sebelumnya, tetapi dengan sentuhan penting.
Layanan Phone Gap Build Nitobi (sekarang dimiliki oleh Adobe) memungkinkan pengembang untuk mengonversi aplikasi HTML5 / JavaScript ke aplikasi "asli" (benar-benar aplikasi hybrid) yang dapat digunakan secara lokal ke perangkat. Ini pemahaman saya bahwa pada dasarnya apa yang terjadi di bawah tenda adalah pengemasan biner asli kecil yang memanggil browser asli dan memuat situs Anda dari file: // URL.
Anda tidak perlu menargetkan kerangka kerja JavaScript tertentu - HTML & JavaScript yang sama yang akan bekerja dengan sangat baik di aplikasi web seluler akan berfungsi dengan baik.
Dukungan offline juga tidak sulit. Dengan penyimpanan browser lokal yang didukung dengan banyak perangkat seluler, Anda dapat membangun aplikasi offline yang benar-benar kuat dengan cara ini. Praktik terbaik untuk mengemas dependensi eksternal Anda secara lokal dan bukan menggunakan CDN, sehingga aplikasi Anda berfungsi dengan baik secara offline.
Kerangka kerja seperti KnockoutJS dan BackboneJS sangat membantu dalam memungkinkan Anda untuk membangun aplikasi JavaScript yang direkayasa dengan baik, dan mereka berfungsi dengan baik dengan layanan pembangunan Phone Gap.
Ketika perangkat sedang online, Anda dapat dengan mudah menekannya di ASP.NET/MVC, layanan WebAPI atau WCF kembali untuk menyegarkan data.
Aplikasi yang dihasilkan sangat bagus, dan dapat didistribusikan di pasar Apple dan Android. Sudah ada banyak aplikasi di pasar-pasar yang dibangun dengan Phone Gap Build dan produk serupa lainnya, dan 99% orang (termasuk sebagian besar pengembang) tidak dapat membedakannya.
Jelas Anda tidak akan mencoba untuk membangun Angry Birds dengan cara ini (meskipun, dengan Canvas saya kira Anda mungkin mencoba), ini bekerja sangat baik dengan jenis aplikasi yang Anda bicarakan.
Jangan mengambil kata saya untuk itu. PhoneGap telah melakukan putaran di sirkuit PodCast, setelah baru-baru ini berada di Hanselminutes , DotNetRocks , dan Tablet Show . Juga, saya menulis tentang itu di posting blog baru-baru ini .
sumber
Kedengarannya seperti hal-hal baik dalam kemampuan HTML 5 (dan teknologi terkait biasanya disebutkan dalam napas yang sama). Tulis aplikasi Web yang kaya, dan Anda segera mendukung perangkat apa pun dengan browser .
sumber
Saya akan merekomendasikan mengembangkannya sebagai aplikasi web MVC. Ini akan memungkinkan Anda untuk menjalankannya di sebagian besar perangkat apa pun dari desktop ke smartphone asalkan Anda mendesainnya dengan baik. HTML5 mungkin berfungsi tetapi itu akan tergantung pada jenis perangkat / browser Anda harus mendukung. Akan lebih baik jika Anda bisa menggunakannya. Pastikan bahwa Anda merancangnya di mana Anda bisa menyesuaikan bagian itu menjadi backend WCF ke aplikasi Metro di masa depan.
sumber
Jika Anda ingin memanfaatkan pengetahuan .NET yang ada, Anda harus menggunakan pendekatan SOA, dan menempatkan sebanyak mungkin fungsionalitas ke dalam layanan web (SOAP atau REST, pilih mana yang lebih cocok untuk Anda). Dengan begitu Anda hanya memerlukan aplikasi klien kecil di perangkat, yang hanya akan memanggil fungsionalitas layanan web dan menampilkan hasilnya. Ini seharusnya lebih mudah dikembangkan daripada klien yang menerapkan logika bisnis, tidak peduli klien mana yang Anda pilih.
Ini juga memungkinkan untuk menambahkan dukungan untuk perangkat yang berbeda di kemudian hari, yang Anda butuhkan hanyalah aplikasi klien kecil untuk perangkat baru.
Untuk memilih perangkat, saya melihat dua kriteria:
Bagaimanapun, jangan menunggu perangkat yang belum ada di pasaran. Itu akan mengesampingkan pilihan Anda 2 (Windows 8 pada tablet ARM).
sumber
Aplikasi Windows apa pun berarti Anda terikat dengan MS. Juga, Silverlight dan iOS / IE 10 tidak cocok bersama. Gunakan HTML 5 dan JavaScript dengan Layanan Web dan / atau JQuery. Alat pihak ketiga seperti Telerik-Kendo UI harus membuat GUI Anda cukup keren untuk Aplikasi LOB. Dot Net hanya bisa bernilai di sisi server.
sumber
Komentar terakhir itu mengatakan itu semua benar-benar: 'Dot Net hanya bisa bernilai di sisi server' - mungkin Microsoft seharusnya menyebutnya. Tidak? Atau .WindowsOnly?
Anda bahkan tidak bisa menulis aplikasi sisi klien Windows RT di .Net.
Memang benar bahwa untuk bermain di permainan lintas platform, logika bisnis Anda dan layanan data yang ditulis dalam .Net, harus hidup di server windows dan membuka API yang ramah Web. ASP.Net Web API terbaru hampir menjadi kekuatan industri pada bulan April 2013. Ini akan memungkinkan Anda untuk mengekspos objek .Net Anda sebagai JSON sehingga aplikasi sisi klien JQuery / JS dapat diintegrasikan dengan mudah.
Di sisi klien, Anda tidak dapat menggunakan .Net. Anda harus menulis semua kode UI dalam HTML / CSS / JQuery dan logika Anda menggunakan JS dengan mungkin Knockout untuk pengikatan yang berorientasi data.
Bagi kami. Pengembang bersih, cukup menggambar antarmuka pengguna kami TANPA HARUS MENULIS MARKUP adalah Nirwana mengembangkan aplikasi LOB. Siapa pun yang muncul dengan kerangka .Net klien yang berfungsi serta VS / .Net / WinForms / C # / VB.Net akan memerintah dunia - dan TIDAK - menurut saya Mono tidak ada dimanapun (tidak ada dukungan dari vendor komponen pihak ketiga) dekat VS / .Net / WinForms.
sumber
.NET 4.5.1 Windows Store/WinRT
aplikasi dan menerbitkannya ke toko. Saya menggunakan C # jika Anda bertanya-tanya dan seluruh aplikasi disimpan sisi klien.