2013-07-05 10 views
19

Wir evaluieren derzeit die Verwendung von AngularJS in einer Unternehmensanwendung (e-Banking) als Single-Page-Anwendung. Viele der devs @ work sind bereits überzeugt, dass es keinen anderen Weg zu gehen gibt. Es ist der Trend, es ist zukunftssicher (html, css und js) es ist einfach zu tun, weniger Belastung für den Server etc etc. Trotz der interessanten Teil dieses Rahmens, ich bin nicht überzeugt, dass es Faktoren gibt, die sein müssen berücksichtigt, bevor Sie diese Straße gehen. Dies können sein:AngularJS und Enterprise-Anwendungen

  • Wartbarkeit des Codes
  • Testbarkeit des Codes, nicht nur die ui Teil
  • Continuous Integration (wie Teamcity oder TFS)
  • Entwicklerfreundlichkeit wie Debugging, die Navigation durch Code
  • Sicherheit (wenn ein Risiko besteht)

Hat jemand Erfahrung mit Enterprise-Apps? Ich würde lieber mit Asp.Net MVC4 gehen. Bitte keine hypothetischen Antworten, ich will keinen Krieg beginnen. Wirkliche Lebenserfahrung wird wirklich geschätzt.

Grüße

Antwort

6

ich darüber nachgedacht hatte, als Angular in unsere Enterprise-Anwendung enthält. Zuerst einige optionale Hintergrundinformationen. Ich musste wirklich meinen gesamten Seitenstatus auf der Client-Seite behalten, da das erneute Erstellen auf der Serverseite eine sehr ressourcenintensive Aufgabe ist. Ich begann damit, es nur mit JQuery zu bauen, da ich nur ein paar Dinge brauchte, aber bald hatte ich Schwierigkeiten, die Rückrufe zu verfolgen, die ich erst letzte Woche geschrieben hatte. Daher wollte ich umgestalten. Während ich dabei war, sah Angular am besten für meinen Programmierstil aus.

Ihre Bedenken auszuräumen:

Ich denke, dass es besser verwaltbar ist, da es Sie ermutigt Dinge aufzuteilen. Dies hängt jedoch vollständig von Ihrem Team und Ihrer Disziplin ab, um die Dinge wartbar zu halten.

Das Angular-Team dachte definitiv über Tests nach, als sie es machten. Die Dinge sind sehr einfach zu testen, von Komponententests bis zu e2e-Tests. Andere haben sogar dazwischen einen Mittelweg gefunden.

Wir verwenden Jenkins in unserem Microsoft-Shop für kontinuierliche Integration, da es einfacher für uns war, unsere eigenen Programme einzuschließen, um es mit unseren komplexen Umgebungseinstellungen zu arbeiten. Ich glaube jedoch nicht, dass dies viel mit dem Rahmen zu tun hat, mit dem Sie sich entscheiden.

Kommen aus Visual Studio, ich finde JavaScript im Allgemeinen lässt etwas zu wünschen übrig. Ich liebe es zu bearbeiten und weiterzumachen, den Stapel abzuwickeln und den gelben Pfeil herumzuziehen. Das Zeug ist nur pure magische Glückseligkeit. Debuggen auf dem Browser gibt Ihnen das alles nicht.

Sicherheit ist ziemlich gut. Wenn Sie sich die Dokumente ansehen, können Sie sehen, dass sich das Team mit Sicherheitsproblemen wie XSS- und CSRF-Angriffen beschäftigt. Alles, was über den Browser ausgeführt wird, ist jedoch schwer zu sichern. Es gibt neue Angriffe und Bugs, die jeden zweiten Tag entdeckt werden. Wenn Sie sich wirklich um Sicherheit sorgen, hätten Sie keine Online-App. Sie würden sicherstellen, dass Ihre Kunden nur in der Branche mit mehreren Formen der ID Banked. Nichtsdestotrotz glaube ich, dass Angular nicht weniger sicher ist als jede andere JavaScript-Lösung.

