Front-End dla MS Access migration? [zamknięte]

Tło

Pracuję dla dużej organizacji, która ma tysiące aplikacji MS Access. Nie napisałem żadnego z nich - w rzeczywistości większość oryginalnych autorów już dawno opuściła firmę - ale od czasu do czasu inna aplikacja dostępowa ląduje na moim biurku w celu wsparcia. Chciałbym zastąpić access innym rozwiązaniem.

Wymaganie

Wiem, że istnieje kilka dobrych alternatyw dla części bazy danych MS Access (baza danych Jet), takich jak SQLite, MySQL, VistaDB itp.

Chciałbym się dowiedzieć, czy jest coś, co zastąpi front endową Część MS Access?

Czyli coś, co można wykorzystać do budowania formularzy, pisania prostych skryptów i zapytań itp.?

Dlaczego?

@BracC zapytał " po co zastępować access?"- W rzeczy samej uczciwe pytanie.
Chcę się pozbyć dostępu, ponieważ:

  • ukrywa logikę, co prowadzi do trudnych do obsługi aplikacji. Logika może być w wielu różnych miejscach, z których żadne nie zapewnia ani nie zachęca do jakiejkolwiek struktury:
    • makra
    • Moduły
    • queries
    • formularze
  • [20]}sama jego natura zachęca użytkowników do tworzenia "małych" aplikacji, które stają się"nie tak małymi aplikacjami". Następnie użytkownik odchodzi I muszę wspierać kilka spaghetti. Wiem, że access nie jest jedynym winowajcą, ale jest liderem w mojej organizacji i chciałbym się go całkowicie pozbyć.

Za dodatkowy kredyt

To, co chciałbym naprawdę chciałbym znaleźć to coś, co może odczytać w pliku MDB i wypisać coś takiego jak C#, które replikuje funkcjonalność. (Lub jakikolwiek język-nie wybredny).

Mam nadzieję, że wszystko jasne. Jeśli nie, napisz komentarz, a ja przepiszę / dodam szczegóły.

Update

@GuinnessFan ma kilka uwag, które uważam za interesujące. Dodałem swoje uwagi, aby omówić te kwestie.

What we have done ponieważ zadałem pytanie:

  • użytkownicy dali nam ostateczną listę aplikacji dostępowych, których używają i potrzebują. (Rozumie się, że wszelkie pliki MDB nie na liście mogą zostać usunięte-hurra!).
  • przeanalizował MDB na liście, dochodząc do następujących wniosków:
    • większość "aplikacji" składa się z pojedynczego zakodowanego zapytania lub pojedynczej połączonej tabeli.
    • Wiele to niewielka liczba zapytań z, Być może, parametrem daty lub podobnym.
    • bardzo niewielu (jeśli w ogóle) ma prawdziwie złożoną logikę.
  • obecnie pracujemy nad listą, konwertując większość aplikacji na pakiety SSRS (SQL Server Reporting Services).
  • Wszystko, czego nie da się odtworzyć za pomocą SSR, stanie się ręcznie tworzoną aplikacją internetową. Jednak nie ma ich wielu.

Chciałbym bardzo podziękować, za everybody który dał mi pomocne odpowiedzi.

Author: Uwe Keim, 2008-10-21

11 answers

Możesz sprawdzić aplikację Oracle Express . Jest bezpłatny i jest skierowany do deweloperów dostępu.

Posiada również Asystenta migracji, przez który uruchamiasz bazę danych Access, przetwarza Dane i formularze, migruje wszystko do bazy danych Oracle (działa to z bezpłatną bazą danych Oracle XE i jest instalowane domyślnie) i buduje formularze internetowe dla bazy danych Access.

Więc w końcu będziesz miał dostęp do baz danych w sieci, Twoje dane w Oracle i nieco ładny front end web do ich rozszerzenia.

Jeśli chodzi o Oracle, narzędzie nie jest takie złe. Możesz zapisać się na darmową instancję, aby bawić się tutaj.

Oto dokument, który wyjaśnia, w jaki sposób migrujesz bazy danych Access.

 5
Author: mwilliams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-21 14:21:17

Kilka lat temu zmieniłem back-end jednej aplikacji z MSacces na MSSQL. Trzymałem front-end, ponieważ działał dobrze, a ja nie znalazłem nic tak łatwego w użyciu/modyfikacji.

Nigdy nie widziałem MSAccess -> C# translator. Można jednak znaleźć MSAccess do tłumacza VB6 (ich składnia jest z grubsza podobna), a stamtąd są VB6 - >VB.Net Tłumacze (a nawet VB.Net ->Tłumacze C#)

 6
Author: James Curran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-21 14:12:36

Więc, poza osobistym niesmakiem, po co wymieniać front-end Access? Może to być łatwe do zrobienia dla niektórych (prostych) baz danych, ale większość aplikacji dostępowych w świecie rzeczywistym ma wiele złożoności.

Wiele powodów do aktualizacji back-endu, oczywiście (skalowalność, wydajność, korupcja db, blokowanie użytkownika). Access ma nawet wbudowane narzędzie "Kreator aktualizacji", które pozwala podzielić formularze i logikę z danych i uaktualnić dane do MS SQL server. Jeśli chcesz, Użyj tego kreatora, aby uaktualnić back-end do SQL Express, a następnie ręcznie migrować do innej platformy db.

Mam nadzieję, że nie jest to zbyt daleko od tematu, ale czasami wszystko, co musisz zrobić z dostępem, To:

  1. Uaktualnij back-end (jak już omówiliśmy)

  2. Zawsze upewnij się, że front-endy są zablokowane (tylko do odczytu)

  3. W razie potrzeby utwórz różne interfejsy dla różnych ról użytkowników (jako formę bezpieczeństwa).

  4. Jeśli to możliwe, skopiuj front-endy lokalnie na każdej stacji roboczej, ze względu na wydajność. Może być konieczne posiadanie skryptu sieciowego, aby sprawdzić nowe wersje front-endu.

Nie mam z tym bezpośredniego doświadczenia, ale znalazłem dostęp do ASP.Net narzędzie konwertera o nazwie "access Whiz" at http://www.microtools.us/

 5
Author: BradC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-21 14:54:27

Użyliśmy wewnętrznej aplikacji opartej na MS Access jako nakładki do bazy danych MySQL. Napotkaliśmy wiele problemów i ostatecznie przepisaliśmy całą aplikację w CodeGear Delphi 2007 dla Win32 . To był wielki sukces, chociaż migracja kosztowała sporo wysiłku (szkolenie/Zatrudnienie kilku programistów Delphi, zakup narzędzi innych firm). Z całego serca mogę jednak polecić Delphi. A AFAIK, integracja z back-endem MS Access jest z pewnością możliwa - - - I kiedyś napisałem aplikację Delphi, która właśnie to robi i kosztowało mnie tylko kilka dni, aby uzyskać pełną wersję funkcji!

Zdaję sobie sprawę, że jest to pełne rozwiązanie programistyczne, więc zdecydowanie stracisz trochę łatwości użycia MS Access do budowania front-endów. Z drugiej strony, możesz złożyć aplikację bazodanową w Delphi w 10 minut bez pisania zbyt dużo kodu - - - nie żartuj! A od wydania z 2009 roku, język powoli staje się coraz bardziej mainstreamowy...

 5
Author: onnodb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:45

@BradC

Nie polecam MicroTools. Pracowałem w firmie, gdzie mieliśmy ten sam problem. O ile MicroTools nie wprowadził znaczących ulepszeń w swoim produkcie, wypluwa śmieci ostatnio, gdy sprawdzałem.

Okazało się, że praktycznie każda ścieżka aktualizacji będzie wymagała znacznych ilości zmian w kodowaniu. Wszystkie te narzędzia są dobre dla jest utrzymanie podobnego GUI z oryginalnej aplikacji. Ich kod nie miał struktury obiektowej, tylko kilka użytecznych funkcje, które zostały rzucone na każdej stronie, aby symulować sposób dostępu zapewnia nawigację rekordów. Jeśli masz dużą liczbę formularzy, wyciągnięcie ich rozwiązania i wdrożenie własnego wymaga trochę pracy i mnóstwa operacji znajdź i zamień.

Byliśmy tak rozczarowani wydajnością MicroTools, że zaczęliśmy pisać własny konwerter. Wypompowywaliśmy się lepiej ASP.NET formularze niż po tygodniu kodowania.

 4
Author: Jason Z,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-21 15:01:22

Nie znajdziesz silnika klasy serwerowej , który ma również dołączone narzędzia do projektowania interfejsu pulpitu. Duże silniki serwerowe oczekują, że do budowy interfejsu użyjesz czegoś takiego jak C++, C#, Java lub PHP.

Ja też chciałbym zobaczyć narzędzie do aktualizacji dostępu, które wypluwa podstawowe formularze C# i rozmawia z równoważną bazą danych SQL Server. Wydaje się, że byłby to duży zarobek dla Microsoftu, ponieważ mogliby go wykorzystać jako sposób na sprzedaż klientów do pełnego SQL Server.

IIRC, może być sposób, aby powiedzieć front-end dostęp do rozmowy z serwerem SQL, lub zmienić tabele używane przez front-end dostęp naprawdę być połączone tabele w SQL Server, lub coś w tym stylu, ale nigdy nie musiałem korzystać z funkcji sam.

 3
Author: Joel Coehoorn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-21 14:12:06

Mam dla Ciebie inną perspektywę do rozważenia. Twoim głównym problemem jest to, że ukrywa logikę, a Dane i aplikacje są rozproszone po organizacji.

Niestety nie znam narzędzia RAD (rapid application development), które jest tak łatwe, jak dostęp do tworzenia funkcjonalnych formularzy.

Zalecałbym jednak, abyś skupił się bardziej na możliwości centrowania danych i logiki i nadal zezwalał na dostęp jako front end. Obsługuję produkt bazodanowy o nazwie Advantage Database Server obsługujący reguły ri (refferential integrity), procedury składowane, wyzwalacze itp. to wszystko może być zarządzane na serwerze centeral w ten sposób przynosząc całą logikę do ciebie. Te interfejsy dostępu mogą następnie połączyć się z backendem danych za pomocą ODBC lub OLEDB. Jeśli przełączysz się na takie rozwiązanie, to później będziesz miał elastyczność pisania innych aplikacji, takich jak.NET, PHP, JDBC itp. które wiążą się z tymi samymi danymi podczas fazowania dostępu.

Dobrym początkiem byłoby wstrzymanie rozwoju nowego dostępu, chyba że używają tego rodzaju backendu danych.

 3
Author: Joshery,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-21 19:52:20

Z 1000 Plików dostępu, ile z nich zostało poproszonych o wsparcie? Zgaduję, że mniej niż 100. Po co przebudowywać aplikację, której A) nikt nie używa B) działa dobrze tak jak jest?

Musisz rozpocząć politykę, że akceptowalną praktyką dla dużej organizacji jest tworzenie niestandardowych aplikacji w solidnym, skalowalnym, niezawodnym środowisku yadda yadda yadda yadda. Zidentyfikuj aplikacje dostępowe, które uważasz za krytyczne lub które są wyrosłe, i po prostu pracuj nad nimi.

Be przygotowani do obsługi oczekiwania na szybkie i brudne małe aplikacje na szybki zwrot. Będziesz musiał pokazać im zalety nowych aplikacji.

Myślę, że po prostu trzeba być ekspertem rezydenta i nauczyć tych użytkowników, jak poprawić swoją aplikację lub uzyskać swój wkład od początku, aby rozpocząć je dobrze. W przeciwnym razie wymagania dotyczące konwersji wszystkich tych plików byłyby przytłaczające.

 3
Author: JeffO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-03 03:53:39

Microtools oferuje access Whiz, zestaw narzędzi do konwersji dostępu. Składa się z dostępu do konwerterów ASP. net (VB/C#), dostępu do konwertera VB6, dostępu do konwerterów WinForms (VB.Net/C#) oraz dostępu do konwertera Crystal Reports. Więcej informacji i demo wersji próbnych można znaleźć na stronie http://www.microtools.us .

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-19 08:28:40

Możesz również spojrzeć na Firebird

Oto sposób na migrację (potrzebujesz Delphi)

Znajduję również to MDB2FDB

 1
Author: Hugues Van Landeghem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-27 19:20:28

Czy jest coś, co zastąpi przednią część MS Access?

Może Kexi ?

 0
Author: matma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-21 14:13:59