.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 2 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 3 godziny
  • Postów:5127
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:około 21 lat
  • Ostatnio:dzień
  • 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:około 9 godzin
  • 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:około 21 lat
  • Ostatnio:dzień
  • 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 2 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:około 21 lat
  • Ostatnio:dzień
  • 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:około 21 lat
  • Ostatnio:dzień
  • 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:około 21 lat
  • Ostatnio:dzień
  • 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 3 godziny
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
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)