2008-11-03 11 views
6

Od programisty tkwiącego w świecie internetu ...Opcje rozwoju oprogramowania komputerowego

Jakie są najpopularniejsze "środowiska programistyczne" używane obecnie do tworzenia aplikacji desktopowych?

  1. Czy jest realistyczne pisanie oprogramowania na komputer dla systemu Windows i OS X?

  2. Czy jest realistyczne użycie tego samego kodu bazowego do napisania warstwy biznesowej/danych dla aplikacji, która będzie miała częściowy interfejs WWW, a także interfejs komputera?

Odpowiedz

3
  1. Tak. Możesz używać Java, Python/Ruby itp. Z platformą UI platformy, środowiskiem AIR itp.

  2. Tak, to jest realistyczne. Zbuduj go na modelu klient/serwer, a większość kodu będzie pasować do modelu komputerowego lub interfejsu WWW.

Jeśli zszedł korzeń .NET, można użyć Silverlight dla aplikacji sieci web, .NET kodu serwera dla backend a nawet Mono, aby umożliwić Ci opracować dla OS X.

jeśli wziął trasę Java, Java działa w przeglądarce, wkrótce pojawi się JavaFX, która jest małą wersją flashową dla przeglądarek. Działa na prawie wszystkich systemach operacyjnych i może obsłużyć backend dobrze.

Flex/AIR to doskonały sposób na tworzenie aplikacji na komputery stacjonarne i internetowe dla OS X, Windows i Linux, ale potrzebny jest inny język dla zaplecza. .NET, Java, PHP itp. Wszystko działa dobrze jako backend.

Edit
Na życzenie MrJeepster jest, oto szczegóły dotyczące łączenia się frontend AIR i .NET backend:

Istnieją dwa sposoby można interfejs radiowy do backend .NET: sposób DIY i usług zdalnych droga.

Sposób na samodzielne wykonanie wymagałby zdefiniowania własnych (prawdopodobnie XML) formatów danych i użycia obiektów HTTP o niskim poziomie do komunikowania się z serwerem HTTP lub nawet do klas gniazd niższego poziomu w celu komunikacji z innym serwerem.

Sposób usług zdalnych jest wszystko razem łatwiej jak mili ludzie pisali wybór bezpłatnych pakietów usług zdalnych:

http://www.adobe.com/devnet/flashremoting/articles/intro_flremoting_net.html
http://www.themidnightcoders.com/flashorb/gettingStarted.htm
http://www.fluorinefx.com/

Remoting polega dzielenie przedmiotów pomiędzy klientem a serwerem. Tworzysz więc obiekt na kliencie AIR, pobierasz frameworię zdalnego przetwarzania w celu serializacji, przeniesienia na serwer i deserializacji do obiektu .NET. Następnie serwer przetwarza go i wysyła go lub nowy obiekt z powrotem tą samą trasą.

+0

Czy możesz podać więcej szczegółów na temat działania środowiska AIR z językiem> sieciowym jako zapleczem? –

1

Qt (albo na C++ lub Python) jest w pełni przenośny między Mac/Win/Linux. Zawiera również QtWebKit, więc łatwo jest umieścić prawdziwą, nowoczesną przeglądarkę w swojej aplikacji.

1
  1. Mogę zasugerować Qt, jeśli szukasz platformy wieloplatformowej. Użyliśmy go tutaj kilka lat temu. Jest to licencja na programistę i drogie (przynajmniej wtedy było).

  2. Oczywiście, można korzystać z usług internetowych.

2

Chociaż tworzenie desktopów na różnych platformach jest możliwe, nie jest to łatwe. Co najmniej, musisz testować na każdej obsługiwanej platformie. Musisz dokonać trudnych kompromisów: czy sprawisz, że twoje oprogramowanie będzie wyglądało dokładnie tak samo na każdej platformie (a przez to nie będzie nigdzie wyglądać jak natywna aplikacja), czy korzystasz z natywnych elementów sterujących i radzisz sobie z różnymi ustawieniami itp. Na różnych platformach? Poza wyglądem, jakiego zachowania używasz? Na przykład oprogramowanie UNIX sortuje wielkość liter, ale oprogramowanie Windows tego nie robi. Czy wybierasz jedną kolejność sortowania na obu platformach, czy też sortujesz inaczej na każdej platformie?

1

Połączenie z .NET i mono to przyzwoity wybór.

+0

Nie porównuje się do java – willcodejavaforfood

+0

True @willcodejavaforfood. Kiedy możesz znaleźć progra- my java, które są gotowe do kodowania prawie za darmo, po prostu określ je i wrzuć pokarm dla psów. ;) – kenny

0

Zbudowaliśmy wiele wielopoziomowych, wieloplatformowych aplikacji wykorzystujących Javę. Na pulpicie Swing pracował NAPRAWDĘ dla nas.

0

Budujemy małą aplikację do obsługi wielu platform za pomocą Java (Swing) i jest naprawdę przyjemnie. Przynajmniej do tej pory. : D

0

Używam REALbasic do tworzenia szerokiej gamy aplikacji dla systemów Mac OS X i Windows. Działa całkiem dobrze.

Nie nadaje się jednak do tworzenia oddzielnych warstw do współdzielenia z interfejsami komputerowymi/WWW.