← l-artikli kollha

.NET

Il-Proġett CRUD li Bnejt biex Ikolli Xi Ħaġa Nuri lir-Recruiters

Ispirat minn assessment ta' coding li André Baltieri (Balta) jagħti lill-kandidati, bnejt app CRUD ta' Student u Premium subscription b'awtentikazzjoni reali fi ftit jiem, imbagħad qattajt il-ħin iffrankat fuq dak li verament jagħmel proġett jidher lest.

Il-Proġett CRUD li Bnejt biex Ikolli Xi Ħaġa Nuri lir-Recruiters

Ridt proġett li nista' nurih lir-recruiters li kien verament lest, mhux idea oħra nofsha mibnija li tinsab xi mkien f'repo. Il-prompt għalih ġie minn video ta' André Baltieri, minn Balta, li jimxi minn assessment ta' coding li jagħti lill-kandidati għal rwol f'Balta.io: ibni app kompluta ta' Student u Premium subscription management b'awtentikazzjoni f'ASP.NET Core, ikkonsenjata fi ftit jiem.

Għaliex bnejt l-istess ħaġa

Il-punt kollu ta' Balta f'dak il-video kien li li ttemm xi ħaġa sempliċi u li taħdem tirbaħ verżjoni mhux lesta u over-engineered ta' xi ħaġa ambizzjuża. Dan qabel eżatt ma' dak li kelli bżonn għal biċċa portfolio, għalhekk bnejt l-istess brief għalija stess: app CRUD ta' Student u Premium subscription, awtentikazzjoni reali, xejn eżotiku.

X'verament għamilha malajra

Użajt l-Identity built-in ta' ASP.NET Core minflok ma ktibt l-awtentikazzjoni tiegħi stess mill-bidu:

dotnet new razor -au Individual

Dik il-flag waħda -au Individual tiskaffolda sistema sħiħa ta' identità lokali, reġistrazzjoni, login, logout, u cookies persistenti, mingħajr ma mist implimentazzjoni ta' JWT.

Għall-mudelli ta' Student u Premium, serraħt fuq data annotations minflok niktibx loġika ta' validazzjoni separata:

public class Student
{
    [Key]
    public int Id { get; set; }

    [Required(ErrorMessage = "Full Name is required")]
    [StringLength(80, MinimumLength = 5)]
    public string Name { get; set; } = string.Empty;

    [Required]
    [EmailAddress]
    public string Email { get; set; } = string.Empty;

    public List<Premium> Premiums { get; set; } = new();
}

Attribut wieħed fuq il-mudell jittratta kemm il-constraint tad-database kif ukoll il-validazzjoni tal-formola fuq il-paġna, mingħajr JavaScript żejjed jew checks manwali fuq iż-żewġ naħat.

L-ieħor iffrankar kbir ta' ħin kien l-iskaffolding. Il-code generator ta' Microsoft jista' jibni s-sett sħiħ ta' paġni CRUD direttament kontra EF Core:

dotnet tool install -g dotnet-aspnet-codegenerator
dotnet aspnet-codegenerator razorpage Create Create -m Student -dc ApplicationDbContext -sqlite -udl -outDir Pages/Students

Dak ġġenera l-views, il-form handlers, u s-sejħiet tas-salvar għal Create, Edit, Delete, Details, u l-list view fi ftit minuti minflok sigħat.

X'għamilt biċ-ċans li ffrankajt

Ladarba l-linja bażi ta' CRUD u l-awtentikazzjoni kienu jaħdmu, qattajt il-bqija tal-ħin fuq il-partijiet li verament jagħmlu proġett jidher lest minflok skaffoldjat: nirranġa l-kodiċi ġġenerat u l-ismijiet, nagħti stil tajjeb lill-UI minflok inħalli l-Bootstrap default, nissida d-database biex ma kinitx vojta l-ewwel darba li xi ħadd fetaħha, u nżid testijiet madwar l-endpoints ewlenin.

X'ħadt minnha

It-tagħlima reali kienet li proġett żgħir u komplut jgħid aktar lil recruiter minn wieħed akbar li huwa nofsu lest, u l-format tal-assessment ta' Balta huwa mod tajjeb biex tinforza dik il-limitazzjoni fuqek innifsek.