Laden...

Web Services, Verbindung MS SQL

Erstellt von Andreas@Tricept vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.986 Views
A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 16 Jahren
Web Services, Verbindung MS SQL

Hallo,
zunächst will ich meine Situation erklären:

Ich habe eine MS SQL Datenbank 2005, welche im Internet gehostet wird.
Ich habe mir nun ein Windows Forms-Client erstellt werlcher auf diese SQL Datenbank zugreifen soll, da diese Datenbank aber durch externe Zugriffe geschützt ist muss ich wohl Web Services benutzen. Meine frage ist nun wie ich so eine Verbindung durch ein Webservice hinkriege und was muss ich da machen?

S
8.746 Beiträge seit 2005
vor 16 Jahren

Du findest bei MS diverse Webcasts zum Thema Webservices und wie man mehrschichtige Anwendungen erstellt. Auch Beispielanwendungen solltest du finden. Letztlich läuft das Ganze darauf hinaus, dass du einen sogenannten ApplicationServer bastelt, der die gesamte Business-Logik enthält und den Client via WebServices Funktionen wie GetCustomer() bereitstellt. Komme besser gar nicht erst auf die Idee, DataSets via Webservices durch die Gegend zu schaufeln.

Warum, steht hier:

http://www.theserverside.net/tt/articles/showarticle.tss?id=Top5WSMistakes

Das heisst nicht, dass es nicht möglich wäre, aber der Sinn von Webservices wird damit ad absurdum geführt. Wenn du aber die WS wirklich nur brauchst um eine Firewall zu überwinden, dann würde ich

  1. dem Kunden klar machen, dass die Weigerung ihres SysAdmins, deiner Anwendung direkten Zugang zum DB-Server zu gewähren, ihm Mehrkosten in fünfstelliger Höhe beschert (soviel wird dein AppServer sicher kosten wenn du es per Hand machst). Vermutlich ist dieser Ansatz aber sinnlos.

  2. eventuell doch DataSets schaufeln, mit dem Bewußtsein, dass diese WS ausschließlich mit .NET funzen

  3. Für Lösung 2 nach einem Codegenerator zu suchen, der dir den gesamten AppServer aus deinen DB-Anfragen generiert. Sollte es geben, auch wenn ich dir gerade keinen nennen kann.

A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 16 Jahren

Das es nur mit .Net funktioniert ist ok.
Aber ich habe noch keine Vorstellung wie ich soetwas realisiere.
Auf codeprojekt.com habe ich auch kein passendes Beispiel gefunden.

S
8.746 Beiträge seit 2005
vor 16 Jahren

MS, nicht Codeprojekt. Google doch mal nach WebCast in Kombination mit WebService. Und nimm dir ein paar Stunden Zeit für die Vorträge. Ist kein Thema, das man mal eben mit 10 Zeilen Code vorführt.

S
8.746 Beiträge seit 2005
vor 16 Jahren
A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 16 Jahren

Das Problem jedoch ist, dass ich keinen Endpunkt auf der Datenbank erstellen kann, da mir dafür die Rechte fehlen und diese Rechte zu bekommen nicht möglich ist.
Aber danke für Beiträge, wenn auch mein Problem nicht gelöst ist, hab ich was gelernt 🙂

A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 16 Jahren

Eine Beispielmethode:

public int UpdateRow(MyDataRow pRow)
{
         MyTableAdapter aAdapter = new MyTableAdapter();
         return aAdapter.Update(pRow);
}

Ich kann den Webservice nicht erstellen weil der mir sagt: "MyDataRow kann nicht serialisiert werden, weil dafür kein parameterloser Konstruktor verfügbar ist".

Warum muss denn hier etwas serialisierbar sein?
Und wie kann ich dieses Problem umgehen, oder muss ich für die Klasse MyDataRow zwangsweise einen sinnlosen parameterloser Konstruktor definieren?

A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 16 Jahren

Niemand einen Tip für mich?

1.274 Beiträge seit 2005
vor 16 Jahren

eine DataRow ist ein spezifischer Dot.net Typ, der nicht die Serialisierung unterstützt.
Wenn du es richtig machen möchtest dann musst du dir Business Objekt erzeugen und die übergeben.

Das ist auch das was im den Serverside.net Artikel von Svenson steht.

lg
LG.

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein

A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 16 Jahren

Was ist ein Business Object 🤔

Muss ich mich auf Serverside.net regestrieren um den Artikel lesen zu können?

1.274 Beiträge seit 2005
vor 16 Jahren

Ich nicht. Nach dem anklicken von dem Link öffnet er die Seite mit dem Content.

Bezüglich den Buisness Objekten schau dir mal Contract Frist an

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein