バレンタイン
これさえあれば
もうバレンタインなんか怖くない\(^o^)/
- 出版社/メーカー: 任天堂
- 発売日: 2011/02/26
- メディア: Video Game
- 購入: 25人 クリック: 2,240回
- この商品を含むブログ (357件) を見る
やりかけがいっぱい
- C# で強い typedef っぽいことをするためのカスタムツール作成
- MVP パターンのフレームワーク作成
- DynamicObject 使って C# でプロトタイプベースなライブラリ作成
- MVP パターンの記事
- NotifyIcon 使った常駐アプリの作り方の記事
- 公開用 NHibernate のサンプルプログラム作成
- 公開用 TableModule のサンプルプログラム作成
- 公開用 ActiveRecord のサンプルプログラム作成
- 本気スケジューラアプリ作成
- 本気 TODO List アプリ作成
- etc...
だいたい三日〜一ヶ月位で冷めて放置というパターン
まともに何か達成したことがほとんどない件
とりあえず、typedef っぽいカスタムツール作成にまた興味出てきたけどいつまで続くか・・・w
WCF での P2P の参考 URL
[サンプル]
WCF のチャットのサンプル | Microsoft Docs
ピア チャネル セキュア チャット | Microsoft Docs
ピア チャネル カスタム ピア リゾルバ | Microsoft Docs
WCF を使用したピアツーピアの作業処理アプリケーション
[ピアリゾルバ]
ピア リゾルバー | Microsoft Docs
WCF and PNRP - MyProgrammingNote Wiki*
Peer Name Resolution Protocol | Microsoft Docs
[アーキテクチャ]
MSDN マガジンのバックナンバー | Microsoft Docs
log4net サンプル
Global.asax.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.SessionState; using log4net; using log4net.Config; namespace Sample { public class Global : System.Web.HttpApplication { private static readonly ILog _log = LogManager.GetLogger("App"); protected void Application_Start(object sender, EventArgs e) { XmlConfigurator.Configure(); } protected void Application_Error(object sender, EventArgs e) { Exception lastError = this.Server.GetLastError(); if (lastError is HttpUnhandledException) { _log.Fatal("未処理の例外が発生しました。", lastError); } else { _log.Error("エラーが発生しました。", lastError); } } } }
Web.config
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="Error.html"/> </system.web> <log4net> <appender name="ApplicationLog" type="log4net.Appender.RollingFileAppender"> <file value="Logs/app" /> <appendToFile value="true" /> <maxSizeRollBackups value="10" /> <rollingStyle value="date" /> <staticLogFileName value="false" /> <datePattern value='"."yyyy-MM-dd".log"' /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" /> </layout> </appender> <appender name="NHibernateFileLog" type="log4net.Appender.RollingFileAppender"> <file value="Logs/nhibernate" /> <appendToFile value="true" /> <maxSizeRollBackups value="10" /> <rollingStyle value="date" /> <staticLogFileName value="false" /> <datePattern value='"."yyyy-MM-dd".log"' /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" /> </layout> </appender> <appender name="DataLog" type="log4net.Appender.RollingFileAppender"> <file value="Logs/data" /> <appendToFile value="true" /> <maxSizeRollBackups value="10" /> <rollingStyle value="date" /> <staticLogFileName value="false" /> <datePattern value='"."yyyy-MM-dd".log"' /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" /> </layout> </appender> <!-- levels: DEBUG, INFO, WARN, ERROR, FATAL --> <logger name="App" additivity="false"> <level value="Error"/> <appender-ref ref="ApplicationLog"/> </logger> <!--<logger name="NHibernate" additivity="false"> <level value="DEBUG"/> <appender-ref ref="NHibernateFileLog"/> </logger> <logger name="Pushable.Data" additivity="false"> <level value="DEBUG"/> <appender-ref ref="DataLog"/> </logger>--> </log4net> </configuration>
最近買った本
- 作者: 神田昌典
- 出版社/メーカー: 講談社
- 発売日: 2004/01/27
- メディア: 単行本
- 購入: 24人 クリック: 280回
- この商品を含むブログ (74件) を見る
- 作者: 神田昌典
- 出版社/メーカー: フォレスト出版
- 発売日: 2002/06/01
- メディア: 単行本
- 購入: 20人 クリック: 184回
- この商品を含むブログ (198件) を見る
あなたの会社が90日で儲かる!―感情マーケティングでお客をつかむ
- 作者: 神田昌典
- 出版社/メーカー: フォレスト出版
- 発売日: 1999/12/14
- メディア: 単行本
- 購入: 15人 クリック: 133回
- この商品を含むブログ (57件) を見る
冷やし烏龍茶漬け
この前初めて食ったけど中々うまかった
404ページ | 永谷園
404ページ | 永谷園
404ページ | 永谷園
メッセージリストコントロール
メッセージを手軽に扱うためのカスタムコントロール。
コード
MessageList.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Web.UI; using System.Web.UI.WebControls; namespace Sample.Controls { [DefaultProperty("Items")] [ParseChildren(true, "Items")] [PersistChildren(false)] public class MessageList : CompositeControl { public MessageList() { this._items = new List<Message>(); } private readonly List<Message> _items; [MergableProperty(false)] [PersistenceMode(PersistenceMode.InnerDefaultProperty)] public List<Message> Items { get { return this._items; } } protected override HtmlTextWriterTag TagKey { get { return HtmlTextWriterTag.Ul; } } public void ShowMessage(string messageId) { this.SetVisibleOfMessage(messageId, true); } public void HideMessage(string messageId) { this.SetVisibleOfMessage(messageId, false); } public void ShowAllMessages() { this.SetVisibleOfAllMessages(true); } public void HideAllMessages() { this.SetVisibleOfAllMessages(false); } private void SetVisibleOfMessage(string messageId, bool visible) { Message target = this._items.Find(item => string.Equals(item.ID, messageId, StringComparison.Ordinal)); target.Visible = visible; } private void SetVisibleOfAllMessages(bool visible) { this._items.ForEach(item => item.Visible = visible); } protected override void CreateChildControls() { foreach (Message item in this._items) { this.Controls.Add(item); } } } }
Message.cs
using System; using System.Web.UI; using System.Web.UI.WebControls; namespace Sample.Controls { public class Message : WebControl { public Message() : base(HtmlTextWriterTag.Li) { } public string Text { get { return (this.ViewState["Text"] as string) ?? string.Empty; } set { this.ViewState["Text"] = value; } } public void Show() { this.Visible = true; } protected override void RenderContents(HtmlTextWriter writer) { writer.Write(this.Text); } } }
使用例
Execute.aspx (1)
<%@ Register Assembly="Sample" Namespace="Sample.Controls" TagPrefix="my" %>
Execute.aspx (2)
<my:MessageList runat="server" ID="_errorMessageList" CssClass="ErrorMessageList"> <my:Message runat="server" ID="_hogeErrorMessage" Text="Hoge です。" /> <my:Message runat="server" ID="_fugaErrorMessage" Text="Fuga です。" /> <my:Message runat="server" ID="_piyoErrorMessage" Text="Piyo です。" /> </my:MessageList>
Execute.css
.ErrorMessageList li { color: Red; }
Execute.aspx.cs
protected void Page_Load(object sender, EventArgs e) { this._errorMessageList.HideAllMessages(); } protected void _okButton_Click(object sender, EventArgs e) { FooFacade.ResultOfExecute result = this._facade.Execute(); switch (result) { case (FooFacade.ResultOfExecute.Success): this.Response.Redirect("~/Foo/Complete.aspx", false); break; case (FooFacade.ResultOfExecute.Hoge): this._hogeErrorMessage.Show(); break; case (FooFacade.ResultOfExecute.Fuga): this._fugaErrorMessage.Show(); break; case (FooFacade.ResultOfExecute.Piyo): this._piyoErrorMessage.Show(); break; default: throw new ApplicationException(); } }