Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Best practice - Persistierung in einer Web-Applikation
teebeutel
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

Best practice - Persistierung in einer Web-Applikation

beantworten | zitieren | melden

Hi zusammen,

ich habe ein ASP Projekt (Webforms), testweise momentan noch mit Access DB, soll aber in Zukunft auf MS SQL laufen.

Ich hab ne DB Connect Klasse, mit der sich einfache Abfragen erstellen lassen, auch Insert etc klappt wie ich es möchte. (con.oledbqry("select blabla from bla"), foreach (datarow dr in con.queryex().rows)..

Ich informier mich natürlich über die neusten Methoden und Best Practice, leider habe ich als Neuling das Gefühl das ungefähr 50 Wege nach Rom führen; und ich mir einfach nicht sicher bin welcher Weg der Beste für mein Programm ist.

Der Inhalt der Tabellen, Tabellenanzahl und Komplexität ist wirklich überschaubar. Es werden Werte aus Tabellen angezeigt, Werte gespeichert, Werte in GridViews angezeigt, das wars.

Nun lese ich was von nHibernate, EntityFramework, LINQ, StoredProcedures, aber auch teilweise das mein Weg okay ist, in Anbetracht der geringen Komplexität.

Ich hoffe ihr wisst worauf ich hinauswill - was ist der optimalste Weg für mich?

Herzlichen
Dank!



Ich
private Nachricht | Beiträge des Benutzers
Sarc
myCSharp.de - Member



Dabei seit:
Beiträge: 417

beantworten | zitieren | melden

Hallo,

also den optimalen Weg genau für deine Anwendung wirst du hier sicher nicht erfahren.
Da sind einfach zu viele Unbekannte.
Die Frage ist doch, wieso möchtest du deine Anwendung umstrukturieren?
Einfach so (wg. "Best practices") oder hast du konkrete Probleme (Performance o.ä.)?

Als Beispiel: Du kannst natürlich das Entity Framework verwenden, aber wenn du es machst um die Performance zu verbessern, dann wäre es das falsche Vorgehen, da du mit deinen nativen sql-statements schneller bist. Zumal ja auch die Komplexität des Programms nicht so hoch ist, dass ein OR-Mapper zur einfacheren Handhabung notwendig erscheint.

PS: Aber schonmal gut, dass du dich von Access verabschiedest ;)
private Nachricht | Beiträge des Benutzers
teebeutel
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Danke für die Antwort - ich möchte das einfach für "mich" machen, um zu lernen. Wenn ichs nun "richtig" mach, weiss ich ja schon für die Zukunft, wenn ich das Projekt vielleicht erweitern möchte, wie es richtig geht:)
private Nachricht | Beiträge des Benutzers
Sarc
myCSharp.de - Member



Dabei seit:
Beiträge: 417

beantworten | zitieren | melden

In solchen "kleinen" Projekten zeigt sich halt der Mehrwert mancher "Best practices" nicht bzw. nicht sofort.
Du könntest z.B. auch in einem kleinen Projekt einen Caching-Layer einbauen, das Repository- und Unit of Work-Pattern in der Datenzugriffsschicht und Dependency Injection für eine bessere Trennung verwenden etc.
Aber wie du ja sagst, ist die Komplexität des Programms sehr gering, wodurch wohl eher ein overhead, als ein echter Nutzen dieser Maßnahmen entstehen würde.

Es ist natürlich an sich sinnvoll sich mit den Entwurfsmustern und z.B. der Funktionsweise von OR-Mappern zu beschäftigen (mit deren Vor- und Nachteilen). Ein kleines Projekt bietet hierzu gute Möglichkeiten, aber ob ein OR-Mapper nun die optimale Datenzugriffsmöglichkeit darstellt kann man nicht sagen. Was heisst "optimal"? Jeder der Ansätze hat Vor- und Nachteile die man abwägen muss.

PS: Falls du es machst um zu lernen, würde ich Webforms in die Tonne packen und stattdessen MVC oder Wep-API Projekte verwenden. Das ist meiner Meinung nach zukunftsträchtiger.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.310

beantworten | zitieren | melden

Zitat von Sarc
PS: Falls du es machst um zu lernen, würde ich Webforms in die Tonne packen und stattdessen MVC oder Wep-API Projekte verwenden. Das ist meiner Meinung nach zukunftsträchtiger.
Jop. In der Tat. In ASP.NET 5 (vNext) gibt es kein WebForms mehr
private Nachricht | Beiträge des Benutzers
Palin
myCSharp.de - Member



Dabei seit:
Beiträge: 1.090

beantworten | zitieren | melden

Aktuell verwenden viele eine 3-Schichten-Architekur. Und im DAL wird oft das Repositore Pattern mit Unit Of Worke verwendet.
Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern
private Nachricht | Beiträge des Benutzers