一则简短的技术备忘录
- プログラミング用日本語等幅フォント Cica(シカ)
实体框架
- https://docs.microsoft.com/ja-jp/ef/core/
.NET核心
ASP.NET Core 2.1 简称为ASP.NET核心2.1版本。
-
- 公式ブログ
- https://qiita.com/sugasaki/items/b6e6cd579ea205863908
自定义模板
安装和使用自定义模板有两种方法。
-
- nugetパッケージ
テンプレートはnugetのパッケージとして管理される。
テンプレートのインストール/アンインストールは、nugetパッケージIDで行う
ファイルシステム
テンプレートは管理されない。
インストールでは、template.jsonの存在するファイルパスが管理される
アンインストールでは、template.jsonの存在するファイルパスを指定する
如果文件系统方式被使用,当模板的存储路径从安装位置移动时,使用该模板的dotnet new命令将无法成功执行。
制作方法 (zuò
可以根据上述网站的参考创建一个自定义模板。
自定义模板是使用dotnet new命令创建新项目时用于创建骨架的模板。
模板.json
{
"$schema": "http://json.schemastore.org/template",
"author": "Atachimiko",
"classifications": [ "Web", "MVC", "SPA" ],
"name": "Atachi's Custom Template",
"identity": "AtachiCustomTemplate",
"shortName": "atachi",
"tags": {
"language": "C#"
},
"sourceName": "AtachiCustomTemplate",
"preferNameDirectory" : "true"
}
$schema
“http://json.schemastore.org/template”の値でよい。
author
テンプレートの製作者名
classifications
テンプレートの種類を示すタグ名。複数指定可能。
identity
テンプレートの定義名。システムにインストールするテンプレートには、一意のidentityを割り振らなければなりません。
name
テンプレートの名称
shortName
テンプレートの省略名。dotnet new コマンドで使用します。
tags
テンプレートのタグ。classificationsとの違いは不明ですが、言語名の指定に使われることが多いようです。
使用文件系统指定方式进行模板的卸载。
由于模板的名称和shortName无法删除,首先使用dotnet new -u命令来显示已安装的模板列表,然后通过指定显示的项目作为参数来卸载目标模板。
$ dotnet new -u
.NET Core CLI 用テンプレート インスタンス化コマンド
Currently installed items:
Microsoft.DotNet.Common.ItemTemplates
Microsoft.DotNet.Common.ProjectTemplates.2.0
Microsoft.DotNet.Test.ProjectTemplates.2.0
Microsoft.DotNet.Web.ItemTemplates
Microsoft.DotNet.Web.ProjectTemplates.2.0
Microsoft.DotNet.Web.Spa.ProjectTemplates
$ dotnet new -u Microsoft.DotNet.Web.Spa.ProjectTemplates
角度
你要我用中文将”トラシュー”转换或者改写吗?
错误:找不到本地工作空间文件(’angular.json’)。
路由
-
- Angularのルーティング設定(基礎編)
- Angular Routerメモ – ryotah’s blog
测试框架
请用中文对下列断言库 “chai” 进行释义。
“chai” 是一种用于测试代码的断言库。
Angular使用的标准断言库。
- chai
这是一个提供assert()系列方法的库。
// user.attrが{}であることを確認する
chai.assert.isObject(user.attr);
// user.attr.idの値が-1であることを確認する
chai.assert.propertyVal(user.attr, 'id', -1);
-
- mocha / chai チートシート – Qiita
- ユニットテストって何?って人向けのmochaとchaiの使い方 – Qiita
考试运动员考古拉玛
- https://qiita.com/howdy39/items/b9d704e7f84053924da3
经常会发生使用了Material等外部库却未定义模块指令,导致HTML解析失败,从而无法执行测试代码的情况。可以逐个添加定义,或者干脆采用不测试外部库的方式。
如果想在出现语法错误时不停止测试而继续进行处理,请在SPEC文件中进行以下描述。
import { NO_ERRORS_SCHEMA } from '@angular/core';
// describe内で、NO_ERRORS_SCHEMA を記述する
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent,
],
schemas: [
NO_ERRORS_SCHEMA // <-- this line is also important
]
}).compileComponents();
}));
Jasmine 单元测试代码
karma运行的单元测试代码是用jasmine编写的。
describe('add関数のテスト', function() {
it('1 + 2 は 3', function() {
expect(add(1, 2)).toBe(3);
});
});
锤子.js
锤子.js
<div id="myElement" style="background: silver;height: 300px;" (press)="onHammerPress($event)"
(swipe)="onHammerSwipe($event)">SW</div>
export class HomeComponent {
onHammerPress() {
console.info("Execute onHammerPress");
}
onHammerSwipe() {
console.info("Execute onHammerSwipe");
}
}
角度材料
用于Angular的用户界面基础架构。
$ npm install --save @angular/material @angular/cdk
$ npm install --save @angular/animations
启动器组件
-
- ダッシュボードコンポーネント
-
- データテーブルコンポーネント
- レスポンシブサイドメニューコンポーネント
MDB Angular 用中文释义
ASP.NET(含VisualStudio)
ASP.NET Core で Angular プロジェクト テンプレートを使用する – MSDN
事前に、ngコマンドをグローバルインストールしておく必要がある
-
- 在任意的文件夹中执行 dotnet new angular -o my-new-app 命令。
将创建一个名为“my-new-app”的新文件夹。
执行 cd my-new-app 命令。
执行 my-new-app.csproj 文件(将启动 VisualStudio)。
通过这种方法创建的Angular2基础源代码将存储在ClientApp文件夹中。
在VisualStudio中,会自动转译此文件夹并启动应用程序。
这些也可以通过Angular2的CLI应用中的ng命令来执行。
ng命令是Angular CLI(@angular/cli包)中包含的命令,可通过npm进行安装。
可以在全局空间或项目本地空间进行安装。
在上述创建的项目文件夹中执行npm install –save-dev @angular/cli命令来安装。
如果已经在全局环境中安装了 AngularCLI,而且版本较低,那么会进行升级到最新版本。
$ npm update -g @angular/cli
安装Angular的方法版本非常陈旧,属于Angular4系列,因此可以使用ng update命令进行升级。
$ ng update @angular/core
ASP.NET Core 2.1的释义
从这个版本开始,dotnet命令生成的asp.net模板发生了变化,现可以调用专注于SPA架构的API。
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
// To learn more about options for serving an Angular SPA from ASP.NET Core,
// see https://go.microsoft.com/fwlink/?linkid=864501
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
神气活现
如果要使用SPA,界面定义肯定是用Swagger呢,关于Swagger的使用方法,请参考这个网站。
- https://qiita.com/gcyata/items/342073fa7607fd4082bd
厮杀
为了使用在ASP.NET Core中通过Swagger定义的REST API,可以使用方便的Swashbuckle库来实现。
- Swashbuckle と ASP.NET Core の概要 – Microsoft Docs
生成Swagger UI
可以使用AddSwaggerGen方法。
在配置中,可以为生成的SwaggerUI提供各种信息。
public class Startup
{
/// <summary>
/// Configures app the services.
/// </summary>
/// <param name="services">The services.</param>
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = "pixstock.service.web API",
Description = "A simple example ASP.NET Core Web API",
Contact = new Contact { Name = "Juan Carmona", Email = "d.jgc.it@gmail.com", Url = "https://wisegeckos.com" },
});
// Set the comments path for the Swagger JSON and UI.
var basePath = AppContext.BaseDirectory;
var xmlPath = Path.Combine(basePath, "pixstock.service.web.xml");
c.IncludeXmlComments(xmlPath);
});
}
}