Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pw:laboratoare:01 [2023/02/23 13:01]
ciprian.dobre [Primul proiect de backend]
pw:laboratoare:01 [2023/02/26 11:30] (current)
ciprian.dobre [Introducere in .NET si unelte de dezvoltare]
Line 3: Line 3:
 ===== Scopul laboratorului ===== ===== Scopul laboratorului =====
  
-Laboratorul de programare web isi propune sa invete studentii concepte fundamentale in acest domeniu si a fost gandit in asa fel incat sa se dobandeasca concepte ​usuale ​pentru dezvoltarea de aplicatii web. Sustinem pluralismul in folosirea de tehnologii dar sugeram ca in practica sa fie folosita acea tehnologie care este cea mai adecvata pentru proiectul in cauza.+Laboratorul de programare web isi propune sa invete studentii concepte fundamentale in acest domeniu si a fost gandit in asa fel incat sa se dobandeasca concepte ​uzuale ​pentru dezvoltarea de aplicatii web. Sustinem pluralismul in folosirea de tehnologii dar sugeram ca in practica sa fie folosita acea tehnologie care este cea mai adecvata pentru proiectul in cauza.
  
 Laboratorul se va axa pe doua tehnologii care se gasesc pe piata de dezvoltare a aplicatiilor web, **ASP.NET** si **React** pentru dezvolatea a backend-ului respectiv a frontend-ului. Prima jumatate a laboratorului se va axa pe dezvoltarea backend-ului in .NET. Laboratorul se va axa pe doua tehnologii care se gasesc pe piata de dezvoltare a aplicatiilor web, **ASP.NET** si **React** pentru dezvolatea a backend-ului respectiv a frontend-ului. Prima jumatate a laboratorului se va axa pe dezvoltarea backend-ului in .NET.
Line 9: Line 9:
 ===== Introducere in .NET si unelte de dezvoltare ===== ===== Introducere in .NET si unelte de dezvoltare =====
  
-.NET este o platforma de dezvoltare ​create ​de Microsoft initial pentru Windows dar care acum este cross-platform. Este una dintre platformele cele mai folosite pentru dezvoltare web pentru aplicatii enterprise, alta tehnologie foarte folosita este Java Spring. Avantajele de a folosi .NET sunt ca e cross-platform,​ usor de folosit, are o comunitate larga si are documentie buna. Principalul limbaj folosit pentru scrierea de aplicatii in .NET este C#, un limbaj orientat pe obiecte si functional similar cu Java.+.NET este o platforma de dezvoltare ​creata ​de Microsoft initial pentru Windows dar care acum este cross-platform. Este una dintre platformele cele mai folosite pentru dezvoltare web pentru aplicatii enterprise, alta tehnologie foarte folosita este Java Spring. Avantajele de a folosi .NET sunt ca e cross-platform,​ usor de folosit, are o comunitate larga si are documentie buna. Principalul limbaj folosit pentru scrierea de aplicatii in .NET este C#, un limbaj orientat pe obiecte si functional similar cu Java.
  
 Veti avea nevoie de urmatoarele inainte de a incepe dezvoltarea efectiva: Veti avea nevoie de urmatoarele inainte de a incepe dezvoltarea efectiva:
Line 15: Line 15:
      * Pentru Windows recomandam Visual Studio 2022 Community gasit [[https://​visualstudio.microsoft.com/​vs/​|aici]] sau puteti accesa prin [[https://​my.upb.ro/​|MyUPB]] varianta Professional sau Enterprise de [[https://​azureforeducation.microsoft.com/​devtools|aici]]      * Pentru Windows recomandam Visual Studio 2022 Community gasit [[https://​visualstudio.microsoft.com/​vs/​|aici]] sau puteti accesa prin [[https://​my.upb.ro/​|MyUPB]] varianta Professional sau Enterprise de [[https://​azureforeducation.microsoft.com/​devtools|aici]]
      * Pentru Linux/​MacOSX sau daca vreti o alternativa puteti folosi platforma [[https://​www.jetbrains.com/​dotnet/​|DotUltimate]] cu [[https://​www.jetbrains.com/​rider/​|Rider]] ca IDE, puteti cere licenta academica pentru toata suita de la Jetbrains cu emailul institutional. Este posibil sa fie nevoie sa instalati SDK-ul pentru .NET 6 de [[https://​dotnet.microsoft.com/​en-us/​download/​visual-studio-sdks|aici]].      * Pentru Linux/​MacOSX sau daca vreti o alternativa puteti folosi platforma [[https://​www.jetbrains.com/​dotnet/​|DotUltimate]] cu [[https://​www.jetbrains.com/​rider/​|Rider]] ca IDE, puteti cere licenta academica pentru toata suita de la Jetbrains cu emailul institutional. Este posibil sa fie nevoie sa instalati SDK-ul pentru .NET 6 de [[https://​dotnet.microsoft.com/​en-us/​download/​visual-studio-sdks|aici]].
-     * Bonus: puteti folosi Visual Studio cu ReSharper de la Jetbrains pentru o experienta mai buna cu IDE-ul.+     * Bonus: puteti folosi Visual Studio cu ReSharper de la Jetbrains pentru o experienta mai buna cu IDE-ul ​dar trebuie sa aveti cel putin 16GB RAM.
   - Baza de date PostgreSQL   - Baza de date PostgreSQL
      * O varianta este sa instalati [[https://​www.postgresql.org/​|PostreSQL]] pe masina locala, varianta pe care nu o recomandam.      * O varianta este sa instalati [[https://​www.postgresql.org/​|PostreSQL]] pe masina locala, varianta pe care nu o recomandam.
Line 23: Line 23:
      * Daca doriti un client universal puteti opta pentru [[https://​dbeaver.io/​download/​|DBeaver]].      * Daca doriti un client universal puteti opta pentru [[https://​dbeaver.io/​download/​|DBeaver]].
  
-Pentru programarea efectiva in C# sunt necesare doar cunostinte de baza de programare orientate pe obiecte si programare functionala. Pentru cine stie deja Java adaptarea la C# nu ar trebui sa fie o problema, unde vor fi diferente majore ​o sa explicate ​in laborator.+Pentru programarea efectiva in C# sunt necesare doar cunostinte de baza de programare orientate pe obiecte si programare functionala. Pentru cine stie deja Java adaptarea la C# nu ar trebui sa fie o problema, unde vor fi diferente majore ​vor fi explicate ​la laborator.
  
 Exista particularitati in scrierea de cod C#, daca aveti probleme in a intelege scheletul de laborator puteti consulata documentatia de la [[https://​learn.microsoft.com/​en-us/​dotnet/​csharp/​|Microsoft]] si cartea electronica a lor pentru dezvoltarea de aplicatii web de [[https://​dotnet.microsoft.com/​en-us/​download/​e-book/​microservices-architecture/​pdf|aici]],​ chiar daca sunt expuse idei in implementarea arhitecturilor pe microservicii principiile de design patterns si best practice sunt folositoare si pentru dezvoltarea de aplicatii backend monolit. Exista particularitati in scrierea de cod C#, daca aveti probleme in a intelege scheletul de laborator puteti consulata documentatia de la [[https://​learn.microsoft.com/​en-us/​dotnet/​csharp/​|Microsoft]] si cartea electronica a lor pentru dezvoltarea de aplicatii web de [[https://​dotnet.microsoft.com/​en-us/​download/​e-book/​microservices-architecture/​pdf|aici]],​ chiar daca sunt expuse idei in implementarea arhitecturilor pe microservicii principiile de design patterns si best practice sunt folositoare si pentru dezvoltarea de aplicatii backend monolit.
Line 55: Line 55:
 {{:​pw:​laboratoare:​firstproject2.png?​700|}} {{:​pw:​laboratoare:​firstproject2.png?​700|}}
  
-Rulati aplicatia de backend, o sa va deschisa ​o pagina in browser cu un **Swagger**,​ sau cum se mai nume si **OpenAPI Specification**. Swagger-ul este o interfata simpla pentru testarea cererilor HTTP fara sa fie nevoie ​de de un client HTTP si, de asemenea, acesta va descrie intregul API HTTP al serverului cu toate rutele si tipurile de date schimbate cu clientul. Incercati sa executati o cerere catre backend din pagina Swagger-ului. Swagger-ul este important pentru ca va usureaza testarea backend-ului si pentru ca descriind cum API-ul poate fi folosit ca sa generati in mod automat clientii HTTP pentru aplicatiile care consuma API-ul expus.+Rulati aplicatia de backend, o sa va deschida ​o pagina in browser cu un **Swagger**,​ sau cum se mai numeste altfel, ​**OpenAPI Specification**. Swagger-ul este o interfata simpla pentru testarea cererilor HTTP fara sa fie nevoie de un client HTTP si, de asemenea, acesta va descrie intregul API HTTP al serverului cu toate rutele si tipurile de date schimbate cu clientul. Incercati sa executati o cerere catre backend din pagina Swagger-ului. Swagger-ul este important pentru ca va usureaza testarea backend-ului si pentru ca descriind cum API-ul poate fi folosit ca sa generati in mod automat clientii HTTP pentru aplicatiile care consuma API-ul expus.
  
 {{:​pw:​laboratoare:​swagger.png?​700|}} {{:​pw:​laboratoare:​swagger.png?​700|}}
Line 63: Line 63:
 Instalati-va uneltele necesare pentru laborator si intrebati de ajutor daca intampinati dificultati. Instalati-va uneltele necesare pentru laborator si intrebati de ajutor daca intampinati dificultati.
  
-Urmariti codul din WeatherForecastController si incercati sa-l modificati mergand pe intuitie si testand cu swagger-ul. Daca aveti intrebari intrebati asistentul, mai multe informatii o sa fie furnizate la urmatoarele laboaratoare.+Urmariti codul din WeatherForecastController si incercati sa-l modificati mergand pe intuitie si testand cu swagger-ul. Daca aveti intrebari intrebati asistentul/a, mai multe informatii o sa fie furnizate la urmatoarele laboaratoare.
  
 Descarcati template-ul de proiect de pe gitlab-ul grupului [[https://​gitlab.com/​mobylabwebprogramming/​dotnetbackend|nostru]] si incercati sa urmariti codul cu explicatiile din comentarii, daca nu pentru acest laborator atunci pentru data viitoare un o sa fie folosit ca demonstrator. Descarcati template-ul de proiect de pe gitlab-ul grupului [[https://​gitlab.com/​mobylabwebprogramming/​dotnetbackend|nostru]] si incercati sa urmariti codul cu explicatiile din comentarii, daca nu pentru acest laborator atunci pentru data viitoare un o sa fie folosit ca demonstrator.
  
 <note tip>Daca sunteti interesati ce poate fi capabil .NET intrati pe [[https://​www.nuget.org/​|NuGet]] si explorati pachetele de C#, NuGet este un manager de pachete care ofera o gama larga de biblioteci care pot fi instale in proiecte ''​Tools > NuGet Package Manager > Manage NuGet Package for Solution...''​ pentru VS si ''​Tools > NuGet > Manage NuGet Package for Solution''​ pentru Rider.</​note>​ <note tip>Daca sunteti interesati ce poate fi capabil .NET intrati pe [[https://​www.nuget.org/​|NuGet]] si explorati pachetele de C#, NuGet este un manager de pachete care ofera o gama larga de biblioteci care pot fi instale in proiecte ''​Tools > NuGet Package Manager > Manage NuGet Package for Solution...''​ pentru VS si ''​Tools > NuGet > Manage NuGet Package for Solution''​ pentru Rider.</​note>​
 +
 +===== Resurse utile =====
 +  * [[https://​gitlab.com/​mobylabwebprogramming| Gitlab-ul nostru]]
 +  * [[https://​visualstudio.microsoft.com/​vs/​|Visual studio 2022 Community]]
 +  * [[https://​azureforeducation.microsoft.com/​devtools|Visual studio 2022 Enterprise pentru studenti]]
 +  * [[https://​my.upb.ro/​|MyUPB]]
 +  * [[https://​www.jetbrains.com/​dotnet/​|DotUltimate]]
 +  * [[https://​www.jetbrains.com/​rider/​|Rider]]
 +  * [[https://​dotnet.microsoft.com/​en-us/​download/​visual-studio-sdks|.NET 6 SDK]]
 +  * [[https://​www.postgresql.org/​|PostreSQL]]
 +  * [[https://​docs.docker.com/​engine/​install/​|Docker]]
 +  * [[https://​www.pgadmin.org/​|PGAdmin]]
 +  * [[https://​dbeaver.io/​download/​|DBeaver]]
 +  * [[https://​learn.microsoft.com/​en-us/​dotnet/​csharp/​|Documentatie C#]]
 +  * [[https://​dotnet.microsoft.com/​en-us/​download/​e-book/​microservices-architecture/​pdf|Carte Microservices architecture]]
 +
 +
  
  
pw/laboratoare/01.1677150060.txt.gz ยท Last modified: 2023/02/23 13:01 by ciprian.dobre
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0