Wpis z mikrobloga

[ #programowanie #bazydanych ] Chcę stworzyć aplikację desktopową(C# WPF) z dostępem do kilku funkcji poprzez serwis www (ASP .NET lub cokolwiek), jaką bazę danych wybrać, żeby użytkownik końcowy nie musiał zbytnio konfigurować tej aplikacji, czyli na przykład instalować MySQLa i zbytnio bawić się w ustawianie IP czy czegokolwiek innego?
  • 13
@mpisz: instalacja czy to mysql, czy mssql z czym VS się łatwo integruje i konfiguracja tego to zawsze zabawa. jeśli nie potrzebujesz tak rozbudowanego systemu użyj sqllite3, albo plików dedykowanych (amorficzne, xml, inne formaty) jeśli struktura danych Ci na to pozwoli
@tomix: @msq: głównym problemem jest to, że jeśli:

1. wybiorę baze zintegrowaną z aplikacją, to jest problem z połączeniem się do takiej bazy z poziomu webapp, bo IP może byc zmienne, webapp może stać na innym serwerze, no cokolwiek.

2. Baza na serwerze, kwestia konfiguracji, no początkowa i łączy, ale.. serwer trzeba wykupić i utrzymywać, co zwiększa koszt aplikacji.

Mam rację, że są tylko te dwie opcje, no i trzeba
@mpisz: chyba nie rozumiem punktu pierwszego, ale jeśli robisz dwie aplikacje (web i wpf) to czemu obie nie mogą korzystać z tej samej bazy sqlite? kwestia adresu ip pojawia się gdy chcesz już dotrzeć do samej aplikacji web, a nie dostępu do bazy. no chyba, że aplikacje będę pracować na różnych maszynach, a wymagana jest spójność i aktualność danych.
@mpisz: Myśle, ze powinno to przyjść raczej naturalnie. Raczej jasne powinno być, jakei dane mają być trzymane u klienta a jakie zdalnie na serwerze. Szukanie oszczędności na wykupieniu/utrzymaniu serwera w trzymaniu baz u klinetów itd. da raczej odwrotne rezultaty, poza tym skoro i tak masz mieć jakiś serwis, to pewnie i tak baza będzie na serwerze, chociażby do logowania uzytkowników itd.

Możesz spokonie dać np. mysql na serwerze a lokalne dane
@mpisz: Jesli dobrze rozumiem:

- chcesz zropbic aplikacje ktora bedzie dzialala i na desktopie i przez www, w przypadku www - bedzie dostepna z dowolnego miejsca w sieci

- chcesz zeby obydwie korzystaly z tej samej bazy

tak?
@msq: @Yahoo_: @hbpitero: @tomix: już wyjaśniam. Pracuje, a w zasadzie zaczynam pracę, nad aplikacją, którą użytkownik sam sobie instaluje jako wersję desktop, chodzi to u niego na kompie. Dodatkowo może wybrać wersję www tej aplikacji, która jest ograniczona do kilku podstawowych funkcjonalności ( wersja bardziej dla klienta użytkownika). Obie aplikacje musza zachowywać spójność danych (i desktop może coś rejestrować, no i www). Dodatkowo www nie musi być hostowana
@mpisz: Dokladnie tak jak piszesz. Moim zdaniem dobrze by bylo ustalic priorytety i zdecydowac sie ktora czesc bedzie zawsze dosepna. Rzeklbym raczej baza serwerowa. I tego nie oszczedzisz uzytkownikowi. Bo baza online musi byc. Pozniej mozesz juz w samej aplikacji desktopowej (i webowej zreszta tez) zaszyc logike biznesowa synchronizacji i obsluge konfliktow. Bo konflikty moga byc i beda jesli masz dwa niezalezne od siebie interfejsy.

Prostym sposobem na globalne ogarniecie konfliktow
@mpisz: Bez sensu. Dwie aplikacje robiące to samo (dobra, jedna trochę uproszczona) to dwa razy więcej kodu biznesowego, infrastrukturalnego etc. Jak któregoś dnia stwierdzisz, że chcesz coś zmienić - musisz obie wersje przerobić. Niepotrzebnie dorabiasz sobie robotę. Jak zauważył przedmówca musisz mieć bazę danych, która gdzieś stoi. Dlaczego np. na tym samym serwerze (czy to będzie Twój desktop czy kwestia drugorzędna) nie postawić serwisu, który będzie odpowiedzialny za logikę (de facto