Heim > Artikel > Backend-Entwicklung > Gedanken und Untersuchungen zur Verwendung von .NET für die Internetentwicklung
Ich weiß nicht, seit wann die Gründung eines Unternehmens sehr billig geworden ist. Alles, worüber wir reden, ist das Internet, und es ist leicht, zig Millionen Dollar aufzubringen. Dieser Windstoß scheint auch Programmierer getroffen zu haben. Es gibt eine große Anzahl von Entwicklern, die Datenstrukturen nicht gut studieren und kein solides Verständnis für Datenbankprinzipien haben. Sie veröffentlichen mehrere Projekte auf Github und verwenden NodeJS, um einige Dienste zu erstellen. Und dann benutze ich H5, um Apps zu schreiben. Ich glaube, ich bin in die Reihen der erfahrenen Programmierer eingestiegen und kann das Erlernen neuer Technologien und neuer Konzepte in dieser ungestümen Atmosphäre nicht ganz richtig machen Internet-Websites und APPs Eine nach der anderen verfügen viele scheinbar schöne APPs nicht einmal über die einfache httpSchnittstelleSicherheit. Viele schöne responsive Websites, Die Verzeichnisstruktur ist wirklich ein böser Trend. Ich denke, Programmierer sollten mehr Theorien lernen, mehr Codes schreiben und wiederholt üben.
Sind neue Technologien und neue Ideen offensichtlich nicht die Siege unzähliger technischer Experten, die sie als .NET-Veteran immer wieder rekonstruiert haben? Ich bin zutiefst erfreut, dass Microsoft Open Source angenommen hat und die Veränderungen und Fortschritte angenommen hat, die die Community im Laufe der Jahre hervorgebracht hat. Deshalb möchte ich Ihnen heute mitteilen, wie ich und mein Unternehmen es im Laufe der Jahre genutzt haben technische Zusammenfassung der Webentwicklung und sogar der Entwicklung von Internetanwendungen mit .NET.
Werfen wir einen Blick auf einen kürzlich gestarteten typischen Fall, muban.printhelloworld.com, der Tools wie HTML5, Bootstrap, EF6 Für MySql, Alibaba Cloud RDS, Alibaba Cloud CDN und andere neue Technologien und Konzepte sind jedoch nicht von der Verwendung von .NET für die Entwicklung und dem .NET getrennt. NET-Ökoumgebung (IIS, Windows Server) für die Bereitstellung, aber der gesamte Entwicklungsprozess hat WebForm oder sogar MVC vollständig abgeschafft. Wir haben ein neues .NET-Entwicklungsmodell praktiziert, das die Entwicklungseffizienz erheblich verbessert hat Die Teamzusammenarbeit wurde ebenfalls erheblich verkürzt. In diesem Fall wurde die Front-End- und Back-End-Verwaltung der gesamten Website, von der Konzeption über das Design, die Entwicklung bis hin zum Debugging, abgeschlossen eine Person in 3 Tagen. Im Folgenden finden Sie eine detaillierte Beschreibung des Entwicklungsmodells. Wir werden uns auch die Meinungen aller anhören und uns weiter verbessern.
Was die Evaluierung vonASP.NET WebForm betrifft, halte ich Folgendes für objektiv: ASP.NET WebForm Drag & Drop und Ereignis Treiber Obwohl die Innovation des Webentwicklungsmodells das Lernen und Verstehen einer großen Anzahl von .NET-Anfängern erleichterte, behinderte sie letztendlich die Popularisierung und kommerzielle Nutzung von .NET. Darüber hinaus blieben die hervorragenden Sprachfunktionen von .NET lange Zeit unbeachtet. Es wurde als ineffizient, schwer zu erweitern und für die kommerzielle Entwicklung ungeeignet eingestuft. ASP.NET WebForm trägt hier eine unumstößliche Verantwortung.
Wenn ich an die Jahre 2006 und 2007 zurückdenke, war ich immer noch erstaunt über die Leistungsfähigkeit und den Komfort von UpdatePanel. Wenn ich jetzt zurückblicke, ermöglicht dieses Entwicklungsmodell Entwicklern, die Natur von HTTP zu verstehen Web. Das Verständnis von MVC ist zweifellos mit einer Nebelschicht bedeckt, was auf lange Sicht ein Rückschlag ist. Später, in der ASP.NET MVC-Ära, haben sich die schlechten Gewohnheiten der erfahrenen Programmierer von Microsoft nicht verbessert , es ist immer noch voller Probleme. Es gibt alle Arten von selbstgerechten Funktionen, Bindungen, Verknüpfungen usw., die im Voraus für junge Entwickler gedacht wurden, aber ich denke, dass jeder, der sie hat Ich habe mich mit kommerziellen Projekten Architektur und Entwicklung beschäftigt. Technischen Managern ist klar, dass diese kleinen Tricks in soliden Projekten, die wirklich Stabilität benötigen, nicht nur nutzlos, sondern auch schwer zu erweitern sind und eher zu Fehlern führen und Schlupflöcher, die schwer zu kontrollieren sind.
Glücklicherweise hat .NET unter der Führung von Nadella und unter der Leitung von Bill Gates, der als technischer Berater zurückkehrte, seine Richtung weiter korrigiert und nicht nur große Fortschritte in der Sprache, sondern auch im ökologischen Aufbau gemacht. zunehmend sichtbar. Ich habe gezweifelt, ob das von der Firma entwickelte agile .NET-Entwicklungsmodell ein Ausdruck des Fortschritts ist. Bis zum Erscheinen von vNext (MVC6.0) wurde mir plötzlich klar, dass verschiedene Wege zum gleichen Ziel führen, und Microsoft hat es endlich geschafft den richtigen Weg eingeschlagen. Bevor ich über das Entwicklungsmodell spreche, möchte ich zunächst darüber sprechen:1. Einige neue Trends und Merkmale aktueller Internetprojekte oder traditioneller Webprojekte
1. WebService wird nicht mehr verwendet, aber HTTP wird häufig als Methode der Datenkommunikation verwendet
2. Der Datenträger nutzt nicht mehr XML, sondern JSON
3. Das Web-Frontend nutzt Drittanbieter wie z.B Bootstrap, JQueryUI, EasyUI usw. HTML5-Framework
4. Es gibt APP-Anforderungen, und sogar APP-Prioritätsanforderungen müssen eine Verbindung zu verschiedenen Drittanbieter-Plug-Ins herstellen
5. Um den schnellen Start von APP voranzutreiben, wird manchmal das HTML5-APP-Entwicklungsmodell übernommen, z. B. PhoneGap, AppCan, HBuilder usw.
6. Wenn Bedarf besteht Für WeChat ist es erforderlich, das öffentliche WeChat-Konto zu verbinden und die mobile Webentwicklung im WeChat-Browser durchzuführen
7. Kurzer Entwicklungszyklus und häufige Iterationen
8. Die Datenmenge wächst schnell, und es gibt mehr Anforderungen an die Berichtsanzeige und Datenanalyse
9. Der Personalbedarf des Projektteams wird von Webentwicklungsingenieuren bestimmt und detailliert. Unterteilt in HTML5-Front-End-Ingenieure, JAVA (.NET)-Ingenieure und Datenbanken Ingenieure usw.
10. Unit-Tests werden reduziert, es gibt immer mehr Funktionstests und sie werden sogar durch Internet-Tools (Worktile usw.) ersetzt. Professionelle Testtools
Basierend auf der obigen Situation gehen wir davon aus, dass, wenn wir immer noch .NET für die Systementwicklung verwenden, in einem agilen Projekt mit einem Benutzervolumen von
2. Einige Traditionelle .NET-Webentwicklungsmodelle und -methoden sollten aufgegeben werden
1. ASP.NET WebForm- und MVC-Modelle sind nicht mehr geeignet. Beide verfügen über eine ernsthafte Front-End- und Back-End-Kopplung und komplizierte einfache Prozesse . und das Frontend kann niemals von der .NET-Architektur getrennt werden.
2. Die SQL Server-Datenbank ist nicht mehr geeignet, da die Verwendung öffentlicher Clouds im Vergleich zu anderen Datenbanken immer häufiger wird Größe, Preis, Verfügbarkeit In Bezug auf Skalierbarkeit und sogar Leistung ist SQL Server im Nachteil.
3. Die traditionelle dreistufige Architektur ist nicht mehr geeignet. Viele Internetprojekte müssen von Anfang an mehrere Serviceknoten unterstützen und unterschiedliche Datenbanken für unterschiedliche Anwendungsszenarien verwenden. Darüber hinaus nutzt die dreistufige Architektur in großem Umfang Reflektion, um den Code auf Kosten der Leistung zu erhöhen, und eignet sich nicht mehr für die agile Entwicklung.
4. Die IT-Architektur von Server 2003 sollte aufgegeben werden, sei es, dass IIS6.0 hinter dem HTTP-Anforderungsverarbeitungsmodell von IIS7 zurückbleibt oder Server 2003 hinter der Stabilität und Erweiterung von Server 2008 zurückbleibt und 2012 sollten Sie eine .NET-Bereitstellung auf Basis von Server 2003 und IIS6 nicht mehr in Betracht ziehen.
Obwohl einige Dinge aufgegeben wurden, ist Microsoft doch Microsoft:
3. Einige .NET-Funktionen sollten gestärkt werden
1. In- Mit dem Entwicklungstool Visual Studio 2015 ist VS2015 ein erstklassiges Entwicklungstool. Selbstverständlich beherrscht es die Frontend-Codierung (CSS, JS, HTML) mit benutzerdefinierten Einstellungen und Plug-Ins von Drittanbietern Für Ingenieure wird es noch leistungsfähiger sein
2. Die Verwendung der TFS-Quellcodeverwaltung, sei es die interne Installation der TFS Express-Version oder die Beantragung von freiem Speicherplatz auf tfs.visualstudio. com, kann unserer Praxis zufolge die Teamzusammenarbeit erleichtern. Lassen Sie sich aus dieser Sicht nicht vom Git-Modus mitreißen. Tatsächlich ist der TFS-Verwaltungsmodus am besten für die .NET-Entwicklung geeignet
3 . Die Verwendung von .NET-Hochsprachenfunktionen sollte gestärkt werden, wenn die Fähigkeit besteht, hochwertige Sprachfunktionen und -methoden wie Linq, Lamda geschickt zu verwenden , Reflexion, AufgabenparallelitätProgrammierung wird die Entwicklungseffizienz erheblich verbessern und die Entwicklungszeit verkürzen.
4. Die erweiterten Funktionen und die dynamische Verwaltung von IIS sollten gestärkt werden. Nach IIS7 ist der IIS-Server ein Synonym für leistungsstarke Web- 5. Die Verwendung des Betriebssystems Server 2012 R2 sollte verstärkt werden. Plattformübergreifend ist zwar die Richtung von .NET und wird auch auf Mono gut praktiziert, aber heute, wo PC-Server und Cloud-Server billiger werden Und günstiger ist es immer noch, das neueste Server-Betriebssystem Windows zu verwenden.Mit dem obigen Verständnis kann unser aktuelles .NET-Entwicklungsmodell einfach wie folgt zusammengefasst werden:
1. High-Level-Lösung -End- und Back-End-Kopplung
Das erste, was zu tun ist, ist, die ASP.NET WebForm- und MVC-Modelle vollständig aufzugeben. Die gesamte Logikverarbeitung im Frontend wird mithilfe von JS verarbeitet, einschließlich Dom-Elementlayout und -Zeichnung Anfragen, während das Back-End eine reine Geschäftslogikverarbeitung ist, einschließlich Logikverarbeitung und Datenverarbeitung. Derzeit nutzt unser Projekt die Routing-Funktion in ASP.NET und wird weiterhin im ASP.NET-Modell und IIS gehostet. Theoretisch und in naher Zukunft wird es unter Linux Das Hosten von reinem HTML5 sowie HTML5-Caching wird ebenfalls sehr einfach sein.
2. Das Frontend verwendet reines HTML5
Das Frontend verzichtet auf herkömmliches HTML und versucht, die gesamte HTML5-Technologie zu verwenden. Zu den Opfern gehört der Verzicht auf Browser unter IE11. Aber im heutigen Internet-Denken ist eine solche Idee keine schlechte Idee. Wenn die HTML5-Technologie im Frontend vollständig genutzt wird, werden verschiedene Verarbeitungen wie Dateien, Grafiken, Bilder, Audio, Video und geografische Standorte sehr einfach. flach und datenbasiert.3. Das Frontend nutzt ausgereifte Frameworks voll aus
Nach der Verwendung des neuen Entwicklungsmodells besteht eine offensichtliche Änderung darin, dass die Künstler des Unternehmens nicht mehr oder nur noch selten auftreten Front-End-Schnittbilder und die Nachfrage nach technischen Künstlern (die CSS und JS entwickeln und Design verstehen können) nehmen von Tag zu Tag zu. Die Hauptursache für diesen Wandel ist das Aufkommen fortschrittlicher und hervorragender Front-End-Frameworks Derzeit werden JQuery, Zepto, JQueryUI, JQueryMobile, Bootstrap, Amaze UI, inoic, Framework7, SUI, MUI usw. sowie Plug-Ins von Drittanbietern verwendet, die diese hervorragenden Frameworks begleiten. Objektiv gesehen erhöht sich durch die Verwendung hervorragender Frameworks nicht nur das Systemrisiko des Front-Ends nicht, sondern aufgrund der Open Source, der klaren Architektur, der Stabilität und anderer Merkmale des Frameworks entsteht auch ein stabileres und skalierbareres Front-End erreicht wird. Um ein einfaches Beispiel zu nennen: Bootstrap hat eine wichtige Rolle bei der Lösung der Probleme des vollständig kompatiblen Layouts und desresponsiven Layouts gespielt, die viele Webentwickler beunruhigen.
Front-End-EntwicklungObjektorientiert
Die Front-End-Entwicklung ist einfach durch die objektorientierten Funktionen von JS gekapselt, und der Betrieb von Dom-Elementen und der Verarbeitung logischer Datenanforderungen im Einklang mit dem Back-End--Datentyp , der Entitätsstruktur und der Verarbeitungslogik. Dies bringt nicht nur ein besseres Verständnis der Geschäftsanforderungen zwischen Front-End und Back-End-Entwicklern, sondern reduziert auch die technischen Kosten erheblich. Die Schulungsschwelle hat die Effizienz der Teamarbeit
verbessert. Vor ein paar Jahren war der CDN-Dienst nur für große Unternehmen und Unternehmen verfügbar, und jetzt ist er völlig populär und zivil geworden Das Front-End wird immer beliebter. Es ist eine unbestreitbare Tatsache, dass die Daten immer umfangreicher werden, aber die eigentliche Geschäftslogik beträgt oft nur Dutzende K oder sogar mehrere K. Eine Seite von mehreren Hundert K, also 90 % Dabei handelt es sich um Frameworks von Drittanbietern wie JQuery. Daher verbessert die sinnvolle Nutzung der CDN-Beschleunigung nicht nur die Benutzerfreundlichkeit, sondern verbessert auch direkt die Ladekapazität von Webdiensten, die auf der HTTP-Architektur basieren, um mehr als das 5- bis 10-fache.6. HTTP-Service-basierte Geschäftslogik
Dieser Satz ist vielleicht keine sehr passende Beschreibung, aber er ist auch der wichtigste Link in unserer neuen .NET-Entwicklung Nach dem Studium fortschrittlicher Internetarchitekturen wie Alibaba Open Platform haben wir schließlich ein strukturiertes, aber lockeres Geschäftslogik-Verarbeitungsmodell entwickelt, das heißt, jedes Geschäftslogik-Verhalten hat einen eindeutigen Routen
Name Die Geschäftslogik ist nur für den Routing-Namen verantwortlich, und der Routing-Name ist für Anforderungen der oberen Ebene wie Flussrichtung, Leistung, Berechtigungen und Sicherheit verantwortlich. Dies hat den Vorteil, dass Entwickler mit etwa 3 bis 5 Jahren Erfahrung (die auch die Hauptentwicklungskraft der meisten Unternehmen sind) voll genutzt werden können, sodass sie sich auf das Schreiben von Geschäftslogik konzentrieren können, während andere Dinge als Geschäftslogik erforderlich sind Die in der Architektur zu berücksichtigende Ebene wird von den restlichenControllern gelöst und ein großes .NET-Projekt kann auch auf unterschiedliche Weise flexibel in Untermodule aufgeteilt werden. Für die Implementierung von HTTP-Diensten haben wir den ASP.NET ASHX-Prozessor, den Windows Service HOST WCF-Dienst und die ASP.NET Web API ausprobiert. Die aktuelle stabilere Version ist die Web API, die natürlich der Nachfrage entspricht Für den HTTP-Dienst ist die Wen-API ebenfalls etwas schwerfällig und wird in Zukunft weiter verbessert. Kurz gesagt, dieser Änderungsprozess hat in der Praxis die Entwicklungs- und Testeffizienz um mindestens das Dreifache verbessert. In einem späteren Kapitel wird dies ausführlich erläutert. 7. Verteilter und Hot-Loading-HTTP-Dienstaufbau
Internetanwendungen erfordern eine agile Entwicklung und wiederholte Iterationen. Es ist üblich, dass unterschiedliche Anforderungen unter derselben logischen Architektur unterschiedliche Server und Datenbanken verwenden. Daher ist der Aufbau verteilter HTTP-Dienste von entscheidender Bedeutung Business Update muss in der Lage sein, Hot Loading durchzuführen. Im .NET-System handelt es sich um das dynamische Laden und Verwenden von DLL-verwaltetem Code, da die vorhandenen Projekte des Unternehmens leider nicht über große verteilte Szenarien verfügen Daher wurde noch keine stabilere dynamische DLL-Ladearchitektur entwickelt, die im nächsten Kapitel ausführlich besprochen wird.
8. Verwenden Sie Alibaba Cloud, um Big-Data-Probleme zu lösen
Ich denke, jeder IT-Architekt, der Alibaba Cloud und andere Cloud-Dienste verwendet hat, kann dies zutiefst spüren. Alibaba Cloud ist anderen Clouds bereits um mehr als eine Position voraus. Tatsächlich haben insbesondere die datenbankbezogenen Funktionen von Alibaba Cloud, wie RDS, DRDS, KVStore usw., tatsächlich viele komplexe und schwierige Punkte in den traditionellen Anforderungen in der Praxis gelöst. Die spezifischen Details werden später ausführlich besprochen, aber ehrlich gesagt Ein Wort, beeilen Sie sich und nutzen Sie Alibaba Cloud. Zumindest in diesem Stadium entführt Sie Alibaba Cloud nicht, sondern hilft Ihnen.
Ich habe heute viel geschrieben. Im Allgemeinen möchte ich Ihnen sagen, dass .NET nicht nur eine agile Entwicklung im Internet durchführen kann, sondern auch große Projekte und große Datenmengen bewältigen kann Da ich seit mehr als fünfzehn Jahren Pascal-Datenstrukturen schreibe, habe ich die Vorteile bereits ausprobiert Ich habe keine Angst davor, von anderen verwirrt zu werden. Ich kann sogar mutig sagen, dass andere Sprachen aus einer umfassenden Perspektive (Sprache, Entwicklungsumgebung, Entwicklungseffizienz, technische Community, Teamzusammenarbeit, Anwendungsfunktionen) weit hinter .NET zurückgeblieben sind Im Bereich der Entwicklung auf Anwendungsebene gibt es viele, aber die .NET-Programmierer selbst haben es noch nicht bemerkt. Aus dieser Sicht müssen alle zusammenarbeiten und weiter studieren und erforschen.
Das obige ist der detaillierte Inhalt vonGedanken und Untersuchungen zur Verwendung von .NET für die Internetentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!