Konwersja bazy danych 1.6 do wersji Web Platform

Dzisiejszy artykuł przeznaczony jest dla użytkowników poprzedniej wersji programu, czyli programu Bibliotekarz.NET 1.6. W przypadku gdy chcemy przenieść księgozbiór do nowego programu, niezbędna będzie operacja konwersji bazy ze starego formatu, do nowego. Teoretycznie nowy Bibliotekarz mógłby korzystać ze starej bazy danych, ale ze względu na ograniczenia dotyczące wielodostępu do baz Microsoft Access, nie byłoby to rozsądnym rozwiązaniem.

Operacja konwersji bazy jest czynnością jednorazową i jednokierunkową. Oznacza to, że wykonuje się ją tylko raz i od tego momentu należy użytkować program w nowej wersji. Oczywiście nie wyklucza to możliwości wykonania konwersji kilka razy (nadpisując nową bazę danych), ale należy pamiętać, że konwersja w drugą stronę jest niemożliwa. Jeżeli dokonamy konwersji i zaczniemy pracę z nowym systemem, to nie ma już odwrotu – powrót do wersji 1.6 oznaczał będzie utratę danych, które wprowadziliśmy do systemu przez interfejs nowej platformy.

Niezbędne narzędzia

Do wykonania konwersji potrzebny będzie nam program konwertujący. Należy pobrać go z tego linka, zapisując go na dysku, a następnie rozpakować archiwum, np. do ścieżki: C:\BibliotekarzKonwerter Konwerter może (jak każde oprogramowanie) zawierać błędy, dlatego też na stronie Pobieranie będzie umieszczony link do najnowszej wersji konwertera. Teoretycznie każdy komputer posiadający system operacyjny Windows 7 lub nowszy powinien bez problemu uruchomić konwerter. Na tych systemach, w przypadku braku pewnych komponentów systemowych wymaganych do uruchomienia, pojawi się komunikat zachęcający do ich pobrania i instalacji. Gdyby jednak występowały problemy z instalacją, proszę o informacje w komentarzach pod artykułem z podaniem wersji posiadanego systemu operacyjnego.

Wymagania przed uruchomieniem konwertera

Głównym wymaganiem jest posiadanie zainstalowanego silnika baz danych. Jeżeli jeszcze nie zainstalowaliście Microsoft SQL Server Express, to zapraszam do zapoznania się z artykułem, który tłumaczy krok po kroku procedurę instalacji.

Przygotowanie bazy 1.6 do konwersji

Baza programu w wersji 1.6 to plik o nazwie mqs.mdb. Domyślnie znajduje się on w folderze Moje dokumenty użytkownika, który zainstalował program Bibliotekarz.NET 1.6. Oczywiście jeżeli zmieniliście lokalizację pliku (i/lub jego nazwę) to odszukacie plik zgodnie z Waszymi zmianami. Jeżeli już odszukaliście plik bazy danych, to należy go skopiować do folderu, do którego wypakowaliście archiwum zawierające konwerter, czyli np.: C:\BibliotekarzKonwerter . Przykładowy rezultat jaki powinniście osiągnąć na tym etapie.

Konfiguracja Konwertera

Jeżeli nasz plik bazy danych nazywa się mqs.mdb oraz podczas instalacji silnika bazy nie zmienialiśmy żadnych ustawień (silnik jest zainstalowany na tym samym komputerze, na którym uruchamiamy konwerter), to w tym kroku nie należy nic robić.

Osoby, których plik bazy ma inną nazwę oraz dokonały instalacji Microsoft SQL Server na innym komputerze i zmieniły nazwę instancji, powinny wprowadzić poprawki w pliku DBConverter.exe.config, zmieniając nazwę pliku, nazwę bazy wynikowej, serwer docelowy i/lub dane uwierzytelniające do serwera. Zmian dokonujemy w miejscach wskazanych na grafice poniżej:

Uruchomienie konwertera

Gdy wykonaliśmy już wszystkie powyższe kroki pozostaje nam uruchomić program DBConverter.exe. W wyniku jego działania:

  • utworzona zostanie nowa baza danych (żaden plik nie pojawi się w folderze konwertera – baza utworzy się w silniku baz SQL Server)
  • zmigrowane zostaną dane ze starej bazy do nowej
  • poprawność procesu zostanie zakomunikowana stosownym komunikatem na ekranie

W zależności od wielkości księgozbioru i mocy komputera proces konwersji może trwać od kilku do kilkudziesięciu minut. Proszę uzbroić się w cierpliwość.

Na zakończenie

Życzę wszystkim udanych konwersji. Artykuł postaram się aktualizować o wykryte problemy (o ile znajdzie się ich rozwiązanie ;).

Komponenty Bibliotekarz.NET Web Platform

Jakiś czas temu pisałem o procedurze instalacji silnika bazy danych nowego Bibliotekarza. Dziś natomiast przedstawię ogólny obraz składników systemu. W przeciwieństwie do Bibliotekarz.NET 1.6, który był monolitem – pojedyńczą aplikacją, nowa wersja to zbiór aplikacji, które współdziałając ze sobą tworzą coś co nazywam "platformą".

W skład systemu / platformy wchodzą:

  • serwer bazy danych
  • aplikacja konwertująca bazę 1.6 do wersji Web Platform
  • aplikacja web'owa Bibliotekarza
  • serwer aplikacyjny
  • serwer poczty
  • usługi harmonogramu

Na szczęscie (a może nieszczęście), nie wszystkie komponenty są obowiązkowe oraz nie wszystkie komponenty jeszcze istnieją.

Serwer bazy danych

Funkcją serwera bazy danych jest dostarczenie mechanizmów umożliwiających zapisanie księgozbioru na dysku komputera w taki sposób aby dane te były bezpieczne, a dostęp do nich był szybki i możliwy dla wielu użytkowników jednocześnie. W aktualnej wersji używany jest Microsoft SQL Server Express ale sama technologia nowego Bibliotekarza nie wyklucza możliwości stosowania innych silników baz danych. Silnik autorstwa Microsoft wymaga systemu operacyjnego Windows. Serwer baz danych powinien być instalowany na komputerze, który nie jest dostępny z Internetu (w celach zwiększenia bezpieczeństwa).

Aplikacja konwertująca bazę 1.6 do wersji Web Platform

Jest to prosta aplikacja konsolowa (czyli taka, której nie da się obsługiwać myszką :), służąca do konwersji bazy danych używanej przez program Bibliotekarz.NET 1.6 (baza Microsoft Access) do bazy danych Microsoft SQL Server. Osoby, które dopiero zaczynają pracę z Bibliotekarzem, nie muszą korzystać z konwertera. Osoby chcące przenieść swoje dane do nowego systemu, będą musiały wykonać jednorazowy proces konwersji. Konwerter wymaga systemu Windows oraz zainstalowanego .NET Framework 4.6. Na uwagę zasługuje także fakt, że konwersja wsteczna nie jest i nie będzie możliwa. W niedalekiej przyszłości pojawi się artykuł opisujący proces konwersji.

Aplikacja web'owa Bibliotekarza

Jest to główne źródło logiki aplikacji, nazywane potocznie aplikacją WWW. To właśnie ten moduł jest odpowiedzialny za serwowanie stron internetowych oraz komunikację z bazą danych. Aplikacja może ale nie musi wymagać systemu operacyjnego Windows. Aplikacja może działać jako program konsolowy (wymaga aby użytkownik systemu był stale zalogowany do komputera), jako usługa systemowa (może działać bez zalogowanego użytkownika) lub jako aplikacja uruchamiana przez serwer aplikacyjny. W przyszłości będą mogły powstawać wersje działające na systemach rodziny Linux. Aplikacja korzystając z tehnologi .NET Core może działać bez serwera IIS (serwera aplikacyjnego) lub z nim. W przyszłości pojawi się seria artykułów dotyczących konfiguracji oraz dostosowywania aplikacji.

Serwer aplikacyjny

W przypadku aplikacji w technologii .NET Core, serwer aplikacyjny przestaje być obligatoryjny. W prostych instalacjach Bibliotekarza (gdzie system będzie używany na jednym komputerze lub w sieci lokalnej) użycie serwera aplikacyjnego jest całkowicie zbędne. W przypadku instalacji widocznej ze świata, w celu zapewnienia bezpieczeństwa aplikacji oraz serwerowi należy skorzystać z serwera aplikacyjnego jakim jest dla przykładu IIS. Aplikacja Web jak i serwer instalacyjny muszą być na tym samym komputerze (w przeciwieństwie do serwera baz danych, którego zaleca się umiejscawiać na osobnej maszynie). IIS jest elementem systemu Windows (przeważnie należy do ręcznie zainstalować, zależy to od wersji posiadanego systemu Windows). O zastosowania IISa oraz jego konfiguracji powstanie osobny wpis na blogu.

Serwer poczty

Kolejnym elementem, z którego nowy Bibliotekarz.NET może korzystać to serwer poczy email. Jeżeli chcemy mieć możliwość wysyłania powiadomień do użytkowników, to taki serwer jest wymagany. Nie jest on częścią aplikacji ani systemu operacyjnego. Przeważnie dostęp do serwera poczty wymaga wykupienia niedrogiej usługi u odpowiedniego dostawcy.

Usługi harmonogramu

Jest to ostatni element platformy, który jeszcze nie powstał. Jego głównym celem jest umożliwie wykonywania pewnych operacji w sposób cykliczny – np wysyłanie powiadomień o zaległościach, tworzenie kopii bezpeiczeństw bazy danych, itp. Jest to również komponent opcjonalny.