• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

ASP.NET Core und SQL Server

Floating Apps

Minecrafter
Mitglied seit
25 Dezember 2017
Beiträge
9
Alter
21
Hallo ihr wohlgeformten Menschen,

ich bin ein Fan der .NET Szene und möchte euch nun beibringen, wie ihr in diese Szene mit einsteigen könnt.

Inhaltsverzeichnis

  1. Letzter Teil: Server einrichten
    1. Was ist ASP.NET Core?
    2. Für wen ist ASP.NET Core gedacht?
    3. Beispiele für ASP Seiten
    4. Ich will auch so eine tolle Seite haben!
    5. Annotation zum Thema MySQL
    6. Installation der Benötigten Software
      1. dotnet Core
      2. SQL Server 17
    7. Konfigurieren von Apache/Nginx als Remoteproxy für Kestrel
      1. Konfigurieren von Apache als Remoteproxy für Kestrel
      2. Konfigurieren von Nginx als Remoteproxy für Kestrel
  2. Erster Teil: Hallo Welt
    1. Die Wahl der Entwicklungsumgebung
    2. Installation von VS2017
    3. Erstellen des ersten Projekes
    4. Die Projektstruktur
    5. Models, Views und Controller
    6. Hallo Welt
  3. Zweiter Teil: Kombination des Minecraft-Servers mit der Website (Work in Progress)
    1. Scheduled Queue
    2. Tcp/Udp-Direktverbindung
    3. WebAPI
    4. Umsetzung einer Scheduled Queue
      1. Schritt 1: Die Web-Page
    5. Umsetzung einer Tcp-Direktverbindung (Planned)
    6. Umsetzung einer WebAPI Schnittstelle (Planned)

Letzter Teil: Server einrichten

Was ist ASP.NET Core?

ASP ist ein von Microsoft für IIS (Internet Information Services) entwickeltes Web-Applikationen Framework. Mit diesem war es möglich anspruchsvolle Web-Applikationen zuverlässig zu entwickeln und zu betreiben. Allerdings bisher nur unter Windows Server.
Vor zwei Jahren ist dann .NET Core herausgekommen. Damit ist es möglich ASP Seiten unter Kestrel zu betreiben und somit auch unter Linux, was die meisten von euch vorziehen, weil sie keine lächerliche 25€ extra pro Monat ausgeben möchten.
Programmiert werden die Seiten in C# oder Visual Basic.

Für wen ist ASP.NET Core gedacht?

ASP ist nicht für Menschen gedacht, die Text darstellen wollen. Dafür reicht simples HTML meist aus, bzw. ihr benutzt ein Content Management System (CMS). Wenn du allerdings eine Oberfläche für deinen Server entwickeln willst, mit der du einige Daten darstellen möchtest und/oder dynamischen Inhalt generieren möchtest, dann ist ASP.NET das richtige für dich.
Außerdem für alle, die keine Lust haben auf das ganze "PHP-Gedöns".

Beispiele für ASP Seiten
Ich will auch so eine super tolle Seite haben!

Schön, dass du ein wenig Interesse an ASP gefunden hast. Es gibt jedoch einiges zu beachten:
  1. Du musst vermutlich eine neue Programmmiersprache lernen (C# ist ziemlich einfach, wenn man aus der Java Welt kommt)
  2. Es wird dich nicht weniger Schweiß und Tränen kosten, als das ganze "PHP-Gedöns"
  3. ASP wird traditionell mit allem verwendet, nur nicht MySQL. Besorgt euch bitte einen SQL Server.
  4. Der Funktionsumfang ist ein wenig überwältigend
  5. Leider wird REST unterstützt
  6. TypeScript
  7. Debian Nutzer dürfen ab hier aufhören zu lesen und noch einmal CentOS, Redhat Enterprise, SUSE Enterprise oder Ubuntu Server installieren
Annotation zum Thema MySQL

MySQL ist auch für die Entwicklung mit Java 7 und Java 8 verfügbar. Einfach den JDBC Treiber herunterladen (Direktlink zum JDBC Treiber). Diesen dann ins selbe Verzeichnis zu kopieren (nicht empfohlen für Plug-Ins) oder (Der sauberere Weg) ihr legt ihn in einem "lib" Verzeichnis ab und benutzt den Treiber dort heraus.
Hier ein Handbuch für den JDBC Treiber (Direktlink zum JDBC Handbuch).
Außerdem ist der SQL Express Server kostenfrei bis 10GB Datenmenge pro Datenbank haben. Das ist mehr als ausreichend, wenn man sich nicht krankhaft alles dort hinein speichert, was nicht drinnen stehen muss. Datenbanken könnt ihr so viele haben, wie euer (natürlich separater nur für die Datenbank ausgelegter und nur über lokales Netzwerk erreichbarer) Server bedienen kann.

Installation der benötigten Software

dotnet Core


Für die Wahl der Distribution kann ich euch nur wärmstens CentOS 7+ empfehlen, sofern ihr euch nicht die 349€ für Redhat leisten könnt, oder die jählichen 670 € für SUSE. (Wem ist jetzt Windows Server lieber?)

dotnet Core wird der spaßigste Teil sein. Denn hier muss man sich nur die Bibliotheken (zu Deutsch Libary) installieren.

Hier ist eine Anleitung dazu: Direktlink zur Installationsanweisung von dotnet Core

Das war einfach, nicht?

Jetzt dürfen wir uns noch den SQL Server installieren

SQL Server 17

Für Ubuntu, RHEL und SLES: Direktlink zur Installationsanweisung von SQL Server 17
Für CentOS:
Code:
curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo -o /etc/yum.repos.d/mssql-server-2017.repo
curl https://packages.microsoft.com/config/rhel/7/prod.repo -o /etc/yum.repos.d/msprod.repo
yum -y install mssql-server mssql-tools unixODBC-devel

/opt/mssql/bin/mssql-conf setup
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID)
7) Enterprise Core (PAID)
8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

