[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

c#に関するgriefworkerのブックマーク (221)

  • C# で null 許容型あれこれ - ぷろじぇくと、みすじら。

    Created at: 2019-09-25 .NET Core 3.0 のリリースとともに C# 8.0 がきて、null 許容型 (nullable reference types) を使えるようになったので使ってみたメモです。 未初期化だけど後で初期化するパターンコンストラクターではまだ初期化しないのだけど、いずれフレームワークから初期化するので API を利用する側はほぼ null を扱わない、けど内部の初期状態は null なのを許してほしいというケースはまあよくあります。Kotlin の lateinitTypeScript の definite assignment assertion みたいなやつですね。 C# ではズバリそれっぽいものはないので default! を初期値として代入しておけばよいです。 This file contains bidirectional

  • 今日からできる!簡単 .NET 高速化 Tips

    Event : Visual Studio Users Community Japan #1 Date : 2019/09/14 ソフトウェア/サービス開発において最も後回しにされるものの代表が「パフォーマンスの向上」です。C#/.NET の最大の武器は開発生産性ですが、C# 7.0 以降はパフォーマンス向上のための機能追加が多数行われています。いくつかのポイントを押さえることで実装時からより高速なコードを書くことができるようになります。 このドキュメントでは、そんなポイントとなる箇所をふんだんにお届けします。Read less

    今日からできる!簡単 .NET 高速化 Tips
  • MasterMemory - Unityと.NET Coreのための読み取り専用インメモリデータベース

    Cy#の河合です。今回新しくオープンソースライブラリとして、マスターデータの管理用途を主眼に置いた、読み取り専用のインメモリデータベースを公開しました。 [GitHub – Cysharp/MasterMemory] 今までのゲーム開発の経験から、「省メモリ(インメモリということもあり使用メモリ量には気を使う」「高速なデータベースロード(構築に時間がかかるとゲームの起動速度に大きく影響する)」「高速な検索(ディクショナリのルックアップと同程度のクエリ)」の3点を重視して作りました。以下がベンチマークの結果となります。 MasterMemory、SQLite、LiteDB、RocksDBがインプロセス、Memcachedのみ別プロセスのマシン内通信による比較です。SQLite(ファイル読み込み型)の4700倍高速で、1クエリでのアロケーションはゼロです。また、保存時のファイルサイズも極小です

    MasterMemory - Unityと.NET Coreのための読み取り専用インメモリデータベース
  • neue cc - CIや実機でUnityのユニットテストを実行してSlackに通知するなどする

    前回(?)CircleCIUnityをテスト/ビルドする、或いは.unitypackageを作るまででは、ユニットテストに関する部分がうまく行ってなくて放置でした。放置でいっかな、と思ってたんですが、改めてユニットテストをCIでがっつり実行したい、というかIL2CPPのテストをがっつしやりたい。という切実な要望が私の中で発生したので(N回目)、改めて取り組んでみました。 さて、オフィシャルな(?)ユニットテストのコマンドラインの実行の口は、Writing and executing tests in Unity Test Runnerの最後の方のRunning from the command lineの節に書いてありました(コマンドライン引数のほうのマニュアルにはリンクすら張ってなかったので気づかなかった……!)。つまり、こんなふうにやればいい、と。 Unity.exe -runTes

    griefworker
    griefworker 2019/05/07
    RandomFixtureKitのエッジケースになり得る値だけを詰めるモードはライブラリ開発で助けられそう。
  • C# パフォーマンス改善に使える新しめの機能たち 7.0〜 - Qiita

    時代に合わせてバージョンアップを続け、モダンな言語もまだまだ彼の背中を追っている部分があると噂されたりしている言語、C#。 現状の利用シーンとして割と大きいめの Unity (ゲームエンジン) では、使えるC#のバージョンがぐいぐいっと上がりはじめて以降、そこそこ新しい書き方も認知されてきているようです。 しかし、個人的に注目している C#の新機能は、ショートハンドや関数型言語由来の機能よりもむしろ、C#自体のパフォーマンスを改善するような文法や標準ライブラリたちです。 ーーパフォーマンスを改善する言語機能って一体なんのことでしょう。 「C# なんて、ランタイムが勝手にJITで最適化した機械語にして走らせてくれるわけで、Unityの場合はc++トランスパイルされるわけで、べつにプログラマがミクロなチューニングとか意識しなくても、夜、寝る前とかに祈ったり寄付とかをしていれば、ランタイムをつ

    C# パフォーマンス改善に使える新しめの機能たち 7.0〜 - Qiita
  • MicroBatchFramework - クラウドネイティブ時代のC#バッチフレームワーク

    Cy#の河合です。昨年12月に、『MagicOnion』というライブラリのリリースを告知しました。今回、再びオープンソースライブラリとして、C#のためのCLI/Batchライブラリをリリースしました。 [GitHub – Cysharp/MicroBatchFramework] .NET CoreになってWindowsMacLinux問わずクロスプラットフォームなアプリケーション開発環境として機能するようになったC#ですが、そして機能的には十分揃っているのですが、ちょっと気の利いたフレームワークは意外と欠けているところがあります。バッチ・コマンドラインアプリ。というと地味なトピックスですが、ゆえに基機能以上のサポートがなかったりします。しかし、「C#の可能性を切り開いていく」という理念を掲げるCy#としては、派手・地味を問わず、現状のC#に欠けているものを埋めていくことで、C#がアプ

    MicroBatchFramework - クラウドネイティブ時代のC#バッチフレームワーク
  • .NET Core で Generic Host を利用する - tech.guitarrapc.cóm

    ASP.NET Core 2.1 で追加された Generic Host (汎用ホスト) は、non-Web App アプリの作成をASP.NET Core と似た書き心地で提供します。 今後のスタンダードとなる見込みですが、どのようにして Generic Hostを利用するのか見てみましょう。 ※ 社内向けブログの転載なのでシリーズ化します。 目次 目次 TL;DR; Generic Host とは WebHost (ASP.NET Core) との違い Generic Host を使う目的 Configure 処理の追加 書き心地 サービス処理をDIする まとめ Tips IHostBuilder.RunConsoleAsync, IHostBuilder.Start, Host.StartAsync, IHost.RunAsync の違い ASP.NET Core 3.0ではGene

    .NET Core で Generic Host を利用する - tech.guitarrapc.cóm
  • Kubernetesでステートフルなゲームサーバを動かした思い出

    とあるスマートフォン向けMMORPGプロジェクトで、アプリケーションサーバをほぼすべてGKE(Google Kubernetes Engine)に乗っけて動かしていました。 このゲームは、モバイル向けながら、複数プレイヤ間でそこそこリアルタイム性の高い同時プレイができるものでした。同じフィールドを誰かが歩けば、自分が見ている画面でもほぼ同時にそいつが歩いて横切っていく、同じ敵と皆で一緒に戦えば、誰かが繰り出した攻撃が参加者全員の画面に即同期される、もちろんチャットもできる、そんな具合です。今ではさほど珍しくないのかもしれませんが、PCのオンラインゲームのような機能を搭載した、リアルタイム性の高いモバイルゲームでした。 さて、こうなってくると、オーソドックスなWebサーバのような、HTTP/1でリクエスト/リプライを捌く、というサーバだけでは要件を満たすことができません。 複数プレイヤ間で

    Kubernetesでステートフルなゲームサーバを動かした思い出
    griefworker
    griefworker 2019/04/09
    C# + .NET Core + Linux + GKE(Kubernetes)
  • C# と Polly を使って回復力の高いアプリケーションを書く - しばやん雑記

    昔のように高い信頼性を持つオンプレのハードウェア上で動いていたアプリケーションとは異なり、昨今のクラウド上で動いているアプリケーションは障害が発生する前提でコードを書く必要があります。クラウドのハードウェアは毎日どこかで壊れるので、それを前提にソフトウェアで高可用性を担保しているわけです。 最近は Microservices の流行もあって 1 つのアプリケーションを構成するコンポーネントが増えているため、実装によっては 1 つのコンポーネントで発生した障害が全体に波及してしまい、アプリケーション全体が停止してしまうこともあり得ます。例としてよく挙げられるのがリコメンド周りでしょう、リコメンドサービスの障害でアプリケーション全体が落ちてはいけないのです。 今のアプリケーションは障害時には敢えてサービスレベルを下げてでも、全体としての可用性を維持することが必要です。そして復旧時には人の介入な

    C# と Polly を使って回復力の高いアプリケーションを書く - しばやん雑記
  • neue cc - 2018年を振り返る

    毎年恒例ということで、今年も振り返ります。だいたい30日に書いてるのですが、理由は12月30日は私の誕生日なので色々ちょうどよいかな、と。いよいよ35歳なので、例のあれ、35年定年説になりました。そのへんどうでもいい外れ値をひた走ってるので一般論はあんま関係ないんですが、体力は落ちてる実感ありますね!肥ったし。文章はどんどんてきとーになってくし。 と、いうわけで、今年は客観的には激動の年です。会社辞めて会社作って会社作って。私生活でも色々あり、イベントが多くて中々どうして落ち着かなかった年です。そのため成果という点では不完全燃焼が否めないですね、どうしても集中しきれないし時間も上手く捻出できないし。GitHubの草生やしで考えれば、もう全然すっかすっか。その中でUniRx.AsyncやMagicOnion2など、今年もちゃんと大きめの成果を出せたのは、意地です。特にUniRx.Asyncの

  • neue cc - MagicOnion v1 -> v2リブート, gRPCによる.NET Core/Unity用ネットワークエンジン

    先にCygames Engineers' BlogでMagicOnion – C#による .NET Core/Unity 用のリアルタイム通信フレームワークとしてリリースを出しましたが、改めまして、MagicOnionというフレームワークを正式公開しました。 GitHub - Cysharp/MagicOnion MagicOnionはAPI通信系とリアルタイム通信系を一つのフレームワークで賄う、というコンセプトを元に、前職のグラニで「黒騎士と白の魔王」の開発において必要に迫られて捻り出されたものでした。 で、今更気づいたのがMagicOnionって正式リリースしてなかったんですよね、このブログでも↑のような形でしか触れていなくて、公式ドキュメントも貧弱な謎フレームワークだったという。今回Ver2って言ってますが、その前はVer0.5でしたし。まぁここでは便宜的にv1と呼びます。 何故に正

  • neue cc - UniTask(UniRx.Async)から見るasync/awaitの未来

    C# Advent Calendar 2018大遅刻会です。間に合った。間に合ってない。ごめんなさい……。今回ネタとして、改めてコード生成に関して、去年は「動的」な手法を解説した - Introduction to the pragmatic IL via C#ので、現代的な「静的」な手法について説明してみよう、と考えていたのですが、そういえばもう一つ大遅刻がありました。 7月にUniTask - Unity + async/awaitの完全でハイパフォーマンスな統合という記事を出して、リリースしたUniTaskですが、その後もちょこちょこと更新をしていて、内部実装含め当初よりもかなり機能強化されています。といった諸々を含めて、Unity 非同期完全に理解した勉強会で話してきました。 9月!更新内容の告知もしてなければ、この発表のフォローアップもしてない!最近はこうした文章仕事がめっちゃ遅

  • 【インタビュー】C#の専門集団として設立されたCygamesの技術開発子会社Cysharp…「C#」第一人者である河合宜文社長に設立の目的や事業内容を訊く | Social Game Info

    【インタビュー】C#の専門集団として設立されたCygamesの技術開発子会社Cysharp…「C#」第一人者である河合宜文社長に設立の目的や事業内容を訊く 2018年10月30日、Cygamesがゲーム関連コンテンツの企画・開発および技術コンサルティングを行う子会社「Cysharp」の設立を発表(関連記事)した。 Cysharpは、C#を中心としたゲーム開発の技術開発とコンサルティング業務などを主な事業内容とする技術開発子会社。代表取締役社長として就任したのは、C#を用いた開発の第一人者である河合宜文氏だ。 C#は、マイクロソフトが開発したプログラミング言語。ゲームエンジンUnityでも採用されているため、ゲーム開発において使用する場面が近年増加している。また、モバイルでのネットワーク環境の向上で、高性能なサーバー技術が要求されている中、パフォーマンスと開発効率の両立が可能な言語としてと期

    【インタビュー】C#の専門集団として設立されたCygamesの技術開発子会社Cysharp…「C#」第一人者である河合宜文社長に設立の目的や事業内容を訊く | Social Game Info
  • MagicOnion – C#による .NET Core/Unity 用のリアルタイム通信フレームワーク | Cygames Engineers' Blog

    Cy#の河合です。Cy#は今年の9月に設立されたばかりの会社で、その名の通りC#関連の開発を行っていきます。今回はCy#よりオープンソースライブラリとして、Unity向けのリアルタイム通信/API通信統合ライブラリをリリースしました。 GitHub – cysharp/MagicOnion もともと2年前に最初に公開し、実際にリリースされたモバイルゲームでも使用していたものですが、今回リアルタイム通信向け機能をよりブラッシュアップして、正式公開としました。そういう点では、”既に実績がある”とも言えます。今回より新しいスタートということで、バージョン2.0です。 基的な機能は サーバークライアント間のストリーミングRPCを提供します。サーバー側をC#、クライアント側もC#で実装し、メッセージのフォーマットはLZ4圧縮されたMessagePack、通信はgRPCによるHTTP/2を用いていま

    MagicOnion – C#による .NET Core/Unity 用のリアルタイム通信フレームワーク | Cygames Engineers' Blog
  • Directory.Build.* | ++C++; // 未確認飛行 C ブログ

    なんか、Gist に書き捨ててそのまま放置なものが結構増えてきたので、 しばらくそれを元にブログに起こしていこうかという気分に。 ここ2年くらい、.NET Core や C# のテーマの1つがパフォーマンス改善だったせいもあって、だいぶ Unsafe でだいぶきわどい最適化の話が多めになるとは思います… (ちなみに、今日のは全然その系統ではなく、きわどさもない話。) Visual Studio 2017 の頃から、所定のフォルダー以下にあるすべての csproj に対して掛かる共通設定を記述できるようになりました。以下の名前のファイルを置くことで、その内容が自動的にcsprojにインポートされます。 (dotnetコマンドでのビルドにも有効です。) Directory.Build.props … csprojの先頭にインポートされる Directory.Build.targets … cs

    Directory.Build.* | ++C++; // 未確認飛行 C ブログ
    griefworker
    griefworker 2018/12/11
    パッケージのバージョンをまとめて上げるときに使えそう。
  • ブレイドエクスロードを例にした大規模開発におけるC#コード解析とUniRxでの非同期処理のベストプラクティス

    ブレイドエクスロードを例にした大規模開発におけるC#コード解析とUniRxでの非同期処理のベストプラクティス 2018.11.07 Cysharpの河合(@neuecc)です。アプリボットさんには、gRPC関連の支援なども含め、ちょこちょことお邪魔しております。と、いうわけで、ゲスト寄稿回!今回は先日TGS2018で発表された新作、ブレイドエクスロードにおける UniRx の使用例について、解析手法など含めてご紹介します。 UniRxは、私の開発しているオープンソースのライブラリで、Unityに特化したReactive Extensionsの実装となります。イベント周りの処理や、非同期周りの処理が書きやすくなる、ということを利点にしていて、現在は特に日のモバイルゲームのライセンス表記ではよく見かけるようになりました。 ブレイドエクスロードでは、広範に全面的に根っこから導入されていると聞い

    ブレイドエクスロードを例にした大規模開発におけるC#コード解析とUniRxでの非同期処理のベストプラクティス
  • neue cc - 株式会社Cysharpを設立しました

    株式会社Cygames、技術開発子会社を立ち上げ 株式会社Cysharp設立のお知らせ Cygamesさんと共に、新しくCysharpという会社を立ち上げました。今年の5月に、創業期より参加し6年ほど取締役CTOを務めていた株式会社グラニを退任し、6月からNew Worldという会社を作っていたのですが、今後の活動は基的にCysharpに集約していきます。 社名の通り、C#を全力でやる会社です。分かりやすい!という出落ちな社名が一周回って気に入ってます。 単一言語にフォーカスするのは勿論リスキーなのですが、自分達の働きがC#をレガシーにしない、むしろ常に最前線に押し上げていく。雇用も需要も作る。世の中のスタンダードをC#にする。という妄想、ではなくて覚悟でやっていくので、つまりは大丈夫にしていくのです。C#自体の発展が滞ってしまえばオシマイなのですが、そこもまた世界が盛り上がっているなら

  • C#(ASP.NET Core)で GraphQL API を提供する - miso_soup3 Blog

    By TECH PLAY女子部 Advent Calendar 2017 - Qiita リソースの提供者として GraphQL を使うとき、どうような雰囲気になるのか気になったので調べました。 GraphQL について調べ、GitHub が提供している GraphQL API を触り、C#(ASP.NET Core) で実際に実装してみました。Swagger UI のように、ブラウザ上で実行する環境を ASP.NET Core 上に載せてみました。それらの内容を記載します。 GraphQL とは HTTP 上でのやりとり スキーマ 改行に注意 GraphQL を触ってみる GraphiQL で触る HTTP で触る C# ライブラリ GraphQL for .NET ASP.NET Core で提供する エンドポイントの用意 GraphiQL の用意 参照 サンプルコード: github

    C#(ASP.NET Core)で GraphQL API を提供する - miso_soup3 Blog
  • SharpLab

    C#/VB/F# compiler playground.

  • Memory Management of C# with Unity Native Collections

    This document discusses C# and memory management in Unity. It begins by introducing the author and some of their open-source projects related to C# and Unity, including libraries for serialization and reactive programming. It then discusses using async/await with Unity through the UniTask library. The document also covers differences in memory management between .NET Core and Unity due to using di

    Memory Management of C# with Unity Native Collections