Marcin Mierzwa

Marcin Mierzwa PHP Developer, It
Production

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Witam wszystkich.

Proszę o kilka opinii odnośnie pracy w środowiku .Net, a dokładniej
przy pracy z asp.net i c#.
Od dawna realizuję się jako programista PHP przy projekcie, którego rdzeniem jest projekt Open Sourcowy.
Chcę poznać coś nowego i pomyślałem o .Net.
To co mam do zarzucenia projektom opartym o PHP/Linux to wieczne problemy z samym środowiskiem i oprogramowaniem Open Source.
Sprawienie, aby na Linuxie środowisko działało tak jak jest to zaplanowane pochłania ogromne ilości czasu. Oprogramowanie Open Source - nie zawsze, ale bywa tak niechlujne, że modyfikacja drobnostki zajmuje wieki (dodatki do Joomla, Wordpres, Drupal, skrypty w repozytorium PEAR itp).
Jeszcze nigdy nie spotkałem się z tym, aby przy drobnej modyfikacji środowiska (np. dołączenie nowej usługi do projektu na linuksie) wszystkim członkom zespołu wszystko od razu prawidłowo działało, a zdarzało się, że kilka dni tracono, bo instalacja jednej rzeczy negatywnie wpłynęła na inne.
W PHP/Linux frustruje mnie to, że tracę dużo czasu na doprowadzenie samego środowiska czy oprogramowania OS do tego, aby wogóle można się było zająć rozwojem projektu.
Proszę o szczere uwagi - czy w .Net jest tak samo ? Może prościej, wygodniej, a może jeszcze gorzej ?
Szukam czegoś co warto poznać, w czym można się realizować jako programista, ale jako programista, który głównie programuje, a nie poświęca dużą część swego czasu pracy na wiecznie niekończące się zabawy ze środowiskiem i poprawianiem wymaganych w projekcie open-sourcowyh skryptów.

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Możesz napisać jakie to problemy widzisz ze środowiskiem ?
W .NET masz taki plus, że dużo rzeczy możesz 'wyklikać' ale jak nie umiesz czegoś skonfigurować to nie ważne czy linux czy winda to i tak będziesz miał problemy.

Nie zwalaj na php tego, że ktoś pisze niechlujnie dodatki do Joomli czy WP bo to jak obwinianie Tuska, że dziś pada deszcz.

Co do modyfikacji środowiska i problemów z nimi - co takiego modyfikujesz, że potem tracicie kilka dni na doprowadzenie tego do ładu ?

Co do Twego ostatniego zdania to może czas zatrudnić admina serwera skoro sami sobie z tym nie radzicie.

konto usunięte

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Ja pisałem aplikację w PHP pod Windows i nie miałem żadnych problemów. Linux (mam KUbuntu) to faktycznie ciężka sprawa i nawet nie mam zamiaru tworzyć aplikacji w tym środowisku.

Co do ASP.NET, miałem pozytywne doświadczenia ale z zainstalowanym .NET 3.5, pod open sourcowym SharpDevelop 3.2 i ASP.NET 2.0, jednak aplikacja była oparta nie na MVC ale na MVP. Na XP mogą być problemy z wyższymi wersjami .NET, instalowałem .NET 4.0 i sprawiało to problemy (musiałem długo czekać aż mi się w ogóle po starcie systemu cokolwiek uruchomi, np. przeglądarka). I to chyba jedyna niedogodność w XP, bo nie sądzę żeby .NET sprawiało jakieś szczególne problemy, mam tu zresztą pozytywne doświadczenia. Ograniczam się jednak do .NET 3.5 i na tym koniec.

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Naprawdę masz aż takie problemy z PHP, Linuksem i OpenSource? Może to nie wina narzędzi, a organizacji "warsztatu" i jednak - no offence - umiejętności? Pracuję od kilku lat z OS na Linuksach, korzystam pod nim z Mono (a to niełatwy kawałek chleba), używam PostgreSQLa i chociaż napotykam na różne problemy, nieraz wkurzające, to nigdy nie było tak, żeby nie udało mi się zrealizować zadania. Czasem jakaś pierdoła zajmie kilka dni, czasem wynika to z buga, czasem z mojej niewiedzy, ale zawsze można znaleźć rozwiązanie. Czasem odbiega ono od pierwotnych założeń, bo pewnych rzeczy w rozsądnym czasie nie przeskoczę (a czasem nie mam na to sił i ochoty), ale "jak nie kijem, to pałką". Ostatnio realizuję projekt, w którym dużą rolę grają komputerki Raspberry PI. Taka pierdółka-miniaturka, a chodzi na nich środowisko obliczeniowe GNU R, niewielka webaplikacja na Mono (MVC) pod Apachem + PostgreSQL i SVN - i wszystko działa. Nie mówię, że pięknie, ale wystarczająco do poczynionych założeń.

