動くコード図鑑
$ ls -1 /library | wc -l → 619
触って動く、検証済みの正解集。
公開記事から抽出した全コードブロックを 1 つずつページ化。 ▶ ボタンで 実行ログを再生し、 さも今動いてるかのように出力を流す。

この図鑑の使い方
言語で絞る
C# / SQL / TypeScript / PowerShell / Bash でフィルタ。
▶ で実行
事前収録の出力を 1 行ずつ再生。 ぱっと結果が見える。
記事と接続
各 snippet は出典記事へのリンク付き。 文脈ごと読める。
絞り込み
snippet 一覧
473 件// Autofac var builder = new ContainerBuilder(); builder.RegisterType<SqlRepository>().As<IRepository>(); builder.RegisterType<OrderService>().As<IOrderService>();
判断軸3: 登録の書き味 — 同じことを3つで書き比べる
ASP.NET の DIコンテナ Autofac / Unity / 標準DI を業務SEが選ぶ3つの判断軸未収録#d986c9859b07
// Unity var container = new UnityContainer(); container.RegisterType<IRepository, SqlRepository>(); container.RegisterType<IOrderService, OrderService>();
判断軸3: 登録の書き味 — 同じことを3つで書き比べる
ASP.NET の DIコンテナ Autofac / Unity / 標準DI を業務SEが選ぶ3つの判断軸未収録#7a2557cd54f7
// ✅段階1: DIなし(Controller内でnew) public class CustomerController : Controller { private CustomerService _service;
段階1: DIなし— Controller内で直接new
ASP.NET MVC 5 で DI は業務系に要るのか — 入れない派の論点も書く未収録#63e0ca06e49e
// ❌段階2:サービスロケータ(アンチパターン扱い) public static class ServiceLocator { public static ICustomerService GetCustomerService() => new CustomerService(new SqlConnection(ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString));
段階2:サービスロケータ—アンチパターン認定
ASP.NET MVC 5 で DI は業務系に要るのか — 入れない派の論点も書く未収録#b6cf76b11634
// ✅段階3:コンストラクタインジェクション(DI本命) public class CustomerController : Controller { private readonly ICustomerService _service;
段階3:コンストラクタインジェクション— DIコンテナの本命
ASP.NET MVC 5 で DI は業務系に要るのか — 入れない派の論点も書く未収録#cd2c61a185a2
// ✅定石: Unity DIコンテナ設定(App_Start/UnityConfig.cs) using Unity; using Unity.Lifetime; using Unity.AspNet.Mvc;
Unity DIコンテナの設定— ASP.NET MVC 5への組み込み
ASP.NET MVC 5 で DI は業務系に要るのか — 入れない派の論点も書く未収録#d3c77983766f
// ✅ DbContextのライフサイクル別の挙動 // Singleton:複数リクエストで同じインスタンス→ ❌変更追跡が混ざる事故 container.RegisterType<MyDbContext>(new ContainerControlledLifetimeManager()); // ❌ NG // Transient:同一リクエスト内でも別インスタンス→ ❌ Service Aの変更がService Bから見えない
DbContextのライフサイクル登録—連載第4回との接続
ASP.NET MVC 5 で DI は業務系に要るのか — 入れない派の論点も書く未収録#110747337a94
public class Todo { public int Id { get; set; } public string Sammary { get; set; } public string Detail { get; set; }
TodoMODELの構造
ASP.NETでIndex時にログイン中ユーザーのデータのみを出力する方法未収録#1cf785ad53f1
public class User { public int id { get; set; } public string UserName { get; set; } public string Password { get; set; }
UserModelの構造
ASP.NETでIndex時にログイン中ユーザーのデータのみを出力する方法未収録#d80fe388dc12
class TodoesController:Controller { TodoContext db = new TodoContext(); public AtionResult Index()
スキャフォールドで生成したTodoControllerのIndexメソッドに追記する
ASP.NETでIndex時にログイン中ユーザーのデータのみを出力する方法未収録#b570e149f37c
class TodoesController:Controller { TodoContext db = new TodoContext(); public AtionResult Index()
スキャフォールドで生成したTodoControllerのIndexメソッドに追記する
ASP.NETでIndex時にログイン中ユーザーのデータのみを出力する方法未収録#20d6f23ab92f
// ✅定石1: ADO.NET最小コード(ControllerのAction内で使う) public class CustomerController : Controller { public ActionResult Index() {
定石1: ADO.NETをそのまま使う最小コード
ASP.NET MVC 5 で使える ORM 3択 — EF6 / Dapper / ADO.NET の業務SE 視点比較未収録#e9cb6d6ad0b0
// ✅定石2: Dapper最小コード(SQLを書きつつマッピングは自動) using Dapper; public class CustomerController : Controller {
定石2: Dapperを導入する最小コード
ASP.NET MVC 5 で使える ORM 3択 — EF6 / Dapper / ADO.NET の業務SE 視点比較未収録#986f44b9773c
// ✅定石3-a: DbContextの定義 using System.Data.Entity; public class MyDbContext : DbContext {
定石3: EF6 + Code First Migrationの最小コード
ASP.NET MVC 5 で使える ORM 3択 — EF6 / Dapper / ADO.NET の業務SE 視点比較未収録#7308bc553108
// ✅定石3-b: EF6でControllerからDBアクセス public class CustomerController : Controller { private MyDbContext _db = new MyDbContext();
定石3: EF6 + Code First Migrationの最小コード
ASP.NET MVC 5 で使える ORM 3択 — EF6 / Dapper / ADO.NET の業務SE 視点比較未収録#f4027ae95f4a
// ✅定石1:デフォルトルート({controller}/{action}/{id}) using System.Web.Mvc; using System.Web.Routing; public class RouteConfig
定石1:デフォルトルート(Convention-based)の仕組み
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#eaf21dbee88d
// ✅定石2:属性ルート([Route] でActionに直接指定) [RoutePrefix("customer")] // Controller全体のプレフィックス public class CustomerController : Controller { [Route("")] // /customerに対応
定石2:属性ルート(Attribute-based)— URLを綺麗にしたい時
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#afa2285308b5
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // ↓この1行で [Route(...)] 属性が有効になる
定石2:属性ルート(Attribute-based)— URLを綺麗にしたい時
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#dddd922ca09a
// ✅定石3:ルート制約で型違いを弾く public class OrderController : Controller { [Route("order/{id:int}")] // idはintのみ受け付ける public ActionResult Detail(int id){ /* ... */ }
定石3:ルート制約({id:int}等)で型違いを弾く
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#8153d238ef93
// ✅定石4:カスタム階層ルート(API風) [RoutePrefix("api/v1")] public class OrdersApiController : Controller { [Route("orders/{orderId:int}/items")]
定石4:カスタム階層ルート— REST風APIのような綺麗なURL
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#8f6a81a42b29
// ✅ WinForms版: Formを切り替える public partial class CustomerListForm : Form { private void btnNewCustomer_Click(object sender, EventArgs e) {
定石5: Form切替↔ RedirectToActionの対比
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#20c252589300
// ✅ ASP.NET MVC版: Actionにリダイレクト public class CustomerController : Controller { public ActionResult Index(){ /* 一覧表示 */ }
定石5: Form切替↔ RedirectToActionの対比
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#807d04442041
// ✅定石6: TempDataでリクエスト跨ぎの状態渡し [HttpPost] public ActionResult Save(CustomerVm model) { _service.Save(model);
定石6: TempDataで状態をリクエスト跨ぎで渡す
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#e880533d49db
// ✅定石1:デフォルトルート({controller}/{action}/{id}) using System.Web.Mvc; using System.Web.Routing; public class RouteConfig
定石1:デフォルトルート(Convention-based)の仕組み
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#b320a28d04bf
// ✅定石2:属性ルート([Route] でActionに直接指定) [RoutePrefix("customer")] // Controller全体のプレフィックス public class CustomerController : Controller { [Route("")] // /customerに対応
定石2:属性ルート(Attribute-based)— URLを綺麗にしたい時
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#949a0d365263
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // ↓この1行で [Route(...)] 属性が有効になる
定石2:属性ルート(Attribute-based)— URLを綺麗にしたい時
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#7a3019f8a2f6
// ✅定石3:ルート制約で型違いを弾く public class OrderController : Controller { [Route("order/{id:int}")] // idはintのみ受け付ける public ActionResult Detail(int id){ /* ... */ }
定石3:ルート制約({id:int}等)で型違いを弾く
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#530513907016
// ✅定石4:カスタム階層ルート(API風) [RoutePrefix("api/v1")] public class OrdersApiController : Controller { [Route("orders/{orderId:int}/items")]
定石4:カスタム階層ルート— REST風APIのような綺麗なURL
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#93ae011bd8fb
// ✅ WinForms版: Formを切り替える public partial class CustomerListForm : Form { private void btnNewCustomer_Click(object sender, EventArgs e) {
定石5: Form切替↔ RedirectToActionの対比
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#b65535aa934a
// ✅ ASP.NET MVC版: Actionにリダイレクト public class CustomerController : Controller { public ActionResult Index(){ /* 一覧表示 */ }
定石5: Form切替↔ RedirectToActionの対比
ASP.NET MVC 5 のルーティングを WinForms の Form 切替で理解する未収録#7ae814a5608b