Witam,
jestem początkującym programistą i dostałem propozycję napisania aplikacji bazodanowej. Chciałbym, aby aplikacja była jak najtańsza z punktu widzenia licencji (najlepiej licencje z możliwością darmowego wykorzystania do zastosowań komercyjnych). Drugim takim wymaganiem byłoby, aby istniało w miarę dobre wsparcie ze strony programistów w internecie, tutoriale, przykłady, fora etc.
Pomyślałem o Visual C# 2010 Express, bo jest możliwe jego wykorzystanie za darmo do zastosowań komercyjnych oraz baza danych MySQL, zamiast MSSQL, z racji, że MySQL również jest darmowy do wykorzystania komercyjnie. Największy problem wydaje mi się, że jest z connectorem, łączącym aplikację z bazą danych.
Samo rozwiązanie C#.NET / Visual C# 2010 Express + MySQL jest wstępną decyzją, która może się zmienić, jeśli będę miał ku temu dobre powody. Rozwiązaniem zaproponowanym przez zleceniodawcę jest Microsoft Access.
Oto wstępne wyniki moich poszukiwań:
http://www.forumpc.pl/index.php?showtopic=143819 => jak z licencjonowaniem i pozyskaniem MySql.Data.dll?
http://www.codeproject.com/Articles/43438/Connect-C-to-MySQL
http://vsdatabaseguide.codeplex.com/
Ogólnie jest to kilka częściowo tylko zależnych od siebie rozwiązań, które można by zintegrować w jedną aplikację. Potrzebowałbym następujących funkcjonalności:
Excel => baza danych
interfejs użytkownika => baza danych
baza danych => Excel
Ewentualnie też możliwość komunikowania się z bazą danych zdalnie na serwerze, z którym do tej pory łączy się przez specjalnie do tego celu stworzoną aplikację przy pomocy VPN-a, przede wszystkim z możliwością odczytu, ale również przydatna byłaby możliwość zapisu. To by była dodatkowa funkcjonalność, bez niej program też ma duży sens, ale z tą możliwością byłby bardziej funkcjonalny. Niemniej to już kwestia trudniejsza (kwestie uzyskania zgody na dostęp do bazy danych i dokładnego zrozumienia relacji między tabelami) i tylko opcjonalna.
Aplikacja w wersji podstawowej do wykorzystania w sieci lokalnej LAN na trzech komputerach + serwer na bazę danych. Aplikacja pobierałaby dane z Excela (przynajmniej jednokrotny eksport, najlepiej możliwość zaimplementowania takiej funkcjonalności na stałe), umożliwiała użytkownikowi pracę na tych danych (już znajdujących się w bazie danych, za pośrednictwem GUI), a także eksportowanie danych (z bazy do Excela + opcjonalnie integracja z Outlookiem).
W wersji rozszerzonej odpytywanie bazy danych znajdującej się na zdalnym serwerze, opcjonalnie też zapisywanie do tej bazy. Dane z tej zdalnej bazy byłyby pobierane do bazy lokalnej jeden raz dziennie (na podstawie specjalnych kryteriów). Następnie przeprowadzane byłyby różne operacje na danych z lokalnej bazy (pozyskanej nie tylko z zewnętrznej bazy, na której bezpośrednio nie mógłbym pracować, aby jej nie spowalniać, ale i wielu innych źródeł, z których dane pobierane byłby do lokalnej bazy). Po przeprowadzeniu różnych operacji eksport do tej zewnętrznej bazy lub eksport do pliku csv, który następnie byłby wykorzystywany jako wejście do już istniejącej aplikacji korzystającej z tej zewnętrznej bazy. Ale to wszystko opcjonalnie.
Proszę o sugestie w tej kwestii, o której wspomniałem w pierwszym akapicie. Wiem, że podobne tematy były już poruszane, ale licencje i oprogramowanie zmieniają się dość szybko, a moje doświadczenie jest ograniczone. Ogólnie logika aplikacji byłaby dość złożona, ale to nie jest problemem, bo logikę mam w dużej mierze opracowaną. Przede wszystkim chciałbym, aby z punktu widzenia licencji było to rozwiązanie możliwie darmowe oraz żeby było z wsparciem w postaci tutoriali, przykładów kodu etc.
Pozdrawiam i z góry dzięki za sugestie!