mirror of https://github.com/abpframework/abp.git
committed by
GitHub
7 changed files with 236 additions and 4 deletions
@ -0,0 +1,35 @@ |
|||||
|
## Entity Framework Core PostgreSQL integrace |
||||
|
|
||||
|
> Podívejte se na [Entity Framework Core integrační dokument](../Entity-Framework-Core.md) pro základy integrace EF Core. |
||||
|
|
||||
|
### Aktualizace projektu EntityFrameworkCore |
||||
|
|
||||
|
- V projektu `Acme.BookStore.EntityFrameworkCore` nahraďte balík `Volo.Abp.EntityFrameworkCore.SqlServer` za `Volo.Abp.EntityFrameworkCore.PostgreSql` |
||||
|
- Aktualizace pro použití PostgreSQL v `BookStoreEntityFrameworkCoreModule` |
||||
|
- Nahraďte `AbpEntityFrameworkCoreSqlServerModule` za `AbpEntityFrameworkCorePostgreSqlModule` |
||||
|
- Nahraďte `options.UseSqlServer()` za `options.UsePostgreSql()` |
||||
|
- V jiných projektech aktualizujte PostgreSQL connection string v nezbytných `appsettings.json` souborech |
||||
|
|
||||
|
#### Odstranění stávajících migrací |
||||
|
|
||||
|
Smažte všechny stavající migrační soubory (včetně `DbContextModelSnapshot`) |
||||
|
|
||||
|
 |
||||
|
|
||||
|
#### Znovu vygenerujte počáteční migraci & aktualizujte databázi |
||||
|
|
||||
|
Nastavte správný spouštěcí projekt (obvykle web projekt), |
||||
|
Otevřete **Package Manager Console** (Tools -> Nuget Package Manager -> Package Manager Console), zvolte `Acme.BookStore.EntityFrameworkCore.DbMigrations` jako **Default project** a proveďte následující příkaz: |
||||
|
|
||||
|
Proveďte příkaz `Add-Migration`: |
||||
|
```` |
||||
|
PM> Add-Migration Initial |
||||
|
```` |
||||
|
|
||||
|
Poté proveďte příkaz `Update-Database` k aktualizaci schématu databáze: |
||||
|
|
||||
|
```` |
||||
|
PM> Update-Database |
||||
|
```` |
||||
|
|
||||
|
 |
