Friend: C# - Standpunkt, Aussicht, eure Meinung und ein paar Fragen

Hallo liebe SelfHTMLler,

ich würd von euch gerne einmal ein paar Meinungen über C Sharp (C#) einholen. Die Nutzung steht bei mir auf Webbasis.

Wie ist der aktuelle Standpunkt? Wird es oft gebraucht, wann macht es Sinn C# zu nutzen in Kombination mit ASP oder ASP.NET, wann nehme ich ASP und wann nutze ich das .NET Framework dazu?

Ich programmiere Seite ~10 Jahren PHP, wird der Umstieg schwer?
Ein kleiner Blick in die Syntax weißt meiner Meinung nach viele Gemeinsamkeiten auf.

Ist C# schneller als PHP?

Kann C# mehr?

Ab wann sollte ich eher C# verwenden als PHP?

Vor- und Nachteile C#'s?

Wohin tendiert die Zukunft, wird sich C# immer mehr etablieren im Web?

Wie ist eure Meinung dazu?

Angenommen ich schreibe ein großes Forum - PHP oder C#?

Liebe Grüße,

Friend

  1. Ach, eine Frage hätte ich noch:
    Wie arbeiten XHTML und C# zusammen?

    1. echo $begrüßung;

      Ach, eine Frage hätte ich noch:
      Wie arbeiten XHTML und C# zusammen?

      Schlecht (zumindest in der Strict-Variante), wenn du den herkömmlichen komponentenbasierenden Ansatz nimmst oder wie auch immer du willst, wenn du den MVC-Ansatz nimmst.

      echo "$verabschiedung $name";

  2. echo $begrüßung;

    Wie ist der aktuelle Standpunkt? Wird es oft gebraucht, wann macht es Sinn C# zu nutzen in Kombination mit ASP oder ASP.NET, wann nehme ich ASP und wann nutze ich das .NET Framework dazu?

    ASP ist Vor-.NET-Zeit. C# ist eine .NET-Sprache, arbeitet also nur mit ASP.NET.

    Ich programmiere Seite ~10 Jahren PHP, wird der Umstieg schwer?

    Kommt drauf an. Es gibt jede Menge unterschiedliche Konzepte. Komponentenbasierte Seitenerstellung, ohne dass du groß Einfluss auf den HTML-Code hast, dafür aber schnell beim Erstellen von Standard-Anwendungsfällen bist stehen einem Im-Prinzip-alles-selbst-Machen von PHP gegenüber.

    Es gibt aber auch seit kurzem ein MVC-Framework für ASP.NET, dessen Grundprinzip du kennen könntest, wenn du beispielsweise PHP-Frameworks wie das Zend Framework kennst. Mit diesem hat man wieder deutlich mehr Einfluss auf den entstehenden HTML-Code.

    Ein kleiner Blick in die Syntax weißt meiner Meinung nach viele Gemeinsamkeiten auf.

    Syntax allein ist es nicht. Es sind die Konzepte, die teils erheblich unterschiedlich sind und die zur Verfügung stehenden Bibliotheken. Es fängt ja schon an, dass C# eine typisierte Sprache ist. Während man unter PHP "einfach alles in ein verschachteltes Array wirft", sollte man sich bei .NET "ordentliche" Klassen erstellen. Das ist nicht nur quasi zwingend notwendig sondern hilft vor allem auch enorm beim Intellisense (oder das Intellisense hilft dir).

    Ist C# schneller als PHP?

    Kann man nicht so pauschal sagen. Da unterschiedliche Herangehensweisen nötig sind, ist das nicht direkt vergleichbar.

    Kann C# mehr?

    Brauchst du mehr?

    Ab wann sollte ich eher C# verwenden als PHP?

    Ja nach konkreten Erfordernissen. Wenn beim Hoster nur der Apache mit PHP und ohne Mono zur Verfügung steht, kannst du kein C# verwenden. Andersrum (sinngemäß) ebenso.

    Vor- und Nachteile C#'s?

    Das musst du selbst ermitteln, ob die Eigenschaften für einen konkreten Anwendungsfall Vorteil oder Nachteil sind.

    Wohin tendiert die Zukunft, wird sich C# immer mehr etablieren im Web?

    Befrage das eine Glaskugel oder Beliebtheitsstatistiken (zum Beispiel TIOBE).

    Wie ist eure Meinung dazu?

    Dein eigenes Bauchgefühl musst du dir schon selbst erarbeiten. Auf asp.net/learn findest du jede Menge Videos und Tutorials.

    Angenommen ich schreibe ein großes Forum - PHP oder C#?

    Mit beidem kannst du zum Ziel kommen.

    echo "$verabschiedung $name";

    1. Hello,

      C# wird für große Installationen im Verhältnis zu PHP mit wachsender Last immer schneller

      Das liegt am Konzept der CIL respektive MSIL
      http://de.wikipedia.org/wiki/Common_Intermediate_Language

      Einmal ausggeführte C#-Files, also deren "Kompilate" werden extrem klein gegenüber PHP-Files oder C++-Files. Das liegt nun wieder daran, dass eine erhebliche Funktionalität bereits in der Plattform steckt, quasi dem Betriebssystem beigeordnet ist.

      C# ist nur ein sprachliches Mittel, diese Plattform für sich nutzbar zu machen. Wenn ich wirtklich die Zeit und die Nerven dafür hätte, würde ich mit den Konzepten näher auseinander setzen. Das würde aber wohl ein bis zwei intensive Jahre brauchen, bis man es guten Gewissens einsetzen kann.

      Es lohnt sich nicht, nur alleine C# zu lernen. Man muss sich das ganze .NET-Konzept reinpfeiffen, wenn man 'was sinnvolles damit anfangen will.

      Und dann gibt es das inzwischen auch auf Linux: das MONO-Projekt
      http://mono-project.com/Main_Page

      M$ kann mMn im Moment gar nichts bessers tun, als dieses Projekt zu fördern, denn es verbindet die Welten wieder und macht Code wiederbenutzbar. Das dürfte PHP einen gewissen Prozentsatz abjagen.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
    2. Hi.

      ASP ist Vor-.NET-Zeit. C# ist eine .NET-Sprache, arbeitet also nur mit ASP.NET.

      Achso, also ist das .NET Framework oberstes Pflichtprogramm für mich was meine zukünftige Lernphase angeht.

      »» Ich programmiere Seite ~10 Jahren PHP, wird der Umstieg schwer?

      Kommt drauf an. Es gibt jede Menge unterschiedliche Konzepte. Komponentenbasierte Seitenerstellung, ohne dass du groß Einfluss auf den HTML-Code hast, dafür aber schnell beim Erstellen von Standard-Anwendungsfällen bist stehen einem Im-Prinzip-alles-selbst-Machen von PHP gegenüber.

      Also wie schon erwähnt interessiert mich die Webbasis. Ich möchte das was ich in PHP kann, schneller, effektiver machen.
      Gehen wir mal davon aus das mein PHP Code super strukturiert, optimiert ist und meine Datenbankqueries auch optimiert sind. Sprich ich kann an PHP nichts mehr rausholen.

      Ich möchte aber nun das dass ganze noch schneller läuft - wie du merkst ist mir Performance (neben Sicherheit, welche natürlich noch Vorrang hat) im WWW sehr sehr wichtig. Wenn die Leute mein großes Forum aufrufen oder meine programmierte Community aufrufen, dann soll das ganze - ich hyperbilisiere : So schnell wie Google.de laden.

      Ich denke mir wenn ich meine Anwendungen in C# übertrage, welches viel enger mit dem OS zusammenarbeitet, viel schneller laufen.

      Zu erwähnen ist halt, das ich mit C# auch auf MySQL oder PostgreSQL zugreifen müsste.

      Syntax allein ist es nicht. Es sind die Konzepte, die teils erheblich unterschiedlich sind und die zur Verfügung stehenden Bibliotheken. Es fängt ja schon an, dass C# eine typisierte Sprache ist. Während man unter PHP "einfach alles in ein verschachteltes Array wirft", sollte man sich bei .NET "ordentliche" Klassen erstellen. Das ist nicht nur quasi zwingend notwendig sondern hilft vor allem auch enorm beim Intellisense (oder das Intellisense hilft dir).

      Das habe ich jetzt auch gemerkt. Es gibt doch noch vieles mehr wie Events, Delegates, Indexer usw.. Dinge - die ich nicht kenne und die mir noch einiges an Konzentration abrauben werden um dort durchzublicken. Wann diese Dinge Sinn machen usw..

      »» Ist C# schneller als PHP?

      Kann man nicht so pauschal sagen. Da unterschiedliche Herangehensweisen nötig sind, ist das nicht direkt vergleichbar.

      Könntest du das ein wenig mehr erläutern?

      »» Kann C# mehr?

      Brauchst du mehr?

      Bisher konnte ich fast alles auch in PHP umsetzen. Ich habe aber gemerkt, das sich in C# einige Vorgänge vereinfachen lassen.

      »» Ab wann sollte ich eher C# verwenden als PHP?

      Ja nach konkreten Erfordernissen. Wenn beim Hoster nur der Apache mit PHP und ohne Mono zur Verfügung steht, kannst du kein C# verwenden. Andersrum (sinngemäß) ebenso.

      Das ist völlig egal da es im eigene Projekte geht, wenn ich meinem Hoster sage ich möchte dies und das dann bekomme ich auch dies und das. Ab gesehen davon sage ich meinem Hoster nur was ich für Hardware in meinem Server benötige, was ich darauf packe ist dann mir überlassen.

      Viel eher frag ich mich dann, wie arbeitet C# mit Webservern wie Lighttpd usw zusammen - sprich nicht dem klassischen Apache(2).

      »» Vor- und Nachteile C#'s?

      Das musst du selbst ermitteln, ob die Eigenschaften für einen konkreten Anwendungsfall Vorteil oder Nachteil sind.

      Auf folgende Themen bezogen:

      • Umfang
      • Geschwindigkeit im Serverbereich
      • Datenbanken
      • Sicherheit (auch in Bezug auf Datenbanken)

      »» Wie ist eure Meinung dazu?

      Dein eigenes Bauchgefühl musst du dir schon selbst erarbeiten. Auf asp.net/learn findest du jede Menge Videos und Tutorials.

      Danke ;). Tutorials kann ich gut gebrauchen. Ich möchte kein Geld für Bücher ausgeben.

      »» Angenommen ich schreibe ein großes Forum - PHP oder C#?

      Mit beidem kannst du zum Ziel kommen.

      Das weiß ich, aber unter den Aspekten schnell und trotzdem sicher? - das dass paradox klingt weiß ich.

      gruß,

      friend

      1. echo $begrüßung;

        Also wie schon erwähnt interessiert mich die Webbasis. Ich möchte das was ich in PHP kann, schneller, effektiver machen.
        Gehen wir mal davon aus das mein PHP Code super strukturiert, optimiert ist und meine Datenbankqueries auch optimiert sind. Sprich ich kann an PHP nichts mehr rausholen.

        Auch nicht mit Opcode-Caches und dergleichen? Zu den Geschwindigkeiten kann ich nicht viel sagen. Ich betreibe keine Hochleistungsanwendungen.

        Ich denke mir wenn ich meine Anwendungen in C# übertrage, welches viel enger mit dem OS zusammenarbeitet, viel schneller laufen.

        Das OS ist übrigens Windows, am besten in der Server-Variante, zusammen mit dem IIS. Mit Mono hast du zwar was auf Unix-Basis, aber da musst du selbst mal sehen, ob dir das reicht. Als ich vor wenigen Monaten nach einer Mono-ASP.NET-IDE Ausschau hielt, fand ich im Vergleich zum Visual Studio nichts angenehmes.

        Zu erwähnen ist halt, das ich mit C# auch auf MySQL oder PostgreSQL zugreifen müsste.

        MySQL geht definitiv. Wenn du aber sowieso auf Windows umsteigen musst, kannst du auch Microsofts SQL Server (Express Edition) nehmen, das ist zumindest was aktuelle Entwicklungen (Entity-Framework, LINQ) angeht, wesentlich besser in das .NET-Framework integriert. Für MySQL gehen mehr oder weniger nur ADO.NET-DataSets.

        » Syntax allein ist es nicht. [...]
        Das habe ich jetzt auch gemerkt. Es gibt doch noch vieles mehr wie Events, Delegates, Indexer usw.. Dinge - die ich nicht kenne und die mir noch einiges an Konzentration abrauben werden um dort durchzublicken. Wann diese Dinge Sinn machen usw..

        Wie gesagt, die syntaktischen Unterschiede sind das eine. Die Philosophie des Drumherum das andere. Zur Syntax gibt es bei Galileo ein Openbook zu Visual C# 2008. ASP.NET wird dort eher nicht behandelt. Aber das findest du bei www.asp.net (auf Englisch).

        » » Ist C# schneller als PHP?
        » Kann man nicht so pauschal sagen. Da unterschiedliche Herangehensweisen nötig sind, ist das nicht direkt vergleichbar.
        Könntest du das ein wenig mehr erläutern?

        Um bei meinem Array-Beispiel zu bleiben. Es reicht nicht einfach nur wie unter PHP ein Array zu erstellen, du brauchst wegen der Typsicherheit eine spezialisierte Klasse für einen Datensatz, die grob gesagt für alle Felder eine Eigenschaft enthält. Und für eine Sammlung von Datensätzen nimmt man eine Collection oder eine Liste. Und da kannst du noch froh sein, denn es gibt mittlerweile auch Generics, mit denen man nicht mehr spezialisierte Collectionsklassen erstellen muss (wenn man Typsicherheit haben und auch nicht ständig casten will).

        » »» Kann C# mehr?
        » Brauchst du mehr?
        Bisher konnte ich fast alles auch in PHP umsetzen. Ich habe aber gemerkt, das sich in C# einige Vorgänge vereinfachen lassen.

        Manche auch nicht. Siehe oben. Zumindest auf den ersten Blick sind typisierte Datensammlungen aufwendiger zu erstellen, aber andererseits ist man beim Verwenden und mit Intellisense im Vorteil.

        Viel eher frag ich mich dann, wie arbeitet C# mit Webservern wie Lighttpd usw zusammen - sprich nicht dem klassischen Apache(2).

        Das musst du selbst herausfinden. Für mich bilden ASP.NET und der IIS (und damit auch Windows (Server)) eine Einheit. Das aufdröseln zu wollen ... viel Spaß!

        » » Angenommen ich schreibe ein großes Forum - PHP oder C#?
        » Mit beidem kannst du zum Ziel kommen.
        Das weiß ich, aber unter den Aspekten schnell und trotzdem sicher? - das dass paradox klingt weiß ich.

        Sicherheit ist nicht programmiersprachenabhängig. Kontextgerechtes Behandeln von Werten und Maßnahmen gegen diverse web-basierende Angrifsszenarien sind in jedem System im Prinzip gleichermaßen zu beachten.

        echo "$verabschiedung $name";

  3. Hai Friend,

    auf die Vorteile/Nachteile von .NET gegenueber PHP moechte ich jetzt nicht naeher eingehen. Dazu gibts es bereits etliche Beitraege in diversen Foren.

    Wenn Du derzeit allerdings grundlegend ueberlegst, welche Sprache du verwenden moechtest, dann koennte dich das Grails-Projekt sicherlich auch interessieren. Es ist noch relativ neu und erfreut sich immer staerkerer Beliebtheit. Und aus der Entwickler-Sicht: Es macht einfach unheimlich Spasz!

    Ich habe dazu bereits mal vor fast genau einem Jahr hier in diesem Forum einen Beitrag verfasst.

    Es gibt auch etliche Tutorials, die sich speziell an PHP-Entwickler richten.

    Also probieren kostet nichts ;)

    MfG,
    Sympatisant

    --
    "If the future isn't bright, at least it is colorful"
  4. Hallo,
    einen großen Vorteil für C#/ASP.Net sehe ich im Bereich von Enterprise-Anwendungen. Ich mein damit Anwendungen, die primär von Unternehmen (und deren Angestellten) genutzt werden und nicht von Frau Müller von zu hause per Browser aufgerufen werden kann.

    Unternehmensanwendungen (z.B. CRM tools) müssen häufig mit diversen anderen System zusammenarbeiten, andere Schnittstellen abfragen und selber entsprechende Schnittstellen anbieten.
    Dieses per PHP zu erledigen ist lästig, da man dort oft nicht richtig unterstützt wird.
    Da ist dieses per C#/ASP.Net zu erledigen deutlich angenehmer.

    PHP hat eher so die 'Script'-Eigenschaften, d.h. man steuert ganz präzise wie die Seite aufgebaut wird usw. Zwar ist dies gut geeignet um schnell Ergebnisse zu bekommen, bei komplexen Business-Anwendungen wird es aber schwierig bis unmöglich mit PHP. Für eine normale Web 2.0 Anwendung kann man aber PHP weiterhin problemlos verwenden.

    C#/ASP.Net ist dort ganz ganz anders. Ich find es schwierig zu beschreiben. Dort werden die Prinzipien der OOP stärker umgesetzt und man hat nicht so den Spagetti Code wie bei PHP. Es ist vom Gefühl eben sehr anders eine ASP.Net statt eine PHP Anwendung zu schreiben.

    Bei PHP kenn ich den Kontrollfluss, dass Formular wird beim drücken des Submit Button an 'script.php' gesendet, dann frage ich dort die Daten ab, speichere diese Daten in der DB ab und gebe den HTML Code der Ergebnisseite zurück.

    Bei ASP.Net ist dies eher verworrener und, in meinen Augen, stärker OOP basiert.
    Dort programmiere ich nicht wie script.php aussieht, also nicht wie die $_POST/$_GET Daten abgefragt werden usw., sondern im C# Code reagiere ich auf ein onClick-Event eines Buttons, ähnlich wie bei JS, lassen dann meinen Code zum Speichern ablaufen und manipuliere evt. noch die Ausgabe.

    Ist eben vom Konzept her sehr verschieden und auch erst einmal Gewöhnungsbedürftig, da man dort anfanglich scheinbar nicht so die totale Kontrolle über den Ablauf und den Aufbau einer Seite hat.

    Für komplexe Business-Anwendungen, die mit vielen Subsystemen zusammenarbeiten, evt. SOAP Schnittstellen o.ä. anbieten müssen ist ASP.Net in meinen Augen deutlich zu befehlen. Insbesondere auch, weil man dort bereits recht leicht auf bestehende Bibliotheken oder Systemen zurückgreifen kann.
    Hat man beispielsweise im Unternehmen bereits einen Dienst/Service/Schnittstelle, der automatisch die Bonität eines potenziellen Kunden überprüft, dann kann man i.d.R. per C# diesen Dienst sehr einfach abgreifen. Ebenso wenn man bereits irgendwo eine Buchungs-Funktion für das Unternehmen realisiert hat o.ä. Per PHP wird dies oft ne unangenehme Arbeit.

    Was die Performance angeht, kann ich leider nicht so viel sagen. Aber die Performance hängt auch immer von der zugrunde liegenden Architektur ab. Facebook und Wikipedia setzen beispielsweise auch auf PHP, also kann man auch sehr große und stark besuchte Seiten per PHP realisieren.

    Ob dies per ASP.Net mit weniger Performance geht, kann ich nicht sagen. Aber man sollte es sich schon mal angucken, ist schon spannend die Unterschiede zu erkennen. Und wenn man dann später webbasierte Unternehmensanwendungen erstellen möchte/muss, ähnliche wie die von SAP, dann kommt mit PHP oft nicht weit (bzw. nur schwierig).
    Evt. mit dem ganz normalen C# und normalen Windows-Apps anfangen und dann erst zu ASP.Net wechseln.

    Grüße
    Klaus

    1. echo $begrüßung;

      C#/ASP.Net ist dort ganz ganz anders. Ich find es schwierig zu beschreiben. Dort werden die Prinzipien der OOP stärker umgesetzt und man hat nicht so den Spagetti Code wie bei PHP. Es ist vom Gefühl eben sehr anders eine ASP.Net statt eine PHP Anwendung zu schreiben.
      Bei PHP kenn ich den Kontrollfluss, dass Formular wird beim drücken des Submit Button an 'script.php' gesendet, dann frage ich dort die Daten ab, speichere diese Daten in der DB ab und gebe den HTML Code der Ergebnisseite zurück.
      Bei ASP.Net ist dies eher verworrener und, in meinen Augen, stärker OOP basiert.
      Dort programmiere ich nicht wie script.php aussieht, also nicht wie die $_POST/$_GET Daten abgefragt werden usw., sondern im C# Code reagiere ich auf ein onClick-Event eines Buttons, ähnlich wie bei JS, lassen dann meinen Code zum Speichern ablaufen und manipuliere evt. noch die Ausgabe.

      Was du beschreibst ist das herkömmliche ASP.NET-Prinzip. Und es ist weniger das OOP-Prinzip, das den Unterschied ausmacht. Man kann auch unter PHP einigermaßen gut objektorientiert programmieren. Es sind mehr andere Eigenarten. Mit dem herkömmlichen ASP.NET hat man versucht, das von GUI-Anwendungen gewohnte Feeling in die Webprogrammierung zu bekommen. Wenn der Anwender einen Button drückt, gibt es im GUI ein Ereignis, auf das man reagieren kann. Man ändert gezielt Teile des auf dem Bildschirm sichtbaren. Im Web gibt es nur Requests kompletter Seiten (AJAX mal unbeachtet gelassen). ASP.NET simuliert dieses Button-Click-Ereignis, obwohl es beim Webserver nie direkt angekommen ist / ankommen kann. Auch kann man sich wie bei der GUI-Programmierung auf das Ändern von Teilbereichen der Ausgabe beschränken. Den Rest der Seite kann man so lassen, die anderen Komponenten kümmern sich selbst um ihren Inhalt.

      Auch das Erstellen von Seiten ist anders. Man kodiert im Wesentlichen HTML nur für das Seitengerüst. Was die eigentliche Arbeit erledigt, wird als Komponente eingebunden. Man setzt "nur" ein paar Eigenschaften, implementiert einige Eventhandler, fertig. Den letztlich entstehenden HTML-Code schaut man sich lieber nicht so genau an. Damit hat man in Nullkommawenig schon einfache Datenbankanwendungen erstellt. Mit SQL muss man sich auch nicht zwangsläufig rumschlagen, das wrapt das DataSet.

      Es gibt mittlerweile das MVC-Framework, mit dem man wieder mehr die Kontrolle in der Hand hat. Und das nicht nur vom Bediengefühl (als Programmierer) her sondern vor allem auch was den erzeugten HTML-Code angeht. OOP-basiert bleibt das Ganze, nur die GUI-Anwendungs-ähnliche Programmerstellung ist nicht mehr.

      echo "$verabschiedung $name";

  5. C sharp? Wir haben das damals immer D flat (Db) genannt - aber das kommt auf die Stimmung an.

    C# ist ein Framework aus Konzepten, welches sich auf mehrere Sprachen übertragen läßt - inzwischen hat MicroSoft Python und einige weitere Sprachen mit C# zum Funktionieren gebracht.

    PHP ist eine der langsamsten, aber auch bequemsten Scriptsprachen. ASP.NET ist ebenfalls eine relativ gemütliche wie langsame Scriptsprache, die jedoch andere Konzepte verfolgt als PHP.

    Bei allen Sprachen kommt es darauf an, wie man sie benutzt. Wenn Du eine Zange als Hammer nimmst, wirst Du damit wahrscheinlich mit etwas mehr Aufwand zum gewünschten Ergebnis kommen - umgekehrt ergeben sich jedoch Schwierigkeiten.

    Für ein großes Forum solltest Du im Zweifel eine Sprache wählen, die Du bereits beherrscht. Wenn Du unbedingt eine neue Sprache lernen willst, schau Dich lieber nochmal um, bevor Du C# anfängst.

    Gruß, LX

    --
    RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine wunderbar. (...)
    1. Yerf!

      Kann es sein, dss du hier ein paar Dinge durcheinanderbringst?

      C# ist ein Framework aus Konzepten, welches sich auf mehrere Sprachen übertragen läßt - inzwischen hat MicroSoft Python und einige weitere Sprachen mit C# zum Funktionieren gebracht.

      Das Framework nennt sich .NET
      Aber ja, man kann es mit sehr vielen unterschiedlichen Sprachen benutzen, eine davon ist C# (vermutlich auch diejenige, auf die es am besten abgestimmt ist).

      PHP ist eine der langsamsten, aber auch bequemsten Scriptsprachen. ASP.NET ist ebenfalls eine relativ gemütliche wie langsame Scriptsprache, die jedoch andere Konzepte verfolgt als PHP.

      ASP.NET ist die Webkomponente des Frameworks und hat nichts mit dem klassischen ASP zu tun.
      Aber auch das "alte" ASP war selbst keine Sprache sondern eine Art Framework das wiederum von verschiedenen Sprachen genutzt werden konnte. Üblicherweise VBScript oder JScript, aber auch Perl war möglich (eigentlich alles, was man irgendwie in den Scriptinghost von Windows reinbekommt).

      Bei allen Sprachen kommt es darauf an, wie man sie benutzt. Wenn Du eine Zange als Hammer nimmst, wirst Du damit wahrscheinlich mit etwas mehr Aufwand zum gewünschten Ergebnis kommen - umgekehrt ergeben sich jedoch Schwierigkeiten.

      Zustimmung.

      Für ein großes Forum solltest Du im Zweifel eine Sprache wählen, die Du bereits beherrscht. Wenn Du unbedingt eine neue Sprache lernen willst, schau Dich lieber nochmal um, bevor Du C# anfängst.

      Wer über C# nachdenkt sollte sich auch mal das "Original" anschauen: Java

      Gruß,

      Harlequin

      --
      <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
      1. Kann es sein, dss du hier ein paar Dinge durcheinanderbringst?

        Stimmt. Erwischt. Verflixt.

        Wer über C# nachdenkt sollte sich auch mal das "Original" anschauen: Java

        Insbesondere JSP sind natürlich gerade bei größeren Projekten oft ein Mittel der Wahl. Der maßgebliche Unterschied zu PHP besteht darin, dass man es hier mit einer kompilierten anstelle einer interpretierten Sprache zu tun hat.

        Andererseits erfordert das Erstellen größerer Projekte in JSP viel Planung und Vorbereitung. Wer schnell loslegen will, hat mit interpretierbaren Sprachen mehr Spaß.

        Gruß, LX

        --
        RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine wunderbar. (...)
  6. Ohne die anderen Antworten gelesen zu haben.
    C# und PHP kann man nicht vergleichen, da C# jedenfalls mehr ist als "nur" eine Webanwendung.
    Ehrlich gesagt hab ich schon ASP gesehen und finds ziemlich kompliziert. Man hat verschiedene Stellen, an denen man parallel eingreifen muss, da find ich php schon übersichtlicher.
    Wenns dann wirklich was größeres sein soll siehts natürlich wieder anders aus.

    C# ist auch eine Sprache für Desktopanwendungen mit Fenstern, Diensten, was auch immer.

    Zum Unterschied:
    Web nimmt man, wenn man

    • für jeden erreichbar sein will
    • kein Programm ausliefern will oder das unverhältnismäßig wäre
    • mit den ganzen Einschränkungen leben kann/muss (kaum Zustandsinformationen, keine live-Bindung an Datenbanken usw, keine modalen Fenster...)

    Desktop nimmt man für alles andere :-)
    Also wenn man

    • ein Programm ausliefern und installieren kann
    • mit Hardware kommunizieren will (Scanner, Schnittstelle usw)
    • Daten prüfen will, ohne Request und Wartezeit auf Antwort

    kurz gesagt, die Entscheidung fällt selten rein aus dem Bauch heraus für das eine oder andere. Meistens gibts Fälle wo nur eine Variante sinnvoll ist.

  7. Ich hab gehört ich kann meine bisheriugen PHP Klassen in DLLs speichern und dann nutzen.
    Stimmt das? Wenn ja wie, und macht das einen Sinn?

    Desweiteren wie sieht es da mit der Geschwindigkeit aus?

    lg, your Friend

    1. echo $begrüßung;

      Ich hab gehört ich kann meine bisheriugen PHP Klassen in DLLs speichern und dann nutzen.
      Stimmt das? Wenn ja wie, und macht das einen Sinn?

      PHP ist keine Windows-Programmiersystem, bei dem DLLs entstehen. Vielleicht gibt es irgendwo ein Tool, dass DLLs aus PHP-Klassen erstellt, das stelle ich mir aber nicht so einfach vor, weil dazu eine gehörige Menge der Laufzeitbibliothek von PHP benötigt wird.

      Ich sehe auch keinen Sinn darin, wenn nicht irgendwelche handfesten Argumente gegen ein Umschreiben sprechen.

      Desweiteren wie sieht es da mit der Geschwindigkeit aus?

      Diese Frage wird dir pauschal keiner beantworten können. Wenn es doch einer macht, weil durchschnittlich System X um den Faktor Y schneller als System Z ist, dann ist diese Aussage auch nichts wert, wenn deine konkrete Implementierung diese Werte nicht erreicht.

      echo "$verabschiedung $name";

  8. Hi,

    Ich programmiere Seite ~10 Jahren PHP, wird der Umstieg schwer?
    Ein kleiner Blick in die Syntax weißt meiner Meinung nach viele Gemeinsamkeiten auf.

    Wie bereits erwähnt, ist es nicht die Sprache sondern die Konzepte und die Frameworks die dahinter stecken. Jemand der C# kann, wird schnell auch Java beherrschen (oder anders rum), allerdings wird er nicht so einfach auch eine Webanwendung in Java schreiben können.

    Bei PHP ist es relativ einfach nachzuvollziehen, was passiert. Die Seite wird einfach von oben nach unten abgearbeitet. echo macht eine Ausgabe von beliebigem Text. Fertig ist die Seite.
    Man kommt also ganz gut mit HTML, CSS, PHP und JavaScript Kenntnissen aus.

    Bei ASP.NET gibt es einen kompletten Page LifeCycle, es gibt einen Viewstate, es gibt Events, es gibt Controls und einen ControlState, es gibt einen ScriptManager, der ein eigenes Client Framework mitbringt, welches wiederum gut mit dem .NET Framework zusammenarbeitet.
    Es gibt ein Konzept zur Lokalisierung, zur Authentifierzierung, zur Validierung, zu AJAX und einigen anderen Sachen.
    Es gibt eine web.config Datei, wo man wissen muss, was man dort einträgt, damit die Anwendung läuft.
    Das .NET Framework ist riesig, da muss man erst mal durchblicken.

    Das ganze macht ASP.NET etwas schwerer zu begreifen und man kann nicht schnell mal was zusammenprogrammieren. Man muss z.B. lernen wofür einzelne Sachen gut sind und wie sie funktionieren (Viewstate), oder wie man eigene Controls schreibt, die dann auch mit dem ScriptManager zusammen arbeiten und ihre Scripte aus einer DLL auslesen und über einen HttpHandler ausgeben.
    (Bei PHP würde man da wohl einfach nur ein echo "<script src='...'></script>"; schreiben)

    Ist C# schneller als PHP?

    vermutlich ja, da es kompiliert ist und nicht während der Laufzeit interpretiert wird.

    Kann C# mehr?

    vermutlich auch ja. Die Sprache an sich zeichnet sich eben durch ihre strenge Typisierung aus. Das .NET Framework ist wohl auch mächtiger als die Funktionen in PHP.

    Angenommen ich schreibe ein großes Forum - PHP oder C#?

    Solange es ein überschaubares Projekt ist, an dem nur 1-2 Leute dran arbeiten, dann reicht wohl PHP.
    C# hat auch den Vorteil, dass es durch die Objektorientierung und Komponenten viel leichter wartbar ist (meiner Meinung nach), auch durch die gute Unterstützung des Visual Studio (mit Intellisense, Refactoring, ...). (Ich kenne keine vergleichbar gute Entwicklungsumgebung für PHP).

    Gruß!