Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski
Cel Celem projektu jest porównanie 3 różnych języków programowania – php, c# oraz javascripta(w opraciu o NodeJS), wykazanie ich różnić, wad oraz zalet, sprawdzenie ich wydajności oraz szybkości tworzenia kodu na przykładzie webaplikacji typu społecznościowy agregator treści, czyli serwisu podobnego do wykop.pl lub reddit.com
Wykorzystane technologie PHP5 – 3 wersje na 3 frameworkach: Phalcon, Symfony oraz Laravel C# – ASP.NET MVC NodeJS – Express MySQL jako baza danych wraz z cache w postaci redis
Frontend Reponsywny interfejs użytkownika w oparciu o framework Semantic UI AngularJS jako MVC po stronie klienta oraz jako system widoków – odciążenie backendu poprzez wyeliminowanie konieczności renderowania HTML’a po jego stronie jQuery oraz dodatkowe ewentualne pluginy jeśli będą one konieczne
PHP Obiektowy język programowania zaprojektowany do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistym. Powstał w 1995 roku Aktualną wersją jest wersja wydana 16 kwietnia 2015 roku Aktualnie w planach jest wersja PHP 7 – wprowadzi wiele nowości – m.in. typowanie zmiennych, drastycznie zwiększy wydajność język, wprowadzi nowe operatory i wiele więcej
Phalcon Framework MVC działający jako rozszerzenie do języka PHP – aktualnie napisany na języku stworzonym specjalnie do jego potrzeb Zephir – podobny do PHP, pozwalający na typowanie i wiele innych mozliwości podobnych w C# - kompilowany do języka C Dzięki temu że działa jako rozszerzenie cały framework jest uruchamiany tylko raz – wraz z wystartowaniem serwera i rezyduje on w pamięci dzięki czemu pozwala na szybki dostęp do każdego jego elementu co ma wpływ na wydajność Aktualna wersja to wydana
Symfony Framework MVC. Jest to zestaw gotowych komponentów przyśpieszających tworzenie aplikacji w języku PHP. Posiada ogromną społeczność, wiele modułów oraz rozbudowaną dokumentację Obecna wersja to wydana
Laravel Bazuje na komponentach Symfony jednak posiada nieco bardziej odmienną od niego strukturę, korzysta z paru innych wzorców oraz komponentów Aktualna jego wersja to wydana roku
C# Obiektowy język programowania zaprojektowany przez zespół pod kierunkiem Andersa Hejlsberga dla firmy Microsoft. Powstał w 2000 roku Obecną wersją jest wersja 5.0 wydana w 2012 roku Aktualnie kod źródłowy NET. Framework jest w pełni dostępny i upubliczniony przez Microsoft dzięki czemu można liczyć w przyszłości na pojawienie się jego wersji na inne platformy niż Windows
ASP.NET MVC Platforma aplikacyjna do budowy aplikacji internetowych opartych na wzorcu Model- View-Controller (MVC) oparta na technologii ASP.NET Aktualna stabilna wersja to 5.0 wydana 17 października 2013 roku, jednakże w zaawansowanym etapie jest już 6 wersja.
NodeJS Node.js jest środowiskiem programistycznym działającym na V8 stworzonym przez Google zaprojektowanym do tworzenia wysoce skalowalnych aplikacji internetowych, szczególnie serwerów www napisanych w języku Javascript. Node.js umożliwia tworzenie aplikacji sterowanych zdarzeniami wykorzystujących asynchroniczny system wejścia-wyjścia. Node.js jest aplikacją opensource.
Express Jest frameworkiem stworzonym dla NodeJS. Przyspiesza on tworzenie aplikacji tworzonych w oparcji o NodeJS oraz ułatwia korzystanie z niego. Jego aktualna wersja to wydana
AngularJS Otwarta biblioteka języka JavaScript, wspierana i firmowana przez Google, wspomagająca tworzenie i rozwój aplikacji internetowych na pojedynczej stronie. Zadaniem biblioteki jest wdrożenie wzorca Model-View-Controller (MVC) do aplikacji internetowych, aby ułatwić ich rozwój i testowanie. Obecna stabilna wersja to wydana roku, jednakże w planach jest również wersja 2.0 która wprowadzi wiele zmian
Spis treści 1.Wstęp i cel projektu 2. Teoria – krótki opis języka php oraz zastosowanych technologii – krótki opis języka c# oraz zastosowanych technologii – krótki opis języka javascript oraz NodeJS oraz zastosowanych technologii – opis funkcjonalności serwisu 3.Implementacja w 3 technologiach – Wykazanie różnic w implementacji – Pokazanie przykładów tych samych operacji w różnych językach – Wady i zalety – Testy wydajnościowe 4.Wnioski oraz podsumowanie – Ocena każdego z języków oraz technologii – Zestawienie czasowe poświęcone na stworzenie tej samej aplikacji w różnych technologiach oraz językach – Wyciągnięcie wniosków 5.Bibliografia