Dla wielu LAMP (a przynajmniej LP) to środek do zarabiania pieniędzy w codziennej pracy zawodowej, więc na pewno nie jest aż tak źle - nie ma na świecie aż tylu masochistów.

Najważniejsze, to przygotować sobie warsztat pracy, którego zalet i wad(!) jesteś świadomy. Jak nie pasuje jeden klocek na warsztacie, to zmieniam go na inny i próbuję. W końcu powstaje zbiór narzędzi, który może nie jest idealny, czasem coś-gdzieś zgrzyta, ale wiesz, na ile pozwala.

ASP.NET to solidna porcja nowej wiedzy, kawał softu, zwłaszcza jeśli sięgniesz po MVC. Ma potężne możliwości, świetne narzędzia (także w wersji Express), solidne wsparcie społeczności programistów i jestem jego fanem od pierwszych wersji .NETa (1.0). Specjalnie "przemordowałem się" i sięgnąłem po Mono, by nawet pod Linuksem mieć "mojego C#", ale daleki jestem od stawiania znaków "< >" w relacji do równie potężnego narzędzia, jakim jest PHP. Patrzę nie po sobie, ale po innych - jeśli mnie coś nie pasuje, ale inni potrafią zrobić świetne aplikacje przy jego pomocy, tzn. że problem leży we mnie. Jeśli masz dużo wolnego czasu i nie robisz zbyt skomplikowanych rzeczy (bo inaczej będziesz ciągle grzązł, wszystko będzie obce), to owszem, naucz się czegoś nowego, będziesz potem elastyczniejszy

Niemniej jednak zastanów się nad pewną kwestią. Warto się w czymś specjalizować, tzn. znać naprawdę dobrze, lepiej niż "programista od wszystkiego", być takim "magikiem", który w danym narzędziu zrealizuje to, co ma do zrobienia bez wrzodów na żołądku. Wtedy nie będziesz "zwykłym coderem", którego można wymienić na innego w przerwie na kawę. Jak napotykasz na aż takie problemy z PHP i konfiguracją środowiska, zajrzyj do grupy Programiści WWW, tam chyba większość siedzi na L(AM)P, to ich chleb powszedni. Tam znajdziesz magików, którzy, miejmy nadzieję. pomogą Ci rozwiązać część problemów - w doborze narzędzi, konfiguracji środowiska. Czasem nawet wybór dystrybucji Linuksa ma znaczenie, czasem zbiór wykorzystywanych bibliotek, IDE. Skoro poświęciłeś (wg profilu) kilka lat na poznanie PHP, to może spróbuj go lepiej ogarnąć.

Ale jeśli jesteś zdecydowany, że koniecznie chcesz przesiadać się na .NET, to zrób to. Kup jakąś książkę, która uporządkuje start (uczenie się zupełnie nowej i skomplikowanej rzeczy z internetu jest jak najbardziej OK, ale wymaga dużego zorganizowania uczącego się i umiejętności szukania), wykonaj jakiś przykładowy projekt, co pozwoli Ci poznać technologię, narzędzia, ich możliwości i ograniczenia. Tylko że zdajesz sobie sprawę, że tak czy siak będą problemy - na miejsce jednych przyjdą inne. Bo nie ma softu "bezproblemowego".Ten post został edytowany przez Autora dnia 15.10.14 o godzinie 13:53
Andrzej Prażmo

