Aspnetcore: Unterstützung für Visual Basic .NET (VB.NET) in ASP.NET Core

Erstellt am 3. Jan. 2018  ·  91Kommentare  ·  Quelle: dotnet/aspnetcore

In den letzten Jahren wurden viele Fragen zur VB.NET-Unterstützung in ASP.NET Core gestellt. Wenn Sie ihnen folgen, führen sie alle zu Sackgassen - entweder ohne echte Antwort geschlossen oder in andere Repositorys verschoben, die nicht mit ASP.NET Core zusammenhängen (z. B. irgendwo in der Dotnet-Organisation ).

In dieser Zeit war die Rede davon, VB zu unterstützen. Es ist völlig verständlich, dass ASP.NET Core VB von Anfang an nicht unterstützt hat. Das Projekt erlebte viele schnelle Veränderungen, daher war es sinnvoll, sich zunächst auf C # zu konzentrieren und später Unterstützung für andere Sprachen hinzuzufügen. Aber die Idee, VB zu unterstützen, schien auf dem Weg verloren zu gehen.

Hier ist eine kurze Zeitleiste:

16. Dezember 2014:

Wir planen Erweiterungspunkte, damit andere Sprachen wie VB, F # usw. über ein Support-Paket oder ähnliches hinzugefügt werden können.
https://github.com/aspnet/Home/issues/236#issuecomment -67046039

25. April 2015:

Hallo allerseits, gute Nachrichten! Wir haben Pläne angekündigt, VB in ASP.NET 5 / DNX zu unterstützen!
https://github.com/aspnet/Home/issues/236#issuecomment -96003847

Wir freuen uns, Ihnen heute mitteilen zu können, dass ASP.NET 5 vollständige Unterstützung für Visual Basic bietet (sowohl Tools als auch Laufzeit - einschließlich plattformübergreifender Laufzeitunterstützung).
https://blogs.msdn.microsoft.com/webdev/2015/04/24/making-it-better-asp-net-with-visual-basic-14/

19. November 2016:
Der VB-Support verschwindet aus der Roadmap:

 |1.0.4|Feb 2017|
 |1.2|Q2 2017|

-## Future Work
-
-Visual Basic support.
-
 <em><sup>*</sup> References to yearly quarters (Q1, Q2, Q3, Q4) are calendar-based</em>

https://github.com/aspnet/Home/wiki/Roadmap/_compare/2138fe4ff8a437e8edefc333189aaa8d9b5afb6a...b49bda1f8f40975b39d14d199a9ddac0a2beb45e

12. Dezember 2017:

Es ist nicht geplant, eine VB-Vorlage für ASP.NET Core hinzuzufügen
https://github.com/aspnet/Home/issues/2305#issuecomment -351501913

Die VB-Unterstützung scheint weggegangen zu sein

"Es funktioniert noch nicht, aber wir planen, VB zuzulassen"

zu

"Es wird volle Unterstützung für VB geben!"

zu

"VB wird nicht unterstützt, aber shhh, sag es niemandem".

Meine erste Frage lautet also:

Was ist passiert und warum gab es keine Ankündigung oder Diskussion mit der Community darüber?

Es scheint seltsam, von der Ankündigung der Unterstützung für VB.NET in ASP.NET Core in einem offiziellen Blog-Beitrag zur völligen Nichtunterstützung ohne Feedback überzugehen. Gab es eine Ankündigung dazu? Wenn ja, war es sicherlich nicht weit verbreitet.

Meine nächste und wichtigere Frage ist:

Was kann die VB-Community tun, um ASP.NET Core Unterstützung für VB.NET hinzuzufügen?

Gibt es Projektvorlagen, die wir schreiben können?
Gibt es Codegeneratoren, die wir implementieren können?
Was können wir tun, um ASP.NET Core für VB-Entwickler genauso großartig zu machen wie für C # -Entwickler?


Ich habe eine einfache ASP.NET Core-App (Link gelöscht, da das Repo veraltet ist) in VB zusammengestellt, indem ich eine .NET Core-Konsolenanwendung erstellt, die Projektdatei bearbeitet und die aus ASP.NET Core C # generierten Klassen kopiert habe Vorlage. Es funktioniert gut und obwohl es nur sehr einfach ist, kann ich keinen Grund erkennen, warum VB.NET nicht unterstützt werden kann.

Hilfreichster Kommentar

+1
Visual Basic ist immer die wichtigste Sprache in der .NET-Welt. VB noch viele Fans und nutzen heute! Obwohl viele Leute in C # -Projekten an ihrem Arbeitsplatz arbeiten, glaube ich, dass viele Leute wie ich VB gerne für eigene Projekte verwenden.

Alle 91 Kommentare

cc @DamianEdwards

Ich habe vor langer Zeit ein Problem angemeldet, um VB zusammen mit .cshtml in Razor Repo zu verwenden , da ich seitdem keine Aktion mehr gesehen habe 😟.
Vor wenigen Wochen sah ich ein großes Beispiel von @DamianEdwards , die eine hyprid VB ASP.NET Core - Anwendung zeigen hier

Neben der hervorragenden Zusammenfassung von @reduckted enthält die Microsoft-Dokumentation zur Razor-Syntax für ASP.NET Core (Stand 18.10.2017) noch zahlreiche Verweise auf Visual Basic und die Verwendung von .vbhtml-Dateien:

Diese Einschränkung gilt nicht für .vbhtml-Razor-Dateien, da die Visual Basic-Syntax anstelle von Klammern Klammern um generische Typparameter setzt.

ScottAddie @ MSFT hatte jedoch am 21.07.2017 einen Kommentar gepostet:

ASP.NET Core unterstützt VB.NET noch nicht. Sie müssen sich vorerst an ASP.NET halten.

Werden Visual Basic / vb.net / .vbhtml-Dateien in .Net Core aufgenommen? Und wenn ja wann?

Wie können wir helfen, diese Unterstützung zu erreichen? Ich würde gerne die Unterstützung von VB.Net und F # sehen!

Ich habe eine PR gesendet, um die VBHTML-Referenzen aus den ASP.NET Core-Dokumenten zu entfernen: https://github.com/aspnet/Docs/pull/5201

Derzeit ist keine Einführung der VBHTML-Unterstützung in ASP.NET Core geplant.

Wir haben F # -Vorlagen für ASP.NET Core, die als Teil des .NET Core SDK installiert sind.

@Eilon Derzeit ist nicht geplant, die VBHTML-Unterstützung für ASP.NET Core einzuführen.

