Howto : HelloWorld Projekt erstellen in Visual Studio .NET

strammermax

Neuer User
Mitglied seit
6 Nov 2007
Beiträge
72
Punkte für Reaktionen
0
Punkte
0
Werte WinCE Gemeine,
hier mal mein erstes HowTo zum programmieren unserer Box mit Hilfe von C# und Visual Studio. Ich benutze Visual Studio schon ziemlich lange und finde es super, weiß aber auch, das nicht jeder in den Genuß einer kostenlosen MSDNAA Version kommt wie ich. Evntl. schreibt noch jemand ein Hello World HowTo mit OpenSoucre Produkten?

Vorraussetzungen :
  • ein paar Programmierkenntnisse oder/und viel Motivation
  • eine MS Visual Studio Version ab 2003 (ich habe die 2008er Version, evntl. weicht in früheren Versionen einiges ab)
1. Projekt anlegen

In Visual Studio .Net erstellst du ein neues Projekt über Datei->Neu->Projekt. Dort wählst du Visual C# -> Intelligentes Gerät -> Projekt für intelligente Geräte aus. Oben rechts musst du das .NET Framework angeben. Da wir alle das .net 2.0 auf unserer Box haben, wählen wir auch dieses.
Unten kannst du einen Namen und einen Speicherort angeben, eine Projektmappe musst du nicht unbedingt erstellen. Wähle am besten einen Ordner, auf den du auch von der Box zugreifen kannst. Das erleichtert das Debuggen um einiges.

screen1.jpg

Mit "OK" bestätigen. Im nächsten Fenster wählst du „Geräteanwendung“, als .net compact Framework-Version wieder die v2.0 und als Zielplattform WindowsCE. Bei der 2008er Version vom Visual Studio ist es komischerweise wichtig, es genau in der Reihenfolge zu machen, da ansonsten die verkehrten .net dlls kopiert werden und die Box das Programm nicht starten kann.

screen2.jpg

Ihr solltet nun folgendes Bild vor euch haben :

screen3.jpg

Kurze Erklärung :
  1. Gerätesteuerelemente für den Designer-Modus
  2. Unserer bisher recht trostlose Oberfläche
  3. Projekt Explorer - hier sehen wir alle Sourcefiles, Ressourcen und geladenen DLLs
  4. Die Eigenschaften des aktuellen Objekts (falls dieses Fenster nicht angezeigt wird, einmal rechtsklicken auf das Form und Eigenschaften wählen
  5. Error oder Debug-Meldungen
Für unser HelloWorld Projekt müssen wir nicht mehr viel machen...

2. Hello World Text

Nun wechseln wir wieder in die Entwurfsansicht, indem wir den Reiter “Form1.cs [Entwurf]” anklicken. Dort plazieren wir ein schönes “Label” aus der linken Toolbox (einfach per Drag'n'Drop), ziehen es etwas größer und wurschteln uns in den Eigenschaften bis zum Eintrag “Text” durch. Dort ersetzen wir label1 durch “Hello World”. Falls du lustig bist, kannst du noch ein bißchen mit der Schrift rumspielen.


3. Exit Button der Tastatur

Da wir auf der Box normalerweise keine Maus haben, müssen wir dafür sorgen, das man das Programm auch wieder beenden kann.

Das geht ganz einfach, indem wir das Form einmal anklicken, dann in den Eigenschaften auf den Blitz in der Titelleiste klicken (das sind die Ereignisse). Dort finden wir das Event „KeyDown“, welches auch unsere Fernbedienung auslöst.
Ein Doppelklick darauf und wir befinden uns in der Code-Ansicht.

screen4.jpg

Wie das gelb-markierte zeigt, sind wir in der Funktion, die aufgerufen wird, wenn ein Tastendruck registriert wird.

Die Funktion bei 1 jetzt wie folgt erweitern :
Code:
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyValue)
            {
                case 27:
                    Application.Exit();
                    break;
            }
        }
e.KeyValue speichert den integer Wert der gedrückten Taste. 27 ist der für die Taste “Exit” auf der Tastatur.

