2 Stimmen

Beratung zur Website-/Webanwendungsarchitektur

Lassen Sie mich hier die Voraussetzungen schaffen. Ich bin ein sehr junger Entwickler, der vor kurzem den Übergang vom Netzwerkadministrator, der einige WinForms für seinen Arbeitgeber entwickelt, zu einer Vollzeitentwicklungsposition geschafft hat, in der er an einem ASP.NET-Produkt arbeitet, das auf Silverlight umgestellt wird. Ich habe nur sehr wenig Erfahrung in der Webentwicklung. Ein gewisses Grundverständnis von HTML und ASP.NET. Ich habe keine Erfahrung mit JavaScript und verfüge über ein sehr geringes Verständnis von CSS.

Meine Frau hat mich gebeten, eine Website für den Ortsverband des Junior Women's Club zu entwickeln, dem sie angehört. Es gibt einige Ziele, die mit der Website erreicht werden sollen.

  1. Erstellen Sie eine echte Internetpräsenz für das Chapter. Derzeit gibt es nur eine einzige Seite auf der lokalen Website der Stadt.
  2. Bieten Sie eine PR-Plattform für das Chapter. Hier sind einige unserer Dienstleistungen für die Gemeinschaft, hier sind einige bevorstehende Veranstaltungen usw...
  3. Helfen Sie mit, die Mitgliedschaft zu fördern. Es handelt sich um eine kleine Ortsgruppe, die die Website nutzen möchte, um die Mitgliederzahl zu erhöhen, insbesondere unter jüngeren Frauen.
  4. Als Anwendung für Mitglieder fungieren, um grundlegende Informationen zu verfolgen (z. B. Mitgliederliste usw.)

Ich habe mir für dieses Projekt einige Ziele gesetzt

  1. Erlernen Sie Silverlight (zumindest auf Grundniveau).
  2. Meine HTML-Kenntnisse zu verbessern.
  3. Meine CSS-Kenntnisse zu verbessern.
  4. Bereitstellung einer vernünftig durchsuchbaren (von Google u.a.) Website.

Also, hier sind die grundlegenden High-Level-Architekturen (ohne Berücksichtigung der DB, etc...), die mir in den Sinn kommen.

  1. Hosten Sie eine komplette Silverlight-Anwendung in einer HTML- oder ASPX-Seite und bauen Sie die gesamte Website in Silverlight auf. - Diese Option erscheint mir für den Aufbau einer durchsuchbaren Webpräsenz bestenfalls suboptimal.

  2. Erstellen einer ASP.NET-Website mit einer Masterseite zur Verwaltung des allgemeinen Erscheinungsbilds und des Hosts Einige Silverlight-Steuerelemente (Menü in der Kopfzeile, Rich Control für das Fotoalbum, Steuerelemente für die Datenverwaltung usw.) an geeigneten Stellen. - Dies scheint mir am einfachsten zu sein, um das allgemeine Erscheinungsbild beizubehalten und gleichzeitig eine gewisse Durchsuchbarkeit zu gewährleisten.

  3. Erstellen einer primär HTML-Site mit CSS als primärem Mechanismus zur Verwaltung von Look & Feel und Hosten geeigneter Silverlight-Steuerelemente, wo ich eine reichhaltige Interaktion wünsche (wie #2 oben). - Dies scheint mir die am besten durchsuchbare Option zu sein, aber wahrscheinlich die schwierigste für mich angesichts meiner derzeitigen Fähigkeiten.

Ich weiß, dass es andere Optionen für die Architektur gibt und möchte diese Vorschläge hören, aber bitte bedenken Sie, dass ich ein bevorstehendes Silverlight-Projekt bei der Arbeit habe und dies zum Teil als Mittel zum Erlernen dieser Technologie nutzen möchte, was bedeutet, dass eine reine HTML-, CSS-, JavaScript-/JQuery-Option das für mich nicht wirklich bietet.

Ich würde auch gerne hören, was Sie alle über gute Ressourcen (kostenpflichtig oder kostenlos) zu lernen CSS und alle zusätzlichen Technologien, die ich brauchen würde, um auf der Grundlage der getroffenen Wahl zu lernen sagen.

Vielen Dank für Ihre Geduld mit diesem langen Beitrag.

--zur Klarstellung später hinzugefügt (hoffe ich)---

Ich sollte hinzufügen, dass ich bereit bin, dies zu einem späteren Zeitpunkt neu zu schreiben, um die Leistung zu verbessern und mehr Dinge zu lernen, aber um diese Website in einem Monat oder weniger (in meiner Freizeit) zum Laufen zu bringen, möchte ich die Anzahl der neuen Dinge, die ich lernen muss, begrenzen. Ich würde gerne die Zeit haben, JavaScript, MVC und vielleicht ein DotNetNuke-Framework zu lernen, aber aus der Perspektive eines sehr jungen Entwicklers und eines noch viel jüngeren Webentwicklers ist das alles zu viel auf einmal. Zuerst kleine Schritte, und vorzugsweise kleine Schritte, die mir bei meiner täglichen Arbeit helfen werden, da ich auch dort noch viel lernen muss.

8voto

Dave Markle Punkte 91733

Mein Rat:

Erstellen Sie eine Website nicht von Grund auf neu. Verwenden Sie dafür ein Content-Management-System wie DotNetNuke oder Drupal. Finden Sie einen Anbieter, der diese Plattformen hostet, und lernen Sie es. Erfinden Sie das Rad nicht neu.

6voto

Matt Briggs Punkte 39925

Die Sache ist die: HTML/CSS/Javascript sind die Sprachen des Webs. Microsoft bietet darüber hinaus Abstraktionen mit Dingen wie Webformulare und asp.net AJAX, aber wenn Sie jemals ernsthaft ein Webentwickler sein wollen, müssen Sie immer noch wissen, was "hinter den Kulissen" vor sich geht, selbst wenn Sie Webformulare bis zum Tag Ihres Todes verwenden.

Was die Ressourcen betrifft, empfehle ich immer Folgendes HTML-Hund Ich finde, die Tutorials sind gut geschrieben und kurz und bündig. Die offizielle ASP.net-Website bietet eine Fülle von Inhalten (einschließlich Screencasts), die Ihnen helfen, die verschiedenen .net-spezifischen Technologien zu erlernen

Wenn es um die Architektur geht, stellt sich die Frage, wie weit Sie gehen wollen. Sie könnten eine datengesteuerte Website im CMS-Stil mit Verwaltungsschnittstellen und einem SQL-Server-Backend erstellen. Wenn Sie diesen Weg gehen wollen, würde ich Ihnen entweder Linq2SQL oder das fantastische SubSonic um Ihre Datenzugriffsschicht und Entitätsobjekte für Sie zu erstellen. Sie sollten nicht mehr als eine zweischichtige Architektur für etwas so Kleines benötigen, vor allem wenn Sie die Dinge einfach halten wollen, und diese beiden Dinge können Ihre Datenschicht für Sie generieren.

Wie für Silverlight, ging ich eigentlich über es den anderen Weg und lernte WPF zuerst, so kann ich nicht helfen Sie zu viel. Das Wichtigste bei Dingen wie Silverlight oder Flash ist, dass sie, so cool sie auch sein mögen, immer noch nur Kästchen auf der Webseite sind. Man kann sie sehr wirkungsvoll einsetzen, aber es gibt nur sehr wenige Leute, die nicht zusammenzucken, wenn sie merken, dass sie sich auf einer "Flash-Site" befinden.

3voto

Mike Scott Punkte 12019

Ich empfehle, einen Blick auf ASP.NET MVC zu werfen (Stackoverflow ist damit aufgebaut). Obwohl es derzeit in der Beta-Phase ist, ist es sehr stabil und Sie können es auf Ihrer Live-Site verwenden.

Es ist "viel näher am Metall" als ASP.NET, was meiner Meinung nach großartig ist, wenn Sie HTML und CSS lernen wollen, da dies genau das ist, womit Sie arbeiten werden. Es ist ein bisschen wie beim Erlernen der Fotografie - besorgen Sie sich eine manuelle Kamera und lernen Sie die Grundlagen, damit Sie verstehen, was vor sich geht.

1voto

rodbv Punkte 5104

Es gibt eine Empfehlung, die für jeden gilt, der etwas Neues lernt: Keep it simple. Im Fall der Webentwicklung würde ich aus mehreren Gründen gegen Silverlight stimmen.

Die erste haben Sie bereits erwähnt, sie ist sehr Google-unfreundlich.

Der zweite Grund ist, dass es kein allgegenwärtiges Plugin ist: Viele Leute haben es noch nicht, und viele Leute sind (zu Recht) erschrocken, wenn sie auf eine Website kommen und dieses Ding sehen, das sie auffordert, ein Plugin herunterzuladen und zu installieren. Noch schlimmer wird es, wenn es sich um Mac- und Linux-Benutzer handelt, von denen viele nicht einmal wissen, was Silverlight ist (versuchen Sie es einfach in Ihrem Bekanntenkreis).

Ein weiterer Aspekt ist, dass eine Silverlight-Site verdammt hässlich aussehen kann, es sei denn, Sie haben sehr gute Designfähigkeiten oder planen, einen Designer zu engagieren. Wenn Sie sich für das gute alte HTML entscheiden, haben Sie viele schöne, kostenlose html- und css-Vorlagen aber das ist bei Silverlight nicht der Fall, AFAIK.

Wenn Sie die Webprogrammierung wirklich lernen wollen, beginnen Sie am besten mit den Grundlagen, also HTML, CSS und Javascript. Im Falle von Javascript können Sie das Erlernen aller Details überspringen und sich für jQuery entscheiden, das wird ein großartiges Sprungbrett sein. Wenn Sie wirklich mit Silverlight und XAML spielen wollen, empfehle ich Ihnen, die Website mit etwas Pep zu versehen nach Es ist bereits in Betrieb, aber nicht im Voraus.

Für jemanden, der mit der Webentwicklung anfängt und von der ASP.NET-Seite kommt, würde ich ASP.NET MVC empfehlen, wie es der Mann vor mir getan hat: Es ist näher an real Web-Entwicklung als Webformulare, und es fördert (wenn auch nicht garantiert) eine elegantere Architektur. Ich weiß, dass Ihr Ziel #1 ist, Silverlight zu lernen, aber ich würde ein bisschen warten und zuerst die Grundlagen lernen.

Wenn es um die von Ihnen erwähnte Website des Junior Women's Club geht, würde ich mich zunächst für eine Paketlösung wie DNN entscheiden. Wenn dann alle zufrieden sind (und das wird eine Weile dauern, denn sobald sie verfügbar ist, werden Sie unendlich viele Anfragen erhalten, von Schriftfarben über neue Funktionen bis hin zu Verwaltungsaufgaben), können Sie in aller Ruhe und in Ihrem eigenen Tempo an einer Homebrew v2 arbeiten. Eine weitere nette Sache an DNN ist, dass es Ihnen erlaubt, Ihre eigenen benutzerdefinierten Module zu programmieren, so dass Sie die Webentwicklung (einschließlich Silverlight) in kleinen Stücken durchführen können, anstatt sich mit einem riesigen Projekt auf einmal zu verzetteln.

1voto

Steve Perks Punkte 5360

Wahrscheinlich eine der besten "Was CMS?"-Fragen, die ich auf SO gelesen habe.

In Anbetracht Ihres IT-Hintergrunds vermute ich, dass Sie mit den Handbüchern/Anleitungen von Windows vertraut sind und ein CMS wahrscheinlich recht schnell zum Laufen bringen können. Je früher Sie Inhalte erstellen, desto besser, und lassen Sie HTML/Css für später. Ich würde sogar sagen, suchen Sie sich eine kostenlose / einfache Vorlage und beherrschen Sie die Funktionen des CMS. HTML/Css zu verstehen ist gut, aber zu verstehen, was der Inhalt ist und wie das CMS funktioniert, ist der Schlüssel.

Sobald die Website steht und läuft, können Sie sich auf HTML/Css konzentrieren. Wenn Sie bei einem der beiden Teile scheitern, dann ist HTML/Css der Teil, den Sie sich leisten können, auszulassen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X