# select an edition you'd like to use
Enter your edition(1-8): 3
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

# agree to the license
Do you accept the license terms? [Yes/No]:y

# set admin password
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...

Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to
/usr/lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.

Prüfe, ob der SQL Server läuft:
Code:
systemctl status mssql-server
Exportiere die Path variablen

Code:
echo 'export PATH=$PATH:/opt/mssql-tools/bin' > /etc/profile.d/mssql.sh
source /etc/profile.d/mssql.sh
Port freigeben für Verbindungen (natürlich machen wir das ja nur durch das lokale Netzwerk, damit sich niemand von extern einwählt ;] *Sarkasmusschild*)
Code:
firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload
Mit dem Befehl
Code:
sqlcmd
könnt ihr SQL test-weise ausführen.

Für die Verwaltung des SQL Servers empfehle ich euch SQL Server Management Studio (Direktlink zum SSMS).

Ich behaupte einmal, dass ihr mit der Installation vom SSMS soweit selbst klar kommt.

Jetzt kommt aber erst einmal der spaßige Teil (nicht dotnet, sondern das fluchen, weinen, aufgeben und noch einmal probieren).

Konfigurieren von Apache/Nginx als Remoteproxy für Kestrel

Jetzt solltest du spätestens Gänsehaut bekommen. Schlaflose Nächte erwarten dich. Es sei denn du kennst jemanden, der da schon einmal durch gegangen ist.

Generell gilt: Apache als Remoteproxy zu verwenden ist einfacher, als Nginx. Einfach nur, weil Apache zu jedem kleinen Fehler einen Fehler ausspuckt, was bei Nginx nicht ersichtlich ist.

Konfigurieren von Apache als Remoteproxy für Kestrel

Direktlink zum in Anführungszeichen "Tutorial" von Microsoft.

Konfigurieren von Nginx als Remoteproxy für Kestrel

Direktlink zum in Anführungszeichen "in Anführungszeichen "Tutorial"" von Microsoft

In beiden Tutorials ist mit beschrieben, wie ihr euer SSL Zertifikat da mit einbaut.

Viel Glück mit beiden. Ansonsten könnt ihr ja Docker verwenden dafür :troll:

Wenn ihr fertig seid mit der Installation und Konfiguration von allen kann es los gehen mit dem Programmieren der Website (Ja, ich habe mittlerweile vergessen, dass es sich hierbei um ein ASP.NET Core Tutorial handelt).

Erster Teil: Hallo Welt

Zunächst brauchen wir die traditionelle Hallo Welt Anwendung. (Geschätzte Zeit bis zum Hallo Welt: 1 Stunde)

Zunächst brauchen wir eine Entwicklungsumgebung. Dafür gibt es nur eine sinnvolle Möglichkeit: Lokales dotnet Core Projekt

Die Wahl der Entwicklungsumgebung.

Die beste Lösung um zu Programmieren ist für gewöhnlich Notepad.exe. Man kann damit Dateien öffnen, bearbeiten und speichern. Alles, was man braucht. Für den seltenen, höchst unwahrscheinlichen Fall, dass ein Programmierer mehr Features benötigt bietet es sich an noch zusätzliche Software zu besorgen.