Persönlich mache ich mir keine Sorgen um die VBHTML-Unterstützung, da ich keine Razor-Seiten verwende und dies auch nicht beabsichtige. Wie von @AnthonyDGreen (https://github.com/dotnet/vblang/issues/238#issuecomment-354927626) erwähnt, ist es nicht sinnvoll, VB-Unterstützung hinzuzufügen, da es in MVC 5 und selten verwendet wurde. Ich stelle mir vor, würde sehr viel Arbeit für nicht viel Gewinn in Anspruch nehmen.

@Eilon Wir haben F #

OK, aber ich bin mir nicht sicher, worum es hier geht. Wenn überhaupt, verstärkt dies nicht nur die Tatsache, dass es auch VB-Vorlagen geben sollte?

Wurden die F # -Vorlagen nicht von der F # -Community erstellt? Wenn das Team von Microsoft keine VB-Vorlagen erstellt, warum können die VB-Vorlagen dann nicht von der VB-Community erstellt werden?

@reduckted Die Frage

Eine Einschränkung bei den F # -Vorlagen besteht darin, dass sie sich mehr auf die API-Seite konzentrieren. das heißt, kein Rasiermesser oder CSHTML (weil es kein FSHTML gibt). Bei VB-Benutzern würde ich davon ausgehen, dass die meisten Benutzer, die VB verwenden, eine VBHTML-Erfahrung für MVC erwarten würden, und die Produktionskosten sind enorm - Monate und Monate Arbeit. Daher ist mir nicht klar, dass das Hinzufügen begrenzter VB-Vorlagen besonders wertvoll wäre.

@Eilon Mit VB-Benutzern würde ich vermuten, dass die meisten Benutzer, die VB verwenden, eine VBHTML-Erfahrung für MVC erwarten würden ...

Vielleicht möchten Sie mit @AnthonyDGreen sprechen, da dies genau das Gegenteil von dem ist, was er in dem Kommentar gesagt hat, auf den ich zuvor verlinkt habe (https://github.com/dotnet/vblang/issues/238#issuecomment-354927626). Ich werde es diesmal zitieren (Schwerpunkt liegt bei mir):

Die .vbhtml-Rasiermaschine von MVC 5 wurde nicht in erster Linie auf Core portiert, da sie nach 5 Versionen von

@reduckted - interessant, das sind Neuigkeiten für mich. Ich denke an die Tage von Web Forms zurück, die ursprünglich mit Konzepten entwickelt wurden, die VB-Entwicklern vertraut waren (insbesondere VB6), und Web Forms war sehr HTML-zentriert (sorta), sodass ich dachte, dass dies VBHTML sein würde am interessantesten für diese Gruppe von Menschen. Andererseits sind das ~ 15 Jahre alte Anekdaten 😄

Übrigens, wir haben nicht gesagt, dass wir es niemals tun werden - nur, dass es derzeit keine Pläne gibt.

Ich bin ein VB-Fan 😄, von dem ich erwarte, dass .vbhtml sofort einsatzbereit ist. Der zuvor erwähnte Hybrid-Ansatz reicht nicht für alle VB-Leute aus, aber in einigen Fällen ist es in Ordnung. Meine Frage ist, ob einige das Razor erneut implementieren, um VB anstelle von C # zu emittieren. Wird das funktionieren, oder ist die MVC eng mit dem cshtml C # verbunden?

@hishamco Leider wurde Razor so implementiert, dass VB und C # getrennte Pfade waren. Ich habe mit einigen Beteiligten gesprochen und es ist ein ziemlich großes Projekt.

@KathleenDollard Es gibt andere .NET Core-Projekte, die benutzerdefinierte ViewEngines für .pug- und .md- Dateitypen unterstützen.

Sicherlich können wir es für .vbhtml-Razorpages-Dateien mit einem .vbproj mit <Project Sdk="Microsoft.NET.Sdk.Web"> zum Laufen bringen.

@ tb-mtg Es ist alles Open Source, wenn Sie es erkunden und sehen möchten, was diese Projekte getan haben. Die Leute, die es geschrieben haben, sagten mir, es sei eine große Anstrengung. Die Größe des Aufwands und die äußerst geringe Akzeptanz von vbhtml in früheren Versionen von MVC machen es zu einem harten Verkauf.

@KathleenDollard Ich werde meine Frage noch einmal wiederholen: Wenn ich den Razor erneut implementiere, um VB anstelle von C # zu emittieren, wird das funktionieren, oder ist die MVC eng mit dem cshtml C # verbunden?

@hishamco das wäre eine gute Frage für @rynowak . Ryan?

Die Laufzeitkompilierungs-Engine von MVC verwendet die Roslyn-Infrastruktur zum Kompilieren von C # und erwartet / erfordert, dass die Einstellungen des C # -Projektsystems über .deps.json . MVC ist nicht eng mit dem generierten Code gekoppelt, sondern bietet eine Infrastruktur zum Kompilieren von C # -Ansichten zur Laufzeit mithilfe von Einstellungen, die von einem C # -Projekt generiert wurden.

Jeder, der VB zur Laufzeit kompilieren möchte, muss eine View Engine implementieren, die dies tut.

Vielen Dank an @rynowak für

Verwendet die Roslyn-Infrastruktur zum Kompilieren von C # und erwartet / erfordert, dass die Einstellungen des C # -Projektsystems über .deps.json übergeben werden

Welche Einstellungen muss ich an .deps.json , um dies zu erreichen, wenn ich eine VB-Ansichts-Engine implementiere - oder C # 1 mit Änderungen klone?

+1
Visual Basic ist immer die wichtigste Sprache in der .NET-Welt. VB noch viele Fans und nutzen heute! Obwohl viele Leute in C # -Projekten an ihrem Arbeitsplatz arbeiten, glaube ich, dass viele Leute wie ich VB gerne für eigene Projekte verwenden.

@AnthonyDGreen @KathleenDollard

Die .vbhtml-Rasiermaschine von MVC 5 wurde nicht in erster Linie auf Core portiert, da sie nach 5 Versionen von weniger als 1% aller VB-Webprojekte verwendet wurde.

Was verwenden die anderen 99% dann?

Angular oder andere ähnliche Front-End-Bibliotheken würde ich annehmen. Das benutze ich.

Genau das habe ich auch mit unseren neuen Webprojekten vor, die von ASP.Net MVC Razor nach Angular wechseln. Ich muss dieses Jahr 4 neue Webprojekte durchführen. Wenn also jemand zählt ... LOL

VB ist seit vielen Jahren eine beliebte Sprache! Als Unternehmen haben wir sicherlich viele Codefragmente, die wir nicht in C # neu schreiben möchten. Ich bin mir sicher, dass es viele Webformular-Apps der alten Schule gibt, die neu geschrieben werden müssen, insbesondere wenn die neuen EU-Regeln ins Spiel kommen. das würde bedeuten, dass VB sehr gefragt wäre! Ich finde es erstaunlich, dass Microsoft in einer Minute so heiß und kalt auf VB bläst, dass es auf Augenhöhe entwickelt wird, als nächstes ist es der arme Verwandte! Ja, es kommen neue Sprachen und Frameworks heraus, aber lassen Sie nicht nur die beliebten alten hinter sich!

Ich bin froh, dass es hier verfolgt wird, vielleicht sehe ich dann etwas Action.

Alle Anzeichen (Wieselwörter) von MS sind, dass sie planen, VB.NET herunterzudrehen und / oder nichts zu tun und darauf zu warten, dass andere die fehlenden Bits schreiben. Ich bin über ihre Wieselworte hinweg und beende jetzt die VB.NET-Entwicklung.

Ich hoffe nur, wenn Microsoft GitHub erwirbt, wird es nicht so behandelt wie VB.Net (mit leeren Versprechungen der vollen Unterstützung für tot gehalten).

@ NatShaw Ich bin der PM für Visual Basic.Net.

Ich bin mir nicht sicher, was Sie mit der Planung von VB.NET meinen, aber es gibt keine Pläne, dies zu tun. Die Visual Basic-Sprachstrategie bleibt unverändert.

Rasiermesser für VB ist problematisch. Für den Hauptentwicklungsworkflow ist WebAPI ein guter Workflow für VB, wie hier gezeigt. (abgesehen von Vorlagen)

@ tb-mtg VB.Net ist nicht tot. Es gibt ständige Verbesserungen - kleine Verbesserungen in der Sprache und funktionieren wie IOperation, um die Unterstützung von Visual Basic in Roslyn-Analysegeräten für die Unterstützung von VB im gesamten Ökosystem zu vereinfachen. Es ist richtig, dass VB sich auf Szenarien konzentriert, in denen es bereits gut ist, und geeignete neue Szenarien anstelle aller neuen Szenarien. Zum Beispiel hat Scott Hunter bereits angekündigt, dass VB.Net mit .NET Core 3 zusammenarbeiten wird.

@KathleenDollard Teile fehlen bereits - .Net Core 2.x - wo sind alle VB-Vorlagen? Nullable Referenztypen? Nur C #. Zukunftspläne sind großartig für die Zukunft, aber VB fehlen bereits jetzt Dinge.

Dies ist ein Thema für Microsoft, um eine großartige Technologie zu erstellen und sie aufzugeben. Sie geben VB auf, die Sprache, die das Unternehmen aufgebaut hat, und werden zu einem C # -Unternehmen. Wenn eine neue Technologie eingeführt wird, erwarte ich, dass alle Sprachen unterstützt werden. Leider leistet dieses neue Microsoft nicht so gute Arbeit wie vor 15 Jahren, wenn es darum geht, alle Sprachen als Partner gleich zu halten. Es ist schade, ich habe Zehntausende von VB-Leitungen und hatte gehofft, mit asp.net core plattformübergreifend damit umzugehen. Jetzt mit verlassenen Webformularen im asp.net-Kern und ohne VB stecke ich fest. Ich kann die Sprache ändern oder ??. Wenn ich mich bemühe, die Sprache zu ändern, wird es sich um etwas anderes als Microsoft handeln, um eine Sprache, die für die Unterstützung aller Plattformen entwickelt wurde. Ich bin es leid, als sehr guter VB-Entwickler abgezinst und entlassen zu werden. Es kann an der Zeit sein, mein Unternehmen und meinen Code zu übernehmen und Microsoft zu verlassen, nachdem ich 30 Jahre lang Microsoft-Plattformen und -Sprachen verwendet und verkauft habe. Die herablassende Haltung des .net-Managements gegenüber VB wird zu groß. Es gibt immer noch so viele von uns VBern hier draußen, die heutzutage von Microsoft so sehr enttäuscht sind. Es wäre besser, wenn VB Open Source wäre, damit die Community es auf allen Plattformen weiterentwickeln kann.

@SrqComputerguy Sie verlassen VB

Falsch. @KathleenDollard sagte buchstäblich vor einem Tag in diesem Thread, dass "die Sprachstrategie von The Visual Basic unverändert bleibt". (Kommentar)

@SrqComputerguy Es ist schade, ich habe Zehntausende von VB-Zeilen und hatte gehofft, mit asp.net core plattformübergreifend damit umzugehen. Jetzt mit verlassenen Webformularen im asp.net-Kern und ohne VB stecke ich fest.

Webformulare sind alte Technologien (nach Softwarestandards praktisch uralt), daher ist es nicht verwunderlich, dass sie in .NET Core (mit VB.NET _oder_ C #) nicht unterstützt werden. Lesen Sie diesen Blog-Beitrag von Anfang dieser Woche über die Verwendung von VB.NET mit ASP.NET Core.

@SrqComputerguy Wenn ich mich um eine Sprache, die für die Unterstützung aller Plattformen entwickelt wurde .

VB.NET ist plattformübergreifend, nur nicht mit Webformularen.

@SrqComputerguy Es wäre besser, wenn VB Open Source wäre, damit die Community es auf allen Plattformen weiterentwickeln kann.

😕 Es ist. https://github.com/dotnet/vblang

@reduckted C # hat die Vorlage 'ASP.NET Core Web Application' - VB nicht. Ist das korrekt? Nicht nullfähige Referenztypen - nicht für VB.

Die Strategie ist bereits, dass VB kein Bürger erster Klasse mehr ist - keine Veränderung! Der Artikel @KathleenDollard Links ist ziemlich beleidigend und sagt uns, dass diese glänzenden neuen Funktionen nicht gut für uns sind, weil sie unseren VB-Code zu unordentlich machen würden. Was für eine Menge Wieselwort-Unsinn. Beispiele:

  • VB 15 enthält eine Teilmenge der neuen Funktionen von C # 7.0
  • Wir werden die Innovation auf die Kernszenarien und -bereiche konzentrieren, in denen VB beliebt ist.
  • VB 15 erhält jedoch keine Funktionen wie is-Ausdrücke, Out-Variablen und lokale Funktionen, die der Lesbarkeit von VB wahrscheinlich mehr schaden als nützen und die Anzahl der Konzepte erheblich erhöhen würden.

Es ist aus. Sie machen es dumm.

Alte Technologie bedeutet nicht, dass sie nicht nützlich ist. WebFroms eignen sich hervorragend für Branchenanwendungen, bei denen wir kein SEO benötigen, aber plattformübergreifend. WebForm lässt das Erscheinungsbild der Winform-Version ähnlich aussehen und sich ähnlich verhalten. Das hat auch viele Geschäftsszenarien, die gut funktionieren. Nicht alles muss eine C # MVC angle.js-Anwendung sein und sollte es auch nicht sein. Dies ist jedoch das einzige Instrument, das MS derzeit verbessert.

Warum bekommen Rasiermesserseiten (die aktualisierte Asp-Seiten für .net sind) C # -Liebe im Kern und nicht VB?

MS hat sogar das Mono-Projekt gekauft, so dass jetzt V # zuerst unterstützt wird und nur wenn sie das OK bekommen, bekommt VB dort etwas Liebe.

MS gibt Python mehr Liebe als VB. Python ist eher eine plattformübergreifende Sprache als C # oder VB, in die dieser VBer wahrscheinlich in Zukunft gehen wird.

Es ist traurig, dass sich die MS auf eine Sprache verlässt, die immer noch nicht weiß, wie man das Ende einer Zeile ohne a sagt.

Hat MS überhaupt noch ein VB-Team? Sie haben keine Webpräsenz. Für Fortschritte müssen wir woanders suchen.

Es war gut, solange es dauerte. VB RIP.

Hallo,

Kann jemand bei Microsoft die Bemühungen zum Kompilieren von vb in Rasiermesseransichten (.net-Kern) überdenken? Ich denke, dass Project Blazor eine neue Möglichkeit ermöglicht, viel vorhandenen Code in vb zu teilen, um neue Webanwendungen zu erstellen.

VB .NET war wieder einmal beliebt, weil Sie die gleichen Dinge tun können, die Sie mit C # tun können. Ich denke, wenn vb zurückgelassen wird, werden Sie seine Popularität effektiv beenden.

Wir portieren eine sehr große VB-Winforms-App auf eine Web-App. Wir sind zu 50% in der Art und Weise, wie wir unser Framework in JS umschreiben, aber mit Blazor wäre es schneller, sauberer und wir können viel vorhandenen Code gemeinsam nutzen. Es wäre fantastisch, wenn wir die Ansichten auch mit VB anstelle von C # codieren könnten. Nicht alles ist MVC und Rasiermesser.

Vielleicht würde eine Fokussierung auf Blazor den Aufwand verringern?

Nachdem ich seit einigen Jahren mit modernem und altem VB-Code arbeiten muss, kann ich es kaum erwarten, dass die Ausführlichkeit nachlässt. Ich finde es klug für Microsoft, sich auf einen Sprachstil zu konzentrieren (C).

@ mcurros

Die Unterstützung von Rasiermessern wurde in Betracht gezogen und überdacht.

Während es sehr aufregend ist, ist Blazor im Moment eine experimentelle Anstrengung ohne Produktpläne. Ich bin damit einverstanden, dass es sich lohnt, die Geschichte von VB zu überdenken, wenn Blazor zu einem Produkt wird, und ich gehe davon aus, dass dies passieren wird. Ob dies zu einer Änderung der Strategie in Bezug auf die VB-Unterstützung führt, weiß ich nicht.

Drei Fragen an Sie:

  • Führen die Ankündigungen zu WinForms, die auf .NET Core 3 umgestellt werden, dazu, dass Sie Ihre Entscheidung, den WinForms-Code zu portieren, überdenken?

  • Sie schreiben für das Web neu. Verwenden Sie ein VB WebAPI-Backend wie folgt: Kombinieren Sie Angular, Visual Basic und .NET Core für die Entwicklung moderner Webanwendungen ?

  • Sie verwenden JS, was bedeutet, dass Teile Ihres Teams effektiv eine geschweifte Klammer verwenden. Was sind die Gründe, warum Sie nicht in C # konvertieren?

In C # wird nichts exklusiv ausgeführt, was in VB nicht möglich ist. MS stellt die IL-Konverter her. Es ist eine Frage des Willens.

Hier ist eine Frage an Sie. Wenn Sie über eine große Anzahl von Geschäftsanwendungen mit einer Webversion .net 4.5.2 verfügen, die wie die Desktop-Version aussehen und sich verhalten, wie würde MS vorschlagen, dass sie plattformübergreifend sind.

Ist es also offiziell, dass MS die Idee, VB-Entwickler in die Asp.net Core Wave aufzunehmen, dumm macht und nicht daran interessiert ist, Ressourcen dafür auszugeben?

@ sreenathGanga1988 Wir haben angekündigt, dass derzeit keine Pläne zur Unterstützung von Razor in .NET Core unter Visual Basic.NET bestehen. WebAPI, das sich in ASP.NET Core als Teil von MVC befindet, wird unterstützt. Es wird nur Razor nicht unterstützt. Die Razor-Engine ist komplex und wurde für eine einzelne Sprache entwickelt.

@KathleenDollard Sie könnten VBHTML.Contrib erstellen, damit die VB-Fans mit der aktuellen Razor Engine zur Unterstützung von VB einen Beitrag zum Bau einer Rasierermaschine leisten können

Die Leute, die die neue Version von Razor geschrieben haben, glauben, dass es sehr kompliziert ist, Visual Basic einzuschließen, da es nicht für mehrere Sprachen entwickelt wurde. Ich habe mir den Code nicht angesehen, werde aber der Meinung dieser Leute vertrauen. Auf dieser Grundlage werde ich keine Gabel erstellen.

ASP.NET ist jedoch aus einem bestimmten Grund Open Source. Wenn eine Gruppe von VB-Entwicklern irgendwo eine Gabel erstellen und ihnen das Gegenteil beweisen würde, wäre das ziemlich cool. Ich bin froh, dass dieses oder ein anderes Problem in diesem Repo auf das Projekt verweist, und wenn ich twittere, ist es Existenz und Fortschritt, falls gewünscht.

Ich habe mit der .NET Foundation den Grundstein für einen Visual Basic-Bereich gelegt (möglicherweise beitragen, möglicherweise etwas anderes), damit es eine Möglichkeit gibt, Eigentümer und solche Verwaltungsaufgaben für Projekte in einer Visual Basic-Community zu verwalten. Sie benötigen jedoch Beweise dafür, dass es eine Community gibt, die Repos hat, die die Dinge bereitstellen, die die Menschen wollen (die Stiftung arbeitet daran, tote Projekte zu vermeiden). Ich hatte gehofft, dass die Entity Framework-Vorlagen dieser Keim sein würden, aber das ist nicht gut gelaufen. Dies ist nicht spezifisch für VB, und deshalb sehen Sie Dinge in persönlichen Repositorys: VB EF-Vorlagen in @bricelam , dem globalen Toolkatalog unter @natemcmaster, während wir an einem neuen arbeiten .

Ein Projekt und ein Prototyp reichen zwar nicht aus, um das Interesse der Foundation zu wecken, aber wenn ein erfolgreiches Projekt entsteht, kann es in die .NET Foundation verschoben werden.

Vielen Dank für Ihre Klarstellung, aber ich bin mir immer noch nicht sicher, warum der Razor nur für C # gebaut wurde, während der Roslyn beide unterstützen kann !!

Ich habe mir den Razor-Code nicht angesehen, um zu wissen, ob er direkt einen Syntaxbaum erstellt, aber vorausgesetzt, er tut ...

Roslyn arbeitet mit spezifischen, expliziten, rohen Syntaxbäumen, die sich für C # und VB unterscheiden. Zum Beispiel existieren in C # Sei-Colon- und geschweifte Klammern, nicht in VB. End Sub und Handles sind in VB vorhanden und nicht im C # -Syntaxbaum.

@ KathleenDollard

Ja, ich verstehe, dass Project Blazor experimentell ist, aber es wird zu Web Assembly kompiliert und es ist eine einfachere Möglichkeit, plattformübergreifende Apps zu erstellen (indem ich vorhandenen Code auf Server und Clients teile, mag ich zufällig Windows Server und ASP .NET, daher bevorzuge ich die Ausführung eines Servers das das vollständige .NET Framework unterstützt, um unsere vorhandene Codebasis wiederzuverwenden).

Wie für Ihre Fragen:

  1. Mit .NET Core 3 werden WinForms-Apps nicht plattformübergreifend, sodass nicht zu viel hinzugefügt wird.

  2. Ich schreibe für das Web neu, weil dadurch unsere Apps plattformübergreifend werden. Wir verwenden einen ASP .NET-Controller, um den vorhandenen Code freizugeben, sodass wir auf dem Server keine Probleme haben. Wie gesagt, wir verwenden unser eigenes Framework, das in JS die gleiche Funktionalität bietet, aber wir müssen den Client-Code erneut schreiben und testen, und die Benutzeroberfläche nimmt immer noch mindestens 80% der Entwicklung in Anspruch Zeit.

  3. Wir haben begonnen, unser Framework vor dem Projekt Blazor auf JS zu portieren. Durch das Umschreiben in C # wird unsere Client-App nicht plattformübergreifend. Sie muss ohnehin auf den Browser abzielen oder auf Xamarin oder etwas anderes konvertieren, sodass der Aufwand gleich ist.

Ich programmiere in C, C ++, C #, VB, JS und weiß, wie man mehrere Stapel verwendet, aber wir haben mehrere Mitglieder in unserem Team, die Schwierigkeiten haben, in eine andere Sprache zu konvertieren. Auf jeden Fall geht es darum, unsere getestete Codebasis wiederzuverwenden und nicht neu zu schreiben. Wenn blazor VB in Ansichten kompilieren könnte, würde dies uns viel Zeit sparen, das ist alles.

Außerdem ist es für Benutzer seltsam zu verstehen, dass sie zuvor in VB .NET Rasiermesseransichten mit dem vollständigen Framework kompilieren konnten. Es sieht nur so aus, als hättest du VB zurückgelassen. Und alles begann mit .NET Core, war das nicht zuerst ein experimentelles Projekt?

Um ein wenig mehr Kontext hinzuzufügen, portieren wir drei geschäftskritische ERPs für verschiedene Geschäftsbereiche.

Grüße.

@ mcurros

Vielen Dank, dass Sie mehr über Ihr Szenario erfahren haben.

Die Razor-Engine wurde für ASP.NET Core neu geschrieben, und hier wurden keine Anstrengungen für mehrere Sprachen unternommen. Die geringe Nutzung der VB-Version des Razor-Motors war einer der treibenden Faktoren. Und ja, die Existenz von Blazor macht diese Entscheidung ziemlich schmerzhaft.

@ KathleenDollard

Vielen Dank an Kathleen für das Teilen der Erkenntnisse. Ich hoffe, dass die Sprachen in .NET nicht miteinander konkurrieren. Eines der attraktivsten Dinge bei .NET waren die Sprachen und die Interoperabilität zwischen ihnen. Jetzt scheint dies nicht mehr der Fall zu sein. Jetzt reicht es nicht mehr aus, .NET als Entwicklungsstapel zu wählen. Ich denke, wir müssen auch bei den von uns ausgewählten Sprachen vorsichtig sein. Schade, es fühlt sich an wie ein Rückschritt.

Bei der letzten Frage denke ich jedoch, dass Razor lange vor .NET Core mit ASP .NET-Webseiten und Webmatrix geschrieben wurde. Sie meinen also, dass die Razor Engine in .NET Core für C # neu geschrieben wurde. Habe ich recht?

Viel Glück.

Hallo,
Ich habe diesen Beitrag gefunden: Warum nicht Razor? .
Was halten Sie davon, die Verwendung der Razor-Syntax in ASP .NET Core- und Blazor-Projekten zugunsten einer reinen C # - und VB.NET-Entwicklung vollständig zu vermeiden? Sind wir sicher, dass wir die Razor-Syntax benötigen, um Webanwendungen zu entwickeln, die HTML5- und CSS-Dateien ausgeben müssen?

Grüße,
Filippo.

@filippobottega

Na ja, das war vor Blazor. Das Problem ist, dass Sie beim Client eine Template-Engine benötigen, und im Fall von Blazor ist das genau das. In Blazor wird Rasiermesser im Browser nicht auf dem Server ausgeführt (es kann jedoch bei Bedarf auf dem Server ausgeführt werden). Daher versuchen die Leute seit Ewigkeiten, Code zwischen Client und Server im Browser zu teilen. Das Teilen von Validierungscode ist ein einfacher Fall. In unserem Fall teilen wir jedoch Metadaten, die Modelle beschreiben, damit sich Komponenten mithilfe dieser Metadaten selbst konfigurieren können.

Node.JS ist populär geworden, weil Sie Code zwischen dem Browser und dem Server teilen können. Warum also nicht .NET-Code zwischen Browser und Server teilen? Razor wird mit Ihrem freigegebenen Code zu einer Webassembly kompiliert, und das war's. Ja, Sie könnten Ihre App kompilieren, ausführen und verteilen, aber der Browser verfügt über bessere plattformübergreifende Funktionen und Sie werden mehr Plattformen mit demselben Code ansprechen. Ich habe auch gesehen, dass WPF für die Webassembly kompiliert wurde, wenn Sie diesen Weg gehen möchten.

Wir bevorzugen es, die vorhandenen JS-Komponenten zu nutzen und sie mit unserer .NET-Basis zu mischen, aber wir bevorzugen .NET und Rasiermesser als Ersatz für andere JS-Frameworks wie Angular. Es ist 10x produktiver, wenn Sie wissen, was Sie tun, zumindest für uns.

Grüße.

@mcurros Ja, in ASP.NET Core wurde viel überarbeitet / neu geschrieben (siehe das Pipeline-Modell als Beispiel), einschließlich Razor.

@mcurros Ok, es stimmt, dass wir eine Template-Engine benötigen, aber das Problem ist, dass die Razor-Syntax von einem soliden WYSIWYG-Designer nicht unterstützt wird.
Zum Beispiel verwendet Blazor Bootstrap als CSS-Bibliothek. Es gibt einen interessanten Designer für Boostrap namens Bootstrap Studio , der jedoch die Razor-Syntax nicht unterstützt.
Für WinForms-Desktopanwendungen gibt es einen guten WYSIWYG-Designer, mit dem Schnittstellen schnell entworfen werden können, für XAML ebenfalls. Gibt es einen Designer, mit dem wir schnell HTML5-CSS mit Razor-Syntaxansichten (.cshtml / .vbhtml) erstellen können?

@filippobottega
Da die Geräte, auf denen Browser ausgeführt werden können, in der 10K-Reihenfolge vorliegen, lohnt es sich wahrscheinlich nicht, ein genaues WYSIWYG-Tool zu erstellen. Der Trend heutzutage ist, es im Browser auszuführen und den Browser das Rendering machen zu lassen. Blazor-Beispiele verwenden Bootstrap, aber Razor ist eine Vorlagen-Engine. Sie können das ausgeben, was Sie möchten, und das CSS / HTML-Framework, das Sie mögen. Die interessanten Teile sind die Kompilierung zur Webassembly und der modifizierte Rasierer für das SPA-Routing sowie alles, was Sie zum Erstellen eines SPA-Clients benötigen. Außerdem können Sie dies bei Bedarf auf dem Server rendern (für öffentliche Websites und die Indizierung von Suchmaschinen). Ich finde es ziemlich cool.

Blazor bietet also eine Webassembly-Kompilierung in Echtzeit und läuft im Browser mit F5. Es ist schnell, probieren Sie es aus.

@mcurros Vielen Dank für Ihre Antwort. Ich stimme Ihnen zu, auch wenn ich denke, dass die Möglichkeit, die Vorlagenstruktur per Drag & Drop mithilfe der Browser-Vorschau zu ändern, sehr nützlich sein kann.
Wenn Sie an eine Entwicklervorschau denken, in der Komponenten mit Drag-End-Drop verschoben, in der Größe geändert und in andere Komponenten eingebettet werden können, aktualisieren Sie schließlich die CSHTML-Vorlage.
Mit Concrete5 können Sie beispielsweise das Layout im laufenden Betrieb ändern.
Lassen Sie mich wissen, wenn Sie glauben, dass ein "Design-Modus" in Zukunft möglich sein wird.

Freundliche Grüße,
Filippo.

Ich denke nicht, dass VB eine Zukunft haben wird:
Die neue Strategie von Microsoft, die gemeinsame Entwicklung von C # und Visual Basic zu beenden, wird die Entwickler noch weniger respektieren
C # ist die Zukunft für .NET-Entwickler. Daher ist es an der Zeit, die Verwendung von Visual Basic auf lokale Legacy-Systeme zu beschränken

https://www.infoworld.com/article/3167210/application-development/visual-basic-is-the-odd-man-out-in-the-new-net.html

https://www.infoworld.com/article/3254564/application-development/doing-nicely-now-visual-basics-popularity-could-take-a-hit.html
https://blogs.msdn.microsoft.com/dotnet/2017/02/01/the-net-language-strategy/

250 Millionen Codezeilen, von denen die Hälfte noch verwendet wird, müssen jetzt neu geschrieben werden. VB.Net wurde getötet, weil die neueste Generation von Programmierern die Sprache selbst (und all die Idioten, die sie immer wieder mit Visual Basic - Äpfel zu Orangen verglichen) völlig ignorierte, mit absurd falschen Vergleichen in der Leistung und anderen Vektoren. RIP VB.Net und die Millionen von Entwicklern, die dadurch ihre Jobs verlieren.

Wie @DamianEdwards habe ich das Beispiel "ASP.Net Core Web Application" von C # nach VB portiert. Es verwendet (erfolgreich) Razor .cshtml-Dateien in einem VB-Projekt. Ich habe sichergestellt, dass es mit ASP.Net Core 2.1 kompatibel ist. Sie finden es hier:

https://github.com/mevdschee/aspnetcorevb

@marcusoftnet Damian Beispiel ist cool, um .cshtml für Ansichten und den Rest der App in VB.NET , aber es wird sehr cool sein, die .vbhtml für die Ansichten zu verwenden 😃

Ich weiß nicht, was Microsoft vorhat, da es über eine Programmiersprache wie VB verfügt und sowohl clientseitige als auch serverseitige Bereiche im Web nutzen kann

client: vbscript
Server: vb

Das Polieren von VB ist etwas, das Ihnen zugute kommen würde. Es ist verständlich, verständlich und anpassungsfähig. Es tut wirklich weh und ist nostalgisch zu wissen, dass vb.net nicht im Web ist, aber es ist Ihre Schuld und Sie konzentrieren sich nur auf eines

Bing Übersetzung:
Ich weiß nicht, dass Microsoft im Kopf ist und eine Programmiersprache wie VB in den Händen hat, die sich im Web die beiden Bereiche der Client- und Serverseite aneignen kann

Client: VBScript
Server: VB

Das Polieren von VB ist etwas, das der Begünstigte verständlich, verständlich und anpassungsfähig macht, das wirklich viel Schmerz und Nostalgie verursacht, wenn er weiß, dass vb.net nicht im Web ist, aber es ist Ihre Schuld und Sie konzentrieren sich nur auf eines

Habe gerade Folgendes bemerkt:
https://blogs.msdn.microsoft.com/vbteam/2018/11/12/visual-basic-in-net-core-3-0/

Wird dies etwas ändern?

Dadurch wird VB.NET weiterhin unterstützt, um die Funktionen hinzuzufügen, die bereits in C # hinzugefügt wurden, aber wiederum kein vbhtml 😕

@hishamco Nein. Während ich Ihr :( teile, unterstützt die Razor-Engine nur C #.

Die Razor Engine unterstützt nur C #

Das habe ich gemeint 😄

Tibor Index Zeigt, dass VB.NET wächst, trotzdem brauchen wir VB-Rasierer

Wie @DamianEdwards habe ich das Beispiel "ASP.Net Core Web Application" von C # nach VB portiert. Es verwendet (erfolgreich) Razor .cshtml-Dateien in einem VB-Projekt. Ich habe sichergestellt, dass es mit ASP.Net Core 2.1 kompatibel ist. Sie finden es hier:

https://github.com/mevdschee/aspnetcorevb

@mevdschee Ich bin gespannt auf den Prozess, den Sie durchlaufen haben, um es in VB.NET zu portieren, da die Projektvorlage nicht über Visual Studio verfügbar ist / keine Unterstützung in VSCode. Wie haben Sie das gemacht?

@Webbarrr Ich habe den C # -Code von Hand in VB konvertiert und die Visual Studio C #

@reduckted @hishamco @muratg @ tb-MTG @brunojuliao @Eilon @rynowak @CheungTatMing @VBDotNetCoder @ simonmilne80 @NatShaw @SrqComputerguy @ sreenathGanga1988 @mcurros @filippobottega @mrjohnr @beefydog @mevdschee @ Baner041986 @hannespreishuber @Webbarrr

Ich bin damit einverstanden, dass vbhtml eine verlorene Sache ist, da VB.NET-Code nicht gut in die HTML-, CSS- und JavaScript-Syntax passt! Stattdessen frage ich nach vbxaml!
Ich habe diesen Vorschlag vor Monaten in VB.NET repo gepostet:
https://github.com/dotnet/vblang/issues/329
Dies sind Zitate:

Lassen Sie VB.NET die neue WebAssembly-Welle fahren:
Nach WebAssembly und Blazor bietet sich die Gelegenheit: Es ist jetzt logisch, XAML anstelle von HTML5 zu schreiben (Unterschiede sind minimal) und VB.NET anstelle von Java-Skript zu schreiben (genauso wie C # Java jetzt in Blazor ersetzt).
Es gibt bereits ein Projekt namens Ooui, das dies in C # versucht.
Ich denke, VB.NET sollte dasselbe tun und ein Projekt zum Entwerfen von ASP.NET-Seiten mit XAML- und VB.NET-Code haben, wobei die in SilverLight, Blazor und Ooui geleistete Arbeit genutzt wird. Wenn dies jetzt beginnt, kann es stetig wachsen und stattdessen darauf warten, dass Blazor und Ooui sich stabilisieren, und dann sagen die MS:
Entschuldigung, es wird teuer für VB.NET sein, aufzuholen!

Mit VBlazor (.vbxaml) können Desktop-Entwickler, die Erfahrung mit VB.NET und WPF / UWP haben, reibungslos auf ASP.NET umsteigen.

IMHO mit XAML oder Template-Sprache wie Fluid wird alles glücklich machen, weil der Razor nur für C # geschrieben ist

VBLazor ähnelt der Entwurfsansicht von uwp / wpf, verfügt jedoch über zwei CodeBehind-Dateien, eine für Server-vb.net-Codes und eine für Client-Codes (Skriptcodes), mit der Möglichkeit, MVVM-Muster zum Organisieren großer Projekte zu verwenden. XAML wird mit HTML5 kompatibel sein, Xaml-Stile werden in CSS kompiliert und VB.NET-Skriptcodes werden in WebAssembly kompiliert.

Ich schließe dies, weil leider ziemlich klar ist, dass nicht beabsichtigt ist, VB.NET-Projektvorlagen für ASP.NET Core hinzuzufügen.

@reduckted @muratg @ tb-MTG @brunojuliao @rynowak @CheungTatMing @VBDotNetCoder @ simonmilne80 @NatShaw @SrqComputerguy @ sreenathGanga1988 @mcurros @filippobottega @mrjohnr @beefydog @mevdschee @ Baner041986 @hannespreishuber @Webbarrr

Endlich: Ein funktionierendes Beispiel für VB.NET ASP.NET MVC Core Razor!
https://github.com/VBAndCs/VB.NET-Razor
Ich habe eine einfache VBRazorViewEngine im VbRazor-Projekt implementiert.
Um VBRazorViewEngine im Projekt zu verwenden, habe ich diese beiden Anweisungen zur Startup.ConfigureServices-Methode hinzugefügt:
`` `VB.NET
services.AddTransient (von IConfigureOptions (von MvcViewOptions), VBRazor.VBRazorMvcViewOptionsSetup) ()
services.AddSingleton (von IViewEngine, VBRazor.VBRazorViewEngine) ()


The VBRazor is just a VB class that implements the IVBRazor Interface:
```VB.NET
Public Interface IVBRazor
    ReadOnly Property Razor As String

End Interface

Die Razor-Eigenschaft verwendet die XML-Literale, um den HTML-Code zu erstellen, und gibt ihn als Zeichenfolge zurück. Beispiel:
`` `VB.NET
Importiert VbRazor

Öffentliche Klasse IndexView
Implementiert IVBRazor

Dim students As List(Of Student)

Public Sub New(students As List(Of Student))
    Me.students = students
End Sub

Public ReadOnly Property Razor As String Implements IVBRazor.Razor
    Get
        Dim x = <html>
                    <h3> Browse Students</h3>
                    <p>Select from <%= students.Count() %> students:</p>
                    <ul>
                        <%= (Iterator Function()
                                 For Each std In students
                                     Yield <li><%= std.Name %></li>
                                 Next
                             End Function)() %>
                    </ul>
                </html>
        Return x.ToString()

    End Get
End Property

Klasse beenden


To use the IndexView from the Controller, I passed it to the View method as the model data in the action method, and passed the actual model data to its constructor:
```VB.NET
Public Function Index() As IActionResult
    Return View(New IndexView(Students))
End Function

Das ist alles!! Wenn Sie das Projekt ausführen, wird diese Webseite angezeigt:
VBRazor

Das war wirklich einfach, erfordert aber mehr Arbeit. Ich hoffe, Sie tragen zu diesem Projekt bei, um es zu einem wirklich produktiven Werkzeug zu machen!
Als erstes müssen Sie eine VB.NET-Vorlage für ASP.NET MVC Core erstellen. Ich musste ein C # -Projekt erstellen und es dann in VB konvertieren!

Das zweite, was zu tun ist, ist das Hinzufügen einer Intellisense-Unterstützung für HTML-Attribute in XML-Literalen in VB!

Die Truth View Engine muss eine Art Vorlage analysieren, wie wir sie in Razor oder Markdown usw. gesehen haben. Was Sie jedoch getan haben, ist einfach, da das endgültige Markup, das aus dem Code generiert wurde, hinter dem die von Razor generierten Klassen ausgeführt wurden

@hishamco
Ich habe dies in ein paar Stunden dank VB XML-Literalen getan, was fast vergessen ist! Ich habe es vielleicht vergessen, bis ich einige Wochen lang versuchte, eine neue Syntax einzufügen, um sie vorzuschlagen, also schrieb ich und der Editor vervollständigte sie mit dem abschließenden Tag :) Es gibt jedoch viel zu tun, um diese Idee zu einem vollständigen Produkt zu machen.

https://gitter.im/VB-NET/Volunteer
Vielen Dank.

XML-Literal ist eine sehr gute Funktion, die nur VB hat. In Bezug auf vbhtml braucht es Zeit und Mühe und ich bin einer der interessierten Leute aus der Vergangenheit. Ich hoffe, wir können bald damit anfangen

Hallo zusammen,
Dies ist ein funktioneller VB-Rasierer (Vazor). Habe Spaß:
https://github.com/VBAndCs/Vazor

Hallo zusammen,
Bitte unterstützen Sie diesen Vorschlag https://github.com/aspnet/AspNetCore/issues/9270
Es kann die einfache Alternative sein, vbhtml-Seiten zu erstellen.

@VBAndCs , bitte versuchen Sie zu vermeiden,

@Eilon
Entschuldigung, aber dies ist eine Funktionsanforderung, die noch nicht existiert. Das Schließen sollte Sie nicht stören, aber es wird immer noch in der Google-Suche angezeigt. Daher ist es wichtig, alle zugehörigen Informationen zu diesem Thema zusammenzuhalten.
Auf jeden Fall ist dies meine letzte Antwort in diesem Thema.
Vielen Dank

@VBAndCs , lassen Sie sich bitte nicht vom herrischen Ton von Biografie kein Entwickler). Ich denke, er benutzt nur seltsame Worte, um "Danke für deinen großartigen Beitrag" zu sagen.

@mevdschee
Danke für deine Unterstützung :). Ich kann mir vorstellen, unter welchem enormen Druck behoben werden müssen , Diskussionen, Fragen, die beantwortet werden müssen, und Vorschlägen, die abgelehnt werden müssen: dance_men:
Daher werde ich in meinen Mew-Vorschlägen auf dieses Thema verweisen (von denen ich hoffe, dass sie so lange kommen, bis VB.NET seinen rechtschaffenen Platz wiederherstellt :)).
Ich hoffe, Eilon bespricht wichtige Vorschläge oder lässt sie zumindest eine Weile offen, damit die Community sie diskutieren kann, anstatt sofort zum Schließen-Button zu springen.
Nochmals vielen Dank @mevdschee , und sorry @Eilon :)

