タグ

c#に関するteitei_tkのブックマーク (23)

  • Rubyがマジョリティな会社でC#を使ってAWS Lambdaの本番運用を開始した話 - freee Developers Hub

    こんにちは!freeeエンジニアをしている @toshi0607 です。アイコンよろしくnyanchuと呼ばれてい ます。 Microsoft PlatformというチームでC#、WPF、Xamarinなどを使ってデスクトップアプリを開発しています。 この記事はfreee develpers Advent Calendar 2017の21日目です。 デスクトップアプリから送信するログファイルの処理をAWS Lambdaを使って行うようになりました。 この記事では導入の経緯や工夫したことについて紹介します。 段階的導入 最終的にLambdaを導入することを目指しつつ、ストレージへのログファイルのアップロードを非同期化することから始まりました。 まずはアーキテクチャの変遷をご覧ください。 Phase0 アプリからAPIサーバに複数のログをzipで固めて送信しています。 最初zipの中身をAP

    Rubyがマジョリティな会社でC#を使ってAWS Lambdaの本番運用を開始した話 - freee Developers Hub
  • C# 6.0で知っておくべき12の新機能

    Visual Studio 2015正式版のリリースで利用可能になったC#言語の最新バージョン「6.0」の新機能を解説する。CTP 5→正式版に合わせて改訂。 連載 INDEX 次回 → 「C# 6.0」と呼ばれているC#の最新バージョンは、Visual Studio 2015*1で利用可能になっている。 この最新バージョンでは、「.NET Compiler Platform」(コード名:“Roslyn”)と呼ばれる新しいコンパイラーが導入されており、静的解析APIの提供など、コンパイラーまわりに大きな変更が行われている。一方、言語機能に目を向けると、async/awaitという大きな機能が追加されたC# 5.0に比べると、一つ一つの新機能自体は小さい。しかし、それらはプログラムをより書きやすくするための機能なので、C#開発者にとってはやはり重要なアップデートとなっている。 そして、これら

    teitei_tk
    teitei_tk 2015/02/09
  • neue cc - A Beginners Guide to Reactive Extensions with UniRx

    どうも始めましての人は始めまして、@neueccといいます。この記事はUnity アセット真夏のアドベントカレンダー 2014 Summer!というイベントの23日目です。クリスマスのアレ!真夏に……!しかしクリスマスのアレは比較的脱落も少なくのないのですが、これは見事ーに続いてます。しかも日付が変わった瞬間に公開されることの多いこと多いこと。〆切というのは23:59:59だと思っている私には辛い話です……。さて、前日はnaichiさんの【うに部屋】Unityゲーム投稿サイトにアセット検索機能を付けてみたでした。便利でいいですねー、UniRxも使ったアセットとして沢山並ぶ日が来ると、いいなぁ。 Reactive Programming とは。と、ここで7/30に行われた【第1回】UnityアセットまみれのLT大会で使ったスライドが! LTということで制限時間5分だったんですが当然終わるわ

  • C# - 強化された新しい C# 6.0

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 強化された新しい C# 6.0 Mark Michaelis C# 6.0 はまだ完成版ではありませんが、機能はほぼ完成に近いところまできています。2014 年 5 月のコラム「C# 6.0 言語プレビュー」(msdn.microsoft.com/magazine/dn683793.aspx) で紹介して以降、次期バージョンの Visual Studioの CTP3 リリース (コードネーム "14") に含まれる C# 6.0 には多くの変更や改良が加えられています。 今回は、新しい機能を紹介し、5 月に説明した機能の最新情報を示します。また、C# 6.0 の各機能の更新内容を説明した包括的な最新のブログも

    C# - 強化された新しい C# 6.0
    teitei_tk
    teitei_tk 2014/11/07
  • (How) is it possible to bind/rebind a method to work with a delegate of a different signature?

    teitei_tk
    teitei_tk 2014/06/11
  • マルチスレッド (C# によるプログラミング入門) - ++C++; // 未確認飛行 C++

    概要 .NET Framework では、マルチスレッドプログラムを作成するためのクラスライブラリを提供しています。 C# でマルチスレッドプログラムを作成する場合、これらライブラリ中のクラスを用いて行うことになります。 また、C# ではスレッド間の同期を取るために lock 文という構文を用意しています。 ポイント C# なら、Thread クラスとデリゲートで並行処理・並列処理もお手軽。 実際には、スレッドを直接作らず、スレッド プールというものを介して使う。 .NET Framework 4 以降なら、Task クラスを利用。 排他処理は lock 文で。 マルチスレッドとは まず、スレッドに関して簡単に説明しておきます。 簡単に言うと、スレッド(thread: 糸、筋道)とは一連の処理の流れのことを言います。 図1 に示すように、 処理の流れが一道な物をシングルスレッド、 複数の

    マルチスレッド (C# によるプログラミング入門) - ++C++; // 未確認飛行 C++
    teitei_tk
    teitei_tk 2014/06/02
  • ジェネリック

    概要 C# 2.0 で、 C++でいうところのテンプレート、一般にはジェネリック(ジェネリクス)などと呼ばれるものが実装されました。 (C++ のテンプレートとは少し仕様が異なりますが。) ジェネリック※(generics:総称性)、 あるいは、総称的プログラミング(generic programming)とも呼ばれますが、 この機能は、 さまざまな型に対応するために、型をパラメータとして与えて、その型に対応したクラスや関数を生成するもの機能です。 ポイント ジェネリック: 型だけ違って処理の内容が同じようなものを作るときに使う。 ジェネリッククラス:IComparable<T> { int CompareTo(T x, T y); } ジェネリックメソッド:T max<T>(T x, T y) { ... } ※genericsの訳語 英語だと、名詞では generics、形容詞が ge

    ジェネリック
    teitei_tk
    teitei_tk 2014/02/28
  • C# constructors overloading

    teitei_tk
    teitei_tk 2013/11/21
  • 多態性(C# によるプログラミング入門)

    概要 多態性(polymorphism: ポリモーフィズム)とは、 同じメソッド呼び出し(オブジェクト指向用語的には「メッセージ」という)に対して異なるオブジェクトが異なる動作をすることを言います。 ( ちなみに、polymorphism は多相性とか多様性と訳す場合もあります。 「poly(多)+morphism(射:形を変えるみたいな意味) → いろいろな姿を映し出す」という意味。 ) オブジェクト指向プログラミング言語には、 多態性を実現するために、仮想メソッドというものが用意されています。 ポイント オブジェクト指向の中核概念その3: 多態性。 同じ名前のメソッドを呼び出しで、異なる振る舞いをすること。 特に重要なのは、仮想関数を使った動的多態性。インスタンスの動的な型に応じて異なる振る舞いをする。 (メソッドのオーバーロードも多態性の一種(静的多態性)。) 静的な型、動的な型 「

    多態性(C# によるプログラミング入門)
    teitei_tk
    teitei_tk 2013/10/04
  • C# how to remove delegation

    teitei_tk
    teitei_tk 2013/10/02
  • as演算子とキャストの違いは?

    これもobject型の参照をstring型の参照に変換している。as演算子では、その手前に変換したい参照を、後ろに変換したい型を記述する。キャスト演算子とas演算子の表記は、まったく違って見えるが、それぞれのコードを実行した結果は同じものとなる。 なお、正確には、文字列をobject型変数に代入している最初の行も暗黙的な変換を行っている。objectクラスは文字列型のスーパークラスであるため、このような操作は暗黙的に行える。 変換できないときの挙動の相違 キャスト演算子はC言語の流れを汲む多くのプログラム言語で使用でき、C#プログラムでも多用されている。これに対し、as演算子を使用したソース・コードを見かけることは多くない。しかし、キャスト演算子とは別にas演算子が存在するのには、それなりの理由がある。両者は、データ型を変換するという目的は似ているが、機能の詳細は同じではない。 第1の相違

    as演算子とキャストの違いは?
    teitei_tk
    teitei_tk 2013/10/02
  • イベント - C# によるプログラミング入門 | ++C++; // 未確認飛行 C

    概要 C# には、イベント駆動型のプログラム作成を容易にするため、 イベント処理用の構文 event が用意されています。 event は、デリゲートに対する「プロパティ」のようなもので、 以下のような特徴を持っています。 デリゲート呼び出しはクラス内部からのみ可能。 外部からはデリゲートの追加/削除のみが可能。 サンプル https://github.com/ufcpp/UfcppSample/tree/master/Chapters/Event/EventDriven ポイント イベント: プロパティのデリゲート版。イベント駆動処理に使われるのでこの名前になっています。 イベント駆動処理には、単なるデリゲート型のプロパティでは機能が不十分で、 「呼び出しはクラス内からのみ、外部からできるのは登録・削除のみ」という制約が必要になります。 C# には、この制約を満たすような専用の構文(ev

    イベント - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
    teitei_tk
    teitei_tk 2013/09/30
  • デリゲート

    概要 デリゲート(delegate: 代表、委譲、委託)とは、メソッドを参照するための型です。 C言語やC++言語の勉強をしたことがある人には、 「デリゲートとは関数ポインターや関数オブジェクトをオブジェクト指向に適するように拡張したもの」 と言った方が分かりやすいかもしれません。 デリゲートは用途も関数ポインターとほとんど同じで、 述語やイベントハンドラ(「イベント」で説明)等に利用します。 ただし、C言語の関数ポインターと違い、 インスタンスメソッドを参照したり、 複数のメソッドを同時に参照する事が出来ます。 delegate(委譲)という言葉のニュアンスとしては、 「他のメソッドに処理を丸投げするためのオブジェクト」というような意味です。 イベントが起きたときのイベントハンドリングをどのメソッドに丸投げ(委託)するかを指示するためなどに使われます。 ポイント C# では、メソッドも他

    デリゲート
    teitei_tk
    teitei_tk 2013/09/30
  • Unityで覚えるC#

    FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOGame Tools & Middleware Forum

    Unityで覚えるC#
  • Vim で C# を書くなら OmniSharp で決まり! - 永遠に未完成

    Vim Advent Calendar 2012 の 173 日目の記事です。 今回は C# を書くのに便利な OmniSharp と言うツールを紹介します。これさえあれば、エディタとしての Visual Studio はもう必要ありません! 経緯 (興味ない人はここは飛ばしてインストールのところから読むと良いです) 先日、OmniSharp なるものの存在を教えてもらいました。 @thinca これってでどうなんでしょう URL 2013-05-09 23:47:26 via YoruFukurou to @thinca @mizchi お、面白そうですね!私は知らなかったです。明日あたり見てみますー。ありがとうございます。 2013-05-09 23:51:36 via tweetvim to @mizchi と言うわけで調査してみることにしました。 様々な罠にかかりつつ、ソースコード

  • 連載:C#入門 第13回 言語に内蔵されたイベント機能(1/5) - @IT

    C#のイベント機能とは何か? C#のイベント機能は、あるクラスで発生した出来事を,あらかじめ登録された一群のメソッドに対して、1回の呼び出しによって、ですべて伝える機能と言える。と言っても、こんな説明ではさっぱり分からないという人が大半だと思うので、今回は実例を見ながら、1つずつイベント機能の使い方と、使う意義を探ってみたい。なお、イベントはデレゲートと呼ばれる機能を活用して使用するため、今回の説明の中には実はデレゲートを説明している部分がある。しかし、C#プログラミングでは、デレゲートを単体で使う機会よりも、イベントとして使う機会の方が遥かに多いのである。デレゲート単体を使いこなす能力は必ずしも要求されないが、イベントはウィンドウアプリケーションなどを記述すると絶対に避けては通れないのである。そのため、今回はイベントとして一括して扱った。より詳しいデレゲート単体の解説は、いずれこの連載で

    teitei_tk
    teitei_tk 2013/09/16
  • 連載:C#入門 第17回 処理を委譲するdelegate

    delegateとは何か 「delegate」は日語では「委譲」と訳されることが多い。委譲という言葉が分かりにくいと思うなら、「代表者」と考えてもよい。何かの処理を実行させたいときに、直接処理機能を持つメソッドを呼び出すのではなく、代表者に処理を求めるのである。代表者は処理機能自体は持っていないが、それを処理できる適切なメソッドを知っており、そのメソッドに処理要求を渡す。 最も単純な状況を考えてみよう。「クラスA」の「メソッドa」は自分では何も処理せず、常に「クラスB」の「メソッドb」に処理をゆだねるとしよう。このような場合、「メソッドa」の中に「メソッドb」を呼び出すコードを書けばよいので、特別な機能は何も必要がない。しかし、このように常に処理をゆだねる相手が決まっているとは限らないし、相手が常に1つとも限らない。このような状況に対処するために、C#のdelegate機能が存在するわけ

    teitei_tk
    teitei_tk 2013/09/16
  • C# によるプログラミング入門 [データ処理] LINQ

    概要 Ver. 3.0 C# 3.0(そして、同時に発表された VB 9.0)の目玉となる新機能は、 Language Integrated Query、略して LINQ と呼ばれるもので、 リレーショナルデータベースや XML に対する操作をプログラミング言語に統合するものです。 LINQ を用いることで、様々なタイプのデータソースに対する検索や操作を、 共通の構文で行うことができます。 IEnumeable を実装するコレクションクラスに対するもの(LINQ to Object)や、 XML に対するもの(LINQ to XML)、 それに、リレーショナルデータベースサーバに対する SQL クエリを生成するもの(LINQ to SQL)などがあります。 LINQ には以下のような利点があります。 オブジェクト指向言語らしい書き方でデータベースへの問い合わせができます。 in-memor

    C# によるプログラミング入門 [データ処理] LINQ
    teitei_tk
    teitei_tk 2013/09/06
  • C# によるプログラミング入門 / ++C++;// 未確認飛行 C

    C# によるプログラミング入門です。C# 初心者の方はもちろん、これからプログラミングを始めようという方も対象としています。

    C# によるプログラミング入門 / ++C++;// 未確認飛行 C
    teitei_tk
    teitei_tk 2013/09/05
  • イテレーター - C# によるプログラミング入門 | ++C++; // 未確認飛行 C

    概要 C# の foreach 構文は、コレクションクラスの利用者側から見ると非常に便利な機能です。 しかしながら、実装側から見た場合、IEnumerableやIEnumeratorインターフェースを実装する必要があり、結構面倒な作業が必要でした。 この実装側の労力を軽減するために、C# 2.0ではイテレーター構文というものが追加されました。 ポイント イテレーター構文: IEnumerator を簡単に実装するための機能。 return の代わりに yield return イテレーター ブロック メソッドやプロパティのgetアクセサーなどを定義する際、ブロック中にreturnの代わりにyield returnもしくはyield breakを書くことで、通常のメソッドやプロパティとは違った動作が得られます。この、yield returnもしくはyield breakを含むブロックのことを

    イテレーター - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
    teitei_tk
    teitei_tk 2013/08/27