Pe parcursul cursului studenții vor acumula un set de bune practici pentru dezvoltarea produselor software pe care le vor aplica lucrând în echipe la dezvoltarea unei aplicații Web. Aplicația va fi propusă de către membrii echipei.
Instituția de învățământ | Universitatea „Alexandru Ioan Cuza” din Iași |
Facultatea | Facultatea de Matematică |
Departamentul | Matematică |
Domeniul de studii | Matematică |
Ciclul de studii | Licență |
Programul de studii/Calificarea | Matematică-Informatică |
Denumirea disciplinei | Tehnici avansate de programare |
Titularul activităților de curs | Lect. Dr. Marius Apetrii/Drd. Petru Rebeja |
Titularul activităților de seminar | Lect. Dr. Marius Apetrii/Drd. Petru Rebeja |
An de studiu | III |
Semestru | IV |
Regimul disciplinei | Opțional |
Tip activitate | Criterii de evaluare | Metode de evaluare | Pondere în nota finală |
---|---|---|---|
Curs | Cunoașterea și utilizarea corectă a noțiunilor și rezultatelor fundamentale | 2 teste (S3 şi S9)(TS) | 60% |
Laborator | Implementarea corectă a rezultatelor teoretice | Evaluarea portofoliului (teme+proiect)(P) | 40% |
\begin{equation} TS ≥ 5 \end{equation} \begin{equation} P ≥ 5 \end{equation}
- Liviu Negrescu, Lavinia Negrescu, Limbajul C# pentru începători, Editura Albastră, 2011
- Joseph Albahari, Ben Albahari, C# 7.0 in a Nutshell: The Definitive Reference, O’Reilly, 2017
- Adam Freeman, Pro ASP.NET Core MVC, Apress, 2016
- Adam Freeman, Pro Entity Framework Core 2 for ASP.NET Core MVC, Apress, 2018
- https://docs.microsoft.com/en-us/visualstudio/releasenotes/tfs2017-relnotes
- https://git-scm.com/
- Robert C. Martin, Design Principles and Design Patterns, 2000
- Martin Fowler, Refactoring. Improving the Design of Existing Code, Addison-Wesley, 2018
- https://www.martinfowler.com/microservices/
(concat "petru" "." "rebeja" "@gmail.com")
@petrurebeja
Anunțurile legate de curs/laborator vor fi marcate cu #TAP2020
.
(concat "mapetrii" "@uaic.ro")
La curs discutăm despre infrastructura și uneltele necesare pentru dezvoltarea aplicațiilor pe platforma .net core
.
Prezentarea de la curs poate fi descărcată în format pdf.
Pregătirea mediului de lucru- Instalare Visual Studio 2019 Community Edition
- Cont GitHub
- Cont Azure DevOps
La curs discutăm despre tipurile de date în .net
și exemplificăm principiile programării orientate-obiect pe o mini-aplicație.
Discuția continuă cu diferența dintre clasele abstracte și interfețe iar spre sfârșit discutăm despre acuplare și coeziune.
Prezentarea de la curs poate fi descărcată în format pdf.
La laborator aplicăm conceptele discutate la curs în dezvoltare unei mini-aplicații.Cerințele pentru temă sunt pe pagina dedicată temei pe GitHub.
O parte din noțiunile discutate se regăsesc și în acest articol.
Gestionarea resurselor și evaluareLa curs discutăm despre gestionarea eficientă a resurselor în .net
și un șablon de implementare pentru IDisposable
.
Prezentarea de la curs poate fi descărcată în format pdf.
La laborator avem prima evaluare din acest semestru.Pagina cu cerințele pentru evaluare este pe GitHub.
Fluxul de lucru Git și principiile SOLIDLa curs discutăm despre cum aplicăm fluxul de lucru Git în contextul unui anumit proiect (cu sau fără drepturi de a crea modificări) și enunțăm și exemplificăm principiile SOLID. Printre altele, discutăm și despre cum este indicat să adăugăm biblioteci din surse terțe la aplicația noastră.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator aplicăm concepteleSOLID
și fluxul de lucru discutate la curs asupra exercițiului de la tema 1.
Modularizarea codului-sursă
La curs discutăm despre cât este de important să modularizăm codul-sursă.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator modularizăm aplicația implementată la tema 1. Delegates, Attributes, Lambda Expressionis & Extension MethodsLa curs discutăm despre Delegates, Attributes, Lambda Expressionis și Extension Methods.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator extindem aplicația implementată la tema 1 și începem să discutăm despre proiectele de curs. LINQ & Entity FrameworkLa curs discutăm despre LINQ
, Entity Framework
și cum abstractizăm accesul la date cu Repository Pattern
.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator începem să definim schema de baze de date pentru proiectul de curs. Unit of Work pattern, Dependency Injection & Test-Driven DevelopmentLa curs discutăm despre cum putem încapsula operațiile asupra bazei de date într-o tranzacție cu Unit of Work pattern
apoi discutăm despre Dependency Injection
și Test-Driven Development
.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator analizăm propunerile pentru proiectele de curs. Baze de date și Gestiunea sarcinilor de lucruLa curs discutăm despre cum păstrăm istoricul bazei alături de istoricul codului-sursă și fluxul de lucru pentru dezvoltarea proiectului de curs.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator avem a doua evaluare din acest semestru.Pagina cu cerințele pentru evaluare este pe GitHub.
ASP.NET Core MVC — IntroducereLa curs discutăm despre şablonul Model-View-Controller
şi facem introducerea platformei ASP.NET Core MVC
.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator lucrăm la proiectul de la finalul semestrului. =Task Parallel Library= şi securitatea în ASP.NET Core MVCLa curs discutăm despre Task Parallel Library
şi cum async
şi await
ne ajută în implementarea proprie a modulelor care se ocupă de autorizare şi autentificare în ASP.NET Core MVC
.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator lucrăm la proiectul de la finalul semestrului. Database design & Introducere în DevOpsLa curs discutăm despre proiectarea bazelor de date şi facem o scurtă introducere în practicile şi nomenclatura DevOps
.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator lucrăm la proiectul de la finalul semestrului. De la modularizare la arhitecturăÎncepem cursul cu o discuţie asupra unui studiu de caz — de ce este indicat să adăugăm un ViewModel
pentru fiecare entitate, apoi discutăm despre arhitectura sistemelor software.
La sfârșit implementăm o conductă pentru Continuous Integration
.
Prezentarea la curs poate fi descărcat în format pdf.
La laborator lucrăm la proiectul de la finalul semestrului şi ne pregătim pentru prezentarea proiectelor. Prezentare proiecteLa curs şi laborator prezentăm proiectele.
- Visual Studio Dev Essentials — acces gratuit (limitat) la unelte oferite de Microsoft și partenerii săi.
- Modelul C4 — modelul C4 pentru vizualizarea arhitecturii aplicațiilor software. O descriere scurtă a modelului este pe InfoQ.
- GitHub flow — o descriere a modului de lucru pe GitHub.
- Git Workflow Strategies — o comparație între
GitHub flow
șiGit workflow
. - Markdown Cheatsheet — exemple de formatare folosind sintaxa
markdown
. - Writing on GitHub — formatarea textului folosind sintaxa
markdown
specifică GitHub. - Fire de execuţie în C# — articol despre cum trebuie utilizate firele de execuţie în C# şi conceptele din spate.
- Parallel Programming in C# — descriere detaliată a conceptelor din
Task Parallel Library
. - LINQPad — aplicaţie care permite executarea interogărilor
LINQ
în mod interactiv.