STRING_AGG SQL Server2017の新機能
STRING_AGG SQL Server 2018で追加されました
が、ネストはできないようです。
STRING_AGGの結果を
STRING_AGGしたいなら、
一度テーブルへ保管するなどのひと手間が必要みたいです。
単に私が下手なだけかもしれませんが?
Ensure the type is concrete and services are registered for all parameters of a public constructor.
ASP.NET MVC Core2.0だと、DIするクラスのコンストラクターがパブリックじゃないと
InvalidOperationException: A suitable constructor for type '「クラス名」' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.
というエラーが出ます。
まったく同じメッセージが、Controllerでも出るんですね。
ハマりました。
IoT ALGYAN3周年「IoT祭り2018」に行ってみた、
基本的に組み込み系のエンジニアのコミュニティーです。
なので、組み込めない、私はアウェイ
前置き、
IotはInternet of thing の略です。
現在でも、いろいろな機械、身近な所では、エレベーター、とか、
最近の自動車、特に高級なやつとか、電気で動くとかのあたり、
これらは、もともと独自の通信方法を使ってたのが、InterNetの標準である TCP/IPで通信するように変わって来ているので、普通にPCやスマートホンでも、情報が取れるよね。
というところがIotのそもそも。
でもアルジャンは、、Thing - 物がインターネットにつながるよどうするではない。
Thing - 物をインターネットにどうつなげるの、というところが軸足っぽいかな。
まぁ、昔からあるものの、埃を掃って、お化粧直しをして…
組み込み系の人には、なんか通信手段/プロトコルが少し面倒になっただけなんだなぁ?
結局これが、ビッグデータの一つというところが多分、肝。
TCP/IPで通信できない、機器を、ケートウェィという、機器でインターネットにつないでいくというのも、ビッグデータを使いたい方から見ると、胡散臭い。
さらに、ここにもAIをという話も出てきていて。
え、生のデータを送らないってことですか。
でも、生データが無いと機械学習できない。
なのに、ゲートウェー/エッヂ、では、学習済みのモデル/AIの実行部分しか分担できないらしい。
生データはだらだらネット上へ送るけど、判断は、エッジで?
たまに、更新された学習済みモデルをネットから更新してもらうの?
うーん、なんだかなぁ。
core2.0のASP.NET MVCをIISでホストした。
ASP.NET MVCのシステム開発、今からやるなら、core 2.0 だよね。
でも、ops側はあまり変わったことはしたくない。
できれば、Azure App Service で、サクッとデプロイなんてのは、devのわがままなのかも、
で、AzureでWindows server をVMで立てて、IIsでホスティングをするにはというので、調べてみました。
普通に、IISを有効にして、最新の.NET Core Windows Server ホスティング バンドルをインストールすればいいみたいのですが…
「システムを再起動するか、コマンド プロンプトから net stop was /y に続けて net start w3svc を実行します。 IIS を再起動すると、インストーラーによって行われたシステム パスへの変更が取得されます。」
となっていますが、素直にシステム再起動したほうが良さげです。
まぁ、サービス的に展開したいのだが、マルチテナント的な作りこみはしたくない、とかという、要望もある。
テナントごとに、Azure App Serviceとなると、コスト的にかかるのでこうしたいみたい。
ま、GUIで管理できるし。
現時点最新、ここをよく読めばわかります。
Static おじさん
Staticおじさんと言う表現があるようで
いろいろ定義はあるようですが、私が五年ほど前にあったのはほんまもんでした。
現場はUnixでサーバーサイドの開発。
そこでは、バッチ系という。
実際は、サービスで。
で、使用言語はC。
データはStatic変数で保存してください。
出たなStaticお化け。と思って
「はぁ、アロックしたメモリーはStaic変数で管理するということですね。」
と確認すると。
「いやいや、ヒープはメンテナンスが大変なのですべてstaticで定義してください。」
というので
「いやいや、結構な量のデータを一気に処理するので厳しいですよ。」
といっても、よろしくお願いしますの一点張り。
で、開発時は最大処理数を5個にして動作確認、単体テストまで完了。
で、結合テスト時に処理数を500にして納品。
もちろんこちらのテスト環境では、ロードに失敗するのでテストはできないわけで。
火を噴いてましたねぇ。
いゃ、デファインでヒープ対応になる様にも仕込んで、いきさつもコメントに書いてありましたから。
テストチームが何とかしたと思いますが。
もはや、怪談です。
対立軸のすり替え理論
対立軸のすり替え理論、そんなものが実際にあるのかどうかもわからない。
子供が、予備校で聞いてきた、現代文の選択問題の解法の一つだという。
選択肢が、あるがゆえに問題点を見失い、正しい選択ができい。
出題側も意図して設問をしていて、注意してねということらしい。
十分に本題をとらえていれば、どうという事ない問題でも、対立軸が故意にずれている設問に惑わされるという事。
今回の、選挙を見ていると、自民党はこの手法をわかって利用しているように思える。
本来、改憲の是非を問う選挙なのに、野党に対しては、福祉と経済の軸で対抗していた。
結果、政権が取れると改憲ありきの話になっている。
自民党の改正案はかなり極端な内容なのは、ご存じだろう。
そして、しれっと、遥かにリベラルな案を出してくるはずだ。
ああ、自民党はまともな事を言うんだなと、勘違いさせるために。
これが対立軸のすり替えだ。
元々は、改憲するかしないかの対立軸が
どちらの自民党案が良いかになってしまうのだ。
ご注意されませ。
Microsoft Report ViewerをWebFormで使ってみる
Communityエディションはオプションらしいので追加でインストールしましょう。
まず、素のWinFormプロジェクト
新しい項目の追加から、Reportingでレポートを追加。
ツールボックスから一覧を落とします。 これがデータの明細です。 なんだか、複数貼れるようですが よくわからないので一つにしておきます。
と、データセットプロパティーウィンドウが出るので設定します。
すでにデータソースがあれば、プルダウンから なければ新規作成から
あとは、レポートデータや、ツールボックスから、一覧の上にパーツを貼ります。 外にも張れますが、いっかてしか表示できません。 テーブルから一覧的に印字する場合は、必ず一覧の上に貼る様にします。
なぜか一覧上にパーツが乗らない場合は、Visual Studioとか、Windowsを再起動してみるといいでしょう。
プレビューとプレビューからの印刷
プレビュー画面を作ります
追加から新規のWebフォームを一つ作って ツールバーから、ReportViewerを追加
ツールバーから、ReportのReportViewerと、Ajaxの Script Maneger を追加
矢印の三角をクリックしてください
作ったレポートを指定します。
これを実行すると
これでは、固定の出力しかできない。 もちろん、パラメーター付きのクエリのGetDataメソッドを足せばいい。 でも、コードベースでデータを差し替えたいと思う。
此処までくるとObjectDataSouceというものができているので、これを何とかすればと思うところですが、私はダメでした。
RcordViewerを触ります。右クリックして出たポップアップメニューから、コードへ移動を選んで移動
移動しました。
Page_Loadに書いてみます。
ボタンイベントでも大丈夫です。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
using (EstateManagerTestDataSetTableAdapters.document_folderTableAdapter document_folderTableAdapter_ = new EstateManagerTestDataSetTableAdapters.document_folderTableAdapter())
{
EstateManagerTestDataSet.document_folderDataTable table = document_folderTableAdapter_.GetData();
foreach (EstateManagerTestDataSet.document_folderRow row in table)
{
if (row.document_folder_id % 2 == 0)
{
row.Delete();
}
}
table.AcceptChanges();
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", (System.Data.DataTable)table));
ReportViewer1.DataBind();
}
}
}
IDが奇数の物だけになりましす。