.NET geliştirici olarak iş alanı tableti uygulamaları nasıl geliştirilir? [kapalı]


9

Şirketim .NET geliştirme konusunda çok fazla deneyime ve bir ERP sistemindeki ürünlerimizden birine sahip. Son zamanlarda, bir müşteri bize, bu sisteme bir tablet arayüzü sağlayıp sağlayamayacağımızı sordu, yani müşterinin ürün bilgilerini görüntülemesine ve bir tablette sipariş oluşturmasına izin veren bir yazılım.

Elbette, sadece bu proje için, vb Objective-C öğrenme Mac geliştirme iş istasyonları satın alma Apple'a ücretleri ödeyerek içine zaman ve para yatırım fikri hakkında hiç de memnun değil (biz belki uygulama satmaya muktedir daha sonra birkaç ek müşteriye, ancak pazar çok küçüktür, çünkü yalnızca ERP sistemimizin mevcut müşterileri için yararlı olacaktır).

Yani ne yapmalıyız? Görebildiğim kadarıyla aşağıdaki seçeneklere sahibiz:

  • Bir " düz eski Windows uygulaması " (WPF) yazın ve Samsung Slate veya Acer Iconia gibi bir Windows 7 tablette çalıştırın.

    Dezavantajları: Kısa çalışma süresine sahip ağır, pahalı cihazlar ("gerçek" tabletlere kıyasla).

  • Windows 8 ARM tabanlı tabletleri bekleyin ve bir Metro (WinRT) uygulaması yazın.

    Dezavantajları: En az bir yıl bekleyin; Windows 8 ARM'nin uygulama mağazasından geçmeden özel B2B uygulamalarının yüklenmesini destekleyip desteklemeyeceği belirsizdir.

  • Android için mono kullanın ve Android için bir .NET uygulaması yazın.

    Dezavantajları: Yine başka bir UI kütüphanesi (WPF ve Silverlight'tan farklı); bazı sağlayıcılar uygulamaların yandan yüklenmesine izin vermez.

Şimdiye kadar, seçenekler 1 ve 3 en gerçekçi görünüyor. Açıkça görülen dezavantajları veya avantajları kaçırdım mı? Henüz dikkate almadığım başka bir seçenek var mı? Benzer bir durumda bulunup belirli bir seçeneği (başarıyla) seçtiniz mi?


2
@Downvoter: Soruyu geliştirmek için geri bildirim takdir ediliyor ...
Heinzi

11
Diğer iki seçeneği de unuttunuz: 1.) Java öğrenmek ve bir Android uygulaması yazmak veya 2.) Hayır
demek

.NET geliştiricileri için mobil geliştirme hakkında bazı tavsiyeler için şu podcast'i dinleyin: hanselminutes.com/305/… .
Treb

1
@FrustratedWithFormsDesigner Cevabımı gör
ediblecode

1
@Nupul: Hayır, bir cevabım yok, sadece bir seçeneğim var (Objective-C'de yerel bir iPad uygulaması yazma). Ekonomik açıdan uygun olabilecek başka seçenekler de var, bu yüzden sorum burada. ;-)
Heinzi

Yanıtlar:


10

JQuery Mobil + Telefon Boşluğu Oluşturun .

Bu, daha önce söylendiği gibi, ancak önemli bir bükülme ile "uygulamanızı oluşturmak için HTML5 ve JavaScript kullan" diyor.

Nitobi'nin Telefon Boşluğu Oluşturma hizmeti (artık Adobe'ye aittir), geliştiricilerin HTML5 / JavaScript uygulamalarını yerel olarak bir cihaza dağıtılabilen "yerel" uygulamalara (gerçekten karma uygulamalar) dönüştürmelerine olanak tanır. Temelde, kaputun altında neler olduğunu, yerel tarayıcıyı çağıran ve sitenizi bir dosyadan yükleyen küçük bir yerel ikili paketlemek olduğunu anlıyorum: // URL.

Belirli bir JavaScript çerçevesini hedeflemenize gerek yoktur; bir mobil web uygulamasında gerçekten iyi çalışacak HTML ve JavaScript iyi çalışır.

