Seit Ende 2010 gab es viele Stimmen über Silverlights bevorstehender Tod. Dann haben immer mehr Fakten gezeigt, dass Microsoft in der Tat allmählich Silverlight aufgibt. Der grundlegende Grund ist ungefähr, weil es den Druck von HTML5 spürt, und der direkte Grund ist, dass es im Wettbewerb mit Flash nicht viel Sieg erzielt hat.
Aufgrund der Popularität des iPhone kündigten Jobs zuversichtlich an, dass alle Browser-Plug-Ins "böse" sind, sodass iOS-Browser alle Plug-Ins wie Flash und natürlich Silverlight ablehnen. Wenn dann der Metro-IE in Win8 wirklich wie Jobs entworfen ist und keine Plug-Ins unterstützt, konnte ich immer noch nicht glauben, dass meine Brille kaputt war. Warum wurde Microsoft so unsicher und unabhängig?
1. Warum HTML5 Silverlight (oder Flash) nicht ersetzen kannJedes Produkt ist ein Werkzeug. Ich bin nicht der Designer von Silverlight und habe keine besonderen Gefühle dafür. Wenn es eine bessere Technologie gibt, die sie ersetzen kann, ist das großartig. Ich werde der erste sein, der ein neues Produkt unterstützt. Aber die Frage ist, kann HTML5 Silverlight wirklich ersetzen?
Silverlight ist ein fetter Client, der in der Sprache C# (oder VB.NET) entwickelt wurde. Diese Linie bestimmt ihren Entwicklungsprozess von Natur aus. Die Programmstruktur muss genau der von Windows -Anwendungen entsprechen. Tatsächlich geht es noch einen Schritt weiter. Die von Silverlight von WPF geerbte Linie macht MVVM sehr ideal. Diese vollständige Produktion ist eine leistungsstarke ökologische Kette, die auf .NET-Framework, MVVM als Organisationsmodell und auf hoher Sprache als Entwicklungssprache basiert. Silverlight vereint die Entwicklungstechnologie von Client und Server und füllt die Lücke zwischen verschiedenen Browsern.
Mehr als das. Silverlight ist besonders nützlich im SOA -Arbeitsmodell. Die tiefe Integration in WCF macht es einfach und elegant, ein leistungsstarkes, dienstleistungsorientiertes Webprogramm zu entwickeln.
Was ist mit HTML5? Es verbessert Grafikverarbeitungsfunktionen, fügt Streaming -Funktionen hinzu und fügt auch einige andere praktische Funktionen hinzu. Dies ist jedoch noch weit von Ria entfernt. Es ist für Software -Engineering, Leistung und Entwicklungseffizienz nutzlos.
Zunächst erfordern die Vorteile der Sprache auf hoher Ebene, starker Typisierung und objektorientierter Perspektive von Sprache und Struktur keine unnötige Erklärung. Die Geschichte der Software in den letzten Jahrzehnten war ein eiserer Beweis, und ausgezeichnete Designmuster sind für die Lesbarkeit, Wartbarkeit, Sicherheit und Flexibilität der Software umso wichtiger. In diesem Zusammenhang besteht im Grunde kein zusätzlicher "Beweis" erforderlich. Jeder, der Programmierung gelernt hat, sollte die Bedeutung und Rolle von Designmustern kennen.
HTML5 ist nicht "html selbst". Tatsächlich gibt es einen Protagonisten namens JavaScript, der von Menschen fast ignoriert wird. An allen Orten, an denen die wunderbaren Aussichten und plattformübergreifenden Merkmale von HTML5 gesprochen werden, erwähnte fast niemand den Namen JavaScript. Tatsächlich müssen jedoch verschiedene dynamische Funktionen und Verhaltensweisen in HTML vollständig von JS implementiert werden. HTML5 als Webanwendungslösung sollte tatsächlich als "HTML5- und JavaScript" -Lösung bezeichnet werden.
Wenn Sie genauer darüber nachdenken, werden Sie feststellen, dass JavaScript, das von Menschen absichtlich hinter den Kulissen versteckt wurde, der reale Protagonist ist, und HTML5 ist eigentlich nur eine unterstützende Rolle.
Vor nicht allzu langer Zeit zeigte Microsoft ein Spiel namens "Schneidseil", das behauptet, mit HTML5 implementiert zu werden. Das Spiel ist in der Tat überraschend. Jeder, der in der Webentwicklung arbeitet, sollte jedoch sofort erkennen, dass HTML5 in der Implementierung dieses Spiels, wie viel JavaScript auswirkt? In welcher Sprache befindet sich ihr Funktionscode? Die Antwort ist so einfach und klar. Anstatt zu sagen, dass dieses Spiel zur Anzeige von HTML5 verwendet wird, denke ich, dass es besser ist, JavaScript anzuzeigen.
Wenn es um Spiele geht, sollten Sie in den letzten Jahren mit den beliebten Webversionen von Online -Spielen in China vertraut sein. Die kraftvollen Funktionen werden von JS vollständig verwirklicht? Ich fühle mich taub, wenn ich darüber nachdenke. Unabhängig davon, ob es möglich ist, auch wenn es getan werden kann, denken Sie nicht wirklich, dass dies eine große Regression in der Programmiergeschichte ist? ---- Nach so vielen Jahren der Entwicklung wurden hochrangige Sprachen durch Skriptsprachen ersetzt?
Tatsächlich sind Spiele nur ein Beispiel. Da Webanwendungen immer beliebter werden, benötigen die Menschen stärkere, empfindlichere, höhere Leistung und komplexere Kundenanwendungen, was alle größere Programmierskalen bedeuten. Für "HTML5 -Lösungen" bedeutet dies tatsächlich, dass alle Benutzererwartungen über JavaScript und für große Anwendungen implementiert werden müssen, dies kann Millionen von Codezeilen bedeuten. ---- Ist JS in dieser Skala in dieser Skala mit leistungsstarker C#vergleichbar?
Es ist nicht nur das.
Zum Beispiel konzentriert sich das Projekt meines Unternehmens auf die Webanwendung auf lokale Netzwerke und berücksichtigt nicht die Einschränkungen des Internets. ---- Dies ist eigentlich ein Nutzungsszenario für viele Webanwendungen. In LANs können Client-Plug-Ins wie Silverlight eine sehr hohe Leistungskommunikation (binäre Datenströme) und die Datenverarbeitung erreichen. Dies ist eine Barriere für die HTML5 -Linie basierend auf der Interpretation der Klartext. Seine Leistung kann niemals höher sein als Plug-Ins.
Neben der Kommunikationsleistung gibt es auch eine dynamische Effektleistung. Silverlight kann die Hardwarebeschleunigung direkt verwenden, während HTML5 auf den Browser angewiesen ist. Genau wie die Kommunikationsleistung ist es nur niedriger als Silverlight und es gibt keine höhere Möglichkeit.
Gibt es eine Entwicklungseffizienz (Zeitkosten)? Silverlight basierend auf .NET kann die leistungsstarken Funktionen von Visual Studio vollständig verwenden. Entwickler spüren oft nicht den Unterschied zwischen diesem und der Entwicklung eines Windows -Programms. Das .NET-Framework fasst eine große Anzahl von fertigen Funktionen, umfangreichen Steuerelementen, vertrauten Programmiererfahrungen und leistungsstarker Debugging-Unterstützung zusammen.
Wir sind auch mit der Entwicklung von JS vertraut. Obwohl VS im Laufe der Jahre seine Unterstützung für JS im Vergleich zum riesigen .NET -Framework und der reifen .NET -Laufzeit und des Debuggers kontinuierlich gestärkt hat, ist es nur eine Skriptsprache. Egal wie fett eine Maus ist, es wird nicht schwerer als ein Elefant. Dies ist ein grundlegender gesunder Menschenverstand.
2. Wo ist HTML5Abgesehen von den oben genannten praktischen Problemen ist HTML5?
Zunächst erfordert HTML Browserunterstützung. HTML5 selbst ist nur ein Standard, und seine Implementierung hängt vom Browser ab. Aus verschiedenen Gründen hat jeder Browser immer einige seiner eigenen "Persönlichkeit". HTML4 ist nicht ohne Standards, aber die Fakten vor Ihnen haben vollständig gezeigt, wie die Browserhersteller diesen Standard behandeln. Es gibt keinen Grund zu beweisen, dass die Ära von HTML5 dieses Problem vollständig lösen kann.
Zweitens gibt es immer noch nur wenige, die HTML5 -Browser unterstützen. Es ist immer noch ein langer Weg, alle alten Browser zu beseitigen. Und es kann vorausgesagt werden, dass der Markt in fünf oder zehn Jahren mit verschiedenen Versionen von Browsern gefüllt sein wird und jeder Browser etwas anders ist. Wie lange wird der IE9 von Microsoft seit langem gestartet? IE10 wurde veröffentlicht. Obwohl IE10 und IE9 beide Browser sind, die HTML5 unterstützen, gibt es viele sichtbare Unterschiede. Unter den noch lebenden Browsern hat Microsoft allein 5 verschiedene Produkte von IE6 bis IE10.
Drittens erfordert der Erstellen einer leistungsstarken Webanwendung nicht nur die Reife in der Grundtechnologie, sondern auch eine große Anzahl von Klassenbibliotheken. HTML5 selbst ist nicht reif genug, und es fehlt nicht ausreichend überzeugend und die Klassenbibliotheksunterstützung. Wenn zukünftige Browser JS wie Silverlight oder Flash wirklich erklären können, wird dies ein sehr langer Prozess sein, geschweige denn ich persönlich denke, dass dies unmöglich ist.
Im Vergleich zur Unreife von HTML5 ist Silverlight ein fertiges Produkt vor Ihnen. Ich mache mir Sorgen darüber, was zehn oder zwanzig Jahre später passieren wird. Das liegt daran, dass ich voll bin und nichts zu tun habe.
3. Win8 und die ZukunftNun, ich gebe zu, dass die Sorgen darüber, was zehn oder zwanzig Jahre später passieren wird, nicht unbedingt bedeutet, dass Sie voll sind und nichts zu tun haben. Dann schauen wir uns die Zukunft an.
Win8 entspricht der Win7+Metro. Das heißt, legen Sie den Desktop -Modus beiseite, der mit Win7 nach hinten kompatibel ist. Der Metro -Modus ist der echte Win8.
Was ist jedoch Metro? Der Metro -Modus verlässt das Fenster, das WPF und sogar .NET. Zu einem so großen Preis repliziert es tatsächlich das mobile Betriebssystem. Es ist nicht nur völlig unnovativ im Aussehen, sondern der Windows Application Store drückt auch seine Liebe zu Apple direkt aus. In Anbetracht des abnormalen Designs von Metro-ie habe ich einmal zweifelt, ob Win8 unter Anleitung von Arbeitsplätzen entwickelt wurde.
Obwohl der U -Bahn -Modus etwas erfrischend aussieht, ist ein PC keine Spielekonsole. Mehr Menschen müssen einen Computer verwenden, um zu arbeiten, oder etwas Ähnliches wie ein Büro tun. Je mehr sie es verwenden, desto mehr finden sie, wie schmerzhaft es ist, einen fensterlosen Metro -Modus zu haben. Es ist so üblich, dass Personen zwei oder mehr Anwendungen gleichzeitig verwenden. Da die Größe des Monitors weiter zunimmt, kann der Monitor jedes Jahr mehr Informationen anzeigen, aber Metro sagt den Benutzern: Nein, alle Ihre Bildschirme können nur zur Anzeige einer Anwendung verwendet werden. Möchten Sie mit QQ chatten, während Sie Filme ansehen? Lieber, das ist nicht erlaubt ...
Computer sind keine Mobiltelefone. Die Designer von Win8 verstanden eine so einfache Wahrheit nicht. Die U -Bahn von Win8 kann nicht als nützlich gesagt werden, aber sie ist in der Tat sehr begrenzt.
Daher wird die zukünftige Entwicklungsrichtung von Windows definitiv keine langweilige U -Bahn, sondern ein klassischer Fenstermodus sein.
Sobald Sie dies verstanden haben, können Sie glauben, dass die Zukunft Plug-Ins nicht deaktivieren werde. Selbst wenn die U -Bahn im Betriebssystem wie ein deformierter Freak in Win9 noch parasitär ist, wird sie keinen Sturm verursachen. Der Desktop-basierte Win7-Modus ist der König, und solange der Browser Plug-Ins nicht deaktiviert, besteht kein Zweifel an der Verfügbarkeit von Silverlight oder Flash. Obwohl Microsoft Silverlight 6 vielleicht nicht wieder starten wird, was dann? Silverlight wird innerhalb von mindestens zehn Jahren immer noch gut funktionieren, was zehn Jahre später passieren wird ... Tatsächlich wird der größte Teil des Codes nicht so lange dauern.
4. Die Art der ComputertechnologieEs gibt einen alten Chinesen, der sagt: "Vergessen Sie die Vorfahren der Numerologie". Für Webanwendungen denke ich, dass das Genie der Technologie die Vorfahren der Numerologie vergisst. Sie phantasieren blind über plattformübergreifende, vergessen aber, wofür die Computertechnologie verwendet wird?
Computer sind ein Tool, und seine gesamte Entwicklungshistorie besteht nur darin, Benutzern zu dienen. Eine Technologie, die den Benutzern nur eine bessere Erfahrung bietet, ist wertvoll und kann alte Technologien besiegen. Es ist unangemessen und dumm, die Zukunft des Web auf niedrigem Niveau, Typeless, schwer zu steuern, JavaScript mit geringem Performance (HTML wird im Grunde genommen verwendet, um statische Inhalte zu präsentieren, und Webanwendungen konzentrieren sich eher auf dynamisch als auf statische). Als Jobs stolz behaupteten, alle Plug-Ins seien "böse", stimmte ich zu, dass seine Philosophie ("Diktion") Sinn machte, aber als er dieses Wörterbuch zählte, vergaß er seinen "Vorfahren". (Anwendungen müssen Benutzern dienen)
Eine Technologie kann die Bedürfnisse von Benutzern nicht unterdrücken, nur weil sie Arbeitskräfte speichern kann, und muss mehr Benutzercomputerressourcen konsumieren. Im Gegenteil, wenn es die Leistung verbessern, Ressourcen sparen, bessere Ergebnisse erzielen und die Benutzererfahrung verbessern kann, unabhängig davon, wie viel Aufwand sie unternehmen, muss dies getan werden.
Tatsächlich gibt es viele Funktionen, die JS+HTML nicht erreichen kann, und JS+HTML ist in der Sicherheit äußerst schlecht. (Wer kann die Sicherheit des Online-Einkaufs garantieren?) Es ist unmöglich, Plug-Ins zu deaktivieren, nicht nur vor Ihnen, sondern auch in zehn Jahren. Denken Sie nur an die Notwendigkeit einer stärkeren und sichereren Webumgebung für Benutzer. Sie wissen, dass Plug-Ins nur eingeschränkt werden können, aber nicht verboten werden können. (Einige unordentliche Plug-Ins sind wirklich nervig, aber sind sie es verboten, Fisch zu essen, weil sie Dornen haben? Es ist immer dumm, das Essen wegen Ersticks aufzugeben)
Flash ist ein sehr ausgezeichnetes und leistungsstarkes Web-Plug-In, aber es ist nicht ideal im Ökosystem von Microsoft, daher ist es tatsächlich unrealistisch, Flash anstelle von Silverlight zu verwenden. Entweder geben Sie die Technologie von Microsoft vollständig auf oder Silverlight ist nur.
Tatsächlich denke ich persönlich, dass die Zukunft des Webs auf dem SOA -Modus mehrerer Kunden basieren sollte. Die Funktionen werden vom Service implementiert und die Benutzeroberfläche wird von verschiedenen Plattformen mithilfe der am besten geeigneten Technologie implementiert. Es ist unangemessen, blind plattformübergreifend zu verfolgen. Der Bildschirm des Mobiltelefons bestimmt, dass der Anzeige- und Betriebsmodus von dem des Computers unterschiedlich sein muss.
5. xaml, Arraybindung und MVVMDieses Thema war ein bisschen schlecht, aber ich muss es immer noch erwähnen. Die neue Entwicklungsmethode der Win8 Metro -App, die tatsächlich Silverlight6 bezeichnet werden kann, verwendet noch XAML und verwendet ähnlich wie Silverlight wie ein Programmierrahmen. Einige Silverlight -Programme können sogar direkt in Win8 -Apps zusammengestellt werden, ohne eine Linie zu ändern.
Ich bin nicht optimistisch über Win8 und seine Metrol -App, aber ich glaube, XAML und MVVM werden für immer dauern, WPF wird nicht sterben und die von Silverlight verwendete Technologie wird nicht sterben.
Selbst wenn Silverlight5 wirklich die letzte Version ist, kann man in Betracht ziehen, dass Silverlight gerade seinen Namen geändert hat und in neuer Technologie wiedergeboren wurde.
6. Microsofts EinstellungMicrosoft hat die Entwicklung von Silverlight gestoppt, aber Microsoft kündigte nie ausdrücklich an, dass das Silverlight -Projekt aufgegeben wird. Dies ist ein sehr interessantes Phänomen. Die aktuellen Vorschriften von Microsoft dürfen "nicht erwähnen". Wenn Microsoft wirklich entschlossen ist, aufzugeben, warum müssen Sie dann "nicht erwähnen" vorgeben, vorzutäuschen, ein Strauß zu sein?
Ich denke, Microsoft schaut sich auch an. Sie beobachten, ob das Browser-Plug-In wirklich keine Aussichten hat. Wenn andere Plug-Ins, einschließlich Flash, in Zukunft langsam sterben, wird Microsoft natürlich Silverlight aufgeben. Im Gegenteil, wenn sich das Browser-Plug-In als sehr komfortabel erwiesen und keine Anzeichen für den Tod gibt, können sie das Silverlight-Projekt jederzeit neu starten und Silverlight6 starten.
Ich denke, selbst wenn die Reinkarnation und Wiedergeburt von Silverlight nicht berücksichtigt werden, wird selbst das Silverlight -Produkt selbst (und dieser Name) wahrscheinlich in Zukunft wiederbelebt.
Daher kann die Auswahl von Silverlight für Webentwickler, die unter dem Himmel von Microsoft leben, schneller und eleganterer Funktionen erzielen. Warum nicht Silverlight wählen?