||||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
@ -0,0 +1,61 @@ |
|||||
|
# Dapper integrace |
||||
|
|
||||
|
Jelikož myšlenka Dapper je taková, že sql příkaz má přednost, tak hlavně poskytuje metody rozšíření pro `IDbConnection` rozhraní. |
||||
|
|
||||
|
Abp nezapouzdřuje přílíš mnoho funkcí pro Dapper. Abp Dapper poskytuje základní třídu `DapperRepository<TDbContext>` založenou na Abp EntityFrameworkCore, který poskytuje vlastnosti `IDbConnection` a `IDbTransaction` vyžadované v Dapper. |
||||
|
|
||||
|
Tyto dvě vlastnosti fungují dobře s [jednotkou práce](Unit-Of-Work.md). |
||||
|
|
||||
|
## Instalace |
||||
|
|
||||
|
Nainstalujte a nakonfigurujte EF Core podle [EF Core integrační dokumentace](Entity-Framework-Core.md). |
||||
|
|
||||
|
`Volo.Abp.Dapper` je hlavní NuGet balík pro Dapper integraci. Nainstalujte jej proto do vašeho projektu (pro strukturovanou aplikaci do datové/infrastrukturní vrstvy): |
||||
|
|
||||
|
```shell |
||||
|
Install-Package Volo.Abp.Dapper |
||||
|
``` |
||||
|
|
||||
|
Poté přidejte závislost na `AbpDapperModule` modulu (atribut `DependsOn`) do Vašeho [modulu](Module-Development-Basics.md): |
||||
|
|
||||
|
````C# |
||||
|
using Volo.Abp.Dapper; |
||||
|
using Volo.Abp.Modularity; |
||||
|
|
||||
|
namespace MyCompany.MyProject |
||||
|
{ |
||||
|
[DependsOn(typeof(AbpDapperModule))] |
||||
|
public class MyModule : AbpModule |
||||
|
{ |
||||
|
//... |
||||
|
} |
||||
|
} |
||||
|
```` |
||||
|
|
||||
|
## Implementace Dapper repozitáře |
||||
|
|
||||
|
Následující kód implementuje repozitář `Person`, který vyžaduje `DbContext` z EF Core (MyAppDbContext). Můžete vložit `PersonDapperRepository` k volání jeho metod. |
||||
|
|
||||
|
`DbConnection` a `DbTransaction` jsou ze základní třídy `DapperRepository`. |
||||
|
|
||||
|
```C# |
||||
|
public class PersonDapperRepository : DapperRepository<MyAppDbContext>, ITransientDependency |
||||
|
{ |
||||
|
public PersonDapperRepository(IDbContextProvider<MyAppDbContext> dbContextProvider) |
||||
|
: base(dbContextProvider) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
public virtual async Task<List<string>> GetAllPersonNames() |
||||
|
{ |
||||
|
return (await DbConnection.QueryAsync<string>("select Name from People", transaction: DbTransaction)) |
||||
|
.ToList(); |
||||
|
} |
||||
|
|
||||
|
public virtual async Task<int> UpdatePersonNames(string name) |
||||
|
{ |
||||
|
return await DbConnection.ExecuteAsync("update People set Name = @NewName", new { NewName = name }, |
||||
|
DbTransaction); |
||||
|
} |
||||
|
} |
||||
|
``` |
||||
@ -0,0 +1,126 @@ |
|||||
|
## Začínáme s Angular aplikační šablonou |
||||
|
|
||||
|
Tento tutoriál vysvětluje, jak vytvořit novou Angular aplikaci pomocí spouštěcí šablony, jak ji nakonfigurovat a spustit. |
||||
|
|
||||
|
### Tvorba nového projektu |
||||
|
|
||||
|
Tento tutorial používá k vytvoření nového projektu **ABP CLI**. Podívejte se na stránku [začínáme](https://abp.io/get-started) pro více možností. |
||||
|
|
||||
|
Pokud jste tak dosud neučinili, nainstalujte ABP CLI pomocí okna příkazového řádku: |
||||
|
|
||||
|
````bash |
||||
|
dotnet tool install -g Volo.Abp.Cli |
||||
|
```` |
||||
|
|
||||
|
Použíjte příkaz `abp new` v prázdné složce k vytvoření Vašeho projektu: |
||||
|
|
||||
|
````bash |
||||
|
abp new Acme.BookStore -u angular |
||||
|
```` |
||||
|
|
||||
|
> Můžete použít různé úrovně jmenných prostorů; např. BookStore, Acme.BookStore nebo Acme.Retail.BookStore. |
||||
|
|
||||
|
`-u angular` volba specifikuje Angular jako UI framework. Výchozí poskytovatel databáze je EF Core. Podívejte se na [CLI dokumentaci](CLI.md) pro všechny dostupné možnosti. |
||||
|
|
||||
|
#### Předběžné požadavky |
||||
|
|
||||
|
Vytvořené řešení vyžaduje; |
||||
|
|
||||
|
* [Visual Studio 2017 (v15.9.0+)](https://visualstudio.microsoft.com/tr/downloads/) |
||||
|
* [.NET Core 2.2+](https://www.microsoft.com/net/download/dotnet-core/) |
||||
|
* [Node v10.16+](https://nodejs.org) |
||||
|
* [Yarn v1.17+](https://yarnpkg.com/) |
||||
|
|
||||
|
### Struktura řešení |
||||
|
|
||||
|
Otevřete řešení ve **Visual Studio**: |
||||
|
|
||||
|
 |
||||
|
|
||||
|
Řešení má vrstvenou strukturu (založenou na [domain driven designu](Domain-Driven-Design.md)) a obsahuje projekty testů jednotek a integrace správně nakonfigurované pro práci s **EF Core** & **SQLite in-memory** databází. |
||||
|
|
||||
|
> Podívejte se na [dokument šablony aplikace](Startup-Templates/Application.md) k detailnímu pochopení struktury řešení. |
||||
|
|
||||
|
### Databázový connection string |
||||
|
|
||||
|
Zkontrolujte **connection string** v souboru `appsettings.json` u projektu `.HttpApi.Host`: |
||||
|
|
||||
|
````json |
||||
|
{ |
||||
|
"ConnectionStrings": { |
||||
|
"Default": "Server=localhost;Database=BookStore;Trusted_Connection=True" |
||||
|
} |
||||
|
} |
||||
|
```` |
||||
|
|
||||
|
Řešení je nakonfigurováno pro použití **Entity Framework Core** s **MS SQL Server**. EF Core podporuje [různé](https://docs.microsoft.com/en-us/ef/core/providers/) poskytovatele databáze, takže pokud chcete můžete použít jiný DBMS. V případě potřeby změňte connection string. |
||||
|
|
||||
|
### Tvorba databáze & aplikace migrací databáze |
||||
|
|
||||
|
K vytvoření databáze máte dvě možnosti. |
||||
|
|
||||
|
#### Použití aplikace DbMigrator |
||||
|
|
||||
|
Řešení obsahuje konzolovou aplikaci (v tomto příkladu nazvanou `Acme.BookStore.DbMigrator`), která dokáže vytvořit databázi, aplikovat migrace a vložit počáteční data. Ta je užitečná jak pro vývojové tak pro produkční prostředí. |
||||
|
|
||||
|
> `.DbMigrator` má vlastní `appsettings.json`. Pokud jste změnili connection string výše, měli byste změnit i tento. |
||||
|
|
||||
|
Klikněte pravým na projekt `.DbMigrator` zvolte **Set as StartUp Project**: |
||||
|
|
||||
|
 |
||||
|
|
||||
|
Zmáčkněte F5 (nebo Ctrl+F5) ke spuštění aplikace. Výstup by měl být podobný vyobrazení níže: |
||||
|
|
||||
|
 |
||||
|
|
||||
|
#### Použití příkazu EF Core Update-Database |
||||
|
|
||||
|
Ef Core máš příkaz `Update-Database`, který v případě potřeby vytvoří databázi a aplikuje čekající migrace. Klikněte pravým na projekt `.Web` a zvolte **Set as StartUp Project**: |
||||
|
|
||||
|
 |
||||
|
|
||||
|
Otevřete **Package Manager Console**, zvolte `.EntityFrameworkCore.DbMigrations` jako **Default Project** a proveďte příkaz `Update-Database`: |
||||
|
|
||||
|
 |
||||
|
|
||||
|
Tímto vytvoříte novou databáze podle nakonfigurovaného connection string. |
||||
|
|
||||
|
> Je doporučeno užití nástroje `.DbMigrator`, protože zároveň vloží i počáteční data ke správnému běhu webové aplikace. |
||||
|
|
||||
|
### Spuštění aplikace |
||||
|
|
||||
|
#### Spuštění API Host (na straně serveru) |
||||
|
|
||||
|
Ujistěte se že je projekt `.HttpApi.Host` nastaven jako startovací a spusťte aplikaci což otevře Swagger UI: |
||||
|
|
||||
|
 |
||||
|
|
||||
|
Tady můžete vidět API aplikace a zároveň je i otestovat. Získejte [více informací](https://swagger.io/tools/swagger-ui/) o Swagger UI. |
||||
|
|
||||
|
##### Autorizace pro Swagger UI |
||||
|
|
||||
|
Vetšina API aplikace vyžaduje autentizaci & autorizaci. Pokud chcete otestovat autorizované API, manuálně přejděte na stránku `/Account/Login`, vložte `admin` jako uživatelské jméno a `1q2w3E*` jako heslo k příhlášení do aplikace. Poté budete moci provádět autorizované požadavky API. |
||||
|
|
||||
|
#### Spuštění Angular aplikace (na straně klienta) |
||||
|
|
||||
|
Přejděte do složky `angular`, otevřete terminál příkazového řádku, proveďte příkaz `yarn` (doporučujeme používat správce balíků [yarn](https://yarnpkg.com), npm install bude v mnoha případech také fungovat): |
||||
|
|
||||
|
````bash |
||||
|
yarn |
||||
|
```` |
||||
|
|
||||
|
Jakmile jsou načteny všechny node moduly, proveďte příkaz `yarn start` nebo `npm start`: |
||||
|
|
||||
|
````bash |
||||
|
yarn start |
||||
|
```` |
||||
|
|
||||
|
Otevřete Váš oblíbený prohlížeč a přejděte na adresu `localhost:4200`. Počáteční uživatelské jméno je `admin` a heslo `1q2w3E*`. |
||||
|
|
||||
|
Startovací šablona obsahuje moduly **správa identit** a **správa tenantů**. Jakmile se přihlásíte, zprístupní se administrační menu kde můžete spravovat **tenanty**, **role**, **uživatele** a jejich **oprávnění**. |
||||
|
|
||||
|
> Doporučujeme [Visual Studio Code](https://code.visualstudio.com/) jako editor pro Angular projekt, ale klidně použijte Váš oblíbený editor. |
||||
|
|
||||
|
### Co dále? |
||||
|
|
||||
|
* [Tutoriál vývoje aplikace](Tutorials/Angular/Part-I.md) |
||||
Loading…
Reference in new issue