タグ

C#に関するhonamisのブックマーク (303)

  • 2022年現在におけるUniRxの使いみち - Qiita

    はじめに 私が「UniRx入門」という記事を書き始めてから5年、最後に投稿してから4年が経過してしまいました。 記事を更新していなかったこの数年間で、UniRxを取り巻く環境が大きく変わってしまいました。 UniRxというライブラリ自体に特に大きな更新はないのですが、UnityのC#バージョンがアップデートされたり、UniRxよりも便利なライブラリが登場したりしました。 今回は2022年現在のUnityにおけるUniRxの立ち位置と、その使い方について解説します。 UniRxの立ち位置 現代のUniRxの状況 2017年頃の古いバージョンのUnityにおいては.NET 3.5相当のかなり貧弱なC#しか用いることができませんでした。 非同期処理にasync/awaitすら使えず、「コルーチン」で書くか「UniRx」で書くかという状況でした。 そのため、時間が関係した処理はコルーチンかUniR

    2022年現在におけるUniRxの使いみち - Qiita
  • 僕にそのコピペを直せというのか(2021年4月版) - Qiita

    ソースコードをコピーアンドペーストで作成したコードクローンの方が信頼性がいいという言説もないことはないですが、多くの場合、コードクローンの存在は我々を土壇場で苦しめることが多いです。 担当者が逃げた、ソースコードを、夜遅くまで修正してリリースしたあとに、実は「コピペで作っているから別の所も全部なおしてテストしてね」とか言われて、作業をやり直すのは、とてもとても悲しいものです。 殆ど同じソースコードを間違い探しのように微妙に変更して、修正していくのは屈辱の極みです。 土壇場において、このような罰ゲームを避けるために、コピペの頻度というものは常時監視しておき、異常な頻度の場合はただちに是正すべきです。 ここでは、コピペの検出を行うツールについて説明します。 PMD-CPD PMDはJavaで実装されたJavaのソースコードの潜在的問題を検出するツールです。 http://pmd.sourcef

    僕にそのコピペを直せというのか(2021年4月版) - Qiita
  • .NET Global Tools

    .NET Core 2.1 の Preview 1 が公開されたそうで。 以前から、daily build の不安定な奴で良ければ試せていたんですが、オフィシャルにアナウンスがあったということは、作業が一区切りしたということでしょう。 実際、今回の主題の Global Tools は、以前、daily build で試したときには全然動いていませんでした。 ということで、今日、やっと動いたので試してみたという話。 .NET Core 2.1 の、dotnet コマンドの新機能の1つです。 NPM global toolsにインスパイアされて作ったよ、というもの。 要するに、dotnetコマンドを使って、NuGet 越しにインストール可能なコマンドラインツールを提供するための仕組み。 試しに作ってみたものがこちら: DotNetGlobalTools ツールの作り方 csproj の Pro

    .NET Global Tools
  • C#でまともなアプリ開発を行うために - Qiita

    はじめに C#は「Windowsでしか開発出来ない言語」などクローズドなイメージから一転し、.NET Coreの誕生によって様々なことが出来るようになりました。最近ではokazukiさんのC# で出来ること一覧が大きな反響を呼び、C#であらゆるアプリが作れることを多くの方に知ってもらえたかと思います。C#のよさを知ってもらうことは嬉しい限りではありますが、他言語をやってきた身としてはC#を取り巻くエコシステムの情報が少ないと感じることが多く、新たに参入される方にとって抵抗があるのも事実だと思います。この記事ではまともなアプリ開発を行うために必要なエコシステムなどご紹介し、C#でも快適に開発出来ることを知ってもらえれば嬉しいです。筆者はWEB開発を主としているので、WEB寄りな話が多くなる可能性がありますがご了承下さい。 「まとも」とは? タイトルにも書いたまともなアプリ開発とは、一定の品質

    C#でまともなアプリ開発を行うために - Qiita
  • GitHub - microsoft/ClearScript: A library for adding scripting to .NET applications. Supports V8 (Windows, Linux, macOS) and JScript/VBScript (Windows).

    Simple usage; create a script engine, add your objects and/or types, run scripts Support for several script engines: Google's V8, Microsoft's JScript and VBScript Exposed resources require no modification, decoration, or special coding of any kind Scripts get simple access to most of the features of exposed objects and types: Methods, properties, fields, events (Objects) Indexers, extension method

    GitHub - microsoft/ClearScript: A library for adding scripting to .NET applications. Supports V8 (Windows, Linux, macOS) and JScript/VBScript (Windows).
  • C#でSPAが実現できる、Blazor WebAssemblyのはじめかた

    ASP.NET Coreは、ASP.NET 4.xをベースにしていますが、Webフォームには対応していません。また、開発言語にVisual Basicが利用できなくなりました。 一方、ASP.NET Coreになって、新たなライブラリ、フレームワークが提供されています。Razor Pagesは、ASP.NET Core 2.0から利用できる機能で、MVVMパターンのWebアプリケーションを実現できるフレームワークです。 MVVMパターン Razor Pagesでは、Viewにあたる部分はRazor構文によるcshtmlファイル(HTMLを拡張して、C#コードなどを含めることができる)に、ViewModelはそのcshtmlから生成されるC#のクラスになっています。このあたりの構造は、その後にリリースされた、Blazorフレームワークでも同様となっています。 Blazorは、通常JavaSc

    C#でSPAが実現できる、Blazor WebAssemblyのはじめかた
  • GitHub - yaakov-h/Notepad.Extensions.Logging: .NET logging to Notepad

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - yaakov-h/Notepad.Extensions.Logging: .NET logging to Notepad
  • 暇になったので小ネタ、Expressionから値が欲しいとき(´д`) - 山奥通信 増刊号

    System.Linq.ExpressionをVisitしたりコネコネしたりする時のお話(・ω・) Expressionを使ってなにをするかといえば、.NETの構文からクエリ言語を生成するだとか、IQueryableもどきみたいなことをするケースが多いと思いますが(`・ω・´) *1 っで、ExpressionをVisitしながらターゲットを構築していく途中で、Expressionを評価した値が欲しくなるケースがあると思います。 要は、 Where(Expression<Func<TEntity, bool>> filter) みたいなメソッドを作って、その中でクエリを構築するようなケースで、 Query<Data>.Where(_ => _.No >= param.Min && _.No <= param.Max) っと書いた時に、param.Minやparam.Maxの値をクエリ構築中

    暇になったので小ネタ、Expressionから値が欲しいとき(´д`) - 山奥通信 増刊号
  • GitHub - Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc.
  • C#でレガシーな事をする方向けのまとめ - Qiita

    構造体 バウンダリアライメントを調整するには StructLayoutを利用する。 この指定は直後のstruct一つのみに適用できる。 using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct Header { ushort len; byte firstAddress; byte secondAddress; byte sourceAddress; }

    C#でレガシーな事をする方向けのまとめ - Qiita
    honamis
    honamis 2017/08/22
  • 技術解説 – 非同期

    .NETの世界での「非同期」とは、非同期処理(主に非同期I/O)を効率よく、しかも最小のプログラミングコストで実現するため、コンパイラとライブラリの補助で実現する機能の事です。C#やVB.netにおいて、「async-await」キーワードを使って、ほぼ従来通りのフローコーデイングを実現可能で、コンパイラが自動的に複雑なステート管理に展開してくれるため、人的なエラーを起こしにくく、コード量も飛躍的に削減出来ます。 これまでの非同期処理のセオリーは、プロセスレベルやスレッドレベルで、いわゆる「ワーカープロセス・スレッド」を使ってオフロード処理する方法が主流でした。この方法の問題点は、メインの処理とワーカーとの間で行わなければならない同期処理や、ワーカー処理がI/Oのブロッキングを保持するためだけにCPUリソースを消費(プロセスやスレッドを使う)してしまう事でした。.NETの非同期処理は、非同

    技術解説 – 非同期
  • できる!C#で非同期処理(Taskとasync-await)

    ヤヴァいタイトル付けてしまった…. ええと、これはAdvent Calendarではありませんが、勢いで書いています(C# ADは既に埋まっていた…) それには、こんな事情があったのです: 「.NET非同期処理(async-await)を制御する、様々な方法」の記事がコンスタントにPVを稼いでいる (その割に、他の非同期関連の記事は読まれない)。 asyncやawaitキーワードの使い方を度々聞かれる。 Task.Wait()とか、Task.Resultとか使ってるコードを頻繁に見る(不要なのに! しかも、この記事を参照しながら全部Wait()とかResultしているブログ記事… そしてそこから流入するPV… 死んじゃう、死んじゃうよ…)。 Task.Run()とか、Task.Factory.StartNew()とか、Task.Start()とか、Task.ContinueWith()を使

    できる!C#で非同期処理(Taskとasync-await)
  • インターフェースを「契約」として見たときの問題点 ― C#への「インターフェースのデフォルト実装」の導入(前編)

    C#におけるインターフェースとは、ある型が持つべきメソッドを示す「契約」であり、実装は持てない。だが、このことが大きな問題となりつつある。今回から全3回に分けて、C#がこの問題にどう対処しようとしているかを見ていく。 ← 前回 連載 INDEX 次回 → 現在、「C#にインターフェースのデフォルト実装(Javaでいうデフォルトメソッドに相当する機能)を追加しよう」という話がある。C#にこの機能を導入するに当たっては、C#コンパイラーだけではなく、.NETランタイムの修正が必要になる。 この機能の説明に入る前に、前編では、そもそもインターフェースというものが必要とされる理由や、その内部的な仕組みについて説明したい。 インターフェース 多くのプログラミング言語で、クラスとは別にインターフェース(interface: 境界面、接点)*1というものが用意されている。この2つの違いはおおむね、以下の

  • C# 6 による Lisp インタープリタ

    2017-03-03 (鈴) 1. はじめに 2. コンパイル&実行例 3. 値の内部表現 4. cons セルと主な Lisp 関数の実装 5. 非同期的な Lisp 式の読み取りと評価 6. おわりに lisp.cs : Lisp インタープリタ 1.2 lisp.cs.zip : 上記のソースの zip 12224 バイト sha256: 4c313b183e7a1e7128518a780bdefbe434a2261b0c0d92c3ad0287510deb7b89 lisp.exe.zip : 上記の実行ファイルの zip 17428 バイト sha256: c8bcb65315a09f919f2764b7f6057cdaa345a39cb2835b8ed363688ce9560cf7 1. はじめに Dart による Lisp を C# 6 に移植した。 ただし,任意精度整数

  • ピックアップRoslyn 2/23: Shapes and Extensions

    久しぶりに面白そうな話が。 Exploration: Shapes and Extensions #164 2つほど原案があって、組み合わせて結構よさげな機能案ができたので詳細を詰めていきたいという感じの話。 元になっているのは以下の2つ。 Extension everything メソッドだけじゃなくて、プロパティとかインデクサーとかあらゆるものを「拡張」定義したい 静的メソッドも(インスタンスじゃなくて型に対して)「拡張」したい インターフェイスの後刺しとかもしたい Type Classes Haskellの型クラス的なもの、 .NET ランタイムに手を入れなくてもちょっとした「値型ジェネリック」を使ったトリックで実現できそうという話 MS Researchの人と、インターンで来た人の成果っぽい 型クラスってのはどういうのかというと: 静的メソッドやコンストラクターを含めて、その型が持

    ピックアップRoslyn 2/23: Shapes and Extensions
  • 使う言語はC#のみ! Macアプリケーションはもちろん、Webアプリやスマホアプリも開発可能な「Visual Studio for Mac」登場

    使う言語はC#のみ! Macアプリケーションはもちろん、Webアプリやスマホアプリも開発可能な「Visual Studio for Mac」登場 最新バージョン「Visual Studio 2017(Visual Studio "15")」特集 第3回 WebアプリケーションとMacアプリケーション Visual Studio for Macは、ASP.NETフレームワークを使ったWebアプリケーションの開発もサポートしています。 テンプレートは[.NET Core]-[App]の[ASP.NET]-[ASP.NET Core Empty Web Application]と、[その他]-[ASP.NET]の[全般]の2種類が用意されています。前者はASP.NET Core、後者はMono上で動くASP.NETです。いずれもMacだけでなくWindowsLinuxで実行可能です(.NET

    使う言語はC#のみ! Macアプリケーションはもちろん、Webアプリやスマホアプリも開発可能な「Visual Studio for Mac」登場
  • C#静的解析によるコーディング規約チェッカーを作った話

    はじめに はじめまして。 「ボーイフレンド(仮)きらめき☆ノート」(以降、ボイきら)でUnityエンジニアをしております、田村です。 ボイきらでは、コードがコーディング規約に準拠しているかを自動でチェックするツールを自作し、導入しております。 今回は、チェックツールを作った経緯から、具体的なチェックツールの実装方法まで紹介したいと思います。 ボイきらでは、ゲーム開発エンジンとしてUnity、開発言語としてC#が採用されておりますので、今回の話の対象となる言語はC#となります。 コーディング規約チェッカーを作った経緯 コーディング規約とは コーディング規約とは、プログラムの際の決め事です。 実際ボイきらでは、 命名規則は正しいか 全てのクラス、フィールド、メソッドの宣言にコメントが有るか フォーマットされているか(MonoDevelopの自動フォーマット機能を利用) といったコーディング規約

    C#静的解析によるコーディング規約チェッカーを作った話
    honamis
    honamis 2017/02/13
    NRefactory, [Roslyn]
  • 2017 年に .NET 開発者が知っておくべきこと

    ずいぶん前にも、「.NET 開発者が知っておくべきこと」というタイトルでブログ記事 (英語) を書いたことがあります。このときは質問集のように掲載したのが悪かったのか、リクルーターなどにリトマス試験紙のように使われてしまいました。 .NET については情報量が膨大なので、便利なリストを作成して学習ガイドや用語集として使ってもらおうと思い立ち、Jon Galloway と協力して用語とリソースをリストにまとめました。 始めてみて最初に思うのは、「やることが多すぎるじゃないか。だから .NET は嫌なんだ」ということかもしれませんが、参入時にはどのプラットフォームでも同じような壁 (用語集の作成) にぶつかるものです。3 文字略語のない言語やコンピューター エコシステムはありません。あまり深く考えずに、知っておくべきことを知ることからゆっくり始めていきましょう。どこまでやるかはご自身で判断すれ

    2017 年に .NET 開発者が知っておくべきこと
  • [速報]AWS LambdaでC#のサポートを発表。オープンソースの.NET Coreを採用。AWS re:Invent 2016

    Amazon Web Servicesはラスベガスで開催中の年次イベント「AWS re:Invent 2016」において、サーバレスコンピューティングを実現する「AWS Lambda」でC#言語をサポートすると発表しました。 AWS Lmabdaに対してC#対応のリクエストは多かったとAmazon.com CTO Werner Vogels氏。「C#は私も個人的にも大ファンで、モダンなプログラミング言語」と、発表に合わせて基調講演で話しました。 C#対応は、マイクロソフトがオープンソースとして開発を進めている.NET Core 1.0ランタイムを用いて実現されています。 AWS Lambdaはこれで、Node.jsのJavaScriptJavaPythonに続く新しい言語対応を実現したことになります。 参考 Announcing C# Support for AWS Lambda |

    [速報]AWS LambdaでC#のサポートを発表。オープンソースの.NET Coreを採用。AWS re:Invent 2016
    honamis
    honamis 2016/12/02
    “.NET Core 1.0ランタイム”
  • C#でiOSもAndroidも--MSちょまど氏が披露したモバイルアプリ開発の新展開

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 日マイクロソフトは11月1~2日、「Microsoft Tech Summit」を都内で開催した。ブレイクアウトセッションはどれも盛況だったが、筆者が取材した中で1~2位を争う混雑ぶりだったのは、日マイクロソフト デベロッパー エバンジェリズム統括部 エバンジェリストの“ちょまど氏”こと千代田まどか氏による「XamarinとAzureで、超効率的にクラウドと繋がるモバイルアプリを作ろう!」である。 C#などでiOS/Android/UWP(ユニバーサルWindowsプラットフォーム)アプリケーションを開発できるXamarin(ザマリン)は、開発コストの削減につながるとして注目を集めてきた。稿では同セッション内で説明されたXama

    C#でiOSもAndroidも--MSちょまど氏が披露したモバイルアプリ開発の新展開