Caveman Geschrieben 2. Oktober 2006 Melden Share Geschrieben 2. Oktober 2006 An unsere lieben Softwareentwickler hier im Forum, ich habe hier eine MS-Access Applikation herumliegen, die aufgrund ihrer Größe ziemlich an Performanceproblemen leiden fast nicht mehr wartbar ist (wen wundert's). Eine komplette Neupogrammierung wäre recht aufwendig. Gibt es irgendwo ein Tool (kennt jemand eines), welches mir zumindestens einen Großteil der Arbeit durch eine automatiche Konvertierung abnimmt? Gewünschtes Ziel wäre vorzugsweise C# .NET, VB .NET tuts auch, zur Not auch normales VB. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
GermanHeretic Geschrieben 2. Oktober 2006 Melden Share Geschrieben 2. Oktober 2006 Gehört habe ich von sowas noch nie was, also das zu ergoogeln könntest Du genauso machen wie ich. Aber es gibt ein Access einen Upgradewizard, der die DB auf einen SQL-Server schiebt und die Masken in Access beläßt, die greifen dann über Verknüpfungen auf den Server zu. Hab das einmal ausprobiert, lief aber nicht so prickelnd. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Caveman Geschrieben 2. Oktober 2006 Autor Melden Share Geschrieben 2. Oktober 2006 Access wird bei diesem Projekt nur als Frontend benutzt (örks), die DB ist schon auf einem MS-SQL-Server. Ich bin schon am googeln wie verrückt... Das einzige Tool, was das verspricht, gibbets nicht mehr, weil die Herstellerfirma wohl aufgehört hat zu exsistieren ("Evolution" von evolutionsoft.co.uk),. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
GermanHeretic Geschrieben 2. Oktober 2006 Melden Share Geschrieben 2. Oktober 2006 Access wird bei diesem Projekt nur als Frontend benutzt (örks), die DB ist schon auf einem MS-SQL-Server. Frage: Wodurch entsteht denn dann das Performanzproblem? Habt ihr die Views etwa unter Access statt auf dem Server definiert? Macht ihr gewisse Berechnung in Access-Makros? Die könnte man u.U. in stored procedures oder Trigger packen. Falls Du professionelle (d.h. bezahlte ) Hilfe brauchst, pn me... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Caveman Geschrieben 2. Oktober 2006 Autor Melden Share Geschrieben 2. Oktober 2006 Die Anwendung ist auf ca. 15 Clients installiert, die alle gleichzeitig auf die DB zugreifen. Sie dient hauptsächlich dazu, anhand einer PLZ- und Adresseingabe bestimmte Spediteurre/Zulieferer herauszusuchen. Wenn man will, kann man sich die Applikation als eine Software für ein Postverteilungszentrum vorstellen. Ca 10.000-30.000 Items werden so pro Tag verarbeitet, für jedes Item wird ein Datensatz in eine bestimmte Tabelle geschrieben. In der DB ist u.a. ein gesamtes Strassenverzeichnis von komplett Deutschland hinterlegt. Bei Einabe der PLZ und Adresse wird hier gesucht. Es scheint so zu sein, dass Access sich erst die gesammte Tabelle vom SQL-Server lutscht und erst dann auf dem Client den richtigen Datensatz herausfischt. Man hat diese Tabelle schon in 10 einzelne aufgeteilt (nach PLZ-Gebiet), um den Traffic zu minimieren und die Performance zu erhöhen. Jetzt braucht die Applikation "nur" noch 3-5 Sekunden, um den entsprechenden Eintrag zu finden... Das andere ist die Zieltabelle, in der alles hineingeschrieben wird. Wie gesagt, pro Tag kommen da 10.000-30.000 Einträge hinzu. Am Ende des Tages wird ein Report über die erfassten Items gemacht. Hat die Tabelle mehr als 2,5 Mio Einträge, legt sich Access auf den Bauch (vermutlich aus dem selben Problem: Er lutscht sich alles erst einmal rein, auch die alten Datensätze und selektiert erst dann). Ich darf regelmässig Hand anlegen... Ich kann die Applikation durchaus noch optimieren, aber der Kunde hat die Nase voll und will eine neue haben. Problem: Die neue Software müsste die alte von einem Tag auf den anderen ablösen und alle Features der alten zu 100% beherrschen. Was bei einer Neuentwicklung kaum zu schaffen ist (jedenfalls nicht nach den Bedingungen des Kunden, aber egal). Ein weiteres Problem ist, dass die Applikation kaum noch wartbar ist. Jedesmal, wenn ich an einem Modul etwas ändere, fliegt ein anderes auf die Nase, Referenzenen und Modulverkknüpfungen gehen koppheister. Für 1 Stunde Korrektur brauche ich 3 weitere, um die Applikation wieder zum laufen zu kriegen. Das Ding scheint für Access langsam zu groß zu sein??? Mein Ansatz wäre nun gewesen, die Applikation zu portieren und dann weiterzumachen. Teile davon habe ich schon manuell nach C# (C# ist Kundenvorgabe) konvertiert (und die sind rasend schnell), aber das ist mühselig. Vor allem das Nachbilden der Access-Forms bereitet eine Unmenge Aufwand. Sonst wäre noch ein Ansatz, das Front-End stehen zu lassen und die interne Verarbeitungslogik auf C# umzustellen. Habe zur Zeit nur keine Peilung, wie ich C#-Module aus Access heraus aufrufen könnte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
GermanHeretic Geschrieben 3. Oktober 2006 Melden Share Geschrieben 3. Oktober 2006 Muß die Anwendung denn eine Tabelle scannen, die über die Logik einer SQL-Abfrage hinausgeht? Das könnte man serverseitig in eine stored procedure packen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Lutheraner Geschrieben 7. Oktober 2006 Melden Share Geschrieben 7. Oktober 2006 (bearbeitet) An unsere lieben Softwareentwickler hier im Forum, ich habe hier eine MS-Access Applikation herumliegen, die aufgrund ihrer Größe ziemlich an Performanceproblemen leiden fast nicht mehr wartbar ist (wen wundert's). Eine komplette Neupogrammierung wäre recht aufwendig. Gibt es irgendwo ein Tool (kennt jemand eines), welches mir zumindestens einen Großteil der Arbeit durch eine automatiche Konvertierung abnimmt? Gewünschtes Ziel wäre vorzugsweise C# .NET, VB .NET tuts auch, zur Not auch normales VB. Eine Konvertierung in eine andere Programmiersprache (falls das in dem Fall möglich wäre, was ich stark bezweifle) würde dir nicht weiterhelfen, da unwartbarer Code dadurch natürlich nicht besser wird. Um eine Neuentwicklung werdet ihr nicht herumkommen. Man kann Software von einem Tag auf den anderen durch eine komplette Neuentwicklung ablösen (habe das kürzlich auch bei einem größeren System gemacht, mit mehreren Mannjahren Entwicklungszeit und im Durchschnitt über 1000 gleichzeitig eingeloggten Usern). Wenn euer Kunde sowieso schon dazu bereit ist (das ist meist die größte Hürde), dann sollte wirklich nichts mehr dagegen sprechen - vor allem da eure Datenmengen für Access viel zu groß sind. bearbeitet 7. Oktober 2006 von Lutheraner Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Caveman Geschrieben 7. Oktober 2006 Autor Melden Share Geschrieben 7. Oktober 2006 Die schwierige Wartbarkeit liegt weniger am schlechten Code (der ist ganz ok) sondern daran, dass Access selbst Zicken macht (verliert Referenzen, usw) und das die Performance von VBA alles in allem nicht dolle ist. Ich habe längst angefangen, eine Nachfolgesoftware zu schreiben, das Problem ist nur, dass der Kunde möchte, dass die Nachfolgesoftware auf einen Schlag die alte zu 100% in voller Funktionsfähigkeit und Umfang abdecken soll. Null Fehlertoleranz. Bei einem ganzen Entwicklerteam mag das ja gehen, aber in diesem Fall bin ich Einzelkämpfer. Zumal die Testmöglichkeiten alles andere als optimal sind. Und bei jedem Finden eines Fehlers brechen die den Test ab und ich kann von vorne anfangen. Das geht jetzt schon seit 9 Monaten so (zumal ich produktionsbedingt nur 2 x Mal die Woche 1 x am Tag testen kann). Ich habe jetzt angefangen, mein Datenmodell an das Datenmodell der alten SW anzupassen. Inzwischen habe ich herausgefunden, wie ich .NET Module von Access aus aufrufen kann. Damit werde ich jetzt die alte Software Stück für Stück durch die neue ersetzen, statt brachial auf einen Schlag... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.