.NET + SQL Server instalacja u klienta

.NET + SQL Server instalacja u klienta
hercules
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 2 lata
  • Postów:77
0

Cześć,
być może dla Was będzie to głupie pytanie lub trywialne, jednak mi spędza sen z powiek.

Normalnie pracując jako programista w firmie robię aplikacje, które składają się dajmy na to z 3 częsci

  1. Front (Angular)
  2. Back (WebApi)
  3. Dane (SQL Server)

No i 1 i 2 instalujemy na IIS na serwerze w firmie. Bazę danych na SQL Server firmowym. No i spoko. Tak też robię sobie w domu.
No ale załóżmy, że stworzyłem aplikację, którą chciałbym sprzedawać. Dla firm.
No i zastanawiam się jak to ogarnąć. Bo przecież nie pójdę do klienta i nie powiem "Panie, 1 i 2 sobie Pan postaw na IISie, a 3 to musi Pan tym skryptem zrobić se bazę na swoim SQL Serverze)

Zastanawiam się jak do tego podchodzi się a aplikacjach typu JIRA np. Gdzie ona trzyma bazę? Czy w takiej bazie można grzebać ręcznie?

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2161
1

Stawiasz swój serwer/hosting i sprzedajesz dostęp do oprogramowania. Są systemy, które producent daje, aby hostować sobie samemu, ale przeważnie takie systemy mają instalator, konfigurację, gdzie wszystko jest przygotowane tak, aby zainstalować i korzystać. Kwestią jest licencjonowanie jeśli chcesz zarabiać na takich projektach. W przypadku własnego hostingu problemu nie ma, póki rejestrujący się użytkownik nie zapłaci to nie ma dostępu. W przypadku instalacji (hosting po stronie klienta) trzeba sobie samemu stworzyć licencjonowanie.

hercules
Chodzi o oprogramowanie z danymi wrażliwymi. Raczej nie nadaje się do trzymania tego na swoich serwerach
WL
Dlaczego od razu na swoich serwerach, a nie w Azure na ten przykład?
hercules
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 2 lata
  • Postów:77
0

Nie chodzi o licencjonowanie. To ogarnę.
Chodzi o to, że instalator musi np zdeployować bazę na SQL Server.
Ale ja nie chcę wymagać by ktoś miał SQL Servera. Chciałbym żeby aplikacja miała swoją bazę, w której klient nie będzie grzebał.

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 2 godziny
  • Postów:5138
0

Chodzi o to, że instalator musi np zdeployować bazę na SQL Server.
Ale ja nie chcę wymagać by ktoś miał SQL Servera.

Czyli szukasz sposobu na automatyzacje instalacji SQL Servera, a następnie załadowanie do niej jakiejś domyślnej bazy?

Może to Ci coś pomoże

https://octopus.com/blog/automate-sql-server-install

A może legendarny docker na prodzie by się sprawdził? :D

edytowany 3x, ostatnio: WeiXiao
WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:13 dni
  • Postów:1083
0
hercules napisał(a):

Nie chodzi o licencjonowanie. To ogarnę.
Chodzi o to, że instalator musi np zdeployować bazę na SQL Server.
Ale ja nie chcę wymagać by ktoś miał SQL Servera. Chciałbym żeby aplikacja miała swoją bazę, w której klient nie będzie grzebał.

Obciążenie tej aplikacji będzie jakieś mikre?

To może zamiast pełnoprawnego SQL Servera postaw to na SQLocalDB.
Wydaje się, że do tego co potrzebujesz będzie idealny.
Poza tym, to się da zrobić w ogóle bez SQL Servera i IISa.

Sama usługa (w sensie, toja aplikacja jako usługa) .NET może serwować API i statyczne treści po prostu przy pomocy Kestrel'a.