Andrzej Prażmo programista .NET,
właściciel firmy SEE
Software

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Sebastian O.:
Możesz napisać jakie to problemy widzisz ze środowiskiem ?
W .NET masz taki plus, że dużo rzeczy możesz 'wyklikać' ale
To "klikanie" jest obecnie klasycznym urban legends. Owszem, jeśli ktoś w dalszym ciągu korzysta z Web Forms, to można tak powiedzieć. Natomiast z chwilą pojawienia się ASP.NET MVC tworzenie oprogramowania, to już jest kompletnie inna bajka.
Z PHP jest ten problem, że nakład pracy poświęcony aplikacji jest o jakieś 30% większy niż w przypadku ASP.NET MVC a pieniądze o jakieś 30% mniejsze (duża podaż programistów).
Ten zwiększony nakład pracy wynika z tego, że PHP jest językiem dynamicznie typowanym i programista musi dodatkowo oprogramować walidację typów danych wprowadzanych przez użytkownika. Dodatkowo też dochodzi walidacja takich danych pod kątem XSS i SQL Injection, co w przypadku ASP.NET MVC + Entity Framework jest załatwione, że tak powiem, systemowo.

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Andrzej P.:
Sebastian O.:
Możesz napisać jakie to problemy widzisz ze środowiskiem ?
W .NET masz taki plus, że dużo rzeczy możesz 'wyklikać' ale
To "klikanie" jest obecnie klasycznym urban legends. Owszem, jeśli ktoś w dalszym ciągu korzysta z Web Forms, to można tak powiedzieć. Natomiast z chwilą pojawienia się ASP.NET MVC tworzenie oprogramowania, to już jest kompletnie inna bajka.

Zgoda, mi chodziło raczej o konfigurację WinSrv + IIS +MS SQL
Marcin Mierzwa

Marcin Mierzwa PHP Developer, It
Production

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Adrian O.:
>Pracuję od kilku lat z OS na
Linuksach, korzystam pod nim z Mono (a to niełatwy kawałek chleba), używam PostgreSQLa i chociaż napotykam na różne problemy, nieraz wkurzające, to nigdy nie było tak, żeby nie udało mi się zrealizować zadania. Czasem jakaś pierdoła zajmie kilka dni, czasem wynika to z buga, czasem z mojej niewiedzy, ale zawsze można znaleźć rozwiązanie.

No mam tego trochę więcej w obecnym projekcie niż dodatkowa baza :)
Zgoda - da się wszystko rozwiązać, ale niespodzianki typu 'linux nie wstał po aktualizacji',
czy 'error: require once (z powodu braku pliku)' po odpaleniu paczki z PEAR'a są problemami, na które
developer absolutnie nie ma wpływu, a mogą odłożyć termin oddania pracy.
To właśnie boli przy projektach na LAMP i najwyższe kompetencje teamu ich nie wyeliminują.
Po prostu zastanawia mnie czy pracując z .Net również występuje wysokie prawdopodobieństwo natrafiania na takie miłe niespodzianki (pomijając fakt, że z pewnością .Net ma inne swoje przyległości).Ten post został edytowany przez Autora dnia 15.10.14 o godzinie 15:38

konto usunięte

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Marcin M.:
To właśnie boli przy projektach na LAMP i najwyższe kompetencje teamu ich nie wyeliminują.

Jaki to jest problem, żeby XAMPP zainstalować alternatywnie nie na Linux ale pod Windows? Chociaż można osobno: Apache, MySQL albo PostgreSQL, PHP w odpowiedniej wersji i skonfigurować. Ja też nie mam zaufania do Linuxa, bo faktycznie może sprawiać problemy ale one wynikają raczej z nieznajomości tego systemu, bugi w programach to już inny problem.