Ich möchte ein weiteres Problem mit all diesen JavaScript-Frameworks/Bibliotheken aufwerfen. Sie sind alle ziemlich neu und entwickeln sich ständig weiter. Sehen Sie sich einmal an, wie viele Funktionen JQuery in letzter Zeit nicht mehr unterstützt, und Sie werden feststellen, wie schwer es ist, sich über Ihre Bibliotheken zu halten. Viele davon sind auch vergessen und verfaulen. Angular, eines von Googles Produkten zu sein, macht mich auch etwas ängstlich, da sie Wellen ihrer Projekte abgebrochen haben. Hoffentlich wird Angular nicht einer von denen.

Die Dokumentation fehlt auch. Obwohl die Gemeinschaft gut ist, ist die Dokumentation nicht. Viele Seiten sind zur Hälfte fertig. Auch im Vergleich zu den neuesten Sachen von Microsoft ist die Dokumentation ziemlich spärlich.

Dies ist eines der neuen Dinge, es ist schwieriger, jemanden einzustellen, um zu helfen/übernehmen dieses Zeug.

Trotz all dieser Nachteile mag ich es wirklich, und ich werde meine Firma definitiv dazu bringen, es anzunehmen.

+0

Vielen Dank für Ihre Antwort. Am Ende kann jemand nur hoffen, dass sich etwas durchsetzen wird. Es ist beängstigend, wenn jemand erkennt, wie viele Frameworks es jetzt gibt, und in zwei Jahren ist die Hälfte weg. Dies ist besonders kritisch, wenn ein Projekt sehr umfangreich ist und 1-2 Jahre dauern wird. Gibt es wirklich so viele Vorteile, anstatt Asp.Net MVC4 zu verwenden? Wenn der Vorteil die Notwendigkeit für einen anderen Server oder einen größeren Server beseitigt, aber dann brauchen Sie die doppelte Zeit zu entwickeln, testen (Entwickler kosten)? – Mantzas

+0

asp.net mvc4 fördert auch das "Splitting" und macht es schwieriger in den Fuß zu schießen. überwiegen Winkel und Spa im Allgemeinen die hohen Serververarbeitungskosten? selbst bei angular müssen Sie mehr als 1 Server für Failover-Gründe haben. Warum nicht 1 oder 2 Server mehr und gehen mit mvc4, dass es zu Version 4 und 5 kommt? Wenn ich mehr Zeit für die Entwicklung brauche, kostet das auch !!! – Mantzas

+1

@Mantzas Ich mag MVC auch sehr. Der größte Grund, warum ich eine clientseitige Bibliothek verwenden wollte, ist, dass viele meiner Benutzerinteraktionen nicht auf den Server zurückgehen müssen und die Überprüfung der Benutzereingaben für meine App lange dauert. –

0

Ja ich mit Asp.net WebAPI Angular verwendet haben zusammen mit MongoDB .Pls meine Erkenntnisse

1) Testbarkeit finden ist absolut fantatic .Sie leicht Sie Unit-Test-Karma und Jasmin mit testen

2) CI. Integration von Jenkins ist mit Karma

3) Leicht zu Javascript-Debugging ähnlich zu debuggen Chrome-Erweiterung Bartrang Winkel apps

leicht debuggen können
+1

Wartbarkeit, Sicherheit? Das muss eine sehr sichere Seite sein! – Mantzas

+0

@Ajay Ich bin neu in AngularJS und möchte es mit ASP.NET WEB API implementieren, jedes Tutorial, das Sie mir empfehlen? Vielen Dank – VAAA

+0

Was ist mit Wartbarkeit? Navigieren durch Code (z. B. "Finde Referenzen" oder "Gehe zu Deklaration" Typ Funktionen in Java/Eclipse)? Wie wäre es mit UI-Design? Wenn es sich um eine interne Banking-App (nicht um die Kundenseite) handelt, wird die Benutzeroberfläche möglicherweise sehr komplex und Sie möchten eine Möglichkeit haben, das Layout der von Ihnen platzierten Komponenten in der Vorschau anzuzeigen. Wenn Sie beispielsweise eine Beschriftung ändern oder die Größe einer Komponente ändern, wie schnell können Sie bestätigen, dass die Änderung akzeptabel ist (sicher nicht nur raten)? – User