CW
LocalDB is a developer only story - ciekaw jestem jak będzie z obsługą multiusers
WL
I znowu, niby dlaczego tylko developer? A jak ma być z obsługą multiuser? Normalnie, nie ma ograniczeń co do ilości połączeń, pod warunkiem że łączymy się z tej samej maszyny. A tu mamy backend i tylko on bezpośrednio łączy się do bazy, a więc nie widzę problemu, gdy wszystko jest na jednej maszynie.
CW
It is intended for single user scenarios, and not for any prodcution use - for production you should use SQL Server Express
WL
Wiesz, na blogu mogę sobie napisać cokolwiek. I co z tego? Dalej podtrzymuje, ze SQLocalDB idealnie nadaje się do takiego scenariusza. I nie tylko ja: https://stackoverflow.com/questions/13571331/is-it-normal-to-use-localdb-in-production
neves
  • Rejestracja:prawie 22 lata
  • Ostatnio:dzień
  • Lokalizacja:Kraków
  • Postów:1114
2
hercules napisał(a):

Bo przecież nie pójdę do klienta i nie powiem "Panie, 1 i 2 sobie Pan postaw na IISie, a 3 to musi Pan tym skryptem zrobić se bazę na swoim SQL Serverze)

No wyobraź sobie że sporo oprogramowania komercyjnego właśnie tak działa, Pan zapewnia serwer, a oprogramowanie samo sobie tworzy bazy i robi migracje.


CW
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:251
0

Niestety jest to urok oprogramowania webowego. Przy programach desktopowych zwykle mamy do czynienia w miłymi instalatorami, które nawet automatycznie potrafią serwer SQL zainstalować na stacji, ale za to wymagają osobnej instalacji na każdej stacji roboczej no i jesteśmy uzależnieni od systemu operacyjnego. Oprogramowanie webowe zwykle wymaga większego wysiłku przy instalacji, ale w większości przypadków wystarczy dobra instrukcja instalacji, ale raczej trudno jest przygotować gotowy instalator chyba, że w postaci maszyny wirtualnej. Sam "strojenie" środowiska tez wymaga pewnej wiedzy i jest to raczej robota dla osoby posiadającej wiedzę informatyczną.

edytowany 3x, ostatnio: cw
WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:13 dni
  • Postów:1083
0
cw napisał(a):

Niestety jest to urok oprogramowania webowego.

Tak z ciekawości, to dlaczego tylko webowego?

Przy programach desktopowych zwykle mamy do czynienia w miłymi instalatorami, które nawet automatycznie potrafią serwer SQL zainstalować na stacji,

A myślisz, że ten instalator to się sam zrobi taki ładny?
Wiem, bo właśnie robię...
Poza tym, co za różnica czy to apka webowa czy nie - instalator może być tu i tu.

ale za to wymagają osobnej instalacji na każdej stacji roboczej no i jesteśmy uzależnieni od systemu operacyjnego. Oprogramowanie webowe zwykle wymaga większego wysiłku przy instalacji,

Zaprawdę powiadam Ci, nie wiesz o czym mówisz.
Założę się, że nigdy tego nie robiłeś, bo gdybyś miał napisać jeden instalator dla aplikacji desktop, który pewnie zadziała od XP do Win10, to inaczej byś śpiewał :D
A UAC śniłby Ci się po nocach ;-)
O manifeście dla aplikacji w Windows słyszałeś?

ale w większości przypadków wystarczy dobra instrukcja instalacji, ale raczej trudno jest przygotować gotowy instalator chyba, że w postaci maszyny wirtualnej. Sam "strojenie" środowiska tez wymaga pewnej wiedzy i jest to raczej robota dla osoby posiadającej wiedzę informatyczną.

Weź to @hercules napisz jak mówiłem a zrobię Ci instalator dla Windows ;-)

edytowany 1x, ostatnio: wloochacz
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2161
0

@wloochacz:
Urok oprogramowania webowego ma to do siebie, że nie instalujesz tylko paczkę z .NET i puff! działa. Potrzebujesz zainstalować pliki strony, zainstalować IIS, skonfigurować IIS, doinstalować resztę głupot (o ile są wymagane). Twoja aplikacja webowa powinna tez posiadać konfigurację połączenia do bazy, albo instalator niech to robi. Jest więcej roboty przy instalacji webówki niż okienkowych.

CW
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:251
0

"Zaprawdę powiadam Ci, nie wiesz o czym mówisz." - zapewniam Cię, że wiem co piszę bo w dawnych czasach sam przygotowywałem takie paczki :).

"Poza tym, co za różnica czy to apka webowa czy nie - instalator może być tu i tu." poważna szczególnie wtedy gdy musisz zainstalować bazę danych. W aplikacjach desktopowych użytkownik jak ma odpowiednie uprawnienia to może np. zainstalować MSSQL Express i automatycznie go skonfigurować z instalatora (co robi wiele instalatorów programów typu FK w wersjach dla małych firm). Przy rozwiązaniu webowym zwykle musisz najpierw odpowiednio skonfigurować IIS i uzyskać połączenie z serwerem baz danych, który może być np na zupełnie innej maszynie. Dodatkowo sytuacja się może skomplikować jak już na tym IIS działa kilka innych aplikacji, nie ma zainstalowanego odpowiedniej wersji .NET itp. Mam autorską aplikację opartą na IIS, która działa na kilkudziesięciu serwerach od morza do gór i przećwiczyłem bardzo dokładnie problem instalacji takiego rozwiązania. Ogólnie najważniejsza jest dobra instrukcja instalacji i aktualny FAQ na którym opisuje się napotkane problemy

edytowany 4x, ostatnio: cw
WL
Się weź cytować naucz ;-)
WL
Ano i właśnie dlatego nie cierpię IISa.
WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:13 dni
  • Postów:1083
0
AdamWox napisał(a):

@wloochacz:
Urok oprogramowania webowego ma to do siebie, że nie instalujesz tylko paczkę z .NET i puff! działa.

Prawie.
I jest znacznie, ale to znacznie łatwiej, ponieważ robisz to raz na serwerze, gdzie zazwyczaj nie musisz się przejmować uprawnieniami do katalogów, profilami wędrującymi i setką innych upierdliwych patentów pochodzących np. z kontrolera domeny.

Potrzebujesz zainstalować pliki strony, zainstalować IIS, skonfigurować IIS,

Używam nginx, nie lubię IISa.

doinstalować resztę głupot (o ile są wymagane). Twoja aplikacja webowa powinna tez posiadać konfigurację połączenia do bazy,

Wielkie halo, zapisać ustawienia np. przez serializację do jednego pliku...
Poza tym, mowa tu o .net a tam jest jeszcze mniejsze halo.

albo instalator niech to robi.

No, może.

Jest więcej roboty przy instalacji webówki niż okienkowych.

Robię to średnio raz na dwa miesiące (cykl wydawniczy aplikacji) i twierdzę, że jest dokładnie odwrotnie.
Niby dlaczego w webie jest trudniej z instalacją?
Dla mnie jest zdecydowanie łatwiej, bo przede wszystkim robię to tylko raz.

A tak poza tym, w desktopie masz dokładnie te same problemy, tylko zmultiplikowane na wiele końcówek i w bardziej ograniczonym (uprawnienia usera) środowisku.

CW
a jakim problem jest instalacja paczki MSI na kilkudziesięciu komputerach za pomocą GPO lub nawet przy wykorzystaniu oprogramowania antywirusowego np ESET.
WL
To są dobre rady dla jednorodnego środowiska docelowego, niestety...
somekind
Jak jeszcze pracowałem przy desktopach, to było coś takiego jak ClickOnce. Publikowało się nową wersję na jakimś FTP z poziomu VS, a potem każdemu, kto uruchomił aplikację, automatycznie się aktualizowała. Teraz już tego nie ma?
JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:5 miesięcy
  • Postów:1065
0

Aplikację desktopową mogą się też w bardzo łatwy sposób same aktualizować.
Ms SQL server express może się łatwo "sam" zainstalować i skonfigurować.
Nigdy tego nie robiłem ale założę się, że aplikacja IIS też może się zainstalować z odpowiedniego instalatora. Advanced Installer za 500 ust może wdrożyć aplikację na IIS. Można to pewnie też zrobić samemu jakimiś skrzydłami powershell-a.

https://4sysops.com/archives/create-web-apps-and-application-pools-in-iis-with-powershell/

edytowany 1x, ostatnio: jacek.placek
WL
Tak, niby można. Ale zastanów się, dlaczego profesjonalne narzędzia do robienia instalatorów są tak cholernie drogie? Kto by je kupił, gdyby wszystko samo się robiło? Dlaczego cena Advanced Installera idzie w tysiące USD?
JP
Bo jest kombajnem z setkami opcji. Jak ktos robi setki instalator rocznie to ma sens. Jak jeden to taniej wyjdzie coś poskładać. Można nawet skopiować pliki w InnoSetup i odpalić na koniec skrypt powershela.
WL
No właśnie, dlatego ludzie "wybówki" się na tym nie znają, bo robią to zwyczajnie nieczęsto ;-) A w InnoSetup można zrobić praktycznie wszytko, nie tylko kopiować pliki: https://stackoverflow.com/questions/11830183/inno-setup-iis-installation-and-configuration
Szekel
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:253
0

A nie wystarczy po prostu docker..?


WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:13 dni
  • Postów:1083
1
Szekel napisał(a):

A nie wystarczy po prostu docker..?

Wystarczy, no jasne...
I będziesz tego Dockera instalował i konfigurował u każdego klienta, który chce używać tej aplikacji?

Gdyby to była chmurka, to OK.
Ale instalacja on-site u każdego klienta, a każdy nie wiadomo co tam ma za "serwer"?

Szekel
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:253
0
wloochacz napisał(a):
Szekel napisał(a):

A nie wystarczy po prostu docker..?

Wystarczy, no jasne...
I będziesz tego Dockera instalował i konfigurował u każdego klienta, który chce używać tej aplikacji?

Gdyby to była chmurka, to OK.
Ale instalacja on-site u każdego klienta, a każdy nie wiadomo co tam ma za "serwer"?

Właśnie do tego powstał docker. Guzik cie obchodzi co ma za serwer.

Moim zdaniem instalacja i konfiguracja dockera jest dużo prostsza niż walka z IIS.


WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:13 dni
  • Postów:1083
0
Szekel napisał(a):
wloochacz napisał(a):
Szekel napisał(a):

A nie wystarczy po prostu docker..?

Wystarczy, no jasne...
I będziesz tego Dockera instalował i konfigurował u każdego klienta, który chce używać tej aplikacji?

Gdyby to była chmurka, to OK.
Ale instalacja on-site u każdego klienta, a każdy nie wiadomo co tam ma za "serwer"?

Właśnie do tego powstał docker. Guzik cie obchodzi co ma za serwer.

Moim zdaniem instalacja i konfiguracja dockera jest dużo prostsza niż walka z IIS.

Mówisz?
To zainstaluj tego dockera na VPS z 2 GB RAM.
Guzik mnie obchodzi jak.

Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 9 godzin
0

Używam "produkcyjnie" (dla wszystkich swoich rzeczy) Dockera na VPS z 2 GB RAM.

Kopiuj
[ktos@lisa ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1945        1379          84          57         480         339
Swap:             0           0           0

[ktos@lisa ~]$ docker ps | wc -l
15
WL
Dockera pod windowsem z IISem z 2 GB RAMu?
AdamWox
Nazwałeś swojego VPSa Lisa?
Ktos
@wloochacz: A, wait, nie doczytałem tego "Windows" w dyskusji powyżej. Nevermind, zignorujcie ten post. Nie wiem jak działa Docker pod Windows na 2 GB RAM. @AdamWox: Serwery nazywam na "L" - mam "leia" oraz "lisa". Komputery stacjonarne na "K", laptopy na "J", telefony na "M" lub "N". Z długiej listy bardziej lub mniej rzeczywistych imion.
WL
Mi nie działa :P

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.