static void Main() { #if NETCOREAPP // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); #else #endif try { // Add DefaultCulture key in app.Config file and take the culture value from app.Config file. string culture = GetConfigParameter.GetConfigValue("DefaultCulture"); if (!string.IsNullOrEmpty(culture)) { Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture); Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(culture); } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } catch (Exception ex) { MessageBox.Show(string.Format(RM_GetString("EntryPoint"), ex.Message)); } }
/// <summary>OnStartupイベント</summary> protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); }
/// <summary></summary> /// <param name="args"></param> public static void Main(string[] args) { // configの初期化(無くても動くようにせねば。) #if NETCORE GetConfigParameter.InitConfiguration("appsettings.json"); #endif try { MyDebug.OutputDebugAndConsole("----------------------------------------------------------------------------------------------------"); TestEnumToStringExtensions.Root(); MyDebug.OutputDebugAndConsole("----------------------------------------------------------------------------------------------------"); TestXmlLib.Root(); MyDebug.OutputDebugAndConsole("----------------------------------------------------------------------------------------------------"); TestDeflateCompression.Root(); MyDebug.OutputDebugAndConsole("----------------------------------------------------------------------------------------------------"); // echoすると例外 try { Console.ReadKey(); } catch { } } catch (Exception ex) { MyDebug.OutputDebugAndConsole(ex.ToString()); } }
static void Main() { // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }
/// <summary>Main</summary> static void Main(string[] args) { //////////////////////////////////////////////////////////////////////// // 簡素なサンプルなので、 // ・多重化(タスク毎、結果セットを分割) // ・フェッチ・サイズ(メモリ消費量を抑える) // ・コミット・インターバル、リラン // 等の考慮が別途必要になることがあります。 //////////////////////////////////////////////////////////////////////// // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); // コマンドラインをバラす関数がある。 List <string> valsLst = null; Dictionary <string, string> argsDic = null; PubCmnFunction.GetCommandArgs('/', out argsDic, out valsLst); // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( System.Reflection.Assembly.GetExecutingAssembly().Location, "-", "SelectCount", argsDic["/DAP"] + "%" + argsDic["/MODE1"] + "%" + argsDic["/MODE2"] + "%" + argsDic["/EXROLLBACK"], new MyUserInfo("", "")); // 戻り値 TestReturnValue testReturnValue; // B層呼出し LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) string error = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n"; error += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n"; error += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n"; Console.WriteLine(error); Console.ReadKey(); } else { // 結果(正常系) Console.WriteLine(testReturnValue.Obj.ToString() + "件のデータがあります"); Console.ReadKey(); } }
/// <summary>constructor</summary> /// <param name="configuration">IConfiguration</param> public Startup(IConfiguration configuration) { Configuration = configuration; // ライブラリにも設定 GetConfigParameter.InitConfiguration(configuration); // Dockerで埋め込まれたリソースを使用する場合、 // 以下のコメントアウトを解除し、appsettings.jsonのappSettings sectionに、 // "Azure": "既定の名前空間" を指定し、設定ファイルを埋め込まれたリソースに変更する。 //Touryo.Infrastructure.Business.Dao.MyBaseDao.UseEmbeddedResource = true; }
static void Main() { // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); // 既定の処理 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // UnhandledExceptionイベント・ハンドラを登録する Thread.GetDomain().UnhandledException += new UnhandledExceptionEventHandler(Application_UnhandledException); // ThreadExceptionイベント・ハンドラを登録する Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); // スプラッシュ画面の表示 Splash.ShowSplash(new Login()); // <スピンロック> // SleepすればCPUオーバヘッドはほとんど無いが // Sleep時間を長く、ループ回数を短くする // ことでよりCPUオーバヘッドを軽減できる。 for (int i = 0; i < 30; i++) { if (Splash.SpinLock) { break; // 直ちに抜ける } Thread.Sleep(100); } // ThreadExceptionイベント・ハンドラを登録する Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); // 次の画面(ログイン画面)の表示 Application.Run(Splash.NextForm); if (Program.FlagEnd) { return; // ログインしないで終わった場合 } // ThreadExceptionイベント・ハンドラを登録する Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); // 業務画面の表示(業務の開始) Application.Run(new Form1()); }
/// <summary>constructor</summary> /// <param name="env">IConfiguration</param> /// <param name="config">IConfiguration</param> public Startup(IHostingEnvironment env, IConfiguration config) { // 自前 //IConfigurationBuilder builder = new ConfigurationBuilder() // .SetBasePath(env.ContentRootPath) // .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) // .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) // .AddEnvironmentVariables(); //config = builder.Build(); // メンバに設定 this.HostingEnvironment = env; this.Configuration = config; // ライブラリにも設定 GetConfigParameter.InitConfiguration(config); // Dockerで埋め込まれたリソースを使用する場合、 // 以下のコメントアウトを解除し、appsettings.jsonのappSettings sectionに、 // "Azure": "既定の名前空間" を指定し、設定ファイルを埋め込まれたリソースに変更する。 //Touryo.Infrastructure.Business.Dao.MyBaseDao.UseEmbeddedResource = true; }
private void Application_Startup(object sender, StartupEventArgs e) { // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); }
/// <summary>Main</summary> static void Main(string[] args) { // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); // コマンドラインをバラす関数がある。 List <string> valsLst = null; Dictionary <string, string> argsDic = null; StringVariableOperator.GetCommandArgs('/', out argsDic, out valsLst); // 引数クラス値(B層実行用) string screenId = System.Reflection.Assembly.GetExecutingAssembly().Location; string controlId = "-"; string actionType = "SQL"; // argsDic["/DAP"] + "%" + argsDic["/MODE1"] + "%" + argsDic["/MODE2"] + "%" + argsDic["/EXROLLBACK"]; MyUserInfo myUserInfo = new MyUserInfo("userName", "ipAddress"); // B層クラス LayerB layerB = new LayerB(); // ↓B層実行:主キー値を全て検索(ORDER BY 主キー)----------------------------------------------------- // 引数クラスを生成 VoidParameterValue selectPkListParameterValue = new VoidParameterValue(screenId, controlId, "SelectPkList", actionType, myUserInfo); // B層呼出し SelectPkListReturnValue selectPkReturnValue = (SelectPkListReturnValue)layerB.DoBusinessLogic(selectPkListParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); // 実行結果確認 if (selectPkReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) string error = "ErrorMessageID:" + selectPkReturnValue.ErrorMessageID + "\r\n"; error += "ErrorMessage:" + selectPkReturnValue.ErrorMessage + "\r\n"; error += "ErrorInfo:" + selectPkReturnValue.ErrorInfo + "\r\n"; Console.WriteLine(error); Console.ReadKey(); return; //バッチ処理終了 } // 戻り値取得 ArrayList pkList = selectPkReturnValue.PkList; // ↑B層実行:主キー値を全て検索(ORDER BY 主キー)----------------------------------------------------- int recordCount = pkList.Count; // 全レコード数 int initialIndex = 0; // 処理開始インデックス ※ todo:リラン時に途中から再開する場合は初期値を変更する int transactionCount = Convert.ToInt32(Math.Ceiling(((double)(recordCount - initialIndex)) / INTERMEDIATE_COMMIT_COUNT)); // 更新B層実行回数 // 性能測定 // 性能測定 - 開始 PerformanceRecorder pr = new PerformanceRecorder(); pr.StartsPerformanceRecord(); for (int transactionIndex = 0; transactionIndex < transactionCount; transactionIndex++) { ArrayList subPkList; // 主キー一覧(1トランザクション分) int subPkStartIndex; // 主キー(1トランザクション分)の開始位置 int subPkCount; // 主キー数(1トランザクション分) // 取り出す主キーの開始、数を取得 subPkStartIndex = initialIndex + (transactionIndex * INTERMEDIATE_COMMIT_COUNT); if (subPkStartIndex + INTERMEDIATE_COMMIT_COUNT - 1 > recordCount - 1) { subPkCount = (recordCount - initialIndex) % INTERMEDIATE_COMMIT_COUNT; } else { subPkCount = INTERMEDIATE_COMMIT_COUNT; } // 主キー一覧(1トランザクション分)を取り出す subPkList = new ArrayList(); subPkList.AddRange(pkList.GetRange(subPkStartIndex, subPkCount)); // ↓B層実行:バッチ処理を実行(1トランザクション分)---------------------------------------------------- // 引数クラスを生成 ExecuteBatchProcessParameterValue executeBatchProcessParameterValue = new ExecuteBatchProcessParameterValue(screenId, controlId, "ExecuteBatchProcess", actionType, myUserInfo); executeBatchProcessParameterValue.SubPkList = subPkList; // B層呼出し VoidReturnValue executeBatchProcessReturnValue = (VoidReturnValue)layerB.DoBusinessLogic(executeBatchProcessParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted); // 実行結果確認 if (selectPkReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) string error = "ErrorMessageID:" + selectPkReturnValue.ErrorMessageID + "\r\n"; error += "ErrorMessage:" + selectPkReturnValue.ErrorMessage + "\r\n"; error += "ErrorInfo:" + selectPkReturnValue.ErrorInfo + "\r\n"; Console.WriteLine(error); Console.ReadKey(); return; // バッチ処理終了 } // ↑B層実行:バッチ処理を実行(1トランザクション分)---------------------------------------------------- } // 性能測定 - 終了 Console.WriteLine(pr.EndsPerformanceRecord()); Console.ReadKey(); }
static void Main(string[] args) { // configの初期化 GetConfigParameter.InitConfiguration("appsettings.json"); // コマンドラインをバラす関数がある。 List <string> valsLst = null; Dictionary <string, string> argsDic = null; StringVariableOperator.GetCommandArgs('/', out argsDic, out valsLst); if (argsDic.ContainsKey("/SQL")) { SqlConnection cn = new SqlConnection(GetConfigParameter.GetConnectionString("ConnectionString_SQL")); cn.Open(); SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM SHIPPERS", cn); Console.WriteLine("SQL:" + cmd.ExecuteScalar().ToString() + "件"); } if (argsDic.ContainsKey("/ODP")) { OracleConnection cn = new OracleConnection(GetConfigParameter.GetConnectionString("ConnectionString_ODP")); cn.Open(); OracleCommand cmd = new OracleCommand("SELECT COUNT(*) FROM SHIPPERS", cn); Console.WriteLine("ODP:" + cmd.ExecuteScalar().ToString() + "件"); } if (argsDic.ContainsKey("/MCN")) { MySqlConnection cn = new MySqlConnection(GetConfigParameter.GetConnectionString("ConnectionString_MCN")); cn.Open(); MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM Shippers", cn); Console.WriteLine("MCN:" + cmd.ExecuteScalar().ToString() + "件"); } if (argsDic.ContainsKey("/NPS")) { NpgsqlConnection cn = new NpgsqlConnection(GetConfigParameter.GetConnectionString("ConnectionString_NPS")); cn.Open(); NpgsqlCommand cmd = new NpgsqlCommand("SELECT COUNT(*) FROM SHIPPERS", cn); Console.WriteLine("NPS:" + cmd.ExecuteScalar().ToString() + "件"); } if (argsDic.ContainsKey("/REDIS")) { ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); IDatabase cache = redis.GetDatabase(); cache.StringSet("key:jp:hello", "こんにちは"); cache.StringSet("key:jp:goodbye", "さようなら"); Console.WriteLine(cache.StringGet("key:jp:hello")); Console.WriteLine(cache.StringGet("key:jp:goodbye")); } if (argsDic.ContainsKey("/MONGO")) { string connectionString = "mongodb://*****:*****@localhost:27017"; MongoClient client = new MongoClient(connectionString); IMongoDatabase db = client.GetDatabase("testdb"); IMongoCollection <Person> collection = db.GetCollection <Person>("testtbl"); // 全ドキュメントの削除 collection.DeleteMany(FilterDefinition <Person> .Empty); // ドキュメントの挿入 Person person = null; person = new Person { Name = "Dan", Age = 18, }; collection.InsertOne(person); person = new Person { Name = "Bob", Age = 22, }; collection.InsertOne(person); person = new Person { Name = "John", Age = 30, }; collection.InsertOne(person); // ドキュメントの参照 var persons = collection.Find(FilterDefinition <Person> .Empty).ToList(); foreach (Person _person in persons) { Console.WriteLine(JsonConvert.SerializeObject(_person)); } } }