Laden...

Direkter Zugriff auf MySQL

Erstellt von ec-hasslau.de vor 18 Jahren Letzter Beitrag vor 18 Jahren 14.853 Views
ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren
Direkter Zugriff auf MySQL

Hi!

Gibt es eine Möglichkeit auf eine MySQL-Datenbank zuzugreifen ohne ODBC zu verwenden?

Gruß...

2.223 Beiträge seit 2005
vor 18 Jahren

OLEDB
mysql object

mfg

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Hmm, danke ... aber hättest du mal noch ein Tutorial oder sowas?

D
155 Beiträge seit 2005
vor 18 Jahren

Die beste Möglichkeit ist natürlich wenn du direkt die .NET Klassen von MySQL nimmst:

http://dev.mysql.com/downloads/connector/net/1.0.html
[Datum 9.1.2006]

Dann hast du die optimale Performance, keine Probleme mit Datentypen, etc.

Du musst nur in deiner IDE die entsprechende DLL einbinden (ist eine .NET DLL keine COM DLL).
Bei Bedarf: Kannst auch noch selber die MySQL Klassen erweitern (sind ja Open Source).

Generell solltest du aber mit dem Angebot auskommen.
Schade finde ich nur dass MySQL keinen ConnectionstringBuilder mitbringt und man sich den selber bauen muss.
Ich habe mir für MySQL, Oracle, SQL Server 2000 und MS Access eine eigene Connectionstringbuilder DLL zusammengebaut und gebe die auch gerne weiter (Kostenlos und kompletter Code natürlich [christiandernehl@web.de mailen]).
Aber ich denke das schweift jetzt doch zu stark von Thema ab.

Also in der Hilfe von MySQL findest du auch noch zum Connector viele Infos. Weiterhin kann ich die Helper Klasse im Namespace empfehlen, die macht die ADO.NET Programmierung noch einfacher!

Gruß Christian

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Hmmm, das ist aber schon wieder doof. Ich wollte eigentlich ein Prog schreiben, dass nicht irgendwelche Extra-Sachen braucht - quasi ohne Installation auskommt.
Diese OleDB-Klasse ist doch schon im .NET Framework enthalten - reicht die net?

D
155 Beiträge seit 2005
vor 18 Jahren

Natürlich reicht die, aber wieso nimmst du dann überhaupt .NET? Ich meine es gibt -zig Nutzer die haben nicht das Framework. Das müsstest ja auch installieren. Ab besten gehts dann eigentlich mit Assembler?

Ne mal echt. Du brauchst ja keine Xtra Sachen, weil du C# Source Files runterlädst! Du packst nur ein paar Dateien mehr in deine Exe oder DLL was auch immer und dann ist gut. Da brauchste kein COM oder ne externe DLL.

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Ist ja gut, ganz ruhig! Ich dachte nur das läuft so wie bei VB, dass man die dll dann per Installation auf den Rechner bekommt! Das find ich aber nicht unbedingt vorteilhaft...

Wenn das normale Framework recith, warum soll ich dann noch die andere DLL laden? Außerdem wollte ich ja nur eine Anleitung für das OleDB.

D
155 Beiträge seit 2005
vor 18 Jahren

Warum du eine 2te DLL laden solltest?

  1. Damit du kein Probleme hast an denen du Tage verbringst nur um herauszufinden, dass du eventuell mit dem CommandBuilder keine Parameter aus einer gespeicherten Abfrage ableiten kannst?

  2. Ergibt sich aus 1: Damit du nicht das ganze SQL selber eingeben musst?

  3. Damit du kein Konvertierungsprobleme in .NET hast?

  4. Damit der Datenbankzugriff schneller geht?

  5. Damit der Kunde auch (eventuel) eine andere Version von MySQL in der Zukunft nehmen kann (z.B. 5.1) ohne dass du alles umprogrammieren musst?

Ich denke es gibt weitere Gründe.

