Was sind einige Dinge zu beachten, wenn eine Web-basierte Anwendung entwickelt verkauft werden [geschlossen]

StackOverflow https://stackoverflow.com/questions/189644

Frage

Ich entwickle eine Anwendung für einen internen Kunden. Eine der Voraussetzungen ist, dass es so entwickelt werden, dass sie möglicherweise an andere Organisationen verkauft werden könnten. Die Anwendung ist eine Tracking-Anwendung für eine Fundraising-Organisation, die ihre Spenden verwalten, Spender, Teilnehmer und Veranstaltungen. Ich weiß schon, dass ich eine Plugin-Architektur für die Authentifizierung entwickeln muß (Autorisierung intern behandelt werden) und demografische Daten von einem externen Verzeichnis abzuleiten.

Die Anwendung wird auf ASP.NET/C#/Linq/SQL Server aufgebaut werden. An diesem Punkt bin ich nicht wirklich offen für alternative Datenbanken unterstützt, aber ich denke, ich dies über verschiedene Linq Treiber in Zukunft tun könnte, falls erforderlich.

All die Web-Anwendungen, die ich bisher benutzerdefinierte Implementierungen wurden gebaut haben so Ich mag würde wissen, ob es gibt andere Dinge, die ich brauche über Plugins und / oder Konfigurationselemente zu adressieren. Jede Eingabe wäre hilfreich.

Danke.

War es hilfreich?

Lösung

Ich möchte Sie warnen davor, die „alles tun“ Rahmen zu machen. Dies ist ein häufiger Fehler, dass viele Entwickler machen, wenn sie versuchen, ihre ersten Massenmarkt Software-Anwendungen zu bauen.

Sie haben einen Kunden bereits, und sie sind wahrscheinlich bankrolling die erste Version der Anwendung. Sie müssen so viel von dem, was der Kunde braucht so schnell wie möglich oder es nicht liefern, bevor Sie selbst zu denken über den Massenmarkt bekommen.

Tun Sie sich selbst einen Gefallen und erwarten, dass dies der einzige Kunde, die jemals verwenden oder die Anwendung kaufen. Gestalten Sie Ihre Anwendung so ziemlich genau das gleiche, wie Sie alle Ihre anderen benutzerdefinierten Anwendungen in der Vergangenheit entwickelt würde.

Alles, was Sie tun, um es brauchen zu maßstabs später für andere Kunden aus ist auf die Lager asp.net Features und Funktionen, so viel wie möglich zu halten, halten Sie es so einfach und schlank wie möglich, und schneiden Sie so viele „advanced "Funktionen von Version 1.x, wie Sie können mit wegzukommen.

1.x Ihre Bewährungsprobe sein. Stellen Sie sicher, dass Sie eine Anwendung liefern, die tut, was Ihre erste Kunde braucht, um es zu tun, und dass es es außerordentlich gut tut.

Wenn Sie erfolgreich sind, und 1.x tatsächlich die meisten Ihrer ursprünglichen Kundenanforderungen nicht erfüllt, dann werden Sie wissen, dass Sie auch eine Anwendung, die die meisten Bedürfnisse aller Ihrer Kunden gerecht zu werden. Herzlichen Glückwunsch, Sie sind bereits die meisten der Art und Weise eine tragfähige kommerzielle Marktanwendung zu haben!