4. Compilieren & ausführen

Damit wir unser tolles Hello World auf der Box ausführen können, müssen wir es zuerst noch kompilieren. Das machen wir mit der Taste F6 oder über Erstellen->Projektmappe erstellen. Der Debug Modus (grüner Pfeil oder F5) ist hier nicht zu empfehlen, da dieser einen PocketPC Emulator startet, dort erstmal WindowsCE installiert und es dann versucht, dort zu starten...

Sobald unten links "Erstellen erfolgreich" steht, können wir die EXE auf der Box ausführen.

Tataaa !!! Unser erstes Programm ist fertig!
 

Anhänge

  • HelloWorld.zip
    23.6 KB · Aufrufe: 61
Zuletzt bearbeitet:
Perfekt
h050.gif
 
Die kenn ich auch die Seite, die ist echt stark. Aber leider nicht so direkt für WinCE, oder?
 
Da haben wir uns jetzt überschnitten:

Ich habe den Link schon entfernt, da ich mir nicht sicher war ob C# und Visual-C# das gleiche sind.
Ich kenne nur C++ (In dieser Sprache habe ich damals meine Diplomarbeit geschrieben)
 
Von C# gibts glaub mehrere abartige Arten, aber deine beiden sind glaub ich dieselben...

C++ ist leider nicht so für die Box geeignet, die .net Programmierung ist da um Welten schwieriger als in C#. C# ist echt was für Kinder im Gegensatz zu C++!

@Diplomarbeit :
Das steht mir jetzt dann auch bald bevor *heul*
 
C++ ist ganz gut für die Box geeignet, es gibt mit Embedded Visual C++ sogar eine kostenlose Programmierumgebung von Microsoft
 
Okay, das muss ich mir mal anschauen! Ich habs davor mit Visual Studio und C++ versucht und fand es wesentlich aufwändiger...
 
stimmt aufwendiger ist es auf alle Fälle weil man fast alles "zu Fuß" machen muß und der Funktionsumfang ähnlich wie im Compact Framework sehr stark eingeschränkt ist. Aus dem Grund habe ich auch nur den loader der die ganzen dlls (.NET Compact Framework und OpenNetCF) installiert und in C++ geschrieben. Für den Client bin ich den bequemeren Weg gegangen über VB .NET
 
Es gibt ja das kostenlose 'Visual Studio 2008 Express Editions' (Registrierung erforderlich ) mit den einzelnen Editions von 'Visual C#', 'Visual Basic', 'Visual C++' und dem 'Visual Web Developer'.

Jetzt bin ich auf folgendes gestoßen:
"...Bei den Express-Editionen handelt es sich nicht etwa um funktional eingeschränkte oder gar zeitlich befristete Demoversionen sondern um komfortable IDEs, die es mit jeder anderen aufnehmen können. ... Die kommerziellen Versionen von Visual Studio haben natürlich zusätzliche Funktionen, die man zumindest für den Einstieg aber nicht braucht."

Weiß jemand um welche Funktionen sich es handelt, bzw. wo man Info's dazu herbekommt?
 
OK, Danke Neelix:
Dann hat es sich mit den Expresseditionen erledigt.
 
Hello World in VB.Net unter SharpDevelop

Hallöchen,

so, nun bin ich der Aufforderung von strammermax mal gefolgt und habe das Projekt analog zu seinem Beispiel mal mit der Opensource Entwicklungsumgebung SharpDevelop unter VB.Net erstellt und die Vorgehensweise in einem Flashvideo dokumentiert.

Ich habe das Video auf meine Website geladen, weil der aus mehreren Teilen besteht und zu groß wäre für den Upload ins Forum.

Das fertige VB Projekt habe ich beigefügt.

Die notwendigen Pakete und Bezugsquellen findet ihr hier
 

Anhänge

  • hello.zip
    25.9 KB · Aufrufe: 16
Zuletzt bearbeitet:
Hallöchen,
...
Die notwendigen Pakete und Bezugsquellen findet ihr hier

