SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
.NET 7におけるBlazor
の新機能
株式会社SAKURUG
エンジニアリングユニット
草場 友光
C# Tokyo .NET Conf 2022直後 .NETラボ合同イベント
自己紹介
• 普段は主にWebFormsアプリの保守の
お仕事をしてます。
• 古めのシステムが多いので時代に取り
残されぬよう新しい技術を一つでも入
れるよう日々努力しています。
• 2022/08-2023 Microsoft MVP
(Developer Technologies)
• tomo_kusaba
宣伝
【VISION】ひとの可能性を開花させる企業であり続ける
VISIONに共感できる仲間募集中。
注意
• 個人の見解・解釈が多分に入っています。
• 見解の相違・事実誤認などありましたらご指摘ください。
今日の目的
• .NET 7がとうとうリリースされました。
• 今回は、Blazorにフォーカスして新しい機能をキャッチアップ
していきたいと思います
主な項目
• 新しいローディング画面
• データバインディング
• 仮想化の改善
• ナビゲーションの改善
位置づけについて
C# 11としての新文法
.NET 7のフレームワークとしての新機能
ASP.NET Coreとしての新機能
Blazorの新機能
今回のフォーカスポイント
とはいえ、こっちも外せな
い
とはいえ、こっちも外せな
い
とはいえ、こっちも外せない
新機能一覧・・・
• Githubをみると書いてる
https://github.com/dotnet/aspnetcore/issues/39504
STSサポート
• 従来Currentサポートと言われていたものを名称変更
• LTS(Long Term Support)に対してSTS(Short Standard
Term Support)
• サポート期間はリリース日から18ヶ月間
STS
ん?
サポート名称の名称混乱!?
.NET 7 Preview 6アナウンスブログより
.NET 7 RC2アナウンスブログより
ホットリロードの改善
• Blazor WebAssemblyのデバッグ時にホットリロードできるよ
うになった
• .NET 6でもホットリロードできる
新しいローディング画面
新しいローディング画面
• CSSスタイルの以下の値でローディング状況が提供されている。
• --blazor-load-percentage
• --blazor-load-percentage-text
• HTML+CSSでローディング画面を自作することが今までより
簡単に可能となっている。
• →試してみた!
新しいローディング画面の自作
データバインディング(bind-after)
• テキストボックスの値を更新してフォーカスが外れたときによ
びだすメソッドを指定することができる
• 今まではonchangeイベントを使用して実装していたものがよ
り楽になった。
仮想化の改善
• Blazorではスクロール領域の高さを定義するスペーサー要素に
「div」要素を使用している
• ただし、親要素で子要素が許可されない場合がある。
• そのため、newパラメータを使用してスペーサ要素を構成でき
るようになった。(地味)
ナビゲーションの改善
• 画面遷移に割り込んでキャンセルできる機能
• 画面遷移時にステータスを渡すことができる機能
画面遷移に割り込んでキャンセルできる機能
@inject IJSRuntime js
<NavigationLock OnBeforeInternalNavigation="BeforeInternalNavigation" ConfirmExternalNavigation="true" />
@code {
private async Task BeforeInternalNavigation(LocationChangingContext context)
{
bool result = await js.InvokeAsync<bool>("confirm", "ページ遷移するよ?");
if (!result)
{
context.PreventNavigation();
}
}
}
アプリ内でのページ
遷移
外部ページ遷移
画面遷移時にステータスを渡すことができる機能
• NavigationManagerのNavigateToの第二引数の
NavigationOptionsにHistoryEntryStateプロパティが追加さ
れた(string?)
• これを画面遷移元で設定し、画面遷移先で読み取る
空のBlazorテンプレート
• 今まではcounterやFetchDataやBootstrapを含むテンプレー
トが用意されていた。
• レイアウトも削除されシンプルなテンプレートとなっている。
• 今までは一般的にこれらの不要なファイルを削除してからアプ
リケーション開発に取りかかる必要があったがこのテンプレー
トによりそれが最小の手間となった。
空のBlazorテンプレート実行イメージ
新しいLINQ API
• Order()・OrderDescending()
var data = new[] { 2, 1, 3 };
// Instead of
// var sorted = data.OrderBy(e => e);
var sorted = data.Order();
// Instead of
// var sortedDescending = data.OrderByDescending(e => e);
var sortedDescending = data.OrderDescending();
C#11
• 生文字列リテラル
• 3つ以上の連続した「“」を使うことで一切エスケープの必要のない
文字列リテラルをかけるようになった。
• エスケープ不要の文字列として逐語的文字列リテラル「@””」があ
たるが微妙に使い勝手が悪かった
生文字列リテラル1
• 3つ以上の連続した「“」を使うことで一切エスケープのいら
ない文字列リテラルが書ける
var moji = “””
“も書けるし”という文字として
¥とかももちろん書ける
¥¥とかいったら¥が2こ
{}も特別な解釈もされず
“””;
生文字列リテラル2
• 文字列中に連続した「“」を並べたいとき
• 3つ並べたければ4つの「“」でくくる!
生文字列リテラルで文字列補間
• $の個数と同じ数の{と}を書いた時だけ補間扱い。
• それ以下の個数の{と}を書いた時は普通の文字列として扱う
参考文献
• ASP.NET Core updates in .NET 7 Preview 7
• ASP.NET Core Roadmap for .NET 7 #39504
• .NET 7 の ASP.NET Core Blazor の新機能試してみよう
• ASP.NET Core Blazor データ バインディング
• ASP.NET Core Razor コンポーネントの仮想化
• ASP.NET Core の Blazor ルーティングとナビゲーション
おしまい
おしまい

