Jump to content
Sign in to follow this  
Caveman

An unsere SW-Entwickler: Tool gesucht

Recommended Posts

Caveman

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.

Share this post


Link to post
Share on other sites
GermanHeretic

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.

Share this post


Link to post
Share on other sites
Caveman

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),. :huh:

Share this post


Link to post
Share on other sites
GermanHeretic
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 :huh: ) Hilfe brauchst, pn me...

Share this post


Link to post
Share on other sites
Caveman

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... :lol:

 

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... :huh:

 

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.

Share this post


Link to post
Share on other sites
GermanHeretic

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.

Share this post


Link to post
Share on other sites
Lutheraner
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.

Edited by Lutheraner

Share this post


Link to post
Share on other sites
Caveman

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...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×