Dann meine Frage: Wieso nimmst du dann nicht ODBC? Ich meine so musst du ja auch erstmal einen OLEDB Driver für MySQL laden. Das gibt wahrscheinlich mehr Probleme als den Connector zu verwenden.

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Ja, gut... weiß ja nicht wirklich was OleDB ist...
Ich hätte wahrscheinlich als primäre Frage stellen sollen: Wie kann ich zu MySQL verbinden ohne Treiber zu installieren?
Das wäre wahrscheinlich eindeutiger...

D
155 Beiträge seit 2005
vor 18 Jahren

Ok.

Das macht die Lösung einfach.
Nehme den Link von mir. Haste schon reingeschaut?
Es wird nur ein Verzeichnis angelegt mir C# Source Files und der kompilierten DLL.
Du kannst alle Dateien auch einfach in dein Projekt einbinden.
Du brauchst so keinen Treiber (aber einen MySQL Server natürlich).

1.274 Beiträge seit 2005
vor 18 Jahren

Druid: Ab besten gehts dann eigentlich mit Assembler?

😉

Das ist ziemlich Sinnlos, 2 Millionen mal ein Register hin und herschieben und du hast die Verbindung zur Datenbank aufgebaut. Dafür braucht man eine höhere Sprache, die den Entwicklungsprozess unterstützen.

"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

D
155 Beiträge seit 2005
vor 18 Jahren

Ist aber performanter 😉

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Hmmm, das Einbinden funktioniert... Alles prima, danke!

Was muss ich machen, damit das in der EXE-Datei mit inbegriffen ist und nicht einzeln mit in dem Ordner liegt?

59 Beiträge seit 2005
vor 18 Jahren
Zusammenfassen von Assemblies

2b | !2b = 0xff

D
155 Beiträge seit 2005
vor 18 Jahren

Ok, aber leider ist dass nicht notwendig denn die DLL die ec-hasslau.de einbinden muss liegt als SOURCE vor.

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Stimmt, hätte ich auch selbst frauf kommen können... Ich Dummi!

Aber mal was anderes: Was ist der Unterschied zwischen der für Net 1.0, 1.1 und 2.0?

S
1.047 Beiträge seit 2005
vor 18 Jahren

_Original von ec-hasslau.de_Aber mal was anderes: Was ist der Unterschied zwischen der für Net 1.0, 1.1 und 2.0?

Ich nehme mal an nur das sie kompatibel mit der entsprechenden Version von dotnet sind...

In 1.1 sind gegenüber 1.0 ja gewisse Änderungen an diversen Klassen aufgetreten, die sich eventuell auch im ADO.NET Provider wiederspiegeln... das Gleiche nochmal von 1.1 zu 2.0, wo es ja erhebliche Änderungen gab...

Nehm einfach den Provider der zu deiner .Net Version paßt 🙂

Ansonsten readme's lesen 😉

D
155 Beiträge seit 2005
vor 18 Jahren

Nein er mein das .NET Framework 1.0, 1.1 und 2.0, denn die Klassen vom MySQL laufen für alle .NET 1.0+

S
1.047 Beiträge seit 2005
vor 18 Jahren

dann hat er seine frage aber falsch formuliert 😉

hm... macht es denn keinen sinn für jedes .net ne eigene version des ado-net providers zu schreiben zwecks kompatibilität und nutzung neuer technologien z.b.?

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Nein, sheitman hat mich schon richtig verstanden...

Woher weiß ich welche .NET Version mein Programm braucht? Ich hab bei mir sowohl 1.1 als auch 2.0 installiert...

S
1.047 Beiträge seit 2005
vor 18 Jahren

ich nehm mal an du benutzt #develop... leider kenn ich das nicht aber es wird wohl irgendwo eine einstellung geben welchen compiler du benutzen willst... wenn da 1.1 aktiviert ist läufts glaub ich auf 1.1 und auf 2.0, wenn es auf 2.0 steht dann nur mit 2.0

den provider für mysql nimmst du dann entsprechend dem, was du für dotnet-version verwendest...

nachtrag:
interessant für dich wäre vielleicht auch
http://community.sharpdevelop.net/forums/thread/3708.aspx

