W czym stworzyć Serwis do Uploadu Plików

Jako iż wczoraj wyszedł Visual Studio 2015 z wsparciem dla Javascriptu i Apache Cordova ( na mobilne ), gdzie też się w Javascripcie pisze, wymyśliłem sobie projekcik

 

-Jest sobie Serwer ( ms Server 2008r2 z IIS’em) który ma hostować stronkę z obsługą Drag&Drop plików (firefox to obsłuży?)

-przyjmuje pliczki, i uruchamia na nich ffmpeg z odpowiednimi parametrami (które można pozmieniać na tej stronie przed wrzuceniem pliku)

-pliki które już się zakończą konwertować wrzuca do folderu który mam udostępniony w sieci…

-Dodatkowo w Apache Cordova zrobię apkę na andruta aby można było bezpośrednio po wifi przerzucić na ten serwer nagrania.

 

Wszystko po to, by w końcu nauczyć się trochę webówki (nigdy nie pisałem w javascripcie)

 

pytanie do Was:

  • Czego użyć do stworzenia tej strony? (nie znam w ogóle technologi związanych z JS, a chcę poznać… słyszałem o jquery, node.js, angular.js … ale co do czego :wink: )

 

(na co dzień piszę w C#)

 

strona właściwie tylko musi przyjąć plik video, (zapisać go na lokalnym dysku) + stworzyć rekord w bazie mssql (nazwa pliku, parametry)

na Serwerze będzie usługa monitorująca folder, jak się pojawi pliczek, to uruchomi konwersje na nim, i wynik wrzuci do folderu sieciowego.

 

 

Nie znam się na stacku Microsoftu, ale przy udziale innych technologii strona stanowczo nie powinna robić tego, o czym napisałeś. Ja rozplanowałbym to tak:

 

  1. Backend, który komunikuje się z resztą świata przez REST i tylko REST. Na odpowiednie żądanie przyjmuje plik (POST na odpowiedni endpoint), zajmuje się rekordami w bazie, konwertuje plik i udostępnia gdzie trzeba

2 a. Klient webowy (polecam Angulara albo Reacta), który istnieje tylko po to, żeby nie było trzeba z palca klepać zapytań. W mniej lub bardziej przyjemny dla oka sposób pyta o plik, wysyła go do endpointa backendu, w razie czego dodaje metadane w JSON-ie.

2 b. Klient mobilny, który robi z grubsza to samo.

 

Raz jeszcze - backend i tylko backend dotyka bazy i katalogów. Web powinien być odrębnym projektem możliwym do zdeployowania na oddzielnym serwerze.

Skoro piszesz w c#, stawiasz serwer na iis - to dlaczego nie asp.net ?

Jak już asp.net, to MVC 4+,

Tam mógłbym wszystko w C# napisać…

Tylko, tu nie chodzi o super zajebisty projekt, tylko o to, by się w końcu podszkolić z technologii webowych… napisać coś w JavaScripcie, chyba że @Drobok widzisz jakieś zastosowanie JavaScriptu ;p

Tu chodzi raczej, o spróbowanie czegoś innego/nowego (dla mnie)

Poczytam o Angular w takim razie :wink:

 

Nie wyraziłem się jasno, zawsze jest jakis “Server Side” który to obsłuży ( i ten planuje w C# napisać, żeby się nie namęczyć) który będzie właśnie przyjmował np jakiegoś JSON’ka z danymi

 

Edit:

Zacząłem oglądać na youtube 50 przykładów w Angular, i stwierdzam, że to jest to, dzięki Frank :wink:

Szkoda tylko, że ReSharper mi nie podpowiada znaczników ng-*, (intellisens wbudowany w vs’2015 podpowiada ;p)

Edit2:

A jednak, jest plugin do plugina :slight_smile: i można mieć podpowiedzi do angulara.

Ale to po co ci w ogóle C# skoro chcesz się uczyć javascriptu? https://nodejs.org/ javascript można spokojnie uruchamiać server-side.

Node.js wymaga do działania zainstalowanej przeglądarki Chrome?

nodejs jest po stronie serwera, tam nawet nie musisz mieć Servera Xów, niezaleznie od platformy.

 

na dobrą sprawę, wystarczy zrobić klienta na androida w html+js w cordovie i tyle. Reszta nawet nie musi być pisana na platformę windows.

Nie. Tak jak wyżej, projekt po prostu korzysta z tego samego silnika, bo co by nie mówić szybszego interpretera JS po prostu nie ma. Google-owy wynalazek wykonuje kompilację do kodu natywnego https://en.wikipedia.org/wiki/V8_(JavaScript_engine) oraz wykonuje różne optymalizacje JIT i inne heurystyczne duperele typowe dla maszyny wirtualnej.

Wiem, że mnie zaraz wszyscy fanboy’e FF zjedzą, ale jak pracujesz nad projektem, gdzie domyślnie platforma z box-a ma włączone dojo + dojoX + dijit a do tego klient życzy sobie takie coś co on w jQuery widział, to FF ładując to wszystko potrafi naprawdę klęknąć i nie lada sztuką jest to zoptymalizować, tak by działo sensownie (o komforcie zapomnij). Chrome łyka takie coś bez zająknięcia i optymalizacji. Ale to dopiero widać przy ładowaniu javascriptu liczonego w megabajtach.

Dziękuje za klaryfikację

Jeśli robisz to dla nauki, to rozważ tak jak Ci radzą użycie NodeJS. Głównie dlatego, że będziesz mógł zobaczyć jak tam realizuje się wywołania asynchroniczne. Po pracy w klasycznych frameworkach jest to całkiem ciekawe doświadczenie.