Das ist die Lösung für den Otto Normalverbraucher, der keine riesigen Projekte anfangen möchte, sondern einfach nur eine kleine Seite erstellen möchte.

Der Vorteil an diesem Editor: Es gibt ihn auch in Pink!
Aktuell ist VS Code für mich der beste All-Round Editor, den es aktuell gibt.



Direktlink zu VS Code

Wenn man Linux Nutzer ist, dann wiederhole den Schritt Installation von dotnet Core auf deinem lokalen Computer.

Wenn du Windows Nutzer bist, dann installiere dir das dotnet Core SDK über eine hoch-komplexe Installationsdatei: Direktlink zum dotnet Core Installer

Hinweis: Es gibt einen Unterschied zwischen .NET Core SDK und .NET Framework 4.7.1. Du möchtest das .NET Core SDK

In dem Tutorial werde ich allerdings näher auf VS2017 eingehen, als auf VS Code, werde aber trotzdem kritische Stellen mit Randbemerkungen versehen, sollte es Grundlegen anders funktionieren als in VS2017

Wer Maschinengewehre wie VS Code nicht sonderlich toll findet zum entwickeln, der kann auch die Railgun benutzen. Visual Studio ist ein Monster von Editor und für besonders große Projekte geeignet, in denen es viel im Backend zu Programmieren gilt.

Im Gegensatz zu VS Code reicht ein einzelner Screenshot für VS2017 nicht aus.

Installation von VS2017

Auf der Website gibt es erst einmal viel zu sehen. Wir ignorieren alles und kümmern uns nur um den roten Pfeil. Unsere Edition ist die kostenfreie Community Edition.

Disclaimer: Der Rote Pfeil ist auf der live-Website nicht zu finden. Er wurde dort hinein manipuliert.

Direktlink für VS2017



Die heruntergeladene Datei öffnen und hoffen, dass ihr diesen Bildschirm vorfindet.



Wenn wir das Paket Plattformübergreifende .NET Core-Entwicklung angewählt haben brauchen wir das .NET Core SDK nicht manuell installieren, da es vom Installer automatisch mit installiert wird.
Hinweis: Die Installationsgröße variiert je nach gewählten Paketen um mehrere Gigabyte (ziemlich schnell im zweistelligen Bereich).

Erstellen des ersten Projektes

Nach der Installation sollte man dann den Willkommen-Bildschirm sehen können.



Rechts unten klicken wir auf
und im darauf folgenden Zauberer wählen wir die ASP.NET Core-Webanwendung aus.


Für Visual Basic kann man immer das Gleiche tun im übrigen. Es handelt sich dabei nur um eine Art Dialekt, wobei C# dem Hochdeutschen entspricht und Visual Basic dem Sächsischen entspricht.

Nachdem haben wir eine sinnvolle "Benamsung" gewählt haben und das Projekt erstellt haben werden wir mit einem weiteren Dialog unterbrochen:


Wir möchten Für unsere Hallo Welt Anwendung vermutlich das Template "Leer" verwenden. Allerdings würde das dem Sinn der "Hallo Welt"-Anwendung nicht entsprechen. Wir sehen so nicht, wie ASP funktioniert.

Dabei gibt es zwei Templates, die für uns Relevant sind: Webanwendung und Webanwendung (Model-View-Controller) (MVC). Für unseren Test reicht uns erst einmal MVC. Der Unterschied zwischen beiden Templates ist, dass bei der Webanwendung mit Razor-Pages gearbeitet wird und bei dem MVC mit Views.

Der rot eingerahmte Knopf ist übrigens eine Möglichkeit schnell Basics für einen Login zu schaffen. Für die "Hallo Welt"-Anwendung brauchen wir aber erstmal keinen Login.

Um ein neues dotnet Core Projekt in VS Code zu erstellen öffnen wir im Verzeichnis, in dem wir das Projekt erstellen wollen, die Kommandozeile.

Wenn man sich im Verzeichnis im Windows Explorer befindet kann man diese mit Shift + Rechtsklick öffnen. Wenn man im Verzeichnis rechts klickt kann man den ganzen Ordner in VS Code öffnen.

Dort kann man die Befehlszeile/PowerShell mit Strg + ö öffnen.

In die Befehlszeile gibt man dann
Code:
dotnet new mvc
oder
Code:
dotnet new razor
ein und das Projekt wird erstellt.


Die Projektstruktur


Jetzt, wo wir das Projekt erstellt haben, sehen wir im Projektmappen-Explorer (Strg +W, S)* Models, Views und Controllers. Jetzt wissen wir, warum das ganze MVC heißt.

*In VS gibt es Tastenkombinationen. In dem Fall wie oben drücken wir Strg und danach gleichzeitig W, lassen beide Tasten wieder los und drücken S

Models, Views und Controllers

Models sind (zu deutsch Modelle) Klassen deren Funktion es ist, Daten zu speichern und zu bearbeiten. In ihnen sind Properties (in Java sind das Felder mit getter und Setter) hinterlegt, die Datenspeichern, Read-Only Properties, die einen gespeicherten Wert manipulieren und den gespeicherten Wert meist nicht verändern, oder sie tun es doch und last but not least Methoden, die die selbe Funktion haben, wie Read-Only Properties, nur dass Funktionen für komplexere Vorgänge gedacht sind. Und Read-Only Properties meist nur als Getter fungieren oder zum Beispiel, wenn man in einer Property ein Datum gespeichert hat den Tag danach zurückgibt.

Views sind (zu deutsch Sichten) Seiten, die HTML und Funktionen und Properties, in Razor Syntax, gemischt enthalten.
Code:
<p>@Username</p>
Dies würde in ein Paragraphen Tag den Inhalt der Property "Username" hinein rendern.

Controller bearbeiten Anfragen. Sie geben an jede Anfrage eine View zurück (Error Pages sind auch Views), selbst wenn es eine leere Seite mit der Rückmeldung "Ok" ist.

Hallo Welt

In der Seite Views/Home/Index.cshtml können wir den Text Hallo Welt unten dran fügen und wir haben eine MVC Seite mit dem Text "Hallo Welt" irgendwo mittendrin.

Mit F5 oder druck auf den grünen Pfeil können wir das Projekt veröffentlichen und das Ergebnis begutachten.

Projekte mit VS Code werden mit dem Befehl
Code:
dotnet run
gestartet.

Zweiter Teil: Kombination des Minecraft-Servers mit der Website (Work in Progress)

Wir haben also jetzt unsere tolle Website und untseren tollen Minecraft-Server.

Wie kombinieren wir nun das ganze?

Von Minecraft-Server nach Website ist ja bekanntlich einfach.

Dafür gibt es verschiedene Lösungsansätze:

  • Scheduled Queue
  • Tcp/Udp-Direktverbindung
  • WebAPI
Scheduled Queue

Das Prinzip der Scheduled Queue ist einfach. Es gibt eine Warteschlange, in die Anfragen vom Kestrel Server eingereiht werden. Der Minecraft Server geht die Warteschlange durch und führt alle anstehenden Tasks aus. Witzig wird dann die ganze Sache, wenn man sie mit Datum und cron verbindet.

Umzusetzen ist diese Methode auch ziemlich einfach. Ein Task wird mit einem Command (Dafür sollte man ein Enum in betracht ziehen) in eine Tabelle gepackt. Es gibt zusätzlich eine Spalte für ein Datum bzw. eine cron-Expression. Der Scheduler arbeitet die Abfragen ab (die Arbeit mit dem Scheduler wurde euch ja freundlicherweise schon abgenommen).

Tcp/Udp-Direktverbindung

Diese Möglichkeit ist am besten geeignet, wenn man mit Streams arbeitet. Man könnte den Befehls Text als Stream senden, allerdings ist dies den Aufwand nicht Wert, nur um ein paar bytes Text zu übertragen.

WebAPI

Die Idee dahinter ist ganz Simpel. Der Minecraft-Server nimmt HTTP-Request an und wertet diese auch aus. Mit einem GET, POST oder PUT wird vom Web-Server aus eine Anfrage an den Minecraft-Server gesendet.
Hier gilt: verwende einen nicht benutzten Port und lasse von außerhalb keinerlei Verbindungen zu.
Daten können dabei als JSON im HTTP-Request-Body verschickt werden (z.B. UUIDs, ein Datum und eine individuelle Benutzereingabe).

Umsetzung einer Scheduled Queue

Work in progress

Schritt 1: Die Web-Page

Bevor wir überhaupt anfange irgendetwas zu tun benötigen wir eine Web-Page, die mit unserem Server kommunizieren soll. Für unser Beispiel werden wir eine Seite erstellen, die einen Text aus einer Textbox bei Betätigung eines Buttons auf unserem Minecraft-Server ausgibt.

Wir erstellen uns also ein neues ASP.NET Core Web-Projekt mit dem Template Webanwendung.

Umsetzung einer Tcp-Direktverbindung

Geplant für später

Umsetzung einer WebAPI Schnittstelle