welche #develop-version benutzt du denn?

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Gut... das funzt soweit! Das dumme ist bloß: meine MySQL-Datenbank kann nur von localhost aus bedient werden, sprich mit phpMyAdmin oder Website... schade.

Mal was Grundsätzliches - meine Ziele hinter der ganzen Fragerei:
Ich versuch ein Programm zu schreiben, was das umständliche Suchen und Installieren der Treiber eines PCs umgeht und eben auf eine DB zugreift und sich dort die DownloadAdresse lädt und daraus dann die neuesten Treiber installiert...
Soweit, sogut, das Programm läuft mittlerweile gut (halt nur noch AnfangsStadium - https://sourceforge.net/projects/driverupdater), aber es gibt keine DB, die meine Anforderung erfüllt (zumindest noch keine gefunden).
Ich würde mich über rege Mitarbeit eurerseits freuen... 😁

S
1.047 Beiträge seit 2005
vor 18 Jahren

wie war denn die anforderung?

eine datenbank ohne datenbankserver? das würde ja zu dateibasierter datenbank führen.
als möglichkeit würde da access datenbanken bestehen, sowie firebird oder sqlite gibts auch noch.

bei firebird und sqlite mußt du nichts installieren, du hast 1 oder 2 dateien die du in dein projekt einbindest und die dir den zugriff auf die datenbankdateien ermöglichen.
vor kurzem gab es schonmal so ein thema zu solchen datenbanken, da kam auch vistadb ins gespräch. vielleicht hilft dir eine kleine forensuche weiter =)

D
155 Beiträge seit 2005
vor 18 Jahren

Übrigens darfst du ja nicht das Programm dann kommerziell verteilen wenn du MySQL oder den MySQL Connector verwendest (dann musst du eine Lizenz kaufen)

Ja, tendiere zu Firebird. 😉

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Mein Anforderungen waren erst einmal eine Datenbank zu finden, die..1.Frei zugänglich (per Programm) 1.Kostenlos nutzbar 1.Relativ aktuell ist 1.mit HardwareIDs arbeitet (welche jede Hardware angibt) 1....

Auf den Webseiten fand ich nie Informationen zu 1, von daher schon gescheitert - einen Betreiber hab ich angeschrieben hat aber nicht reagiert!

Die Variante es selbst auf die Beine zu stellen macht das alles um einiges komplizierter und (zeit-)aufwendiger:1.Selber pflegen 1.Server finden 1.Support 1.usw.

Mir wäre es immer noch am Liebsten, wenn ich eine DB finde...

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Wenn ich das Prog bei SourceForge reinstell hatte ich nicht vor es komerziell zu vertreiben (ich überleg aber noch zwischen OpenSource und Freeware)... Außerdem gibt es genug komerzielle Alternativen gegen die ich halt ein Gegenprodukt bieten wollte - ist ja vom Programmieraufwand auch nicht so riesig!

S
1.047 Beiträge seit 2005
vor 18 Jahren

hm...

nochmal zu dem programm... soll das eine winforms-anwendung sein oder eine asp.net anwendung im internet?

das mit der hardware-id versteh ich nicht, was hat das mit der db zu tun?
ich nehme mal an über die hardware-id möchtest du die geräte identifizieren und danach dann die treiber auswählen... aber die db ist nicht dafür da diese ids auszulesen, das macht dein programm. das abspeichern erfolgt dann in der db z.b. als string.

wenn du eine winforms-anwendung machst, soll dann die db irgendwo zentral abgelegt sein oder immer beim programm?

Selber pflegen

Server finden

Support

usw.

punkt 2 und 3 versteh ich gerade nicht... gehts hier nur um die entwicklung, also platz und verwaltung der sourcen oder um das produkt?

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Also:1.das Prog sucht die aktuell installierten Geräte mit entsprechender Treiber-Version 1.connecten zur Datenbank im Inet 1.neueste Treiberversion zu verwendeten Geräten suchen 1.wenn neuer als selbst verwendete --> herunterladen und installieren

Der Beweggrund: Mir ist es einfach zu dumm selbst nach neuen Treibern zu suchen - gibt bestimmt genug Leute die das auch so sehen.
Man muss doch eine Verbindung zwischen den ganzen TreiberSeiten im Netz und dem Anwender knüpfen können.

Zur TreiberID:
Ja, das ist halt eine Kennung welche für die Erkennung von Hardware ist. Diese gibt auch in gewisser Weise die Kompatibilät zu anderen Treibern an...
Beispiel - meine ATI Radeon 9700 Mobility:
PCI\VEN_1002&DEV_4E50&SUBSYS_2032161F&REV_00
PCI\VEN_1002&DEV_4E50&SUBSYS_2032161F
PCI\VEN_1002&DEV_4E50&CC_030000
PCI\VEN_1002&DEV_4E50&CC_0300

Die zweite Aufzählung ging um die eigene DB. Die muss ja immer wieder mit den neuesten Treibern gefüttert werden, in Ordnung gehalten werden und einen Server zu finden der mir relativ kostengünstig sowas zur Verfügung stellt (ich rechne mal mit steigender Beliebtheit) ist halt das Prob...

S
1.047 Beiträge seit 2005
vor 18 Jahren

ahja... also brauchst du im internet eine datenbank... hm... würde da sich nicht ein webservice anbieten, auf den du von deinem programm aus zugreifts und deine abfragen machst?

lokal hättest du dann ja garkeine datenbank, sondern nur eben ein programm was den rechner ausliest, mit dem webservice kommuniziert und sich die dateien besorgt

ja, da nen anständigen webspace zu finden ist sicher nicht einfach, aber schau mal hier ASP.NET Webspace mit Rabatt für myCSharp.de Benutzer
weiß nur net wegen den webservices, ob das dort auch funktioniert...

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Hab ich jemals behauptet, dass ich eine lokale Datenbank brauch? Na, egal...
Was ist ein WebService?

D
155 Beiträge seit 2005
vor 18 Jahren

Ich kenne mich nicht mit Webservices aus, kann aber ungefähr sagen was die sind:

Webservices sind Dienste die vorallem das HTTP Protokol benutzen um über Netzwerke zwischen Applikationen Daten auszutauschen (denke ich).

Also es gibt da aber auch noch die Alternative ASP.NET würde ich sagen, denn es wird wohl schwierig werden (kostenlose) Entwicklungsumgebungen dafür zu finden.

Ich denke bei ASP.NET ist es da einfacherer.

S
1.047 Beiträge seit 2005
vor 18 Jahren

Nein hast du nicht... sagen wir mal so, durch deine Antworten ist mir erstmal klar geworden was du eigentlich suchst...

Gibt es eine Möglichkeit auf eine MySQL-Datenbank zuzugreifen ohne ODBC zu verwenden?

Das liese vermuten, ebenso die Diskussion Datenbank ohne Server -> Dateibasierte DB, das du eine Desktopaplikation bauen willst.
Denn wenn du mit Vernetzung arbeitest, brauchst du ja eine Art Server =)

Zum Thema Webservice verweise ich mal auf
http://de.wikipedia.org/wiki/Webservice

Ich erklär das mal an einem Beispiel:
Amazon.de bietet auch einen Webservie an, über den kannst du Informationen zu Büchern abrufen, z.B. Titel, Author, Beschreibung, Preise etc.

Du lädst dir vom web eine Datei herunter, eine XML Datei, die enthält die Webservicespezifikation.
Aus dieser Datei wird über ein Tool ein ProxyKlasse erstellt worüber du auf diesen Webservice ganz normal über Methoden zugreifen kannst.

Den Rest erledigt das .Net sozusagen 🙂

Du kannst dir dann z.B. ein kleines Programm schreiben was Informatione nzu Amazon.de-Einträgen anzeigen kann.

Das ist auch schon alles 🙂

ansonsten noch ein paar Links:
http://www.codeproject.com/soap/BeginnerWebService.asp
http://www.codeproject.com/cs/webservices/myservice.asp
http://www.aspheute.com/artikel/20021029.htm

oder einfach mal im Netz oder im Forum danach suchen.

S
1.047 Beiträge seit 2005
vor 18 Jahren

Original von Druid
Also es gibt da aber auch noch die Alternative ASP.NET würde ich sagen, denn es wird wohl schwierig werden (kostenlose) Entwicklungsumgebungen dafür zu finden.

Ich denke bei ASP.NET ist es da einfacherer.

Glaub das geht in dem Fall nicht, da er ja Daten vom Client brauch, die er programmatisch ermitteln möchte.
Er kann natürlich zusätzlich über eine ASP.NET Seite gewisse Informationen anbieten, bzw. die Verwaltung und Pflege der Datenbank darüber machen.

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Ich noch mal über das ganze Datenbank-Zeug nachgedacht:
Das ist mir viel zu aufwendig das alles selber in die DB einzupflegen - kann man das nicht irgendwie "öffentlich" machen, so wie bei freedb.org (das Projekt gefällt mir irgendwie).
Wie wird das dort eigentlich alles organisiert - da muss doch irgendwer dahinterstehen, der den Server hostet und die DB gelegentlich säubert und sowas - das muss sich ja auch irgendwie alles finanzieren.

Übrigens: Fürs erste hab ich festgestellt, das SourceForge eine MySQL-DB bereitstellt. Ich werde mal testen ob diese den Anforderungen entspricht...

S
1.047 Beiträge seit 2005
vor 18 Jahren

sicherlich kannst du sowas machen. mußt halt nur leute finden die sich dran beteiligen. finanzieren kann man das ja über spenden, werbung oder vielleicht findest du nen sponsor...

sicher das du mysql von sourceforge auch für dein produkt benutzen kannst/darfst?

du mußt dir auf jeden fall ein system suchen, worauf du dann vom pc aus drauf zugreifen kannst, denn du brauchst ja eine art client-server kommunikation, wobei darauf beschränkt das du nur daten hinsenden und abholen willst, keine dauerverbindung.

1.274 Beiträge seit 2005
vor 18 Jahren

Würde auch Webservice nehmen,

** Vorgang **

Hardware ID->Server

Server -> Datenbank (auf Server) ->Returnwerte ausserialisieren und dann an den Client zurückschicken.

Um ganz in dot.Net Welt bleiben zu könne brauchst du aber einen ASP.NET Server, wo dein Webservice liegt (sourceforge ist KEIN asp.net Server).

Wenn du direkt mit deinem Programm auf die Datenbank zugreifst dann ist die Serverplattform egal.

"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

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Wenn ich das richtig verstanden hab ist doch beispielsweise RSS auch ein Webservice oder? Zumindest steht bei Wikipedia, dass WebServices über XML laufen...
Muss ich das dann auch über XML laufen lassen?

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo zusammen,

ich versuche mal hier die Antwortgeber ein wenig zu unterstützen:

Also nochmal WebService erklärt (aus der Dummy-Sicht):

Das ist ein Ding, das durch eine WebAdresse (URL) ansprechbar ist. Ansprechen kann man das Ding, indem man Infos hinschickt, und das Ding gibt dann Antwort, indem es Infos wieder zurückschickt.

Also nochmal WebService erklärt (aus der Programmierer-Sicht):

WebService ist eine Internetanwendung, die es erlaubt verschiedene Methoden via HTTP und Soap auführen zu lassen. Hierbei ist es von Bedeutung, dass diese Methoden Rückgabewerte zurückliefern.
Um mit einem WebService kommunizieren zu können, muss vorher geklärt werden welche Methoden dieser bereitstellt, und welche Parameter und Rückgabewerte dieser dann erwartet/liefert. Das geschieht mit dem WSDL-Dokument. Dieses muss zunächst angefordert und analysiert werden, um dann anschließend entsprechend dessen Inhalt dann die genauen WebMethoden ausführen zu lassen.


Sowohl die Erstellung eines WS als auch der Zugriff ist mit Hilfe von VisualStudio ein Kinderspiel, da der Entwickler sich nicht um das WSDL Dokument kümmern braucht. Ebenfalls braucht man sich auf Clientseite um die Analyse nicht zu kümmern, das macht VS alles für einen.

Wenn man kein VS zur Verfügung hat, dann muss man selbst diese Dokumente erstellen, und auch analysieren, was mehr Arbeit bedeutet, aber nicht unheimlich schwer, da diese im XML Format vorliegen müssen.


Zum Thema AutomaticTreiber Download:
Ich würde genau diese Aussage :

Man muss doch eine Verbindung zwischen den ganzen TreiberSeiten im Netz und dem Anwender knüpfen können.

Noch sehr genau durch den Kopf gehen lassen, denn das ist fast unmöglich. Du wirst NIE einen vollständig automatisierbaren Vorgang produzieren können, der Deine Datenbank aktuell hält. Und alles selber einpflegen, ... Na dann Gute Nacht 😉

Ich denke Dein Vorhaben ist jetzt schon zum Scheitern verurteilt, sorry, das ist nicht böse gemeint.

Du solltest erst ein Mal ein Wenig Workflow Überlegungen anstreben, bevor Du an Codierungsprobleme gehst...

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Genau deswegen bin ich halt immer noc hauf der Suche nach einer bestehenden Datenbank - das ist einfach mit zu viel arbeit verbunden...

Aber warum soll die Automatisierung nicht möglich sein?
Ja, gut, das Einpflegen wird garantiert nicht automatisch gehen - ist mir klar - aber es gibt doch genug Treiberseiten, die bereits halbwegs aktuelle Dienste anbieten, warum soll das dann nicht in Vebindung mit einem Programm möglich sein - man muss halt bloß eine entsprechende Schnittstelle schaffen!
Es sollte doch wohl kein Problem darstellen in eine bestehende Präsenz so etwas einzubauen!

Hab nochmal überlegt:
Also, das mit den WebServices ist mir noch nicht ganz ans Herz gedrungen, hab aber eine andere Idee...
Wenn man ein PHP-Skript (oder halt auch ASP) was in der Art wie etwa RSS über neue Treiber informiert, dann könnte man das sowohl über eine Internetseite als auch in einem Programm verwenden, da XML ja plattformunabhängig ist.
Es sollte auch kein Problem darstellen an den Aufruf des RSS-Feeds die gewünschten HarwareIDs anzuhängen (mithilfe von QueryStrings).
Das ließe sich dann auch ganz leicht in dem Prog verwenden, weil man einfach die Feeds auf Neuigkeiten überprüfen muss. Das würde zwar "erst einmal" nur die Erkennung neuer Treiber sein, aber ist schon ersteinmal ein großer Batzen Arbeit - weiterhin vorhandens Problem: die fehlende DB.

Übrigens: Die Betreiber der Seite treiberupdate.de haben geantwortet und gemeint, dass sie mich im Moment nicht unterstützen können, aber vielleicht später. Naja, dann wenn alles rollt wollen sie mit aufspringen, super! Aber ich kann das schon ein wenig nachvollziehen, wenn ein irgendwer mit so einer Idee ankommt 😉

S
1.047 Beiträge seit 2005
vor 18 Jahren

_Original von ec-hasslau.de_Wenn man ein PHP-Skript (oder halt auch ASP) was in der Art wie etwa RSS über neue Treiber informiert, dann könnte man das sowohl über eine Internetseite als auch in einem Programm verwenden, da XML ja plattformunabhängig ist.
Es sollte auch kein Problem darstellen an den Aufruf des RSS-Feeds die gewünschten HarwareIDs anzuhängen (mithilfe von QueryStrings).
Das ließe sich dann auch ganz leicht in dem Prog verwenden, weil man einfach die Feeds auf Neuigkeiten überprüfen muss. Das würde zwar "erst einmal" nur die Erkennung neuer Treiber sein, aber ist schon ersteinmal ein großer Batzen Arbeit - weiterhin vorhandens Problem: die fehlende DB.

genau sowas macht ein webservice

du schickst eine anfrage hin und bekommst eine antwort
die kommunkiation zwischen dem programm und den webservice erfolgt über xml dokumente, d.h dein programm schickt ein xml-dokument hin wo die anfrage drin steht und der webservice schickt dann ein xml-dokument mit antwort zurück.