Jak Was gonią deadliny, w ramach alternatywy może być nie .NET ale np. DJANGO, oparte o python, które właśnie zostało stworzone z myślą o szybkim wytwarzaniu kodu. Napewno jakbym miał pisać aplikację web w ASP.NET 2.0 i to od zera, miałbym dużo więcej pracy. Raczej problemów z .NET to bym się nie obawiał.Ten post został edytowany przez Autora dnia 15.10.14 o godzinie 16:00
Nikodem Dobrzański

Nikodem Dobrzański Architekt systemu,
BizTech Konsulting
S.A.

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Python jest dobry do małych projektów, natomiast wiele razy usłyszałem, że przerabianie dużych aplikacji to "krwawica dla oczu". Ale może są jakieś usprawnienia, o których nie dosłyszałem :)
A dlaczego nie RUBY? Też język.

konto usunięte

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Nikodem D.:
Python jest dobry do małych projektów

A to czemu? Super Express na tym bazuje i z tego co pisze pod tym co jest niżej, Google też
http://hint.pl/oferta/oferta2/item/python_django_cms.html
A dlaczego nie RUBY? Też język.

A co ze wsparciem rubiego, bo jeśli chodzi o pythona to chyba sprawa jest jasna...

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Marcin M.:
Zgoda - da się wszystko rozwiązać, ale niespodzianki typu 'linux nie wstał po aktualizacji',

1. ZAWSZE, ale to bezwzględnie ZAWSZE należy mieć środowisko testowe i produkcyjne. Oba dobrze odizolowane od siebie, na osobnej maszynie, czasem nawet w osobnej sieci (bo puścisz omyłkowo skrypt nie na tej bazie co trzeba, bo nie zmieniłeś IP serwera itp., bo wirus, bo włamanie, itd.)

Produkcyjne jest święte. Na testowym można się bawić.

Dotyczy to zresztą nie tylko programowania, bo w mojej działce (analiza danych w badaniach klinicznych), gdzie powstają skrypty i raporty.

Właśnie przygotowuję na piątkową konferencję prezentację n/t przygotowania środowiska pracy dla biostatystyka. Będę poruszał m.in. i te zagadnienia - aktualizacje, biblioteki procedur statystycznych (coś jak DLL), "piekło zależności i wersji", uszkodzenia sprzętu i wszystkie te nieszczęścia, które spędzają sen z powiek. A ja muszę mieć wszystko "pod parą" 24/7. Dlatego bardzo poważnie podszedłem do tych kwestii i okazało się, że da się tu wiele zdziałać.

2. Do realizacji pkt1. świetnie nadają się maszyny wirtualne. W obecnych czasach, przy obecnych mocach maszyn i cenach RAMu, można spokojnie mieć wszystko zwirtualizowane.

Maszyna wirtualna z kompletem softu + backup przyrostowy w chmurze na osobnej maszynie (może być "lokalna" np. na lsyncd+rsync, może być zdalna - DropBox, OneDrive + TrueCrypt dla bezpieczeństwa) + repozytorium kodu + zdalny dostęp po VPN (gdybyś musiał pracować zdalnie) to podstawa.

Do niektórych z tych zadań świetnie nadadzą się właśnie takie tanie komputerki jak wspomniane już RPi, 150zł, a uciągnie SVN, lsyncd i parę innych rzeczy dla niewielkiego zespołu.

Dodatkowo VM zapewnia spójne środowisko dla całego zespołu - raz przygotowujesz maszynę, każdy sobie ją kopiuje i macie to samo. Są do tego nawet specjalne narzędzia:

3. W poważnej pracy NIGDY nie aktualizuje się wszystkiego jak leci, bo potem kończy się tak, że jakaś pierdoła położy Ci projekt za pięć dwunasta, bo Linux nie wstaje, bo IDE się nie włącza, bo właśnie zmienił się interfejs biblioteki.

Zamraża się wersje wszystkiego, co się ma, od serwera i bazy danych po najmniejszą bibliotekę użytą w projekcie. Taka jest idea chociażby Debiana (stable - Wheezy). Tak się postępuje w poważnie prowadzonych projektach, gdzie wpadka z powodu "bo się zaktualizowało i nie wstaje" oznacza kary umowne, a co najmniej utratę prestiżu i kupę stresu.

