Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Beste Wahl für geräteunabhängige Softwareentwicklung für diverse mobile Geräte (CE/WM/WEH etc.)
CoLo
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

Beste Wahl für geräteunabhängige Softwareentwicklung für diverse mobile Geräte (CE/WM/WEH etc.)

beantworten | zitieren | melden

Ich suche hier die beste Programmiersprache/Entwicklungsumgebung für folgende Anforderung:
  • Abdeckung aller gängigen mobilen Geräte mit Windows CE und Mobile
  • Auflösungsunabhängig (z.B. 240x320 / 640x480 / 640x800)
  • mindesten 1 Eingabe-Textfeld
  • Fullscreen
  • Datenübertragung per TCP/IP


Im Augenmerk habe ich zur Zeit WPF. Aber evtl. gibt es noch was passenderes?
Vielen Dank im Voraus.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16109

beantworten | zitieren | melden

WPF ist keine Programmiersprache, sondern eine Technologie, ein UI Framework.
Geht es Dir also wirklich um die Sprache? Zudem hat ein UI Framework wenig mit Requirements wie TCP/IP am Hut.
Was das Requirement mit dem Eingabefeld auf sich hat, das kapier ich nicht.

WPF ist zudem überhaupt nicht auf Windows CE lauffähig.
Das solltest Du - nimms mir nicht böse - genauer evaluieren und Deine Anforderungen auch präziser formulieren.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
CoLo
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

Danke. OK WPF kann ich dann doch nicht verwenden.

In einem Eingabefeld soll etwas eingegeben werden, dass dann über ein Netzwerksocket übertragen wird.

Wenn es nur ein Gerätetyp wäre, würde ich das mit einem Windows Form erschlagen. Nun habe ich aber verschiedene Auflösungen und verschiedene Betriebssysteme, so dass ich mit dem C# Windows Form Designer hier nicht weiter komme.

Eine Webseite mit einem Textfeld erscheint mir da schon vielversprechend, da Geräteunabhängig. Nur muss ich die Eingabedaten dann noch per Netzwerksocket übertragen können. Als Beispiel gebe ich "Hallo" ein und das wird dann an "192.168.0.1:9999"als "Hallo;" übertragen. Die Verwendung einer Datenbank ist nicht geplant.

Was würdest verwenden bzw. wie würdest du das lösen?
private Nachricht | Beiträge des Benutzers
Alf Ator
myCSharp.de - Member



Dabei seit:
Beiträge: 637

beantworten | zitieren | melden

Hallo CoLo

Soll Windows CE wirklich mit dabei sein?

Du solltest drüber nachdenken, eine Intranet-Seite zu erstellen, über die du deine Eingabe tätigen kannst.

Gruß, Alf
private Nachricht | Beiträge des Benutzers
CoLo
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

ja, Windows CE soll mit dabei sein.
private Nachricht | Beiträge des Benutzers
glandorf
myCSharp.de - Member

Avatar #avatar-4144.jpg


Dabei seit:
Beiträge: 67
Herkunft: Chemnitz

beantworten | zitieren | melden

Hallo,

vielleicht hilft dir dies weiter: Lazarus

glandorf
private Nachricht | Beiträge des Benutzers
trib
myCSharp.de - Member



Dabei seit:
Beiträge: 691

beantworten | zitieren | melden

Du kannst Windows CE, Windows Mobile, Windows Embedded, Windows Embedded Compact und ein vollständiges Windows mit einer Lösung verwenden.

Man programmiert auf Windows CE und liefert die System-DLL´s für die Betriebssysteme mit aus, in denen sie nicht enthalten sind.
System.dll
System.Drawing.dll
usw.
Dann kannst Du ohne weiteres die Applikation auch auf Windows XP bis Win10 ausführen.
Sie befinden sich unter:
C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\

Eine der wenigen Ausnahmen sind die Dateizugriffe. Die Pfade sind etwas anders und sollten in der Programmierung unterschieden werden (Stichwort "file:\\").