.net analysiert automatisch diese dokumente, also du hast damit überhaupt nichts mehr am hut

der webservice läuft auf irgendeinen server, z.b. auf einem iis mit asp.net
für eine nservice brauch man lediglich eine proxyklasse, die man sich aber über tolsl generieren lassen kann
diese bindest du ins programm ein und kannst sofort mit arbeiten.
hast du dir zumindest mal ein tutorial dazu angeschaut?

übrigens sind webservices i.d.r. sprachunabhängig, d.h. man könnte einen webservice mit php bauen und ihn mit einem .net client ansprechen...

ich hab gestern mal einen hellowowrld webservice ausprobiert

hier mal der code:
Service.cs (der Webservice)

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () {

        //Auskommentierung der folgenden Zeile bei Verwendung von Designkomponenten aufheben 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }
    
}

Service.asmx (darüber wird der webservice angesprochen)

<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>

das programm was den service benutzt

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            localhost.Service service = new ConsoleApplication1.localhost.Service();
            Console.WriteLine(service.HelloWorld());
            Console.ReadKey(); 
        }
    }
}

der webservice liegt in einen eigenen projeket und wurde über webreference zum programmprojekt hinzugefügt
daher der ordner bzw. namespace localhost
localhost.Service ist eine Proxyklasse um auf den Service zuzugreifen

btw