Aktualizacje przeprowadza się zawsze na środowisku testowym i to nie oryginalnym, tylko na jego kopii, by w razie problemów błyskawicznie wyrzucić je do kosza i przywrócić nowe. Jak masz je na wirtualce, to po prostu kopiujesz plik VHD, VBox czy tam inny i jedziesz z robotą.

Aktualizacji nie robi się wszystkich na raz. Po aktualizacjach bibliotek przeprowadza się gruntowne testy. Przydają się odpowiednie techniki projektowania ułatwiające zachowanie kompatybilności wstecznej, gdyby coś zawiodło, np. wzorce strategii i modułów - pluginów (nie działa ta wersja na tym libie, to wracamy do starej bez "revertowania" MB kodu).
Po prostu zastanawia mnie czy pracując z .Net również występuje wysokie prawdopodobieństwo natrafiania na takie miłe niespodzianki (pomijając fakt, że z pewnością .Net ma inne swoje przyległości).

ASP.NET, podobnie jak PHP, to stabilne rozwiązaniach, wykorzystywane w rozwiązaniach rangi korporacyjnej. Ale - i pisał to już Sebastian - możesz dołożyć cudzy komponent, który roz....li wszystko w drobny mak.

A zatem - warsztat. Zanim podejmiesz decyzję, że czegoś używasz, SPRAWDŹ TO. Nigdy nie sięgaj po komponent, którego nie testowałeś. Jak znajdziesz coś nowego a fajnego, napisz prosty projekt, w którym to coś przetestujesz. Inaczej grasz w rosyjską ruletkę.
Dariusz R.:
też nie mam zaufania do Linuxa, bo faktycznie może sprawiać problemy ale one wynikają raczej z nieznajomości tego systemu,

"Od zawsze" byłem fanem Windows, bo są dla mnie naturalne (bo je znam od Windows 3.0), bo je lubię, bo upraszczają wiele rzeczy, bo wszystko mi ze sobą "gada" (zwłaszcza od czasów .NETa, na którym stoi już wszystko co pod Windows), ale to właśnie Linuksowi (a konkretnie Debianowi i CentOSowi) ufam jak żadnemu Windowsowi. Niestety, trzeba go dobrze poznać - ale to jak wszystko.Ten post został edytowany przez Autora dnia 15.10.14 o godzinie 17:34

konto usunięte

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Sebastian O.:
Andrzej P.:
Sebastian O.:
Możesz napisać jakie to problemy widzisz ze środowiskiem ?
W .NET masz taki plus, że dużo rzeczy możesz 'wyklikać' ale
To "klikanie" jest obecnie klasycznym urban legends. Owszem, jeśli ktoś w dalszym ciągu korzysta z Web Forms, to można tak powiedzieć. Natomiast z chwilą pojawienia się ASP.NET MVC tworzenie oprogramowania, to już jest kompletnie inna bajka.

Zgoda, mi chodziło raczej o konfigurację WinSrv + IIS +MS SQL

a czego nie możesz zrobić z poziomu PowerShell-a + poleceń systemowych + TSQL-? w takim zestawie?
wszystkie elementy można oprogramować z CLI, jak nie bezpośrednio to za pomocą jakiegoś języka programowania np. VBS, Powershell

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Przemysław R.:

Przemek, ja nie twierdzę, że nie można zrobić w Powershellu bo PS to super sprawa.
Ja tylko napisałem, że jeżeli ktoś ma problemy z konfiguracją LAMP w CLI to w przypadku .NET (konfiguracja Srv + IIS + MS SQL) ma o tyle prościej, że to co mu trzeba 'wyklika' w interfejsie graficznym.

Wiele osób rezygnuje z Linuxa właśnie dlatego, że odstrasza je konfiguracja w CLI bo wolą GUI.Ten post został edytowany przez Autora dnia 15.10.14 o godzinie 17:44
Andrzej Prażmo