Reise aufpassen:

  1. Haben Sie wirklich brauchen mehrere Datenbank-Plattformen unterstützen? Sicher, könnte man „einige“ Kunden, die „lieber“ MySql SQL Server könnte. Sie werden versucht sein, zu versuchen, etwas Magie DAL zu schreiben, Oracle, MySQL, VistaDB, SQL Server usw. nur durch Ändern einiger Konfigurationsoptionen oder, die richtige Auswahl in einem Installationsprogramm unterstützen. Aber die Tatsache ist, dass diese Art von „Plattform“ Neutralität fügt massive Komplexität zu Ihrem Design und erlegt strenge Beschränkungen auf, welche Funktionen Sie nutzen. Dinge wie die Anbieter Entwurfsmuster können Sie in dem Denken täuschen, dass diese Art von Design ist nicht so schwer ... aber sie wäre falsch. Seien Sie pragmatisch und gestalten Sie Ihre Anwendung so, dass es zu 90% Ihrer potentiellen Markt akzeptabel sein wird. Mit dem Datenzugriff insbesondere ist es im Allgemeinen sicher zu sagen, dass 90% oder mehr des Markts bereit zu installieren und eine ASP.NET-Anwendung ausführen, ist auch in der Lage und bereit SQLExpress oder SQL Server zu verwenden. In den meisten Fällen Sie werden durch den Entwurf für nur SQL Server viel Zeit und Geld sparen, als Sie jemals in zusätzlichen Umsatz von Unterstützung mehrerer Datenbanken.

  2. machen
  3. Versuchen Sie zu vermeiden "alles" konfigurierbar über Online-Admin-Tools machen. Zum Beispiel werden Sie den gesamten Text in der Anwendung konfigurierbar von Admin-Tools zu haben versucht. Das ist toll, aber es ist auch teuer. Es dauert länger, erfordert zu entwickeln, dass Sie den Umfang Ihrer Anwendung erhöhen, um ein ganzes Durcheinander von Admin-Tool enthalten, die Sie sonst nicht gebraucht haben, und es macht die Anwendung komplexe und schwieriger für das 90% Ihrer Kunden zu bedienen dass sie nicht den Standardtext dagegen.

  4. Sorgfältig Lokalisierung berücksichtigen. Wenn Sie nicht denken, finden Sie einen großen internationalen Markt-Stick auf eine Sprache haben. Der Ort ist nicht zu hart, aber es hat jeden Aspekt des Codes erschweren ein wenig ... und das summiert sich zu viel in jeder Anwendung jeglicher überhaupt Größe. Meine Faustregel nur die Sprache meiner ursprünglichen Markt anvisieren. Wenn die App Interesse an anderen Märkten hat dann gehe ich zurück und tue Lokalisierung in Version 2.x, nachdem ich etwas Geld von der Version 1.0 wieder einbringen und beweisen die Anwendung einen tragfähigen Markt in erster Linie hat. Aber wenn Sie wissen, dass Sie in mehr als einer Sprache oder Kultur, Unterstützung Lokalisierung von Anfang an sein.

  5. Für die Version 1.0, nicht zu viele Sorgen über Drop-in-Module oder Phantasie-Service-APIs. Wenn Sie alreAdy hatte dieses Zeug in der Lage wäre, Sie viel Erfahrung in wieder verwendbare Frameworks Version 1.0 zu haben, aber wenn Sie Erfahrung in dieser Art von Architekturen fehlen werden Sie nur auf diese Funktionen in Version 1.x zu viel Zeit verlieren, und Sie werden wahrscheinlich es falsch ist immer noch und haben trotzdem wieder Architekten in Version 2.x.

  6. Stellen Sie sicher, dass die Anwendung wirklich gute Berichterstattung hat. Für die Art der Anwendung über Sie sprechen, wird das sein, was entscheidet, ob die Anwendung selbst einen Markt überhaupt hat. Sie müssen ziemlich Berichte, die nicht nur sortierbar / filterbar auf dem Bildschirm, sondern sind auch bedruckbar. Legen Sie Ihr Geld und Zeit in diesen aus dem Tor.

Andere Tipps

Das Wichtigste ist es so zu gestalten, dass sie vollständig generisch ist das heißt, es ist keine Client-spezifischen Informationen hart codiert oder eingebettet.

Alles, was kundenspezifische muss über Meta-Daten konfigurierbar sein. Wie Sie dies tun, ist ganz Ihnen überlassen, aber die wichtigsten Möglichkeiten sind durch XML, Datenbanken oder Dateien Eigenschaften.

Wenn Sie es auf diese Weise entwerfen sie auf verkauft an eine beliebige Anzahl von Kunden sein könnte, die jeweils ihre eigenen Konfigurationsdateien oder Daten haben.

Abarax gab eine große Antwort, würde ich betonen, dass Sie die Lage der Unterkunft in Betracht ziehen sollten - sowohl für gesprochene Sprachen (Englisch, Französisch, Deutsch, etc.) und die Sprache der Organisation z.B. einige Orte kann es nennen eine Arbeitszeittabelle, Docket oder Work Order, und jeder wird jammern und jammern und jammern, wenn alles mit zusammenpassen nicht, was sie schon immer etwas genannt.

Wenn Sie Open-Source-Technologien verwenden, verbringen ein wenig Zeit an einem Ort alle die Lizenzinformationen zu halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top