Visual Studio User Group と IIS User Group が協力し、Windows Azure の特別ハンズオンセッションが開催されます。

今回は各自がノートPCを持参して、実際に Azure 上にアプリケーションを構築しながら体感するハンズオンセッションとのこと。参加費も無料とのことですのでこの機会に Windows Azure を自ら体験するいい機会ではないでしょうか 

【緊急開催】VSUGアカデミー 特別無償開催「クラウドにのっけてみよう - Windows Azure の実際」
http://iis.itadmin.jp/news-and-events/event-20090930.aspx

アジェンダ
講師: VSUGフォーラムリーダー 酒井 達明 氏 (株式会社日立システムアンドサービス 研究開発センタ)

現在CTP(Community Technnology Preview)の段階にあり、正式リリースが目前であるWindows Azureを、そろそろ実際に試してみようという企画です。

ある程度Visual Studioが利用できる開発者を対象として、実際の開発環境の構築から、Windows Azureのアカウント取得、簡単なプログラムの実際にAzure上への展開までを参加者ご自身のノートPCで実際に試してみようというセミナーです。

今回は、 Visual Studio User Group に IIS User Group が協力し、特別ハンズオンセッションを実施します。 

Currently rated 2.5 by 4 people

  • Currently 2.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

.NET Framework v3.5 では System.Management 名前空間を使って
WMI プロバイダ経由でいろいろなデータの取得や設定、また操作ができます。

その中で Win32_Process クラスを使って
プロセスの起動と終了を行うサンプルを作成してみました

using System;
using System.Collections.Generic;
using System.Management;
using System.Diagnostics;

namespace EnvironmentManagement
{
    class Program
    {
        static void Main(string[] args)
        {
            // calc.exe を実行する
            int processId = InvokeProcess("calc.exe");

            Console.ReadLine();

            // 指定したプロセスIDを終了する
            TerminateProcess(processId);

            Console.ReadLine();
        }

        // 引数に指定された実行ファイルを起動する
        private static int InvokeProcess(string executeFile)
        {
            // Win32 Process を扱うWMIプロバイダ クラスを取得する
            ManagementClass processClass = new ManagementClass("Win32_Process");
           
            // Create メソッドのパラメータを準備する
            ManagementBaseObject inParams = processClass.GetMethodParameters("Create");

            // Create メソッドのパラメータとして
            inParams["CommandLine"] = executeFile;

            // Create メソッドをパラメータ付きで呼び出す
            ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);

            // メソッドの実行結果を表示する
            Console.WriteLine("メソッド実行結果: " + outParams["returnValue"]);
            Console.WriteLine("プロセスID: " + outParams["processId"]);
           
            return Int32.Parse(outParams["processId"].ToString());
        }

        // 指定したプロセスを終了させる
        private static void TerminateProcess(int processId)
        {
            ManagementScope scope = new ManagementScope(@"\\.\ROOT\CIMV2");
            scope.Connect();

            // 指定したプロセスIDを持つプロセスをクエリする
            ObjectQuery query =
                new ObjectQuery(String.Format(@"SELECT * FROM Win32_Process WHERE ProcessID = {0}", processId));

            ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
            ManagementObjectCollection col = searcher.Get();

            // クエリの結果を取得する
            foreach (ManagementObject obj in col)
            {
                // プロセスを終了させる Terminate メソッドの引数を設定する
                ManagementBaseObject inParams = obj.GetMethodParameters("Terminate");
                inParams["Reason"] = 0;

                // クエリで取得したプロセス インスタンス オブジェクトの Terminate メソッドを呼び出し、プロセスを終了する
                obj.InvokeMethod("Terminate", inParams, null);
            }
        }
    }
}

Currently rated 2.5 by 4 people

  • Currently 2.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

本日は Admintech.jp にてミニ勉強会を開催しました。

今回はメイン講師に C# MVP の AILight さんをお迎えして
デベロッパの視点とシステム管理の融合を目指した Hans-on を交えながらの勉強会となりました

私は Hans-on のお手伝いをするくらいの予定だったのですが
なぜか最終的には Live Coding までやっていました...

Link to Admintech.jp - Seminor

Currently rated 3.0 by 5 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5