In dem Fall sind jedoch Windows Phone und andere Betriebssysteme nicht enthalten.
Da bietet sich natürlich eine Browserbasierte Lösung besser an. Allerdings hat man dann keinen nativen Zugriff auf z.B. das Dateisystem, Barcodescanner, Standby-Verhalten, Wlan, Verbindungsabbrüche, usw.
Deshalb wird vermutlich eine Kombination der "Ideal"-Weg sein.
Also ein Programm für jedes Betriebssystem, welches einen Webbrowser verwendet und ein paar native Zugriffe erlaubt. Dann hat man zwar auch mehrere Applikationen, die sind aber nur einfach gehalten und sehr ähnlich.

Verschiedene Auflösungen kannst Du dann mit Responsive-Design unterstützen.
private Nachricht | Beiträge des Benutzers
codesoldier
myCSharp.de - Member



Dabei seit:
Beiträge: 29

beantworten | zitieren | melden

Bei Windows CE wird Dir nichts anderes übrig bleiben als das.NET Compact-Framework oder C++ zu verwenden. Die Geräte und das Betriebssystem sind so alt, dass ich mir nicht vorstellen kann dass Xamarin oder NativeScript darauf laufen.

Eine Webanwendung wäre natürlich auch denkbar, aber ob der veraltete Browser darauf jQuery, geschweige denn Bootstrap unterstützt wage ich zu bezweifeln, da wird Dir nicht viel mehr als HTML 4 übrig bleiben.

Mein Vorschlag wäre ein einfaches UI-Frontend, indem nur die Daten abgesendet werden. Die Logik lagerst Du dann in einem Webservice aus.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16109

beantworten | zitieren | melden

Windows CE ist aber nicht Windows CE.
Das Ding selbst ist ja bestimmt 20 Jahre alt, aber es gibt halt Windows CE als Version und Windows CE als Familie.
Vielleicht meint der Thread-Opener ja - die Details hier sind ja ohnehin sehr mager - auch Windows Embedded CE und nicht Windows CE, dann sieht die Sache natürlich anders aus.

Zu denken, dass es aber ein aktuelles Framework gibt, das eine Basis von vor 10-15 Jahre unterstützt: absolut utopisch.
Selbst nur fünf Jahre wäre Glück.

Bootstrap ist ja keine eigene Technologie, dahinter steckt ja "nur" HTML/CSS (+ je nach Plugin JavaScript).
Für die neueren Versionen der Windows CE Familie gibt es alternative Browser, die auch HTML5 unterstützen und auf WebKit basieren.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
trib
myCSharp.de - Member



Dabei seit:
Beiträge: 691

beantworten | zitieren | melden

CE spielt praktisch keine Rolle, wichtig ist das Framework!

Habe eine Applikation, welche auf dem Compact Framework 2.0 basiert.
Sie läuft auf:
  • CE 5.0
  • CE 6.0
  • CE 6.5.X - Klassisch und Mobile
  • Windows 7 Embedded Compact
  • Windows 7 & 8 Embedded*
  • Win XP*
  • Win 7*
  • Win 8*
  • Win 8.1*
  • Win 10*
*Sofern man wie bereits angesprochen, manuell die fehlenden Framework-Komponenten mit ins Programmverzeichnis kopiert.

Die Unterschiede zwischen den Versionen sind marginal. Bei den Mobile-Versionen muss man ggf. manuell die Windowsleiste ausblenden und anders mit der Onscreen-Tastatur umgehen (Die es wiederum bei den Nicht-Compact-Versionen nicht gibt). Und ab CE 6.0 muss man bei der Verwendung von Webservices aufpassen, da dort ein paar Sicherheitsfeatures eingeführt wurden, die die Verbindung verlangsamen können.

CE 5.0 wurde 2004 eingeführt, das macht schonmal eine Unterstützung von 12 Jahren.
Auch wenn ich von der Verwendung aus Sicherheitsgründen massiv abrate!
private Nachricht | Beiträge des Benutzers
CoLo
myCSharp.de - Member



Dabei seit:
Beiträge: 232

Themenstarter:

beantworten | zitieren | melden

Umso mehr Geräte unterstützt werden, um so besser. Hier eine Copy&Paste-Liste aus Wikipedia:
  • Windows CE 5.0
  • Windows Embedded CE 6.0
  • Windows Embedded Compact 7
  • Windows Embedded 8 (...)

  • Windows Mobile 6
  • Windows Mobile 6.1
  • Windows Mobile 6.5
  • Windows Mobile 6.5.3
  • Windows Embedded Handheld
  • Windows Mobile 7 / Windows Phone
  • Windows Mobile 8 / Windows Phone
  • Windows 10 Mobile
  • Windows 10 IoT Mobile Enterprise