Geplant für später

Nützliche Links

Um euch den Einstieg mit ASP.NET und MSSQL zu erleichtern habe ich für euch ein paar Links heruasgesucht:

Code:
(dotnet core Framework Guides) => https://docs.microsoft.com/en-us/dotnet/core/
(dotnet core Beispiele) => https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/console-teleprompter
(C# Schnellstart) => https://docs.microsoft.com/en-us/dotnet/csharp/quick-starts/
(SQL Tutorial) => https://www.w3schools.com/sql/default.asp
(ADO.NET (ActiveX Data Objects)) => https://www.w3schools.com/asp/ado_intro.asp
(ADO.NET) => https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/

Bis ich den nächsten Teil Fertig habe gilt:

Wer Rechtschreibfehler findet, darf sie behalten, es gilt die gesetzliche Gewährleistung für Inhaltliche Fehler.

Der Gesamte Artikel befindet sich im Status Work in Progress. Das heißt er wird laufend verändert und ergänzt. Wenn etwas zu ungenau beschrieben wurde kann gerne eine ausführlichere Version zu einem Punkt verlangt werden).
 
Zuletzt bearbeitet:

Floating Apps

Minecrafter
Mitglied seit
25 Dezember 2017
Beiträge
9
Alter
21
ChangeLog

02.01.2018 09:45
Initiale Version
Thema: Installation von dotnet Core und SQL Server unter linux

02.01.2018 13:05
Version 2
Thema: Aufsetzen einer Entwicklungsumgeblung

02.01.2018 22:25
Version 3 Work in Progress
Thema: Verbindung zwischen Web und Minecraft-Server.
- W.I.P. Status eingeführt

03.01.2018 07:18
Version 3 Work in Progress
Thema: Scheduled Queue
- Inhaltsverzeichnis erstellt
 
Zuletzt bearbeitet:

ES-Henne

Redstoneengineer
Mitglied seit
3 Oktober 2017
Beiträge
41
Es ist zwar schön, dass du eine Anleitung geschrieben hast und anderen helfen möchtest.
Allerdings wüsste ich aktuell nicht wem diese Anleitung helfen soll.

Denn wenn du dich mit Servern auseinander gesetzt hast. Dann weißt du, dass wenn jemand eine Linux Distribution nutzt, er mit Sicherheit kein "Microsoft-Gedöns" auf seine/n Server installiert. Denn jemand der sich auskennt hat garkeine Lust sich mit irgendwelchem "Microsoft-Gedöns" auseinander zu setzen.

Auch muss man kein Geld zahlen, dein Vergleich ist absolut Schwachsinnig.
Du vergleichst bei den Preisen übrigens einmal Windows-Server und einmal den Support zu SUSE, SUSE selber gibt es gratis. Allgemein ist Linux gratis. (Wem ist jetzt der Linux-Server lieber?)

Auch schreibst du irgendwelche Befehle rein um Ports freizugeben. Allerdings sehe ich nirgends, dass ein Firewall-System installiert wird. Denn z.B. bei mir funktionieren die Befehle nicht, da ich ein anderes System nutze.
(Sollte ich irgendetwas übersehen haben, dann tut mir das leid)

Es gibt noch etliche andere Punkte, allerdings möchte ich garnicht auf alles eingehen.
 

Floating Apps

Minecrafter
Mitglied seit
25 Dezember 2017
Beiträge
9
Alter
21
Auch schreibst du irgendwelche Befehle rein um Ports freizugeben. Allerdings sehe ich nirgends, dass ein Firewall-System installiert wird. Denn z.B. bei mir funktionieren die Befehle nicht, da ich ein anderes System nutze.
Steht doch dabei

SQL Server 17

Für Ubuntu, RHEL und SLES: Direktlink zur Installationsanweisung von SQL Server 17
Für CentOS:
Allerdings wüsste ich aktuell nicht wem diese Anleitung helfen soll.
Dies soll den Leuten Helfen, denen Objektorientiertes Programmieren mehr liegt, als funktionales PHP. Wenn du eine "nicht Microsoft"-Lösung möchtest, dann kannst du auch etwas mit Java machen.

Es gibt noch etliche andere Punkte, allerdings möchte ich garnicht auf alles eingehen.
Du kannst gerne auf alle Punkte eingehen. :)

Denn wenn du dich mit Servern auseinander gesetzt hast. Dann weißt du, dass wenn jemand eine Linux Distribution nutzt, er mit Sicherheit kein "Microsoft-Gedöns" auf seine/n Server installiert. Denn jemand der sich auskennt hat garkeine Lust sich mit irgendwelchem "Microsoft-Gedöns" auseinander zu setzen.
Dies ist nicht dafür da um diese kindische Linux vs Windows Debatte weiter zu führen. Linux wird auf die Server gepackt, weil es, wie du richtig geschrieben hast, kostenlos ist. Mein Kommentar bezog sich (offensichtlich eigentlich) auf die Preise.

Du vergleichst bei den Preisen übrigens einmal Windows-Server und einmal den Support zu SUSE, SUSE selber gibt es gratis.
Was du meinst, was gratis ist, ist vermutlich openSUSE. Dort ging es um Enterprise Produkte (ist dir das ein Begriff?), die niemals kostenlos sind. Ich will hier noch einmal anmerken, dass es auch auf anderen Systemen funktionieren könnte, aber nicht voll durch Microsoft unterstützt wird.

Aber Danke für deinen gründlich überlegten Kommentar.
 
Zuletzt bearbeitet:

ES-Henne

Redstoneengineer
Mitglied seit
3 Oktober 2017
Beiträge
41
Linux wird auf die Server gepackt, weil es, wie du richtig geschrieben hast, kostenlos ist.
Weil es kostenlos ist?
Soviel Schwachsinn habe ich schon lange nicht mehr gelesen.

Warum meinst du denn wird Linux vorallem auf Server-Systemen genutzt?

Bzw. warum sollte man deiner Meinung nach, Windows Linux vorziehen.
 

Matthias

I'm a rocket ship on my way to Mars
Administrator
Osterei Experte
Mitglied seit
6 Juli 2011
Beiträge
1.397
Ich arbeite beruflich ebenfalls mit .NET (ASP.NET und SQL Server) und bin ebenfalls von den Produkten überzeugt und freue mich daher sehr über dieses ausführliche Tutorial.

Meine persönliche Meinung ist dass .NET durchaus eine ernste Daseinsberechtigung im Buisness Sektor hat, gerade im Hobby Bereich tut man sich damit aber schwer. Aber Microsoft macht langsam was dagegen (SQL Server für Linux, Windows IoT).
 

KillawOrCarel

Kuhfänger
Osterei Experte
Mitglied seit
15 Juli 2017
Beiträge
77
Ich möchte dann auch mal meine Perspektive einbringen. Beruflich arbeite ich sowohl mit Microsoft Produkte (C#, Windows, Office / VB, SQL Server) als auch mit Konkurrenzprodukten (Java, SAP / ABAP).

Ich würde mir daher einbilden relativ gut informiert zu sein.

Damit ist es möglich ASP Seiten unter Kestrel zu betreiben und somit auch unter Linux, was die meisten von euch vorziehen, weil sie keine lächerliche 25€ extra pro Monat ausgeben möchten.
Diese Aussage könnte man bis ins kleinste Detail auseinander nehmen. 25€ für eine Lizenz pro Monat ist nicht nur eine signifikante Größe für Lizenzkosten, wenn man für den selben Preis 8 Kerne (Intel® Xeon® E5-2680V4) und 24GB DDR4 bekommen kann, sondern auch noch in vielen Fällen einfach nur verschwendetes Geld.

Linux basierte Systeme haben in vielen - wenn nicht allen Bereichen der Administration - große Vorteile. Sicherlich kann dann viele kostenpflichtige Software nur bedingt eingesetzt werden. Ist das ein Problem? Möglicherweise schon, das kommt immer auf die notwendigen Anforderungen an.

Nennenswerte Vorteile an dieser Stelle sind:
  • Betriebssystem ist Open Source Software - Unabhängigkeit von Microsoft oder anderen Unternehmen
  • Unterstützung von Programmen wie Puppet, Salt und Ansible wesentlich besser.
  • Virtualisierung schnell und einfach möglich
  • Entwicklung mit Vagrant ist zielführender
  • Volle Kontrolle über das Betriebssystem
Jeder dieser Punkte hat natürlich auch Nachteile. Es sei dem Leser dabei freigestellt die offensichtlichen Nachteile herauszufinden.

ASP ist nicht für Menschen gedacht, die Text darstellen wollen. Dafür reicht simples HTML meist aus, bzw. ihr benutzt ein Content Management System (CMS). Wenn du allerdings eine Oberfläche für deinen Server entwickeln willst, mit der du einige Daten darstellen möchtest und/oder dynamischen Inhalt generieren möchtest, dann ist ASP.NET das richtige für dich.
Außerdem für alle, die keine Lust haben auf das ganze "PHP-Gedöns".
Das ist eine Aussage, die von einem Microsoft Verkäufer kommen könnte. Diese scheinbare Arroganz gleicht dem eines Beraters. Technisch gesehen aber komplett falsch. Ein Content Management System stellt nur Text dar. Dynamische Inhalte stellen nur Text (bzw. binäre Dateien) dar. Warum? Weil das Protokoll (HTTP), in dem es hier geht, dafür geschaffen wurde. Die Trennung von Inhalt und Darstellung ist ein recht altes Prinzip und sollte - wenn möglich - auch nicht in ASP.NET verletzt werden. Von mehrschichtigen Architekturen werde ich besser mal nicht anfangen ;).

