.NETで作る!

.NETに関するあれこれ(C#、VB.NET)

SQL Parser(C#) を公開しました

github.com 以前に公開していたSqModel(Sql Builder)にSql Parse 機能を追加しました。 使い方 [Fact] public void Simple() { using var p = new Parser(@"select a.column_1 as col1, a.column_2 as col2 from table_a as a"); var q = p.ParseSelectQue…

SelectQueryBuilder「SqModel」リリースしました

詳しくはこちら見てください github.com 日本語のreadmeはこちら SqModel/README-jp.md at main · mk3008/SqModel · GitHub NuGetはこちら www.nuget.org 構文チェック機能もない緩いSelectクエリビルダーです。緩いゆえにどのDBMSでも使えると思います。 テ…

CTE(With句) vs View in Postgres

CTEとは「Common Table Expressions」のこと。ざっくり言えば「With句」のこと。 PostgresでWith句を使用していると遅いケースがあったので、Temporary view 作って対応したほうがいいのだろうかと思い「CTE vs View」で情報収集。 そしたら、こちらのサイト…

サブシステム間のデータ連携フレームワークKeyMapSync

以前にサブシステムについてまとめていた訳ですが、 mk3008net.hatenablog.com 最近、サブシステムを大量に扱うことがありまして、そろそろ簡単に管理できるようなものを作らないとマズイなと思い、ライブラリ化しました。 github.com さっそく使い方を説明…

Blazorアプリのディレクトリ構成案

前置き 私はBlazorアプリを完成させたことはなく、サンプルでマスタメンテ画面を作ったレベルですが、 こういう感じでプロジェクトのディレクトリを構成したらいい感じになるんじゃないかという妄想。 あくまで1例としてお考えください。 ディレクトリ構成 R…

Blazor触ってみた~開発環境作成からDBのCRUDまで~

.NET5 が出るまでもういいかなぁと思っていたんですが、 Blazor が面白そうなので手を出してしまいました。 そこでVB.NETしかわからない私がBlazorに手を出してアプリっぽいコードを書くまでの実体験を書いときます。 環境構築 ASP.NET Core Blazor の概要 |…

DBeaver で SQL Server に接続する 

新規にSQLServer建てたら初期設定では接続失敗したのでメモ。 SQLServerExpress2019をインストール 今回は設定は変えずそのままインストールしたものとしています DBeaverに接続先を登録 何も考えずにインストールするとWindows認証になりますので、DBeaver…

サブシステム化とDB設計について

「サブシステム」とは「大きなシステムを構成する小さなシステム」のことですが、 今回は「サブシステム化(大きなシステムを小さなシステムに分解する)」という視点で設計を考えてみたいと思います。 サブシステム化は システム間の結合を疎にすることで仕…

VSMを書き始めて引っかかったとこと

VSMを初めて実戦投入してみたときの感想を書いておきます。 【注意】私はVSMを独学で学習したので下記の解決策があっているかはわかりません。 線が交差しまくって流れがみづらい 拠点やら取引先やらを配置していくと交差し始め、こんがらがってきますね。 …

VSM(物と情報の流れ図)入門

バリューストリームマップとの出会い バリューストリームマップという言葉は実は「decode:2017」で初めて知りました。今年の5月ですね… そこで、なんか知らんけど「バリューストリームマップというやつが開発現場に効果がある*1」という話を複数の講演で聞い…

業務設計入門

前置き 最近、久しぶりに上流工程(業務設計)を担当することがあり、今後はそちら方面の仕事が増えそうでしたので一度自分における「業務設計」というものを振り返ってみたいと思います。 今回はプログラミングについての話題はありませんのでご了承くださ…

FileInfoクラスを拡張してWindowsの名前重複コピー時の挙動を移植する

Windows10で同じフォルダにファイルをコピーすると「 - コピー」という接尾語が付きますよね。 移動の場合だと、「(1)」、「(2)」のような番号が付きます。 これをVBで再現しようというもの。 ええ、大したネタではありません。 時間さえあれば誰でも書ける…

NLog LayoutRendererを自作する

はじめに NLog の使い方は一般的に logger.info("メッセージ") になりますが、「メッセージ(文字列)」しか指定できません。 通常はこれで問題はないのですがそれ以外の情報も出力したいことがあります。 通常のコード 例えば、SQLのロギングを考えてみます…

Unity(DI)Config - Configファイルにインテリセンスを適用させる

(以下の内容はUnityバージョン3.5.1404をもとに記述しています。) Configファイルにインテリセンスを適用させるには…XSDファイルをプロジェクトに含めてやればOK! で、そのXSDファイルはどこにあるかというと公式にあります。 Download Microsoft Unity 3…

Unity(DI) Config - アセンブリパスの通し方(型の名前解決)

(以下の内容はUnityバージョン3.5.1404をもとに記述しています。) 型の名前解決をさせるためにUnityにアセンブリのパスを通す必要があります。 方法は主に2通り。 1. alias要素 を使用する方法 alias要素はalias属性とtype属性から成り立ち、特定クラスに…

ExecuteReader って終了分岐が気持ち悪いから拡張メソッドでForEach文で書けるようにする

DBアプリケーションで避けては通れない ExecuteReader メソッドですが、これってイマイチですよね。 ひとまず適当にサンプル書いてみます。 Private Sub SelectRader() Using cn As IDbConnection = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;…

Unity(DI)でDBに接続してみよう

SeviceLocator経由でInstanceを作成する場合、Unityに初期化処理をいろいろと任せることができます。 ということで、DB接続処理をUnityにやらせてみようと思います。 では、比較対象としてUnityを使用せずにDB接続するコードを書いてみましょう。 Private Su…

Unity(DI) の設定をApp.configから切り離す

UnityのConfigは長くなりがちですよね。 app.configに書くと保守しづらいので外部ファイル化しましょう。 といっても目新しいテクではなく単に SectionInformation.ConfigSource プロパティ (System.Configuration) を使えばいいだけなんですけど。 tnakamur…

NLog4 Configサンプル

今更ですが、NLogのバージョンが4に上がっていました。 ログファイルをアーカイブする際、ZIP化してくれるのが嬉しいですね。 www.infoq.com NLog 4.0 has been released. | NLog あと、拡張属性を自動的に呼んでくれるのも嬉しいです。ただ、バイナリファイ…

Serializerでディープコピー

元ネタ shinshu.fm 自分の古い記事が元ネタ。これ今ならもっと簡単にかける。 改善点は ファイルに書きださない。 クローン対象に属性を書く必要なし。 コード Imports System.IO Imports System.Runtime.Serialization 'ref System.Runtime.Serialization.d…

アプリケーション単位で管理できて書き込みもできる設定ファイルを自作する

元ネタ VB アプリケーション設定の保存と読み込み@Visual Basic 中学校 設定にはユーザーごとの設定である「ユーザースコープ」と、アプリケーションで共通である「アプリケーションスコープ」の2種類がある。 ユーザースコープの設定を変更した場合は、ユ…

WindowsStoreのアカウントもないのにXamarinビジネスライセンス無料キャンペーンに申し込んでみた

元ネタ 【朗報】Windows Phone 開発者は無料で Xamarin のライセンスを取得できます【8/31 まで!】 - Xamarin 日本語情報ytabuchi.hatenablog.com 注意事項 なんもしたことがない(Windows Dev Center のアカウントを持ってない)状態からのスタート。 Wind…

日付の操作(月・日・時・分・秒の切り捨て、月初日、月末日)

DateTimeクラスを使えば簡単にできます。 こんな拡張メソッドを作っとくといいかもしれない。 Imports System.Runtime.CompilerServices Public Module DateTimeExtension ''' <summary> ''' 月を切り捨てます。(日付が1月1日になり、時分秒がゼロになります) ''' </summary> <Extension()></extension()>…

Unity+app.configでSendMail

Unityシリーズ第3弾。Unityを使ってメールを飛ばしてみましょう。 前準備 Nugetから「Unity」と「CommonServiceLocator」をインストール。 Unityを使用しない場合 比較対象のため、まずUnityを使用しない場合のコードを先に挙げておきます。 Dim message As …

Visual Studio 2015 コードレンズを試す

コードレンズ自体は目新しいものではなく、VS2013*1から使えるそうです。 で今回のVS2015ではProfessionalから利用可能とのことで実際に触ってみました。 インストール Visual Studio 2015 Downloads 上記のサイトからVS2015 RC版をダウンロードしましょう。…

VisualStudio2015 エディション別機能一覧

引用元 Visual Studio 2015 における統合開発環境の進化 Compare_2015 機能一覧 動画内で出てきた機能一覧を見返したいので書き起こす。アンド、Communityエディションも併記。 機能 Enterprise Professional Community ストーリーボーディング ○ ○ ○ コード…

VB .NET4.5 Async/Await Cheat Sheet

Async および Await を使用した非同期プログラミング (C# および Visual Basic) 詳細はリンク先の通りのため詳細の説明は省き、カンペ化する。 非同期メソッド実処理 専用 Public Async Function GetMessageAsync(timer As Integer) As Task(Of String) Dim …

Private、Private Shared なFunctionをUnitTestする

VB.NET で Private Method、Private Shared Method を Unit Test します。 検証対象クラス Public Class Sample Public Sub New(prefix As String) Me.Prefix = prefix End Sub Private Property Prefix As String Private Function AddPrefix(s As String) …

WPF+Prism 5.0 でMVVMアプリを作る(画面遷移)

私が知ってるWindowsFormアプリの画面遷移は モーダルウインドウを開いて、オーナーウインドウは非表示にし、それっぽくみせる ScreenManagerクラス(非ウインドウクラス)を作って、現在画面を閉じてから次の画面を開く こんな感じです。 代わってWPFではFr…

ビジネスアプリ視点でみた WPF 3.0~4.5

WPF

ビジネスアプリという視点で.NET Frramework のどのバージョンを選んだら何ができるかをざっくりまとめます。無論、本命は最新バージョンの.NET4.5です。 各バージョンのざっくり説明 WPF 3.0 WPFアプリケーションが開発できるようになった最初のバージョン…

. .