Andrzej Prażmo programista .NET,
właściciel firmy SEE
Software

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Jeszcze jedna ważna uwaga. ASP.NET ma potężne wsparcie Microsoftu. Wystarczy założyć DG, zgłosić się do BizSparku i dostaje się do dyspozycji na 3 lata MSDN Universal (praktycznie wszystko, co Microsoft do tej pory wyprodukował, łącznie z Visual Studio, Office'ami i wszystkimi Windowsami) a także konto na Microsoft Azure z miesięcznym limitem, bodajże, 115 Euro.
A już nie wspomnę o samym IDE (Visual Studio), gdzie, no nie oszukujmy się, "pehapowe" odpowiedniki są gdzieś tak o parę lat świetlnych z tyłu. :)
Jedyny problem z technologiami spod znaku MS jest taki, że w naszych rodzimych budżetowych instytucjach króluje Open Source i ze świecą szukać administratora, który tam zna się na serwerowych Windowsach.

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

ASP.NET bez problemu chodzi pod Mono. To jest jeden z najważniejszych argumentów przeciwników .NETa - "a bo to tylko pod Windowsami chodzi". Otóż nie, od Debiana do RedHata dotnet hula i wymiata. Na apaczu, endżiniksie dotnet chodzi za....kwieciście :)Ten post został edytowany przez Autora dnia 16.10.14 o godzinie 00:32

konto usunięte

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Adrian O.:
ASP.NET bez problemu chodzi pod Mono. To jest jeden z najważniejszych argumentów przeciwników .NETa - "a bo to tylko pod Windowsami chodzi". Otóż nie, od Debiana do RedHata dotnet hula i wymiata. Na apaczu, endżiniksie dotnet chodzi zaje....ście :)

Szczerze - tylko w przypadku kiedy ktoś sobie potrafi sporządzić odpowiedni warsztat. Mono nie jest (a przynajmniej kilka lat temu nie było) kompatybilne z .NET - ku przestrodze.

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Nie no, jasne, całkiem bezboleśnie to nie przejdzie, ale z drugiej strony nie jest to rocket science. Nie działają także mechanizmy typowo Windowsowe, znacznie ograniczony jest także WCF. Jednak z użyciem tego co jest albo ServiceStacka czy MS WebAPI serwis RESTowy napiszesz, aplikację www także, czy to CMS, czy sklep, czy społecznościówka (w większości tego typu aplikacje to mniej lub bardziej "ugraficzniona nakładka na bazę danych") :P Nawet na "malince" mam dostęp do GPIO.
Marcin Mierzwa

Marcin Mierzwa PHP Developer, It
Production

Temat: Czy praca z .Net czasem męczy tak jak praca z PHP/Linux ?

Myślę, że jednak argumenty kolegów od .Net w miarę mnie przekonują.
Praca przy PHP to oczywiście nie administrowanie serwerami, ani też samo korzystanie z wspomnianego wyżej XAMPP'a.
W chwili, kiedy do współpracy przy projekcie PHP trzeba zaprząc dodatkowe aplikacje, weźmy np. serwer no-sql ułatwiający współpracę z hurtownią danych, a takich wiele jest napisanych w c++ (lub cokolwiek innego) to w takiej chwili współpraca na linii PHP+Windows się kończy z przyczyny samej dostępności owych rozwiązań.
Więcej - współpraca na linii PHP+Windows przestaje być przyjemna nawet podczas korzystania ze skryptów w pehapowych repozytoriach jak PEAR czy PECL.
Wtedy przychodzi z pomocą Linuks i kończy się robienie developmentu bez niespodzianek.

Jeśli w .Net w ramach jednej platformy można stworzyć stronę www, aplikację desktopową, czy konsolową, a nawet aplikację na telefon to z samej teorii rozwiązanie to wydaje mi się mieć przewagę.
PHP to całkiem odwrotny biegun - tu trzeba połapać się na każdym froncie, czasem nawet w skryptach pisanych w C z oficjalnego pehapowego repo.

Dziękuję za cenne wypowiedzi.



Wyślij zaproszenie do