Aplikacja ASP.NET a zewnetrzna baza danych mySql

0

Proszę o porade w sprawie podejścia do tworzenia aplikacji. Mianowicie całość jest robiona w ASP.NET (jest kilka lokalnych tabel w bazie danych na użytkowników, hasła itp.) i tu nie ma problemu, natomiast sporą ilość danych muszę pobierać z bazy mySql (jest na hostingerze).

Jak aplikacja zostanie dokończona całość zostanie umieszczona na jednym hostingu (łącznie z bazą mySql), pytanie jak sobie radzić przy samym pisaniu aplikacji? Łączyć się z bazą zdalnie? Mogę generować sobie pliki .json z odpowiednimi danymi ale będzie ich całe mnóstwo, więc zakładam że to złe podejście.

1

Postawić całą bazę MySQL lokalnie.

0

Czyli może być postawiona przykładowo na WAMPSERVERZE i nie będzie problemów z połączeniem się z tą bazą?

1

Jeśli skonfigurujesz odpowiednio, to nie będzie.

1

Ok, mam tę bazę postawioną lokalnie na WAMPIE.
Teraz mam pytanie jak najlepiej połączyć się z taką bazą? (nie chce się uczyć złych nawyków).

Znalazłem coś takiego:
http://dev.mysql.com/downloads/connector/net
i do tego:

<connectionStrings>
<add name="epmsDb" 
  connectionString="Server=localhost;Database=database1;
                     Uid=root;Pwd=mypassword"
  providerName="MySql.Data.MySqlClient" />
</connectionStrings>
1

Ale czym się różni połączenie z bazą lokalną od połączenia z bazą zdalną? Chyba tylko adresem serwera i hasłem...

Jeśli pytasz o to, jak pracować z MySQL w kodzie C#, to możesz albo pisać w surowym ADO.NET stosując różnorodne MySqlConnection, MySqlDataReader, MySqlCommand, albo użyć jakiegoś ORMa jak Entity Framework lub NHibernate. Oba potrafią się łączyć z MySQL, no i użycie ORMa jest znacznie wygodniejsze.

1

Właśnie o takie podsumowanie mi chodziło:) Mam jeszcze pytanie: Jak tworze sobie połączanie z tą baza, według wszystkich możliwych tutoriali powinna być możliwość wybrania bazy MySql, natomiast u mnie pod VS 2012 tego nie ma. Jak uzyskać możliwość takiego połaczenia. Screen poniżej:

Edit: już mam plugina. Link: http://dev.mysql.com/downloads/file.php?id=453398. Fajnie łączy z lokalną bazą, mam nadzieje że w dalszym użytkowaniu będzie ok.

0

ale to nie ma znaczenia , gdzie ta baza lezy jesli mowimy o funkcjonalnosci. ona moze byc na karaibach, albo tuz za sciana, lub na lokalnym komputerze. jesli masz serwer mysql u siebie, notabene zaden wamp itp tu potrzebne nie sa tylko sam goly mysql. to an serwerze tez bedziesz mial sewrer mysql. tylko zamiast localhost wpiszesz ip serwera z ktorym sie bedziesz laczyl. ew. zostawiasz localhost bo serwer produkcyjny ma u siebie juz mysql i to tez bedzie lokalna baza danych bo serwer bedzie laczyl z nia sie lokalnie.

0

Dzięki za szczegółowe wytłumaczenie. Mam jeszcze jedno pytanie (może banalne ale wole sie upewnić). Zakładając że korzystam z bazy MySQL i EF. Czy moge tę baze w jakiś sposób przeszukiwać za pomocą zwykłych zapytań SQL czy tylko linq?

0

Jest metoda ExecuteStoreQuery czy jakoś tak, która pozwala na użycie SQL.

0

A jak to wygląda w praktyce, w takich przypadkach częściej korzysta się właśnie z tej metody czy linq?

1

Gdy stosuje się ORM, to raczej po to, żeby korzystać z obiektów i ich metod, a nie ręcznie pisanego SQL. To ma sens tylko w przypadku rzeczy, z którymi ORM sobie nie radzi, np. hurtowego usuwania rekordów z jakiejś tabeli.

0

Rozumiem, chce zrobić porządnie a więc będę trzymał się konwencji:) Teraz czeka mnie przerobienie całej góry zapytań SQL do linq.

1 użytkowników online, w tym zalogowanych: 0, gości: 1