Kleine Anmerkung am Rande: Nur weil gewisse Seiten eine Technologie verwenden, heißt das nicht, dass die Technologie gut ist. Viele Unternehmen haben nicht die Ressourcen (Zeit, Geld, Personal) um immer die neusten Technologien zu verwenden. StackOverflow verwendet im übrigen neben Windows Servern auch Linux Server.

Ich will auch so eine super tolle Seite haben!
Diese Webseiten sehen aber nicht so gut aus, weil ASP.NET verwendet wurde. Die Personen, die die Seite entworfen haben, haben gute Kenntnisse in HTML, CSS und JavaScript. Mehr nicht.

Es wird dich nicht weniger Schweiß und Tränen kosten, als das ganze "PHP-Gedöns"
Mit folgenden Unterschieden: PHP ist recht einfach erlernt - wenn man die Grundlagen kennt - und ist wesentlich besser unter Linux zu betreiben (siehe Punkte oben). PHP kann zudem auch ohne große Installation schnell verwendet werden und vielfach auch einfacher zu verstehen. Darauf genauer einzugehen würde aber den Rahmen sprengen.

Leider wird REST unterstützt
Eine Idee, die von vielen Firmen verwendet wird. In der sich entwickelnden Welt von Microservice und Co. in keinem fall schlechte Technologie. Aber dafür fehlt - wie bereits dargestellt - das notwendige technische Verständnis. Insbesondere wenn später implizit eine ähnliche Struktur vorgeschlagen wird für die WebAPI.

Außerdem ist der SQL Express Server kostenfrei bis 10GB Datenmenge pro Datenbank haben
Die Auswahl der Datenbank ist - wie ich bereits an einer anderen Stelle ausführlicher beschrieben habe - meist irrelevant. Je nach Anforderungen müssen ggf. Spezialfunktionen in der Datenbank verfügbar sein. Dies ist aber für einen Hobbyanwender komplett irrelevant.

- Kommentar zur Installation und Distributionsauswahl entfällt da das wichtigste bereits oben gesagt wurde -

Apache als Remoteproxy zu verwenden ist einfacher, als Nginx.
Würde ich so nicht unterschreiben. Aber selbst wenn dies der Fall wäre, möchte ich auf die Performance verweisen:

https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency/

Zitat von Netflix Quelle: https://openconnect.netflix.com/en/software/:
NGINX was chosen for its proven scalability and performance. The audio and video components that comprise each Netflix streaming title are served directly to the customer client software via HTTP.

Viel Glück mit beiden. Ansonsten könnt ihr ja Docker verwenden dafür :troll:
Lustig, weil Windows lange nicht für diese Technologie verfügbar war.

- Kommentar zum Rest entfällt, da das meiste oben bereits gesagt wurde. Es sollte evident sein, dass dieses "Tutorial" eher schlecht als recht ist. -
 

❤️可愛いちゃん️❤️

Enderdragonjäger
Osterei Experte
Mitglied seit
19 Mai 2014
Beiträge
1.098
Alter
2
Irgendwie ist das Thema des Threads leicht eskaliert. Das eigentliche Tutorial find ich eigentlich ganz gut. Ich hab zwar von .NET keine Ahnung und auch keine Lust es zu lernen, da ich es für absolut irrelevant in der heutigen Zeit halte, aber das ändert ja nichts daran, dass das jemand anderes nicht so sieht und das Tutorial durcharbeitet. Man könnte sich natürlich fragen, ob das Ganze in einem Minecraftforum wirklich so viele interessierte Leser findet.

Die Respektlosigkeit gegenüber Lesern, die nicht die Microsoft PR Mappen gefressen haben wirkt natürlich nicht gerade motivierend aber es gab hier schon deutlich schlimmere Tutorials, also warum nicht. Inhaltlich find ich das Tutorial gut. Die Aussagen zu Linux und die zugehörige Software sind halt totaler Schwachsinn aber sei's drum.
 