Ich verfolge diesen Thread schon lange, da eine richtige vollständige Lösung meiner Meinung nach auf der Roadmap stehen sollte, ohne gezwungen zu werden. Ich war allerdings etwas enttäuscht, als ich nach der harten Arbeit von @VBAndCs sah, dass @Eilon versuchen würde, jeden anderen davon abzuhalten , das Problem für so viele Menschen zu lösen! Ich kann verstehen, dass es viel Druck gibt, aber die Tatsache, dass die Leute dies immer noch verfolgen, zeigt, dass es für viele Menschen wichtig ist! Mach weiter so :)

Hallo allerseits,

Wir empfehlen Community-Aktivitäten und -Funktionen nachdrücklich, können jedoch bestimmte Feature-Anfragen oder Fehlerbehebungen nicht akzeptieren, da diese für die Implementierung nicht hoch genug sind. Dies schließt sogar den Fall ein, dass eine Pull-Anforderung vorliegt, die Tests und Dokumentation enthält. Änderungen jeder Größe sind mit Kosten verbunden, einschließlich langfristiger Kosten, und wir müssen diese gegen alle anderen potenziellen Arbeiten abwägen, die wir in Betracht ziehen. Wenn es um View Engines geht, fühlen wir uns zu 100% der Razor View Engine mit Unterstützung für C # und einer großartigen Editor-Erfahrung in Visual Studio, Visual Studio für Mac und Visual Studio Code verpflichtet.

Wir glauben, dass Menschen wie @VBAndCs hier eine großartige Gelegenheit haben, zusätzliche Projekte zu erstellen, die mit ASP.NET Core zusammenarbeiten und auf verschiedene Weise integriert werden können. Wir freuen uns, auf diese Projekte verlinken zu können, indem Leute PRs an Readme-Dateien wie die MVC-Readme senden.

Vielen Dank,
Eilon

An @ simonmilne80 , @mevdschee und alle Interessierten:
Ich habe dem Repo ein funktionierendes Beispiel für zml-Seiten hinzugefügt. Lassen Sie uns daher die Diskussion zu diesem Thema führen: https://github.com/VBAndCs/Vazor-DotNetCore2/issues/1
und gib @Eilon einige Momente des Friedens :)

Übrigens möchten wir Vazor in einem kommenden ASP.NET Community Standup erwähnen . Haben Sie einen Blog-Beitrag, auf den wir zusätzlich zum GitHub-Repo verweisen können?

@Eilon
Entschuldigung für die Verzögerung meiner Antwort. Ich musste zuerst meine Arbeit abschließen und eine Readme- Datei mit grundlegenden Informationen zu ZML-Tags schreiben.
ZML 1.0 hat jetzt ein eigenes Repo und NuGet .
Ich würde es begrüßen, wenn Sie ZML erwähnen, da es sprachunabhängig ist (das Repo enthält ein Projektbeispiel mit zwei Versionen von c # und VB, und beide verwenden dieselben .zml-Dateien.
Vielen Dank.

Sie möchten meine VB.NET WebForms-App in .NET Core Razor Pages konvertieren. Wenn dies zutrifft, dass VB nicht unterstützt wird, auf welchen modernen ASP.NET-Pfad sollte ich stattdessen migrieren? Das Umschreiben der App in C # ist keine Option.

@Gruski Wenn es eine Menge VB.NET-Code gibt, der "Bibliothekscode" ist - das heißt, nicht einmal WebForms-spezifisch -, dann funktioniert alles in der .NET Core / Razor Pages / Blazor-Welt ganz gut. Es ist der Teil WebForms vs. Razor (und Blazor), der viel mehr Arbeit leistet.

Wir haben gerade eine Vorschau eines E-Books veröffentlicht, um Entwicklern bei der Migration von WebForms zu Blazor zu helfen:

https://docs.microsoft.com/en-us/dotnet/architecture/blazor-for-web-forms-developers/index

Es könnte also möglich sein, einen Teil Ihrer App in VB zu belassen, und dann müsste nur die Benutzeroberfläche C # sein.

Es könnte also möglich sein, einen Teil Ihrer App in VB zu belassen, und dann müsste nur die Benutzeroberfläche C # sein.

Sie können auch ein VB.NEt-Projekt für die Benutzeroberfläche verwenden. Nur die cshtml-Dateien enthalten C # -Blöcke. Wenn Sie den C # -Code vermeiden möchten, können Sie XML-Literale in VB.NEt verwenden, um die Benutzeroberfläche wie in meinem Vazor-Projekt zu entwerfen:
https://github.com/VBAndCs/Vazor-DotNetCore2
Anthony Green hat dies auf eine andere Ebene gebracht, wie Sie in seinen letzten Themen in seinem Blog sehen können:
https://anthonydgreen.net/
Oder hier:
https://github.com/dotnet/vblang/issues/483
Ich schlug auch vor, XML-Tag-Befehle zu verwenden, um sowohl C # als auch VB zu vermeiden und einen reinen XML-Razor (ich habe ZML genannt) zu verwenden:
https://github.com/VBAndCs/ZML

Obwohl unser Projekt ein WebForms-Projekt ist, verwenden wir es nicht mehr wie ursprünglich beabsichtigt. Dies war eine alte, aber große Unternehmensanwendung, die im Laufe der Jahre so konvertiert wurde, dass sie ausschließlich das clientseitige Framework von Vue.j verwendet, das WebMethods aufruft, die sich in jedem der ASPX-Codes hinter den Seiten befinden. Es gibt also: keine Serverkomponenten (kein runat = "Server" irgendetwas), keinen Ansichtsstatus, keine ganzseitigen Beiträge (kein "Formular" -Element). Abgesehen von der Load-Methode, mit der einige clientseitige Vue-Komponenten dynamisch initialisiert werden, enthält der dahinter stehende Code nur WebMethods.

Vor diesem Hintergrund und mit der Anforderung, auf .NET Core umzusteigen, auf welche neue ASP.NET-Technologie sollte ich das Projekt migrieren, wenn ich mich von WebForms entfernen möchte? MVC macht für mich keinen Sinn, da Vue.js bereits das MVC-Muster auf der Clientseite hat, was meiner Meinung nach eleganter ist. Warum sollte ich es also auf dem Server benötigen? Blazor macht auch keinen Sinn, da dies ein erneutes Umschreiben der gesamten Benutzeroberfläche bedeuten würde.

@ Gruski Ich würde Razor Pages empfehlen. Der Einstieg ist sehr einfach: Erstellen Sie einfach einen Pages-Ordner in Ihrer ASP.NET Core-App und fügen Sie CSS-Dateien hinzu. Jede Seite ist im Wesentlichen eine URL, und Sie können beliebigen HTML-Code einfügen und dann ein beliebiges C # für die Serverlogik hinzufügen.

Probieren Sie dieses Tutorial aus, um loszulegen: https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/razor-pages-start?view=aspnetcore-3.0&tabs=visual-studio

@Eilon Haben Razor Pages Code zum Platzieren von WebMethods? Wo sonst würden die WebMethods platziert? Wenn man es betrachtet, sieht es so aus, als würde immer noch eine vereinfachte Version des serverseitigen MVC-Musters hinter den Kulissen verwendet, die bei Verwendung von Vue redundant ist. Auch keine VB-Unterstützung in Razor Pages.

Rasiermesserseiten unterstützen keine WebMethods. Ich würde empfehlen, MVC für diese Methoden zu verwenden. Sie können Razor Pages und MVC in derselben App mischen.

@Gruski Ich bin aufgeholt .

Wenn Sie Ihre Benutzeroberfläche in Vuew.js haben, können Sie einfach ASP.NET Core MVC / WebAPI verwenden? Das funktioniert gut. Dieser Artikel enthält zwar ein wenig Angular, zeigt jedoch die allgemeine Technik: https://devblogs.microsoft.com/vbteam/combining-angular-visual-basic-and-net-core-for-developing-modern- Web-Apps /

Es gibt zwei Problembereiche mit Unterstützung:

  • Razor wird für Visual Basic nicht unterstützt, obwohl @VBAndCs und @AnthonyDGreen , wie bereits erwähnt, eine potenziell bessere Lösung für Visual Basic entwickelt haben.
  • Es gibt keine Vorlagen für ASP.NET WebAPI.
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen