タグ

csharpに関するInoHiroのブックマーク (305)

  • C# 1.0 と C# 9.0 で同じプログラムを書いてみよう - Qiita

    この記事は C# Advent Calendar 2020 の 2 日目の記事です。1 日目は @RyotaMurohoshi さんの C# 9.0で加わったC# Source Generatorと、それで作ったValueObjectGeneratorの紹介 でした。 私の記事では、.NET Framework 1.0 の頃の C# 1.0 と今の .NET 5 時代の C# 9.0 で同じお題をもとにプログラムを書いてみて比べてみようと思います。これを書くにあたって事前に xin9le さんと 岩永さんに色々見てもらいました!感謝! ではやってみましょう! 記事を書く前の感覚では LINQ の有無と async/await の有無が大きいだろうな…と思ってます。 プロジェクトの設定 Windows 10 に .NET Framework 1.1 SDK を入れようと思えば入れることが出来

    C# 1.0 と C# 9.0 で同じプログラムを書いてみよう - Qiita
    InoHiro
    InoHiro 2020/12/03
    いろいろ変わっててびっくり
  • C# で Single Page Web Application が書ける Blazor が凄かった件 - Qiita

    Blazor との出会い 今年2018年2月7日に、自分のソーシャルネットワークのタイムラインに Microsoft のブログ記事が流れてきました。 A new experiment: Browser-based web apps with .NET and Blazor ブラウザベースの .NET による Web アプリフレームワーク、"Blazor" (ブレイザー) だそうです。 これを読んだ当時、自分はこんな感想を持ちました。 「 "ブラウザベースの .NET による Web アプリ" ってなんのこっちゃ? まだ実験段階的なこと書いてるし、急いで試さなくてもいいかー。それよりも、これまで作った Angular 1.x な Web アプリの Angular5 への移行を急がなきゃ...」 ...ということで、何度も import 文を書く苦行や、*[(xyz)] みたいな呪文マークアッ

    C# で Single Page Web Application が書ける Blazor が凄かった件 - Qiita
  • GitHub - mdabros/SharpLearning: Machine learning for C# .Net

  • GPUをターゲットとしたC#の利用

    AI、ML、データエンジニアリングInfoQトレンドレポート-2023年9月 今回のポッドキャストでは、InfoQ編集部のメンバーとInfoQの友人たちが、毎年恒例のトレンドレポート作成のプロセスの一環として、AI、ML、データエンジニアリングの領域における現在のトレンドについて議論する。これらのレポートは、InfoQの読者に注目すべきトピックのハイレベルな概要を提供し、また編集チームが革新的な技術に焦点を当てるのに役立つ。InfoQ.comで閲覧可能なレポートとトレンドグ...

    GPUをターゲットとしたC#の利用
  • neue cc - ZeroFormatter - C#の最速かつ無限大高速な .NET, .NET Core, Unity用シリアライザー

    (現状は)C#専用の、新しいシリアライズフォーマットを作りました。アセットストアには置いてないんですが、GitHubで公開しています。ReadMeが超書きかけですが明日ぐらいには全部書き終わってるはず……。 neuecc/ZeroFormatter 特徴はデシリアライズ速度がゼロなので、真の意味で爆速です。そう、無限大高速。 嘘くせー、って話なんですが、実のところこれは類似品があって、Googleの出してるFlatBuffersと基的な考えは同じです(他にCap'n Protoというのもあります、こっちも元Googleの人ですね)。デシリアライズ「しない」から速い。つまるところ必要になるときまでパースを先送りするってことです。これは、アプリケーションの作りにもよりますが非常に効果があって、例えばデカいマスタデータをドバッと取得するなんてときに、その場で必要なデータってその巨大データのごく

  • 働くプログラマ - Roslyn 登場

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 Roslyn 登場 Joe Hummel Ted Neward ここ数年、さまざまなコンピューター専門家、思想リーダー、評論家たちは、ソフトウェアの問題を解決する手法の 1 つとしてドメイン固有言語 (DSL) という考えを提唱しています。「あまり詳しくないユーザー」でも DSL 構文を使ってシステムにビジネス ルールを当てはめたり、ビジネス ルールを修正できるのであれば、この考えは非常に妥当のように思われます。このこと、つまりビジネス ニーズの変化に応じてユーザー自身がメンテナンスできるようなシステムを構築することが、多くの開発者にとってソフトウェアの至高の目標です。 しかし、DSL の大きな問題点の 1

    働くプログラマ - Roslyn 登場
  • C# 7.1 の早期情報: Part 1

    2003年以降で初めて、Microsoftは C# のポイントリリースを検討している。現在 C# 7.1 としてマークされているこの言語の次のバージョンには、非同期 Main、デフォルト式、Tuple Name、そしてジェネリクスによるパターンマッチングが含まれる。 非同期 Main 非同期のコードを実験している開発者をよく苛立たせることとして、現在のコンソールアプリケーションは非同期のエントリーポイントをサポートしていないということがある。回避策は複数行の模範コードを書くことだが、普段は使用されないメソッドに依存しているためこのパターンは理解しづらい。 public static void Main() { MainAsync().GetAwaiter().GetResult(); } private static async Task MainAsync() { ... // Main

    C# 7.1 の早期情報: Part 1
  • C# 7 Series, Part 1: Value Tuples

  • 最近のLambdicSql - この世の全てのSQLをC#で表現する - ささいなことですが。

    github.com まだβ版です。とはいえ、今度こそ着実にリリースに近づいています。 この辺で最近入れた機能をご紹介させていただきます。 それは句や関数を簡単に追加できる機能です。 この世の全てのSQLをC#で表現するポテンシャルを持たせました。 若干言い過ぎ感はありますがw LambdicSqlは多くの句や関数がデフォルトで組み込まれています。今のところの判断基準は私が読んだSQLの入門書に書かれていたものです。(えっ?)でも、もちろんこれでは足りず、かといって全網羅するのは大変だしなーってことで、ユーザー側で簡単に追加できるようにしました。 LambdicSql自体も、ここで解説している仕組みを使って関数や句を定義しているので、それがサンプルになると思います。よろしければ参照してください。 関数 句 一般的な関数の追加 FuncStyleConverterAttributeをつけるだ

    最近のLambdicSql - この世の全てのSQLをC#で表現する - ささいなことですが。
  • C#/JavaScriptで学ぶF#入門 - Qiita

    C#やJavaScript(ES2015)と比較しながらF#の文法を説明します。手続型の延長線上で取っ掛かりをつかむことを目的とします。関数型については深追いしません。 とりあえず手続型的な発想でも構わないので、F#を使ってみます。 関数型特有の概念の説明には重点を置きませんが、その導入になるようには意識します。 一気に関数型に飛ばないで、ベターC#として慣れていくような入り方を目指します。 関数型の理解を深めるのは慣れてからでも遅くないというスタンスです。 この記事は以前開催していたF#入門のテキストを改訂したものです。 この記事には姉妹編があります。 Haskellで学ぶF#入門 2017.01.11 F#を手っ取り早く試すために、私が常用している環境を紹介します。 F#開発環境の紹介 2016.12.30 F#について F#の構文は見慣れないものだと思います。この記事ではC#/Jav

    C#/JavaScriptで学ぶF#入門 - Qiita
  • インターフェースを「契約」として見たときの問題点 ― C#への「インターフェースのデフォルト実装」の導入(前編)

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

  • neue cc - C#(.NET, .NET Core, Unity, Xamarin)用の新しい高速なMessagePack実装

    と、いうものを作りました。MessagePackのC#版です。以前に作ったZeroFormatterのコードをベースに、バイナリの読み書きをMsgPackのフォーマットに差し替えたものになります。MsgPackのライブラリはすでにあるじゃん(MsgPack-Cli)!ってことなんですが、パフォーマンスにかなり差があります。 neuecc/MessagePack-CSharp JSON.NET(スタンダードで、豊富なAPIを持ってる)に対するJil(スピード特化、APIは必要十分はあるけれどJSON.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
  • Unicodeと、C#での文字列の扱い

    進化の過程で煩雑な文字コード体系になっているUnicodeは、プログラミングでの取り扱いが面倒だ。C#とUnicodeの関係はどうなっているのか? C#が抱える課題とその解決策について見てみよう。 ← 前回 連載 INDEX 前編では、文字コード、そしてUnicodeがこれまでにどのような進化の道程を歩んできたかを見た。そこで説明したように、文字コード自体が結構な複雑さになっている。当然、プログラミング言語における文字列の扱いにも面倒が付きまとう。 後編である今回は、C#のstring型がどういう実装になっているかや、現状抱えている課題、それに対して検討している解決策などについて説明していく(以下、文字コードは全て16進数で表記する)。 文字列型 まずは、プログラミング言語内部での文字列の扱いについて話そう。Unicodeの歴史で話した通り、もともと、Unicodeは2Bytes固定長の文

  • Unicodeとは? その歴史と進化、開発者向け基礎知識

    まず、Unicodeで規定されている文字1つ1つには、最大で21bits(16進数で5~6桁)の数値が割り振られている。この数値をコードポイント(code point: 符号点、符号位置)という。 ちなみに、Unicodeでは、コードポイントの数値で文字を表すための表記として、「U+16進数」という書き方を使う。例えば、「a」であればU+61、「あ」であればU+3042と表記する(以下、文字コードは全て16進数で表記する)。 一方で、この21bitsのコードポイントがそのままテキストファイルに保存されるわけではない。一定のルールでバイト列に符号化することになる。詳細については、後々、Unicodeの歴史を追いつつ説明していくが、おおむね以下の3つを押さえておけばいいだろう(加えてコードポイントがビッグエンディアンで格納されるか、リトルエンディアンで格納されるかも重要になる。が、今回と次回は

  • async/awaitと同時実行制御

    C# 5.0のasync/awaitを使うと、多くの場面ではシングル スレッド的な動作になるし、多くの場面ではlock不要(結果的に、デッドロックが起こりようなくなる)になったりします。 ただし、「多くの場面で」。「必ず」ではないのがはまりどころ。いくつかの場面では、同時実行制御が必要です(普通にマルチスレッドの平行実行になるので、同時に同じデータにアクセスされる可能性を考慮しないとバグります)。 前提知識 いくつか、C# 5.0世代の非同期処理についての前提知識は、以下のスライド(先月末の.NETラボでの発表)を参考にしてください。 5~12ページ: async/awaitの書き方 17~22ページ: スレッドとそのコスト 24~26ページ: スレッド プール 29~32ページ: I/O完了待ちと非同期API 36~40ページ: UIスレッドとディスパッチャー 41~45ページ: 同期コ

    async/awaitと同時実行制御
  • Visual Studio 2015 Update 1 CTP - Visual Studio Blog

    Building new functionality, writing unit tests, and learning new technologies has never been easier or more fun. Today we released Visual Studio 2015 Update 1 CTP. Included, you’ll find: Edit and Continue support for /BigObj in C++, which means you can now Edit and Continue while debugging Windows Store C++ projects. The C# interactive window in Visual Studio and the command-line C# REPL tool: Scr

    Visual Studio 2015 Update 1 CTP - Visual Studio Blog
    InoHiro
    InoHiro 2015/10/09
    C# REPL
  • プログラマーは本当に料理が得意なのか――クックパッドで「C丼」作って検証してみた

    プログラマー当に料理が得意なのか――クックパッドで「C丼」作って検証してみた:15周年のC#とVisual Studioの現在(1/3 ページ) 3月中旬、東京・恵比寿のクックパッドにおいて、少し変わった試みが行われた。日マイクロソフトとクックパッドの6人のエンジニアが力を合わせて「料理」に挑むというものだ。果たして、この試みの目的は何なのか。そして、出来上がった料理はどんなものだったのか。その過程とともにリポートする。 よく「プログラムと料理は、そのプロセスが似ている。だから、優れたプログラマー料理も得意」などと聞く。果たして、このウワサは当なのだろうか。確かめたければ、実証してみるのが一番だ。3月中旬、このウワサの真相を確かめるべく(……かどうかは微妙だが)、東京・恵比寿にある「クックパッド」のキッチンにおいて、クックパッドと日マイクロソフトの6人のエンジニアが、力を合わせ

    プログラマーは本当に料理が得意なのか――クックパッドで「C丼」作って検証してみた
    InoHiro
    InoHiro 2015/04/06
    C丼作りました ;)
  • New Features in C# 6

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. C# 6 is the version of C# that ships with VS 2015 Preview. The philosophy behind this version is straightforward: improve simple everyday coding scenarios, without adding much conceptual baggage. The features should make code lighter without making the l

    New Features in C# 6
  • C#/.NETがやっていること 第二版

    Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015CODE BLUE

    C#/.NETがやっていること 第二版