Pracowałem intensywnie nad tworzeniem aplikacji internetowych przy użyciu PHP i ASP.NET, ale jednym z pytań, które nieustannie zadają mi klienci, jest to, czy przejść dalej z witryną php czy stroną asp.net.
Naturalnie pierwszą rzeczą, która przychodzi na myśl, jest odpowiedź na następujące pytanie:
PHP jest oprogramowaniem typu open source, a ASP.NET pochodzi z firmy Microsoft.
Zwykle po tym, jak mówi się coś takiego, klient ma pusty wyraz twarzy. Najwyraźniej fakt, że jeden z nich jest open source, a drugi nie, tak naprawdę ich nie przeraża. I nie bez powodu, ponieważ kiedy pierwszy raz to usłyszałem, tak naprawdę niewiele mi to mówi.
Wiem z obu, że każda z nich ma swoje różnice, jeśli chodzi o tworzenie stron internetowych.
Moje pytanie brzmi, jakie są różnice między ASP.NET i PHP w tym zakresie
- cechy
- Bezpieczeństwo
- Rozszerzalność
- Ramy
- Średni czas rozwoju
Staram się sporządzić listę faktów, aby móc porównać z klientem, aby można było dokonać świadomego wyboru na odpowiedniej platformie programistycznej.
źródło
Odpowiedzi:
Funkcje , bezpieczeństwo i rozszerzalność będą mniej więcej takie same. To, co można zrobić za pomocą PHP, można wykonać za pomocą ASP.NET.
Frameworki - Ponownie, jeśli chodzi o cechy frameworków, będzie mniej więcej takie samo. Będąc bardziej szczegółowym niż sam język, warto rozważyć:
Średni czas programowania - Twój średni czas programowania dla bardzo małego projektu może być lepszy w PHP, ponieważ hosty WWW są tak łatwe do znalezienia, a maszyny deweloperskie tak łatwe do skonfigurowania. Jednak w przypadku czegoś większego, o ile masz dobrych deweloperów lub masz już skonfigurowane jedno z nich, prawdopodobnie będzie to pranie.
Najważniejszą rzeczą, którą powinieneś wziąć pod uwagę, jest to, jaki stos technologii Twój klient będzie chciał powiązać z postępem. Żadne z nich nie miesza się dobrze (łatwo) z drugim. Mogą mieć programistów, którzy znają jeden lub drugi.
Jeśli Twojemu klientowi podoba się pomysł połączenia z Microsoftem, skorzystaj z ASP.NET. Niektórzy klienci będą mieli większy komfort w zakresie przyszłego wsparcia, aktualizacji itp. Z MS.
Jeśli podoba im się koncepcja serwerów open source i Linux, wybierz PHP . Może to zainteresować niektórych klientów ze względu na możliwość przenoszenia hostów internetowych, bezpłatnego oprogramowania itp.
I na koniec, jeśli ich to nie obchodzi, wybierz to, z czym czujesz się najlepiej . Nie ma w tym nic więcej.
źródło
Aby wyjaśnić, na czym opieram swoje odpowiedzi, od ponad 6 lat zajmuję się programowaniem w PHP, gram w ASP.NET MVC przez ostatnie 3-4 miesiące i pracuję w C # programowanie mniej więcej tak długo, jak programowanie PHP.
Dla mnie jest to bardziej argument PHP vs C # niż argument PHP vs ASP.NET.
Funkcja /
rozszerzalność Myślę, że ASP.NET wygrywa tutaj, a to bardziej ze względu na możliwość używania języka takiego jak C #. C # jest znacznie lepszym językiem niż PHP, ponieważ obsługuje OO. Jestem także osobą, która preferuje język o typie statycznym (nawet myślałem w C # 4.0, uważam, że można robić zmienne o typie dynamicznym). Jedyną rzeczą, którą PHP miał ponad C # pod względem funkcji języka, były parametry opcjonalne, ale to kolejna rzecz, która została dodana w C # 4.0 (nie jestem pewien, jak dobrze działa, ponieważ jeszcze tego nie próbowałem).
Bezpieczeństwo
Prawdopodobnie powiedziałbym, że jest to zmywanie między nimi. Myślę, że oba mają funkcjonalność zapewniającą bezpieczeństwo, ale ostatecznie zadaniem programisty jest upewnienie się, że ich aplikacja jest bezpieczna.
Frameworki
Cóż, PHP wydaje się mieć znacznie więcej frameworków (CakePHP, Codeigniter, Symfony, Zend Framework) i wiele innych mniejszych frameworków niż ASP.NET. ASP.NET ma 2 główne frameworki Microsoft, WebForms (kompletna bzdura) i ASP.NET MVC (powód, dla którego zacząłem zajmować się programowaniem ASP.NET). Podczas gdy PHP ma więcej frameworków, uważam, że framework ASP.NET MVC 3 jest lepszy niż którykolwiek z frameworków PHP.
Średni czas
programowania Myślę, że w przypadku mniejszych projektów czas programowania jest znacznie lepszy w PHP, jednak wraz ze wzrostem wielkości projektu C # lepiej się pod tym względem skaluje.
Koszt
Niektóre kwestie, które należy poruszyć, to koszty. PHP wygrywa na tym froncie. Chociaż możesz uruchomić ASP.NET na Mono w Linuksie, ma swoje własne problemy.
Jeśli wykonujesz mały lub średni projekt i / lub istotny jest koszt, PHP wygrywa. Jeśli wykonujesz projekt na dużą skalę, wybrałbym ASP.NET w / C # i ASP.NET MVC.
źródło
PHP vs ASP.NET jest jak porównywanie jabłek i pomarańczy - tam są ukierunkowane na różne rozwiązania.
PHP jest lepiej dostosowanym frameworkiem dla małych rozwiązań dla początkujących. PHP będzie działało lub Linux, Windows bez zbyt wielu wymagań. Microsoft ASP.NET to platforma siły przemysłowej, która ma wszystko, co możesz sobie wyobrazić i więcej. ASP.NET to bardzo bogate w funkcje środowisko gotowe do pracy. Wielu twierdzi, że ASP.NET jest drogi, co miało miejsce kilka lat temu, ale już nie. Po pierwsze narzędzia są bezpłatne (wersje ekspresowe), opcje bazy danych są bezpłatne (SQL Compact lub SQL Server 2005 lub nowszy Express). Kup Hosting jest teraz bardzo tani, więc pytanie nie brzmi, które jest lepsze, ale co pasuje do twojego rozwiązania. Osobiście wolę ASP.NET, ale to dlatego, że pracuję w środowisku korporacyjnym, w którym elastyczność i skalowalność jest bardzo ważna, dlatego rozwiązania dyktują ramy.
Jedną bardzo ważną rzeczą jest to, w jakim języku jesteś najlepszy? To powinien być ostatni czynnik w decyzji.
Jeśli Twoim celem jest przekonanie klienta, lepszym rozwiązaniem jest asp.net. Nazwa dużej firmy, która wspiera język, sprawia, że klient czuje się komfortowo. W takim przypadku najlepszymi opcjami są (Microsoft) ASP.NET i (Oracle) Java JSP.
EDYCJA: Bogate w funkcje - ASP.NET zapewnia dwie alternatywy do tworzenia witryn WebForms i podejścia MVC. Ponieważ oprócz frameworku .NET musisz korzystać z bardzo zaawansowanych funkcji, np. WF (przepływ pracy), DLR (dynamiczny język uruchomieniowy), Parallel Linq, Linq, routing, różne formy zarządzania stanem danych: elementy HTTPContext, ViewState, Runtime Cache, strona wyjściowa pamięć podręczna, trzy różne typy implementacji sesji: InProc, State i SQL Server. ASP.NET wdraża różne formy bezpieczeństwa, np. Dostawca członkostwa i dostawca ról. Nie chcę spakować PHP, ale ASP.NET należy do innej ligi.
źródło
Po intensywnej pracy z obiema rzeczami już wiesz, że odpowiedzi będą różne w zależności od problemu i klienta. W bardzo ogólnym sensie:
Jeśli tworzysz listę faktów dla swoich klientów, oprzyj ją na tym, co wiesz. Twoje badania, bez względu na to, jak stronnicze są twoje ustalenia, są w porządku, jeśli chodzi o zdobywanie punktów.
źródło
Kontrolki .net są znacznie ładniejsze niż to, co można znaleźć na platformie PhP. Spójrz na przykład na Infragistics, jaki jest odpowiednik LAMPY?
źródło