Floating Apps

Minecrafter
Mitglied seit
25 Dezember 2017
Beiträge
9
Alter
21
Den Anhang 7221 betrachten

Schon eigenartig, dass selbst Mircosoft anscheinend nicht soo viel Bock auf den eigenen Webserver hat.
Du hast das ganze auf jeden Fall verstanden. Durchdenke bitte deine Antwort bevor du sie postest. Im Hintergrund läuft trotzdem ihr eigenes Produkt.

Microsoft hat/hatte die größten Rechenzentren auf der Welt und auch einen riesigen Traffic. Da ist klar, dass sie für alles viele Server bereitstellen, die auf eine Aufgabe spezialisiert sind. Was du dort angesteuert hast, ist lediglich ein Proxy.

Die Meinung von KillawOrCarel ist irrelevant und tut nichts zur Tatsache bei, dass das ein ASP Tutorial ist und keine Linux Werbeeinheit. Linux wird überbewertet.

Nichts desto trotz sind auch eure Meinungen sehr Subjektiv. Die Wahl der Technologien für seinen eigenen Web-Auftritt sollte man nicht anhand eines Spiels festlegen. Dann könntet ihr ja gleich alle Java Applets schreiben. ASP ist genau wie php eine Möglichkeit ein Problem umzusetzen. Die Schlussfolgerung "Ich brauche eine Web-Site für Minecraft, also muss ich php nutzen ist" also schlichtweg falsch.

Edit: Da hat mein Vorredner anscheinend seinen eigenen Beitrag beriets zurückgezogen.
 
Zuletzt bearbeitet:
Allgemein
Hilfe Benutzer
  • ❤️可愛いちゃん️❤️ ❤️可愛いちゃん️❤️:
    Weil sie scheiße alt ist und grundlegende API Methoden einfach fehlen.
  • MrSpock78 MrSpock78:
    Das hat nichts mit Schnittstellen zu tun, wenn der Client ausrastet^^
  • MrSpock78 MrSpock78:
    Sowas kannst du auch in 1.14.x nicht lösen
  • ❤️可愛いちゃん️❤️ ❤️可愛いちゃん️❤️:
    Minecraft hat halt auch keine Serverseitig Verifizierung der Eingaben
  • ❤️可愛いちゃん️❤️ ❤️可愛いちゃん️❤️:
    Meinte aber eher, dass die 1.8 einfach scheiße alt und total verbuggt ist. Das halt als ob man heute Windows 98 nutzt
  • MrSpock78 MrSpock78:
    Die Schnittstellen bleiben die Gleichen... man kann nur das Spielprinzip ändern. Und das versucht Mojang derzeit, um so mehr sich daran beteiligen um so besser.
  • Hadde-chan Hadde-chan:
    Die schnittstellen haben sich nicht geändert owo erzähl das mal den drölf hunderten plugins, die inkompatibel sind xD
  • SirYwell SirYwell:
    Das Video zeigt ziemlich deutlich, wie dumm dieses sog. PvP in Minecraft ist. Ich finde das irgendwie richtig unnötig, wenns nur darum geht, schnell zu klicken
  • MrSpock78 MrSpock78:
    Es bezog sich auf grob "Alle API methoden sind scheisse usw" ... klar ändert sich etwas.
  • MrSpock78 MrSpock78:
    Der Versuch des neuen Combats ist halt genau dass superschnelles Klicken keinen Vorteil mehr bringt^^
  • ❤️可愛いちゃん️❤️ ❤️可愛いちゃん️❤️:
    Ich fand ja Exploits in den Plugins suchen immer deutlich effektiver als schnelles klicken.
  • maybeto maybeto:
    das ist aber schade für @iTz_Proph3t , auch flinker Finger genannt.....
  • iTz_Proph3t iTz_Proph3t:
    Du meinst der flinkeste Finger im Festen?
  • iTz_Proph3t iTz_Proph3t:
    So nennt man mich auch
  • ❤️可愛いちゃん️❤️ ❤️可愛いちゃん️❤️:
    Press F to pay respect
  • Stern☆ Stern☆:
    F F F
  • Matthias Matthias:
    A A A
  • Matthias Matthias:
    Gute Nacht
  • Matthias Matthias:
    Guten Morgen
  • Stern☆ Stern☆:
    Morgen :)
  • HardSoul HardSoul:
    Moin
  • LottaXL LottaXL:
    Moin, moin =)
  • SirYwell SirYwell:
    Guten Morgen
    SirYwell SirYwell: Guten Morgen
    Oben