Çevrimdışı destek de zor değil. Birçok mobil cihazla iyi desteklenen yerel tarayıcı depolaması ile bu yolla gerçekten güçlü çevrimdışı uygulamalar oluşturabilirsiniz. Dış bağımlılıklarınızı bir CDN kullanmak yerine yerel olarak paketlemenin en iyi uygulamasıdır, böylece uygulamanız çevrimdışı çalışır.

KnockoutJS ve BackboneJS gibi çerçeveler , iyi tasarlanmış JavaScript uygulamaları oluşturmanıza izin vermede çok yararlıdır ve Phone Gap'ın oluşturma hizmeti ile gayet iyi çalışırlar.

Cihaz çevrimiçi olduğunda, verileri yenilemek için ASP.NET/MVC, WebAPI veya WCF servisinin arka uçlarına kolayca çarpmasını sağlayabilirsiniz.

Ortaya çıkan uygulamalar gerçekten çok iyi ve Apple ve Android pazarlarında dağıtılabilir. Phone Gap Build ve diğer benzer ürünlerle oluşturulan bu pazarlarda zaten birçok uygulama var ve insanların% 99'u (çoğu geliştirici dahil) farkı söyleyemiyor.

Açıkçası Angry Birds'ü bu şekilde oluşturmaya çalışmayacaksınız (yine de, sanırım Canvas ile deneyebilirsiniz), bahsettiğiniz uygulama türleriyle harika çalışıyor.

Benim sözüme güvenme. PhoneGap, yakın zamanda Hanselminutes , DotNetRocks ve Tablet Show'da olan PodCast devresinde turlar yapıyor . Ayrıca, son bir blog yazısında bu konuda yazdım .


+1 Bence bu yerel bir tablet uygulaması yazmak için en iyi uzlaşma.
Eric King

Ben sadece bir uygulama yerden bir ya da iki almak için deneyebilirsiniz ...
SoftwareSavant

13

ürün bilgilerini görüntüleme ve sipariş oluşturma

HTML 5 (ve aynı nefeste genellikle belirtilen ilgili teknolojiler) yeteneği dahilindeki şeyler gibi görünüyor. Zengin bir Web uygulaması yazın ve hemen tarayıcılı tüm cihazları destekleyin .


2
Teknik açıdan haklısınız, ancak deneyimlerime göre, tablet satın almak isteyen insanlar bir web uygulamasından daha parlak bir şey bekliyorlar.
Mart'ta Treb

3
@Treb - Jakob Nielsen'in bu konuda bazı ilginç düşünceleri var: useit.com/alertbox/mobile-sites-apps.html
jfrankcarr

2
Birçok tablet web uygulamasını "yüklemenize" izin verir, böylece bir uygulama gibi görünür. HTML5 uygulama benzeri görünmediği için bunu saymazdım. Bu benim için en iyi seçenek gibi görünüyor.
RationalGeek

3
Ayrıca ... bu, iki bölüme sahip olduğu anlamına gelmez: Web Uygulaması ve Yerel uygulama. HTML5 bir battaniye seçeneğidir ... Bir kez oluşturulduktan ve çalıştırıldıktan sonra, iş tercih ederse isteğe bağlı bir Android / Apple / Metro / Blackberry uygulaması oluşturabilirsiniz. Birçok site, siteleri için bir uygulama yükleme seçeneği sunar.
WernerCD

2
@Treb - Oldukça parlak bir web uygulaması yapmak mümkündür. En azından parlaklık ile ilgili gereksinimlerini inceleyecektim.
psr

4

Bunu bir MVC web uygulaması olarak geliştirmenizi tavsiye ederim. Bu, iyi tasarlamanız şartıyla masaüstünden akıllı telefona kadar herhangi bir cihazda çalıştırmanıza izin verir. HTML5 işe yarayabilir, ancak desteklemeniz gereken cihazların / tarayıcıların türüne bağlı olacaktır. Eğer onu kullanarak kurtulmak güzel olurdu. Gelecekte bir Metro uygulamasına WCF arka ucu olacak şekilde bazı bölümlerini uyarlayabileceğiniz bir yerde tasarladığınızdan emin olun.


3