wenn die betreiber dieser seite einen webservice hätten worüber du die daten aus ihrer db abrufen könntest wäre das ja genau was du wolltest...

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Na dann ist ja alles klar... Werd mir dein Beispiel morgen oder später nochmal genau anschauen... Danke für deine Hilfe!

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Hmmm, hab mich mal bisschen eingelesen...
Ich konnte mich immer noch nicht ganz von den WebService überzeugen. Es gibt für mich irgendwie zwei Hauptargumente dagegen:1.Das ist alles nicht über eine Internetseite erreichbar (RSS oder Atom wäre das). 1.Das ist SOAP oder was man dann verwendet, wird eigentlich überall als "uneinfach" betitelt. Außerdem ist es mit mehr Aufwand verbunden als einen einfache HTTP-Anfrage (Bsp: http://www.irgendwas.de/driver.php?hardwareid=irgendwas)

Wenn man das tatsächlich mit RSS macht würde das ja dann auch eine XML zurückgeben, womit die Anbindung in das Programm ähnlich wäre...
Wenn ihr anderer Meinung seid - ich hab mich noch nicht entschieden!

Gruß, ec-hasslau.de

S
1.047 Beiträge seit 2005
vor 18 Jahren

hast du dir mal ein beispiel für einen webservice angeschaut?
ich glaube nicht...

zu 1
die ansteuerung erfolgt über eine proxyklasse, diese ruft ganz normal die webseite ab, mit ein paar parametern
ok, mit dem resultierenden xml-file kann dann nur dein programm was anfangen bzw. andere programme die deinen webservice benutzen
bei rss oder atom wäre das jeder newsreader...

zu 2
dein programm müßte das rss file auch nur parsen und in datenstrukturen umwandeln, das alles geschiet bei webservices automatisch im hintergrund

mag sein das die technik dahint nicht einfach ist, aber die anwendung unter .net ist es jedenfalls... siehe die links die ich schon mal gepostet habe

aber ich will dich hier nicht krampfhaft dazu überreden webservices zu benutzen...
wenn du meinst rss oder atom erfüllt deine zwecke dann benutz diese halt 🙂

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Hmmm, doch doch ich hab mir mal sowas angeschaut, aber ehrlich gesasgt hab ich es nicht genau verstanden. Bin erst seit ca 4. Monaten auf C#, vorher hatte ich VB6 und da läuft manches teilweise ganz schön anders...
Ich will dich ja auch nicht krampfhaft auf meine Seite ziehen, aber ich versuch dir mal meine Gedanken näher zu bringen:
1.Da ich ja auf der Suche nach einer bereits bestehenden DB bin, wollte ich die Schwelle, mein Projekt in ein schon vorhandes einzubinden so gering wie möglich halten. Einfach, dass die Überwindung nicht so groß fällt. 1.Wenn ich RSS nehm hat der DB-Anbieter auch noch etwas davon. Er kann seinen sonstigen Seitenbesuchern (die das Programm nicht verwenden wollen) einen Newsfeed, den sie auf ihre Hardware "zuschneiden" können. Das senkt die Hemmschwelle weiter. 1.SOAP oder was auch immer ist für meinen Zweck denk ich etwas überdimensioniert. Eigentlich brauch ich ja bloß als Rückgabewert die neueste Version und einen Link zum Download. Das ließe sich optimal mit der bestehenden RSS-Definition umsetzen. 1.PHP ist heutzutage auf so ziehmlich jedem WebSpace und garantiert auf einem, der Datenbanken ausgibt. Wie das mit ASP.NET aussieht weiß ich nicht genau, aber mit Sicherheit nicht so extrem ausgeprägt... 1.Zu guter letzt: Mit PHP kenn ich mich relativ gut aus und das bisschen RSS einbinden werde ich in C# auch noch hinbekommen.

S
1.047 Beiträge seit 2005
vor 18 Jahren

dann leg los 🙂

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Ich glaub ich muss aufhören bevor ich richtig angefangen hab...

Das läuft jetzt bei mir soweit lokal erstmal relativ, aber es wird wahrscheinlich daran scheitern, dass es keine existierende DB gibt, welche HardwareIDs verwendet (zumindest nix gefunden). 🤔

Deshalb sehe ich eingentlich nur 3 Möglichkeiten:1.Es findet sich eine DB... 😁

1.Das Projekt stilllegen! X( 1.Das ganze umzugestalten, dass das so als Art Community läuft, wo jmd sich den aktuellen Treiber draufmacht, dieser wird dann irgendwie den anderen bereitgestellt (P2P, Server oder was auch immer). Das ist natürlich mit viel, viel, viel mehr Aufwand und Zeit verbunden, was ich eigentlich in dem Umfang nicht hab.
...und außerdem geht mir da auch jetzt schon durch den Kopf: Wer will jemals kontrollieren, ob die Treiber nicht irgendwer gehackt hat und so Viren oder sonstiges einschleust.

Probleme, Probleme, Probleme, die ich eigentlich nicht haben will... 😉

D
155 Beiträge seit 2005
vor 18 Jahren

Außerdem darfst du ja nicht die Daten auf deinem Server anbieten. Ist ja Copyright

Du kannst aber eine Linksammlung machen.
Und dazu ein Forum für neue Treiber von der Community

ec-hasslau.de Themenstarter:in
69 Beiträge seit 2005
vor 18 Jahren

Wie nicht auf eigenem Server anbieten? Wie machen das die ganzen Download-Seiten?

D
155 Beiträge seit 2005
vor 18 Jahren

Die stellen einen Antrag. Ich kann mir nicht vorstellen das Treiber kein Copyright haben...

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo Druid,

in dem Sinne wie es 'ec-hasslau.de' betreiben möchte, ist es eventuell sogar legal (ich bin kein Jurist, deshalb unbedingt vorher prüfen).

Treiber sind ja eigentlich nur für eine bestimmte Hardware gedacht, und mit dem Kauf solcher Hardware hat man üblicherweise auch ein lebenslanges UpdateRecht der mit ausgelieferten Software. Zum Beispiel für Radeon Grafikkarten darf man sich immer den neusten Catalyst Treiber kostenfrei herunterladen.

Es gibt aber auch andere Hersteller, die wollen explizit NICHT, dass Updates auf anderen Systemen bereitgestellt wird (Microsoft und Windows-Updates zum Beispiel).

Grundsätzlich ist es aber so, dass hier ja nix verkauft, oder illegal vertrieben wird. Und 'ec-hasslau.de' würde ja eine unveränderte Originalfassung vom Hersteller anbieten, das denke ich, ist OK.

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”