Laden...

Wie schreibe ich einen Restful Webservices unter SharpDevelop?

Erstellt von Jaftali vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.577 Views
J
Jaftali Themenstarter:in
28 Beiträge seit 2020
vor 3 Jahren
Wie schreibe ich einen Restful Webservices unter SharpDevelop?

Hallo,

ich scheitere daran, einen Rest-Webservice in C# unter sharpDevelop zu schreiben.

Vorweg: Auf dem System, auf dem ich arbeite, kann ich mit Visual Sudio 2019
problemlos einen Rest-Webservice erstellen. Ich lege dazu einfach ein
ASP.NET Web Application-Projekt an. Visual Studio erstellt dann ein
vorkonfiguriertes Projekt, das schon beispielhafte GET und POST-Methoden
enthält. Die von Visual Studio erstellte beispielhafte Service-Klasse, in
der die Methoden definiert sind, erbt von irgendeiner
APIController-Klasse. Die Bibliotheken, die genutzt werden sind
folgende:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

Den Einstellungen zufolge ist das Zielframework .NET Framework 4.7.2

Ich muss/möchte nun aber als Entwicklungumgebung die freie IDE SharpDevelop verwenden. Dort habe ich die Controller-Klasse, die die Rest-Services enthalten soll, angelegt.

Diese lässt sich allerdings nicht kompilieren. Die
IDE zeigt Fehlermeldungen an. Demnach
fehlt für fast alles ein Assemblyverweis.

Ich bin irritiert. Sollte das nicht alles vorhanden sein? Schließlich
funktioniert es doch unter Visual Studio.

Dann ist mir etwas aufgefallen: In der freien IDE SharpDevelop kann ich
als aktuellstes Zielframework nur das .NET-Framework 4.5.2 auswählen.
Bei Visual Studio ist dagegen das 4.7.2 voreingestellt. Kann hier der Fehler liegen?

Hat hier vielleicht jemand noch einen Rat oder einen Tipp?

Ich habe diesen Beitrag im Übrigen auch in einem anderen Forum, das allerdings einen anderen thematischen Schwerpunkst setzt, verfasst. (Rest-WebService mit C# - Mikrocontroller.net)

P
441 Beiträge seit 2014
vor 3 Jahren

Vergleich mal die Projekte, da werden noch mehr Unterschiede sein.

Das liegt ja nicht an der IDE (zumindest nicht die Fehler), sondern nur daran, dass das Template im SharpDevelop einfach nicht die richtigen Referenzen enthält.

Warum nutzt du nicht Visual Studio Code mit ASP.NET Core?

T
2.219 Beiträge seit 2008
vor 3 Jahren

Mit SharpDevelop brauchst du keine neuen Projekte mehr anfangen.
Die letzte Version ist Anno 2016, da gibt es sogut wie 0 Support für .NET Core
War zu seiner Zeit eine ganz gute Alternative zu Visual Studio, was früher ziemlich träge war weshalb ich häufiger auch längere Wartezeiten hatte.
Heute spielt das aber keine große Rolle mehr.
SharpDevelop hat den Sprung nicht mehr geschaft und ist auch nur noch für .NET Versionen bis 4.5.2 zu gebrauchen.

Für neue Projekte würdei ch dir abraten dich auf SharpDevelop festzunageln.
Ansonsten darfst du später bei einem Wechsel auf .NET 5 dein ganzes Projekt mit Visual Studio neu aufziehen.

GitHub Repo:
https://github.com/icsharpcode/SharpDevelop

Nachtrag:
Hier noch der Wikipedia Eintrag, dort wird sogar nur ein Support bis .NET 4.5.1 angezeigt.
Wenn es mit neueren Versionen ohne Probleme klappt, ist das Glück.

SharpDevelop Wikipedia

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

J
Jaftali Themenstarter:in
28 Beiträge seit 2020
vor 3 Jahren

Dass das SharpDevelop-Projekt eingestellt wurde, ist mir bekannt. Allerdings eignet es sich in unserem schulischen Umfeld sehr gut, weil die IDE sehr schlank und unkompliziert ist. Zudem weiß ich nicht genau, ob die Schule von jetzt auf gleich Gelder für entsprechende Softwarelizenzen genehmigt bekommt.

Trotzdem sollen die Schüler laut Lehrplan Rest-Webservices schreiben und das Kollegium ist auf C# eingestellt.

Ich störe mich aber auch ein bisschen daran, dass man ein Projekt von einer einzigen IDE wie Visual Studio abhängig macht. Was hindert Microsoft daran, im nächsten Jahr die Lizenzkosten zu erhöhen? Und welchen Risiken birgt es, wenn der Entwickler vollkommen von dem Zusammenspiel der einzelnen .NET-Komponenten abgekoppelt wird.

Daher wäre es ja gut, wenn man so ein Rest-Template auch IDE-unabhängig erstellen könnte. Wäre das denn überhaupt möglich? Kennt jemand irgendwelche Quellen? Ich komme aus der Java-Welt. Da ist es so, wenn man das Build-Management-Tool Maven verstanden hat, ist die IDE eigentlich egal. Gibt es sowas auch im .NET-Umfeld?

16.806 Beiträge seit 2008
vor 3 Jahren

Deine Vorwürfe basieren im Endeffekt auf Unwissen der .NET Welt.

Alle Projektetypen sind vollständig ohne Visual Studio umsetzbar; alle. Natürlich aber hat Microsoft ganz andere Möglichkeiten der Unterstützung als ein freies Projekt.

Freie bzw. schlanke Editoren haben sich jedoch auf die vollständige Unterstützung von .NET Core eingestellt und schon lange den Invest in .NET Framework aufgegeben; da die Zukunft eben .NET Core ist.
Gerade freie Projekte müssen meist wegen ihren knappen Kapazitäten in Sachen Features Abstriche haben.

Letzten Endes reitest Du ein altes Pferd und machst dafür Microsoft verantwortlich. Nicht ganz fair oder gar sachlich 😉

Nimm .NET Core bzw. .NET 5 als aktuellste Technologie, dann hast Du auch eine größere Auswahl an freien Editoren; angefangen bei Visual Studio Code oder der kostenlosen Variante Visual Studio Community Edition, die auch für Schulen kostenlos ist und den gleichen Umfang hat wie die Professional Edition.
Gerade REST bzw. Web Services sind mit .NET Core auf einem viel moderneren Standbein als .NET Framework.
Das den Schülern noch anzutun würde ich mir zwei mal überlegen.

Was hindert Microsoft daran, im nächsten Jahr die Lizenzkosten zu erhöhen? Und welchen Risiken birgt es, wenn der Entwickler vollkommen von dem Zusammenspiel der einzelnen .NET-Komponenten abgekoppelt wird.

Erinnert mich an meine Kunden, die oft noch in den 90er Jahren stecken 😉

Ein Unternehmen kann sich heutzutage gar keine arroganten Alleingänge in der Software Welt erlauben.
Da verbrennt man sich mit der Community schneller die Finger als man schauen kann - und ist dann für Jahre geprägt.

Das Argument, dass ein Unternehmen jedes Jahr die Lizenzkosten ändern kann; damit kannst Du jede Kaufsoftware dann beerdigen.
Gerade ESD Lizenzen für Schulen sind spott billig - und Microsoft hat ja ein Interesse, dass Schulen ihr Zeug nutzen um so Schüler und Studenten zu prägen.
Und als Schule könnt ihr Visual Studio Community Edition kostenlos verwenden.

Ich finde es aber bezeichnend für den Bildungssektor, dass einfach altes Zeug mit völlig veralteten IDEs beigebracht werden soll. Erinnert mich an meine C++ Zeit in der Schule mit nem Borland Editor, der damals schon 10 Jahre aus dem Support war.
Hatte genau zwei

  • Schüler, die eine Vorahnung haben, die lachen dadrüber und lernen nichts, was sie eh schon wissen.
  • Schüler, die keine haben, werden damit kaum zurecht kommen und lernen nichts.

Zum Thema Maven:
Maven ist ein sehr spezifisches Tool in der Java-Welt und außerhalb von Java gibts oder aber auch braucht man sowas oft gar nicht.

Buildsysteme sind i.d.R. Technologie unabhängig.
Du kannst mit einem ordentlichen Buildsystem alle Typen von Software - egal ob Java, C++ oder .NET verwalten und bauen.
Azure DevOps, GitHub, Gitlab.... alles unabhängige Plattformen.

4.931 Beiträge seit 2008
vor 3 Jahren

Die Visual Studio Community Edition sollte doch kostenfrei für Bildungseinrichtungen (also auch Schulen) sein: Visual Studio - und zwar kostenlos! (oder eben alternativ Visual Studio Code).

309 Beiträge seit 2020
vor 3 Jahren

Du kannst doch theoretisch auch mit dem CLI das Projekt "richtig" erstellen:


dotnet new webapi

Dann kannst du ja auch Notepad als Editor verwenden 😁

16.806 Beiträge seit 2008
vor 3 Jahren

JimStark; das geht aber nur mit .NET Core und nicht mit .NET Framework.
Daher auch die Hinweise in den anderen Beiträgen.

J
Jaftali Themenstarter:in
28 Beiträge seit 2020
vor 3 Jahren

Die Visual Studio Community Edition sollte doch kostenfrei für Bildungseinrichtungen (also auch Schulen) sein:
>
(oder eben alternativ Visual Studio Code).

Und deine Vorwürfe basieren im Endeffekt auf Unwissen über den Bildungssektor.

Ich kann mich an eine Zeit erinnern, da mussten 30 Schüler bei einer Programmier-Klassenarbeit ein Microsoft Visual Studio 2017-Projekt anlegen und öffnen. Bei 10 von 30 Schülern hat das Öffnen 10 Minuten gedauert und das obwohl die Rechnerausstattung angemessen war. Später, nachdem der Systemadmin auf Visual Studio 2019 umgestellt hatte, konnte kein Schüler mehr seine 2017-Projekt öffnen.

Schlussendlich geht's aber nur darum, dass der Schüler Programmierkenntnisse erlangt und in diesem Fall ein paar HTTP-Methoden schreibt. Dabei muss es nicht die neuste IDE sein. Entscheident für den Lernerfolg ist das nicht. Besser ist es sogar, wenn die IDE ehrer weiniger komplex ist, damit sich der Schüler auf das wesentliche konzentrieren kann.

Insgesamt ist das ber alles Off Topic.

T
2.219 Beiträge seit 2008
vor 3 Jahren

Mit deinen Anforderungen wirst du aber dein Problem nicht lösen können, egal wie gut/schlecht VS 2017 war.
Dein Problem wirst du nur lösen können, wenn du wieder zu VS 2019 gehst.
Die Community Edition erfüllt deine Anforderungen, kostet kein Geld und kann auch die entsprechenden Projektvorlagen liefern und öffnen.

Du kannst auch gerne wieder mit SharpDevelop versuchen das Problem zu lösen, Support kann dir dann aber keiner hier bieten.
Gerade der Umbruch von .NET Core zu .NET 5 wird SharpDevelop auf kurz oder lang obsolete machen und dann kannst du keine aktuellen Projekte mehr damit umsetzen.
Lernprojekte auf einem Lernstand von vor 5-10 Jahren können die Schüler überhaupt nicht gebrauchen und wären sogar Kontraproduktiv.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

16.806 Beiträge seit 2008
vor 3 Jahren

Denke Du meinst mich und nicht Th69 - aber das ist okay.

Später, nachdem der Systemadmin auf Visual Studio 2019 umgestellt hatte, konnte kein Schüler mehr seine 2017-Projekt öffnen.

Unwahrscheinlich, dass dies an Visual Studio alleine lag, denn es gab keine Breaking Changes bei den Projektstukturen von VS2017 auf VS2019.
Und abgekündigte Projektstrukturen werden von VS automatisch migriert (seit 2012).

Du nimmst nun also "Begründungen" von Migrationspfaden heraus um den Einsatz einer abgekündigten, veralteten Umgebung zu nutzen.

Nimm doch die Tipps der Helfer hier an und schau Dir die Alternativen an.
Wir sagen das ja nicht um Dir zu schaden sonden letzen Endes Dir und Deinen Schülern ne bessere Umgebung zu bieten.

Schlussendlich geht's aber nur darum, dass der Schüler Programmierkenntnisse erlangt und in diesem Fall ein paar HTTP-Methoden schreibt.

Da bin ich absolut bei Dir; bei der Umsetzung jedoch nicht.
Du prägst den Schüler - bewusst oder unbewusst - durch den Erstkontakt mit einer abgekündigten, hakeligen Umgebung.

Ich mach kein Hehl draus, dass die Erfahrungen bei mir in der Schule meine große Ablehnung gegenüber Borland begründet. 😉
Und ich hab das aus Erfahrung gesagt, dass es Schüler gab die NICHTS gelernt haben, weil sie das alles schon kannten und die unerfahrenen Schüler NICHTS auf die Reihe bekommen haben, weil die Umgebung so schrecklich war.

Und deine Vorwürfe basieren im Endeffekt auf Unwissen über den Bildungssektor.

Aus einschlägigen Erfahrungen.
Zum einen selbst als Schüler / Student und zum anderen, wenn ich in Schulen oder vor Studenten Vorträge halte und Feedback erhalte, wo die Studenten stehen und mit was sie arbeiten.

Daher nimm es doch als Feedback entgegen statt es als Off Topic abzublocken 😉

J
Jaftali Themenstarter:in
28 Beiträge seit 2020
vor 3 Jahren

Unwahrscheinlich, dass dies an Visual Studio alleine lag, denn es gab keine Breaking Changes bei den Projektstukturen von VS2017 auf VS2019.
Und abgekündigte Projektstrukturen werden von VS automatisch migriert (seit 2012).

Es könnte auch sein, dass es VS 2012 war, das wir dann auf 2017 oder 2019 gesetzt haben. So genau kann ich das nicht mehr sagen.

Nimm doch die Tipps der Helfer hier an und schau Dir die Alternativen an.
Wir sagen das ja nicht um Dir zu schaden sonden letzen Endes Dir und Deinen Schülern ne bessere Umgebung zu bieten.

Ja, ich bin euch jedenfalls sehr dankbar für eure Empfehlung. Letztendlich seid ihr die Experten. Ihr arbeitet mit .NET regelmäßig und könnt aus Erfahrung sprechen. Wir bewegen uns an der Schule eher auf einem anderen Niveau.

Meine bisherighen Erfahrungen mit der Community-Version waren durchweg positiv (auf dem Heim-PC). Da lief das Rest-Projekt nach wenigen klicks. Dafür kann ich aber auch nicht genau sagen, was da eigentlich genau im Hintergrund passiert. Beispiel: Dem Schüler muss man ja irgendwie erklären, wo sich der Webserver befindet, wo das Binding passiert, wo die Assemblies abgelegt sind und in welcher Datei ich alle Konfigurationen zusammenbringe.

16.806 Beiträge seit 2008
vor 3 Jahren

Beispiel: Dem Schüler muss man ja irgendwie erklären, wo sich der Webserver befindet, wo das Binding passiert, wo die Assemblies abgelegt sind und in welcher Datei ich alle Konfigurationen zusammenbringe.

Gerade wegen diesen Gründen solltest Du nicht mehr .NET Framework sondern .NET Core verwenden.
In .NET Framework war das alles nen bisschen Black Magic; bei .NET Core funktioniert das alles viel transparenter und einfacher.

Beispiel:
ASP.NET Anwendungen mit .NET Framework waren nichts anderes als Module, die sich in den IIS eingeklinkt haben.
Man musste zwangsläufig den IIS verstehen, damit man wusste, wie ein Request funktioniert.
Mit ASP.NET Core und .NET Core gibt es das alles nicht mehr; ASP.NET Core ist völlig losgelöst vom eigentlichen Webserver und technisch gesehen eine Konsolenanwendung, die auf ein Port hört.

Aus eigenen Erfahrungen als Trainer:
Wenn man Leuten ASP.NET mit .NET Framework erklärt hat, musste man den Leuten viel mehr Overhead erklären, das notwendig war, um eine solche Anwendung zum laufen zu bekommen.
ASP.NET Core ist viel schlanker; es ist viel einfacher zu erklären und die Lernhürde viel niedriger.

2.078 Beiträge seit 2012
vor 3 Jahren

Ich kann mich an eine Zeit erinnern, da mussten 30 Schüler bei einer Programmier-Klassenarbeit ein Microsoft Visual Studio 2017-Projekt anlegen und öffnen. Bei 10 von 30 Schülern hat das Öffnen 10 Minuten gedauert und das obwohl die Rechnerausstattung angemessen war.

Wenn ein kleines Übungs-Projekt 10 Minuten öffnet, dann war die Ausstattung sicher nicht angemessen.

Aber es stimmt, Visual Studio ist schwerfällig, das hat sich mitlerweile gebessert, von "schnell" ist es aber noch weit entfernt.
Für kleine Übungsprojekte sollte das aber nicht relevant sein, dann erklärt der Lehrer in der Zeit eben das Ziel für die Stunde, sobald Visual Studio einmal gestartet wurde, geht's nämlich viel zügiger voran.

Und wenn Visual Studio definitiv (warum auch immer) keine Option ist, dann nimm Visual Studio Code - wurde ja schon mal empfohlen. Es mag ähnlich klingen (mMn. keine sehr kluge Namenswahl), ist aber völlig anders - im Prinzip ein sehr flexibler Texteditor, der sich an Entwickler richtet.
Ich hab in den letzten Jahren immer wieder Entwickler gesehen, die primär mit VS Code arbeitet und erst dann auf Visual Studio zurückgreifen, wenn sie die zusätzlichen Features davon brauchen. Da diese Features aber meist erst bei komplexeren Problemen relevant werden, dürfte das euch nicht stören.

VS Code hat allerdings den Nachteil, dass viele Hilfen weg fallen, z.B. kannst Du nicht mehr einfach so mit der Maus eine neue Web-API erstellen (vielleicht gibt's ja eine Extension), aber dafür ist das unter .NET Core ziemlich einfach per Kommandozeile möglich.

Und ja, auch ich halte .NET Core für die bessere Wahl.
Das "klassische .NET Framework wird zwar noch eine Weile supported werden, weiterentwickelt wird es aber nicht mehr.
Außerdem hat sich seit .NET Core (bzw. .NET 5) so einiges gebessert, ich kann dir mit ziemlicher Sicherheit versprechen: Die .NET-Zukunft gehört .NET Core bzw. .NET 5.

Und zum Verständnis wegen .NET Core und .NET 5:
.NET 5 > .NET Core 3.1
.NET 4.8 ist vermutlich die letzte "klassische" .NET-Version.
.NET Core war der .NET-"Reboot", der andere Name vermutlich desshalb, um klar zu machen, dass es deutliche Unterschiede geben kann/wird
.NET 5 ist der Nachfolger von .NET Core 3.1 um die zukünftiger Kommunikation wieder zu vereinfachen, die mit .NET Core ja schon etwas komplexer wurde

Wenn wir von .NET Core oder .NET 5 sprechen, meinen wir also den Neustart vom klassischen .NET Framework, der die letzten Jahre .NET Core hieß und dieses Jahr mit einem kleinen Umbruch in der Benennung mit .NET 5 eine neue Version bekommt.

3.003 Beiträge seit 2006
vor 3 Jahren

.NET Core / .Net 5
Editor: Visual Studio Code (keine Lizenzgebühren, frei verfügbar, alle gängigen Betriebssysteme)

Für das, was du deinen Schülern beibringen willst, brauchst du keine IDE. Ein Editor reicht, dann liegt der Fokus auch auf dem Programmieren und nicht auf der IDE (mal abgesehen davon, dass ich dir die Kompatibilitätsprobleme von Projektmappen zwschen 2017 und 2019 nicht abkaufe. Die sind identisch.) Ich erinnere mich dunkel, dass wir in der Java-Vorlesung erstmal zwei Stunden mit EInführung in Eclipse verbracht haben. Unnötig, umständlich, langweilig.

Die Hinweise hier gehen alle in die Richtung, dass die Nutzung der moderneren, schlankeren, leichter zugänglichen Variante von .NET empfohlen wird. Und das zu Recht. Offen gesagt, lesen sich deine Antworten dagegen eher so, dass du dir einen ganz anderen Aufwand sparen möchtest. Nämlich den, etwas neues zu lernen.

Grüße,

LaTino (selber hin und wieder Kursleiter)

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

T
708 Beiträge seit 2008
vor 3 Jahren

Da musste ich doch sehr schmunzeln:

Erinnert mich an meine C++ Zeit in der Schule mit nem Borland Editor, der damals schon 10 Jahre aus dem Support war.

Offenbar waren wir auf der selben Schule 😉

Wir haben in der Ausbildung begonnen C# im Notepad zu entwickeln und mit der csc.exe zu kompilieren. Erstmal die Funktionsweise verstehen und im späteren Schritt alles über die IDE automatisieren. Welche, das war uns als Schüler freigestellt zu wählen.

F
10.010 Beiträge seit 2004
vor 3 Jahren

Man bin ich alt, ich habe mir Borland Turbo C 2.0 + Turbodebugger gekauft, weil es damals die modernste IDE und der schnellste Compiler war.
Ausserdem hatte damals Borland die beste Dokumentation.
So ändern sich die Zeiten.