Bei Barcodelesegeräten wird der Scanner nicht über die Anwendung gesteuert, sondern dauerhaft aktiv sein. Die Softwareansteuerung der Scannerengines per Datalogic-/Motorola-/... Dlls lohnt sich nicht/zu aufwändig.


Eine Webanwendung wäre gut. Nur muss ich die Daten per TCP/IP senden können. Wie mach ich das?

Perfekt wäre, wenn ich eine Webseite habe, welche die Eingabe an ein Dienst weiterreicht und der Dienst sich dann um den TCP/IP Datentransfer zum Computer/Gegenstelle kümmert.

Ich habe einen interessanten Artikel über ein Url-Protokoll von Rainbird gefunden. Nun kann ich ein Programm aus meiner Webseite aufrufen. Hier der mögliche Lösungsweg per URL-Protokoll:
  1. Eingabe '1234' in Webseite
  2. Webseite ruft Anwendung 'Weiterleiter.exe' mit Parameter '1234' auf
  3. Programm 'Weiterleiter.exe' leitet '1234' weiter an 'Dienst.exe' (z.B. per WindowsMessage)
  4. 'Dienst.exe' sendet '1234' per TCP/IP an den PC

Diese oben genannte 'Lösung' per URL-Protokoll möchte ich aber aus mehreren Gründen vermeiden. Zum Beispiel: 1. ist es ein Hack des Internetbrowsers um ein URL-Addon, dass ggf. nicht überall funktioniert z.B. wegen Sicherheitsrisiko. 2. ruft die Webseite ständig ein Programm auf, anstatt Daten an einen Dienst direkt weiterzureichen.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16109

beantworten | zitieren | melden

Bei der Anzahl von zu unterstützenden Betriebssystemen bekommst Du keine Technologie, die alles abdeckt.
Da musst Du - wie viele viele anderen Hersteller - mehrere Schienen fahren.

Windows 10 IoT hat zB einen massiven Cut was die Möglichkeiten angeht und mit UWP auch eine völlig andere Basis.
Zitat
Eine Webanwendung wäre gut. Nur muss ich die Daten per TCP/IP senden können. Wie mach ich das?
Man darf alles fragen; seh ich auch so.
Aber solche Fragen... da frag ich mich, ob Du Dich 5 Min beschäftigt hast, wie eine Webanwendung funktioniert und was überhaupt TCP/IP ist.
Ohne genanntes Protokoll gibt es quasi kein Internet in der heutigen Form.

Deswegen nochmal der Hinweis, dass Deine Requirements - empfinde ich - einfach irgendwie in nen Topf geworfen und überhaupt nicht evaluiert wurden.
Finde ich gegenüber potentiellen Helfern auch verdammt unfair, da Dir quasi das Forum Deine Arbeit abnehmen soll.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
trib
myCSharp.de - Member



Dabei seit:
Beiträge: 691

beantworten | zitieren | melden

Da kann ich Abt nur beipflichten!
Wir unterstützen Dich gerne bei konkreten Fragen, aber die komplette Arbeit werden wir Dir nicht abnehmen.

Die o.g. Betriebssysteme kannst Du definitiv nicht mit einer einzigen Softwarelösung unterstützen. Meine Liste hört absichtlich vor Windows Phone auf.
IoT ist auch wieder eine ganz andere Geschichte.

Wenn Dir die Verwendung der Symbol.dll für den Barcode-Scanner zu aufwändig ist, empfehle ich Dir ein anderes Projekt zu suchen. Bzw. bestätigt sich mir Abt´s Eindruck, dass Du Dich nicht ausreichend mit den Themen auseinandersetzt/einliest.

Der "Dienst" hat auf dem Gerät nichts verloren. Schau Dir mal ASP.Net an. Damit kannst Du die gewünschte Webseite(n) bauen. Im Codebehind entwickelst Du mit .Net und kannst Dich z.B. mit einer Datenbank verbinden, o.ä.
private Nachricht | Beiträge des Benutzers