Contenu connexe

Tendances

CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するYoshifumi Kawai
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)Takuya Kawabe
 
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶTomomitsuKusaba
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例sairoutine
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppTomomitsuKusaba
 
Hubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話しますHubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話しますhironroinakae
 
AWS Black Belt Techシリーズ Amazon CloudSearch
AWS Black Belt Techシリーズ Amazon CloudSearchAWS Black Belt Techシリーズ Amazon CloudSearch
AWS Black Belt Techシリーズ Amazon CloudSearchAmazon Web Services Japan
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方増田 亨
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Yoichi Kawasaki
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャtorisoup
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 

Tendances (20)

CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
 
Hubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話しますHubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話します
 
AWS Black Belt Techシリーズ Amazon CloudSearch
AWS Black Belt Techシリーズ Amazon CloudSearchAWS Black Belt Techシリーズ Amazon CloudSearch
AWS Black Belt Techシリーズ Amazon CloudSearch
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
nginx入門
nginx入門nginx入門
nginx入門
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 

Similaire à .NET 7におけるBlazorの新機能

.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能TomomitsuKusaba
 
.NET6新機能の振り返り
.NET6新機能の振り返り.NET6新機能の振り返り
.NET6新機能の振り返りTomomitsuKusaba
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめTomomitsuKusaba
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在TomomitsuKusaba
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppTomomitsuKusaba
 
Microsoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめMicrosoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめTomomitsuKusaba
 
保守性の高いアプリケーション設計について
保守性の高いアプリケーション設計について保守性の高いアプリケーション設計について
保守性の高いアプリケーション設計についてTomomitsuKusaba
 
BlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようBlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようTomomitsuKusaba
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Atsushi Nakamura
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?Yuta Matsumura
 
Project 15 - Algyan May 2022.pdf
Project 15 - Algyan May 2022.pdfProject 15 - Algyan May 2022.pdf
Project 15 - Algyan May 2022.pdfYasuhiroHanda2
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデートTomomitsuKusaba
 
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功Tatsuya Sakai
 
NuxtJS + SSRで作ったGREE Tech Conference 2020
NuxtJS + SSRで作ったGREE Tech Conference 2020NuxtJS + SSRで作ったGREE Tech Conference 2020
NuxtJS + SSRで作ったGREE Tech Conference 2020gree_tech
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうTomomitsuKusaba
 
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノートIoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノートKazumi IWANAGA
 

Similaire à .NET 7におけるBlazorの新機能 (20)

.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能
 
.NET6新機能の振り返り
.NET6新機能の振り返り.NET6新機能の振り返り
.NET6新機能の振り返り
 
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor  WebAssemblyのすすめStatic Web AppsとBlazor  WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめ
 
.NET Lab2022年2月
.NET Lab2022年2月.NET Lab2022年2月
.NET Lab2022年2月
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
 
Microsoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめMicrosoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめ
 
保守性の高いアプリケーション設計について
保守性の高いアプリケーション設計について保守性の高いアプリケーション設計について
保守性の高いアプリケーション設計について
 
BlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようBlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみよう
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
 
Project 15 - Algyan May 2022.pdf
Project 15 - Algyan May 2022.pdfProject 15 - Algyan May 2022.pdf
Project 15 - Algyan May 2022.pdf
 
.Netlab202107
.Netlab202107.Netlab202107
.Netlab202107
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
 
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功
実録!HoloLens×AI×IoTアプリが開発できるまでの挫折と成功
 
NuxtJS + SSRで作ったGREE Tech Conference 2020
NuxtJS + SSRで作ったGREE Tech Conference 2020NuxtJS + SSRで作ったGREE Tech Conference 2020
NuxtJS + SSRで作ったGREE Tech Conference 2020
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼう
 
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノートIoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
 

.NET 7におけるBlazorの新機能