Berawirdkirin û hilbijartina pergalên koçkirina daneyan

Berawirdkirin û hilbijartina pergalên koçkirina daneyan

Berawirdkirin û hilbijartina pergalên koçkirina daneyan

Modela daneyê di pêvajoya pêşkeftinê de diguhezîne, û di hin xalan de ew êdî bi databasê re têkildar nabe. Bê guman, databas dikare were jêbirin, û dûv re ORM dê guhertoyek nû biafirîne ku dê bi modelê re têkildar be, lê ev prosedur dê bibe sedema windabûna daneyên heyî. Ji ber vê yekê, fonksiyona pergala koçberiyê ew e ku pê ewle bibe ku, wekî encama guherînek şemayê, ew bi modela daneyê ya di serîlêdanê de bê wendakirina daneyên heyî re hevdeng e.

Di vê gotarê de, em dixwazin ji bo birêvebirina koçên databasê li amûrên cihêreng binêrin. Em hêvî dikin ku ev vekolîn dê ji bo pêşdebirên ku bi vebijarkek wekhev re rû bi rû ne kêrhatî be.

Armanc

Pargîdaniya me naha bi rengek çalak nifşa paşîn a hilberê - Docs Security Suite (DSS) pêşve dixe. Parçeya serverê bi .Net Core tê nivîsandin, û Entity Framework Core wekî DBMS tê bikar anîn. Dema ku sêwirana serîlêdanê, em nêzîkatiya Code First bikar tînin.

Modela domaina serîlêdanê di heman demê de ji hêla çend pêşdebiran ve hatî afirandin - her yek ji beşa xweya mentiqî ya pergalê berpirsiyar e.

Nifşa berê ya DSS-ê wekî pergala rêveberiya koçberiyê wekî pergala rêveberiya koçberiyê, Koçberên Çarçoveya Enîtê ya klasîk (EF 6) bikar anî. Lêbelê, hin gilî li dijî wê kom bûne, ya sereke ew e ku EF ji bo çareserkirina nakokiyên guhertoyê nêzîkatiyek maqûl nîne. Vê rastiyê hîn jî dema ku xeletiyan wekî beşek piştgiriyê rast dikin me aciz dike, ji ber vê yekê me biryar da ku em vebijarkên alternatîf bifikirin.

Di encama nîqaşê de, ji bo pergala rêveberiya koçberiyê ev daxwazên jêrîn hatin çêkirin:

  1. Piştgiriya ji bo DBMS-yên cihêreng. MS SQL Server, PostgreSQL, Oracle hewce ne, lê gengaz e ku meriv kesên din bikar bîne
  2. Bi ORM re dixebitin. Di destpêkê de, hate plan kirin ku EF Core bikar bîne, lê di qonaxa sêwiranê de em amade bûn ku ORM-yên din bifikirin.
  3. Oto-nifşa koçberan. Bi berçavgirtina pêşkeftina Code First, ez dixwazim ji hewcedariya "dest-nivîsandina" koçan dûr bixim
  4. Pevçûnên versiyonê. Di hawîrdorek pêşkeftinê ya belavkirî de, dema ku yek dibe, EF Core dikare ji pevçûnan bikişîne. Ev dibe pirsgirêkek girîng ji ber ku beşên cihêreng ên serîlêdanê ji hêla pêşdebirên cihêreng ve têne afirandin, ji ber vê yekê hûn neçar in ku li ser her yekê gelek wext derbas bikin.
  5. Belgekirin û piştgirîya pêşkeftî. Li vir, ji me re xuya dike, ravekirin hewce nake
  6. Belaş. Pîvan şert e, ji ber ku pergalên ne pir biha an biha ne, lê di rehetiyê de îdeal in, em jî amade bûn ku bifikirin

Di encama lêkolînek piçûk de, vebijarkên jêrîn hatin dîtin û ji bo nirxandinê xwestin:

  1. Koçberiyên EF Core
  2. DBup
  3. RoundhouseE
  4. ThinkingHome.Koçber
  5. Fluent Migrator

Û niha hinekî hûrgilî

Berawirdkirin û hilbijartina pergalên koçkirina daneyan
EntityFramework Core Koçberî

Bi xwezayî, ev vebijarka yekem û sereke ya hilbijartinê bû. Amûrek xwemalî ku bêyî ku li dora tembûrê bixebite ji qutiyê dixebite. Gelek belge, fermî û ne wusa, sadebûn, hwd. Lêbelê, giliyên ku li ser EF-ya klasîk têne kirin ji bo EF Core jî pir têkildar in.

Bi vî rengî, avantajên ji bo EF Core têne destnîşan kirin:

  • Piştgiriya Microsoft, belgekirin, bi rûsî, civatek mezin
  • Veberhênana xweser a koçberan li ser bingeha CodeFirst
  • Li gorî EF 6, EF Core êdî wêneyek databasê hilîne. Dema ku di Code First de bi EF Core re dixebitin, êdî ne hewce ye ku databasek were danîn
  • Ji ber ku em ji Code First dans dikin, mimkun e ku meriv yek koçberî ji hemî peydakiroxên gihîştina daneya pêwîst re bike
  • Di derbarê pêşkêşkeran de, PostgreSQL piştgirî ye, Oracle piştgirî ye, hwd., hwd., û tewra MS SQL Server 

Û her weha dezavantajên:

  • Çareserkirina pevçûnan di heman astê de ma. Pêdivî ye ku koçberan rêz bikin û dîmenên databasê nûve bikin
  • Bi modelên ku koçberî li ser têne çêkirin ve girêdayî ye

DbUp

Berawirdkirin û hilbijartina pergalên koçkirina daneyan
dbup.github.io

DbUp pirtûkxaneyek .NET e ku ji hêla NuGet ve hatî saz kirin û alîkariya guheztina guhertinên SQL Server dike. Ew bişopîne ka kîjan nivîsarên guheztinê jixwe hatine darve kirin û yên ku ji bo nûvekirina databasê hewce ne dimeşîne. Pirtûkxane ji projeyek ji bo motora tevnvîsa çavkaniya vekirî ya li ser ASP.NET derket û di bin lîsansek MIT de heye, û kod li ser GitHub e. Koçberî bi karanîna T-SQL têne şirove kirin.

avantajên çi ne:

  • Piştgiriya ji bo hejmareke mezin ji DBMS (MS SQL Server, PstgreSQL, MySQL)
  • Ji ber ku nivîsar di T-SQL de têne nivîsandin, ew pir hêsan xuya dikin
  • Pevçûn jî bi karanîna SQL têne çareser kirin

Û neyînî:

  • Digel hemî cûrbecûr DBMS-yên piştgirîkirî, Oracle ne yek ji wan e
  • Bi ORM re têkilî nake
  • Nivîsandina tîpên T-SQL bi destan ne ew e ku me armanc dikir
  • Belgekirin û civak wusa ne, her çend di warê nivîsandina nivîsarên SQL de ew ne hewce nebin.

RoundhouseE

Berawirdkirin û hilbijartina pergalên koçkirina daneyan
github.com/chucknorris/roundhouse

Vê amûra rêveberiya koçberiyê, ku di bin lîsansa Apache 2.0 de hatî belav kirin, mîna ya berê, li ser motora koçberiyê ya T-SQL dimeşîne. Xuya ye, pêşdebiran pêşî li çareserkirina pirsgirêkên teknîkî yên di derbarê piştgirîya DBMS de girtin, ne ku pêvajoyek pêşkeftinek rehet biafirînin.

Pros:

  • DBMS-ya pêwîst piştgirî dike (tevî Oracle)

Bawer:

  • Oracle (û her weha Access, ku ji me re ne girîng e) li ser .NET Core nayê piştgirî kirin, tenê li ser .NET Full Framework
  • Bi ORM re naxebite
  • Ji amûra berê jî kêmtir belge hene
  • Dîsa - koçberî bi tîpan têne nivîsandin

ThinkingHome.Koçber

Berawirdkirin û hilbijartina pergalên koçkirina daneyan

Amûrek ji bo veguheztina şema databasa guhertoya berbi platforma .NET Core, ku di bin lîsansa MIT-ê de tê belav kirin. Pêşvebir bixwe hema salek berê li ser guhertoya xweya herî dawî nivîsî.

Pros:

  • Ji bo .NET Core hatiye çêkirin
  • Rêzek şax a koçberan pêk anî
  • Têketina koçberiyê pêk anî

Bawer:

  • Dawî salek berê hate nûve kirin. Xuya ye ku proje nayê piştgirî kirin
  • Ji hêla Oracle ve nayê piştgirî kirin (gotarê diyar dike ku ev ji ber nebûna pêkanîna aram a .NET Core ye - lê ev salek berê ye)
  • No nifşê otomatê yên koçberiyê

Bi tevayî, proje sozdar xuya dike, nemaze ger pêşde biçe, lê hewce bû ku em li vir û nuha biryarek bidin.

Fluent Migrator

Berawirdkirin û hilbijartina pergalên koçkirina daneyan
github.com/fluentmigrator/fluentmigrator

Amûra koçberiyê ya herî populer bi artêşek mezin a temaşevanan re. Di bin lîsansa Apache 2.0 de belav kirin. Wekî ku di ravekirinê de tê gotin, ew çarçoveyek koçberiyê ye ji bo .NET, mîna Ruby on Rails Migrations. Guhertinên di şemaya databasê de di dersên C# de têne diyar kirin.

Li vir avantaj hene:

  • Piştgiriya ji bo DBMS pêwîst
  • Piştgiriya NET Core
  • Civaka mezin a pêşketî
  • Pevçûnên di navbera koçberan de bi rêz têne çareser kirin - rêza pêkanîna koçberan tê diyar kirin. Wekî din, heke li dora yek saziyek nakokî çêbibe, dema kodê bi hev ve girêdide, ew bi heman awayê ku di koda mayî de tê çareser kirin.
  • Profîl hene ku piştî koçberiyek serfiraz têne darve kirin. Û ew dikarin fonksîyonên karûbarê hilgirin. Nûvekirina dawîn berî mehekê bû, ango proje zindî ye

Ji bo kêmasiyan, li vir ew in:

  • No nifşê otomatê yên koçberiyê
  • Têkiliyek bi modelên EF re tune
  • Wêneyên databasê tune

Hilbijartina me çi bû?

Berawirdkirin û hilbijartina pergalên koçkirina daneyan

Nîqaşên germ li dora du parameteran dizivirin - hilberîna otomatîkî ya koçberan û çareserkirina aqilmend a pevçûnan. Faktorên din pir kêmtir tirsnak bûn. Di encamê de, li ser bingeha encamên nîqaşê, tîmê biryar da ku di projeya nû de Fluent Migrator bikar bîne. Ji ber ku di paşerojê de çareserkirina nakokîyan dê gelek feydeyên zêdetir bi xwe re bîne.

vebiguherin

Bê guman, amûrên bêkêmasî tune. Ji ber vê yekê me neçar ma ku em "daxwazên" xwe pêşîn bikin da ku hilbijartinek bikin. Lêbelê, ji bo tîmên din û karên din, faktorên din dikarin biryardar bin. Em hêvî dikin ku ev gotar dê ji we re bibe alîkar ku hûn hilbijêrin.

Source: www.habr.com

Add a comment