Ich habe damals, als ich das ausprobierte, noch das 'Framework SDK" installieren müssen (SharpDevelop hatte mich dazu aufgefordert ), danach lief alles 1A.

@Strammer Max:
Bescheidener Vorschlag,
Da du ja mehrere interessante Howto's zum Thema geschrieben hast, wäre es vielleicht angebracht die anderen hier im ersten Post zu verlinken, so muss der User nicht erst lange danach suchen.
 
@Jean Luc
geb ich dir recht. eigentlich müsste ich schon lange einen eigenen thread bekommen haben :-(
 
@strammermax, anderer Vorschlag:
Nimm Dein oben angeheftetes HowTo (dieser Thread), um dort eine Art Inhaltsverzeichnis mit Kapitelübersicht (incl. Kurzbeschreibung der einzelnen Kapitel) zu pflegen.
Die anderen (von dort verlinkten) Threads bleiben im normalen Threadbereich.
Somit schlagen wir mehrere Fliegen mit einer Klappe
1. Der "Wichtig"-Bereich im Forenkopf läuft nicht über und bleibt somit übersichtlich
2. Es gibt von Anfang an eine saubere Struktur mit gezielter Verlinkung zu den Kapiteln
3. Du kannst frei nach Schnauze beliebige Kapitel als neue Threads schreiben, und in das obige Inhaltsverzeichnis einpflegen.

Um bei den einzelnen Kapitel-Threads sofort zu erkennen, worum es geht, schlage ich folgendes Schema vor:
Nenne das "wichtig gesetzte" Inhaltsverzeichnis z.B.
"[Kochbuch] Die Win-CE-Programmierung"
und die einzelnen Threads dann folgerichtig
"[Kochbuch] Kapitel 1: Hello World" usw.
So hat jeder sofort den Zusammenhang, kann gezielt die einzelnen Threads/Kapitel anklicken und sich so durcharbeiten. Entscheidend ist hier eine durchgängie Titelwahl für alle Kapitel ;)
Die nicht zum "Inhalt" gehörenden Beiträge werden von uns anschließend auch aus dem Wichtig-Thread entfernt, um dort ebenfalls Ordnung zu erhalten.
So können wir (Forenmitarbeiter) dann später (wenn der Bedarf groß genug ist und eine entsprechend große Threadanzahl vorhanden ist) einen eigenen Forenbereich für dieses Projekt einrichten, um dann zielgerichtet alles verschieben zu können. ;)
Bis dahin solltet ihr aber mit dem SOT-Bereich als Programmierecke für Win-CE auskommen können. Gegenvorschläge?
(Die Namensgebung ist nur ein Vorschlag, nenne das Baby, wie Du möchtest!)
 
Mal was anderes: kann ich versuchen ein bestehendes Programm für die Thomson zu kompilieren, was an für sich für x86 PC entwickelt wurde?
 
Falls du den Source-Code vorliegen hast, ja.

Ich hatte schon Glück mit kleineren Programmen, indem ich ein neues Projekt erstellt habe (s.o.) und die Dateien einfach reingezogen habe. Oft gibt es dann Fehler mit Assembleys oder anderem Schrott, den du dann zu lösen hast!

Möglich isses!
 
so, nun bin ich der Aufforderung von strammermax mal gefolgt und habe das Projekt analog zu seinem Beispiel mal mit der Opensource Entwicklungsumgebung SharpDevelop unter VB.Net erstellt und die Vorgehensweise in einem Flashvideo dokumentiert.

Habe dein Flash-Video mal Stück für Stück nachgebaut. Lief auch alles bis zu dem Punkt wo die EXE erzeugt wird. Dort bekomme ich einen NetFramework3,5 Fehler die besagt:
"28 'C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Compact.Framework.CSharp.targests'cannot be found "


Buildumgebung:

NETCFSetupv2
NET Framework 2.0 + languagepack
SharpDevelop v 3.0

Hast Du das mal mit den aktuellen Datein versucht, das Hello World meine ich oder kann mir jemand sagen wo ich meinen Fehler mache ?
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.