マイクロソフトは、C#のコードからWASIに対応したWebAssemblyバイナリの生成を.NET 8 SDKで可能にする実験的実装「wasi-experimental」が追加されたと、ブログ「Extending WebAssembly to the Cloud with .NET」で明らかにしました。 WebAssembly System Interface provides a way for WebAssembly code to call and implement arbitrary APIs, safely and across languages. ... and now, you can create WASI apps with #dotNET using the wasi-experimental workload in .NET 8. Learn more. http
Read the "Getting Started" page of the OpenSilver documentation for a step-by-step tutorial. Basically, you should download the .VSIX file (the extension for Microsoft Visual Studio) which installs the Project Templates: The .VSIX for OpenSilver can be downloaded from: https://opensilver.net/download.aspx (Free, Open Source, MIT Licensed) The .VSIX for CSHTML5 can be downloaded from: http://cshtml
この記事はC# Advent Calendar 2019の12月5日の記事として書かれました。 この記事はkekyoさんのスライド「C#でわかる こわくないMonad」をモチベーションに書かれています。 kekyoさんのスライドでは、HaskellのMaybeモナド(Optionモナド)に相当するクラスを、まるでHaskellのdo記法のようにC#のクエリ記法で扱う方法が丁寧に紹介されています。本記事ではその他のモナドも同様の手法を用いて実装していきます。 TL; DR C#のクエリ記法でHaskellのモナド & do 記法みたいな機能が実現できるよ! 簡単な実装でそれを実現できるよ! この手法が用いられたプロダクトもあるので紹介するよ! 概要 LINQでおなじみのクエリ記法(from ... in ... select ...)ですが、これを用いてHaskellのモナド&Do記法に近い
using (var client = new HttpClient()) { var response = await client.GetAsync(url); .... } これは間違いです。HttpClientオブジェクトは dispose してはいけません! Stackoverflowにも沢山この間違いがあります。 (追記: 正確に言うとdisposeしてはいけないわけではなく、生成と破壊を繰り返すのが誤りです) 正しい使い方はAPIの公式ドキュメントに書いてある通りです。 public class GoodController : ApiController { private static readonly HttpClient HttpClient; static GoodController() { HttpClient = new HttpClient(); } } 上
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Blazor との出会い 今年2018年2月7日に、自分のソーシャルネットワークのタイムラインに Microsoft のブログ記事が流れてきました。 A new experiment: Browser-based web apps with .NET and Blazor ブラウザベースの .NET による Web アプリフレームワーク、"Blazor" (ブレイザー) だそうです。 これを読んだ当時、自分はこんな感想を持ちました。 「 "ブラウザベースの .NET による Web アプリ" ってなんのこっちゃ? まだ実験段階的なこと書
国産のオープンソースソフトウエア(OSS)という異色の脱Excelツールが、インプリムが開発するプリザンターだ。業務に使えるWebアプリケーションをプログラミング不要で作れるソフトを商用・非商用を問わず無償で利用できるほか、無料でも使えるクラウド版を提供する。 プリザンターは、2017年3月にインプリムを創業した内田太志社長が個人で開発したもの。Excelやメールによる非効率な情報共有を改善する目的で、前職の2014年9月から開発を始めて社内利用を進めた。2015年5月に認知度の向上を目的にOSS化。ソースコード共有サイト「GitHub」で公開した。「社内はもちろん、外部にもプリザンターを普及させたかった」(内田氏)。 一般にOSSのWebアプリケーションは、PHPやPerlのWebアプリケーションフレームワークを利用するものが多い。プリザンターは、当初から高速性と安定性を重視してフルスク
追記:これだと解決できていない。 C# に Sprache というパーサーコンビネーターがあるのだが、最近そいつを継続渡しスタイル(continuation passing style; CPS)にしてやろうと、Haskell のパーサーコンビネーター attoparsec を参考にいじっていた。 そこでこういう型があった。 newtype Parser i a = Parser { runParser :: forall r. State i -> Pos -> More -> Failure i (State i) r -> Success i (State i) a r -> IResult i r } この型単品では C# への翻訳で困らないのだが、次のような関数があると困ったことになる。 plus :: Parser i a -> Parser i a -> Parser i a
Open Source AdoptionYoga already powers widely used open source frameworks. It enables these frameworks to offer a simple and intuitive layout API that allows for engineers to collaborate more easily across platforms. Yoga has unlocked exciting features such as calculating layouts off of the main thread to help ensure smooth UI performance. Why You May Consider YogaPERFORMANCEYoga was built to be
私はSSHクライアントPoderosaを開発・販売していますが、最近、従来のWindows版に加えてMac OSX版をXamarinを使って作成するという仕事をしましたので、そこでの知見をまとめておこうと思います。 Windows/OSXの両対応アプリを作る際の定石のようなものも見えてきました。 なおこの記事執筆時点ではOSX版Poderosaは開発終盤ですが未公開です。2017年4月に正式リリース予定です。 基礎知識おさらい Xamarin社は、源流はオープンソースの.NET環境ですが、現在はマイクロソフト傘下になっています。Xamarinの構成要素も多岐にわたり、C#コンパイラ、CLRランタイム、本家.NET互換の基本ライブラリ群、Xamarin FormsというiOS/android両対応のモバイルアプリを作る環境、Xamarin StudioというIDE、などいろいろありますが、こ
async/await不要論 from bleis tift 3/23 に開催された、並列/並行基礎勉強会で「async/await 不要論」という発表をしてきました。 一番言いたかったこと 一番言いたかったことは、実は並列とかとは全く関係ないことです。 それは、言語への機能追加に関することです。 C# は 5.0 で非同期処理のための専用の構文として、async/await を導入しました。 これは、F# が計算一般という抽象度の高いものための汎用的な構文として、コンピュテーション式を採用しているのとは対照的です。 専用の構文を用意するかしないかは、その言語を取り巻く環境次第です。 専用の構文の利点と欠点 専用の構文の利点は、その使用用途が明確であるというところにあります。 そのため、書き方さえ覚えてしまえば、その裏で何がどうなるかなどを一切気にせずに使えてしまえたりします。 欠点は、専
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く