C#

システム開発

閉域環境のC# MVCシステムからクラウドAPI連携を行うための環境構築ガイド

近年では、SaaSやクラウドサービスとのAPI連携が一般的になっています。しかし、既存システムがデータセンター内の閉域環境にあり、現在はHTTPかつIPアドレスでアクセスしている構成の場合、単純にAPIを実装するだけでは連携できません。特に...
システム開発

C# MVCでSQL Serverのページングを実装する方法(OFFSET FETCH対応)

C# MVCで一覧画面を実装する際、ページング処理は欠かせない機能の一つです。データ件数が増えると、全件取得は表示速度やサーバー負荷の面で現実的ではありません。SQL Serverでは、SQL Server 2012以降で利用できる OFF...
システム開発

C#で配列を昇順・降順にソートする方法|Array.SortとCompareの活用術

C#で配列を並び替える処理は、画面表示の整形・ランキング作成・ログの時系列整理など、実務のあらゆる場面で登場します。Array.Sort を起点に、Compare(比較ロジック)を理解しておくと、降順やプロパティ指定のソートも「迷わず書ける...
システム開発

C# MVCでサーバ内画像を表示する設計

「ユーザがサーバ上の指定フォルダに画像を配置し、業務データと紐づけて Web 画面で表示する」――この構成は、社内システムや BtoB 向け Web アプリでは非常によく見られます。一方で、実装段階になると次のような疑問に必ず直面します。 ...
システム開発

C# MVCのSessionが使うメモリ量を可視化する調査手順

C# MVCアプリで何気なく使っている Session.Add()。しかしその裏では、Sessionのモード設定によって「保存場所」「消費されるリソース」「障害の出方」が大きく変わります。特に InProc の場合、Sessionは IIS...
システム開発

LINQのTakeWhileと類似メソッドの違いを整理する

LINQ の TakeWhile は、「条件が成立している間だけ処理を続ける」という特徴を持つ便利なメソッドです。しかし、Take や Where、SkipWhile など似た用途に見えるメソッドも多く、感覚的に使い分けてしまっているケース...
システム開発

C# using文によるリソース管理の要点

ファイル操作やデータベース接続、HTTP通信などを実装していると、「Disposeを書き忘れていた」「なぜかファイルがロックされたままになる」といった経験はないでしょうか。C#のusing文は、そうしたリソース解放のミスを防ぐための言語機能...
システム開発

C#における ref と out の違いを整理する

C#でメソッド設計をしていると、「値を参照渡ししたいだけなのに、ref と out のどちらを使うべきか迷う」という場面に遭遇することがあります。どちらも参照渡しを行うキーワードですが、設計意図・責任の所在・APIの読みやすさという観点では...
システム開発

別スレッド処理中にForm描画を安全に更新する設計

バックグラウンド処理の進捗やログをリアルタイムにFormへ表示したい——そんな要件に直面したことはありませんか?Windows FormsやWPFなどのGUIアプリケーションでは、別スレッドから直接UIを更新できないという制約があり、設計を...
システム開発

C#でセッション情報をDB管理する方法と設計ポイント

Webアプリケーションのセッション管理は、規模が小さいうちはあまり意識されません。しかし、可用性やスケーラビリティが求められるシステムでは、セッション管理の設計がアーキテクチャ全体の品質を大きく左右します。本記事では、C#(ASP.NET系...