Mevcut .NET bilgisinden yararlanmak istiyorsanız, bir SOA yaklaşımına gitmeli ve bir web hizmetine mümkün olduğunca çok işlevsellik eklemelisiniz (SOAP veya REST, hangisi size daha uygunsa onu seçmelisiniz). Bu şekilde, cihazda yalnızca web hizmeti işlevini çağıran ve sonuçları görüntüleyen küçük bir istemci uygulamasına ihtiyacınız vardır. Hangi müşteriyi seçerseniz seçin, iş mantığını uygulayan tam bir müşteriden daha kolay geliştirilmelidir.

Ayrıca daha sonra farklı cihazlar için destek eklemenize izin verir, tek ihtiyacınız olan yeni cihaz için küçük bir istemci uygulaması.

Bir cihaz seçmek için iki kriter görüyorum:

  1. Mevcut müşterinizin tercih ettiği müşteriyi seçin (bir tablet uygulaması isterse, biraz düşünmüş olacaklar)
  2. Diğer müşteriler tarafından da kabul edilme olasılığı en yüksek olanı seçin. Bu iPad veya belki de Kindle Fire olabilir, çünkü insanlar bunları zaten görmüşlerdir.

Her durumda, henüz piyasada bulunmayan cihazları beklemeyin. Bu seçenek 2'yi (ARM tabletlerde Windows 8) hariç tutacaktır.


Bugünkü duyuru itibariyle, Microsoft Surface, cihazlar çok yakında piyasada olabilir.
Mamta D

0

Herhangi bir Windows uygulaması MS'ye bağlı olduğunuz anlamına gelir. Ayrıca, Silverlight ve iOS / IE 10 birlikte iyi gitmiyor. Web Hizmetleri ve / veya JQuery ile HTML 5 ve JavaScript için gidin. Telerik-Kendo UI gibi üçüncü taraf araçları , GUI'nizi LOB Uygulaması için yeterince serin yapmalıdır. Dot Net sadece sunucu tarafında değerli olabilir.


-1

Bu son yorum gerçekten her şeyi söylüyor: 'Dot Net sadece sunucu tarafında değerli olabilir' - belki Microsoft bunu çağırmış olmalı. Veya .WindowsOnly?

.Net'te Windows RT istemci tarafı uygulamaları bile yazamazsınız.

Çapraz platform oyununda oynamak için .Net'te yazılan iş mantığınızın ve veri hizmetlerinin bir Windows sunucusunda yaşaması ve Web dostu bir API'yi ortaya koyması gerektiği doğrudur. En son ASP.Net Web API, Nisan 2013'te neredeyse endüstriyel güçtür. Bu, .Net nesnelerinizi JSON olarak göstermenize izin verir, böylece JQuery / JS istemci tarafı uygulamaları kolayca entegre edilebilir.

İstemci tarafında .Net'i kullanamazsınız. Veri tabanlı bağlama için belki de Nakavt ile JS kullanarak tüm UI kodunuzu HTML / CSS / JQuery ve mantığınıza yazmanız gerekir.

Bizim için Net geliştiricileri, sadece kullanıcı arayüzümüzü çizerek MARKUP YAZMAK OLMADAN LOB uygulamaları geliştirmenin Nirvana'sıdır. Kim istemci tarafında gelir. VS / .Net / WinForms / C # / VB.Net kadar iyi çalışan Net çerçevesi dünyayı yönetecek ve HAYIR - bence Mono hiçbir yerde (3. taraf bileşen satıcılarından destek yok) VS / .Net / WinForms yakınında.


"Windows RT istemci tarafı uygulamaları .Net'e bile yazamazsınız" yanlış bildirimi nedeniyle bu cevabı aşağıya düşürmek zorundayım.
Ramhound

Üzgünüz, Windows RT için .Net uygulamaları yazabileceğiniz iddiasına tamamen katılmıyorum - kanıtınız nerede?
TriSys

Isırırım. Tam olarak "istemci tarafı uygulamaları" ile ne demek istiyorsun, çünkü bir yıl önce çok özel bir şey aldım. Çünkü söz veriyorum, yazdığım .NET 4.5.1 Windows Store/WinRTbaşvurular var ve bunları mağazada yayınlıyorum. Merak ve tüm uygulama istemci tarafında saklanırsa C # kullandım.
Ramhound
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.