Blog Home  Home Feed your aggregator (RSS 2.0)  
light-hearted.net - Friday, July 30, 2004
人は計画を立て、神はそれを笑う
 
 Friday, July 30, 2004

DDL(Data Definition Language)
リレーショナルデータベースのテーブルを制御する言語。テーブル全体の作成・変更・削除などを行なう際に使用する。

DML(Data Manipulation Language)
リレーショナルデータベースのレコードを制御する言語。テーブル内のレコードの追加・検索・更新・削除などを行なう際に使用する。

Friday, July 30, 2004 2:05:31 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   SQL Server  | 

「最近の投稿変なのが多いね」って数人の友人に言われたので...

最近、.NETとかASP.NETに関してメモ書き見たいな書き込みがありますが、
実は現在MCADに向けて(いろんな場所で)勉強中なので、
その際にメモ代わりにBlogを利用してますです。

なので、気にしないでください。:-)

Friday, July 30, 2004 1:14:05 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET | Development  | 

最近ノートPCが異常に熱いんです。
以前から熱いなぁとは思ってたんですが、
最近長時間起動しっぱなしにすることが多いのが
それに拍車をかけてるみたいです。

ということで、「ELECOM SX-A4F 冷え冷えトルネード」を買うことにしました。
http://www.amazon.co.jp/exec/obidos/ASIN/B000095O95/qid%3D1091117297/249-6349363-8753144

冷え冷えですよ。冷え冷え。う~ん、楽しみ。:-D

Friday, July 30, 2004 1:09:18 AM (東京 (標準時), UTC+09:00)  #    Comments [1]    | 
 Thursday, July 29, 2004

using System;
using System.Diagnostics;

// csc /d:TRACE app.cs
public class app
{
  static void Main() {
    Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
    Trace.WriteLine("Output Debug Message.");
  }
}

Thursday, July 29, 2004 2:32:59 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

App.cs
using System;
using System.Diagnostics;

public class App
{
  private static BooleanSwitch bs =
    new BooleanSwitch("BSwitch", "Test BooleanSwitch");
 
  private static TraceSwitch ts =
    new TraceSwitch("TSwitch", "Test TraceSwitch");
 
  public static void Main() {
    if (bs.Enabled)
      Console.WriteLine("BooleanSwitch is Enabled.");
   
    if (ts.TraceWarning)
      Console.WriteLine("TraceSwitch is more than TraceWarning.");
  }
}

App.exe.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
 <!--
   TraceSwitch
   Off : 0 : トレース メッセージおよびデバッグ メッセージを出力しません
   Error : 1 : エラー処理メッセージを出力
   Warning : 2 : 警告およびエラー処理メッセージを出力します
   Info : 3 : 情報メッセージ、警告、およびエラー処理メッセージを出力
   Verbose : 4 : すべてのデバッグ メッセージおよびトレース メッセージを出力します
   -->
 <switches>
   <add name="BSwitch" value="0" />
   <add name="TSwitch" value="2" />
 </switches>
  </system.diagnostics>
</configuration>

Thursday, July 29, 2004 2:22:38 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

- 出力ファイル -
/out:<ファイル>         出力ファイル名です (既定 : メイン クラスかファースト ファイルを伴うファイルのベース名)。
/target:exe             コンソール アプリケーションをビルドします (既定)。 (短いフォーム: /t:exe)
/target:winexe          Windows 実行可能ファイルをビルドします。 (短いフォーム: /t:winexe)
/target:library         ライブラリをビルドします。 (短いフォーム: /t:library)
/target:module          別のアセンブリに追加できるモジュールをビルドします。 (短いフォーム: /t:module)
/define:<シンボル リスト> 条件付きのコンパイル シンボルを定義する (短いフォーム: /d)
/doc:<ファイル>         生成する XML ドキュメント ファイル

- 入力ファイル -
/recurse:<ワイルドカード> ワイルドカードの指定に従い、現在のディレクトリとサブディレクトリ内のすべてのファイルをインクルードします。
/reference:<ファイル リスト>    指定されたアセンブリ ファイルからメタベースを参照する (短いフォーム: /r)
/addmodule:<ファイル リスト>    指定されたモジュールをこのアセンブリにリンクする

- リソース -
/win32res:<ファイル>    Win32 リソース ファイルを指定します (.res)。
/win32icon:<ファイル>   出力にこのアイコンを使用します。
/resource:<リソース情報>指定したリソースを埋め込みます。 (短いフォーム: /res)
/linkresource:<リソース情報>    このアセンブリに指定されたリソースをリンクします。 (短いフォーム: /linkres)

- コード生成 -
/debug[+|-]             デバッグ情報を生成する
/debug:{full|pdbonly}   デバッグの種類を指定します (full が既定値で、実行中のプログラムにデバッガを付加することができます。)
/optimize[+|-]          最適化を有効にする (短いフォーム: /o)
/incremental[+|-]       インクリメンタル コンパイルを有効にする (短いフォーム: /incr)

- エラーと警告 -
/warnaserror[+|-]       警告をエラーとして扱う
/warn:<n>               警告レベル (0-4) を設定する (短いフォーム: /w)
/nowarn:<警告リスト>    指定の警告メッセージを無効にする

- 言語 -
/checked[+|-]           オーバーフロー チェックの生成
/unsafe[+|-]            unsafe コードの許可

- その他 -
@<ファイル>             応答ファイルを読み込み、オプションを追加します。
/help                   この使い方に関するメッセージを表示します。 (短いフォーム: /?)
/nologo                 コンパイル時の著作権メッセージを表示しません。
/noconfig               CSC.RSP ファイルを自動的に含めません。

- 詳細 -
/baseaddress:<アドレス> ビルドするライブラリのベース アドレスです。
/bugreport:<ファイル>   'バグ報告' ファイルを作成します。
/codepage:<n>           ソース ファイルを開くときに使用するコードページを指定します。
/utf8output             UTF-8 エンコードでコンパイラのメッセージを出力する
/main:<型>              エントリ ポイントを含む型を指定します (ほかのエントリ ポイントはすべて無視します)。 (短いフォーム: /m)
/fullpaths              コンパイラは絶対パスを生成します。
/filealign:<n>          出力ファイル セクションで使用する配置を指定します。
/nostdlib[+|-]          標準ライブラリ (mscorlib.dll) を参照しない
/lib:<ファイル リスト>  参照を検索する追加のディレクトリを指定します。

Thursday, July 29, 2004 1:44:25 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

MSDNより

<c>
説明内のテキストをコードとして指定できます。コードとして複数行を指定する場合は、<code> タグを使用します。

<code>
複数行をコードとして指定する場合に使用します。説明内のテキストをコードとして指定する場合は、<c> タグを使用します。

<example>
メソッドやその他のライブラリ メンバの使用例を指定します。通常は、<example> タグと共に <code> タグを使用します。

<exception>
スローできる例外を指定できます。このタグは、メソッド定義に適用されます。

<include>
ソース コード内の型およびメンバの説明として、別のファイル内のコメントを参照できます。これはソース コードのファイルにドキュメント コメントを直接記述しない方法です。<include> タグは、XML の XPath 構文を使用します。

<list>
表または定義リストの見出し行の定義に使用します。表を定義する場合は、見出しには用語のエントリだけを指定します。
リストの各項目は、<item> ブロックで指定します。定義リストを作成するときは、term と description の両方を指定します。ただし、表、箇条書きリスト、または番号付きリストに指定する必要があるのは、description のエントリだけです。
リストや表には、必要な数だけ <item> ブロックを指定できます。

<para>
<summary>、<remarks>、<returns> などのタグの内部で使用します。<para> タグで、テキストを段落に分けることができます。

<param>
メソッド宣言のコメント内で使用してメソッドのパラメータの 1 つを説明します。
<param> タグのテキストは、IntelliSense、オブジェクト ブラウザ、およびコード コメント Web レポートに表示されます。

<paramref>
単語をパラメータとして示すことができます。XML ファイルを処理するときに、このパラメータに対して独立した書式を設定できます。

<permission>
メンバへのアクセスをドキュメントにできます。System.Security.PermissionSet でメンバへのアクセスを指定できます。

<remarks>
型の情報を追加し、<summary> で指定された情報を補足します。この情報は、オブジェクト ブラウザとコード コメント Web レポートに表示されます。

<returns>
メソッド宣言のコメント内で使用して、戻り値を説明します。

<see>
テキスト内でリンクを指定できます。「参照」のセクションに示すテキストには、<seealso> タグを使用します。

<seealso>
「参照」のセクションに示すテキストを指定できます。テキスト内でリンクを指定するには、<see> タグを使用します。

<summary>
型または型のメンバの説明に使用します。型の説明に補足情報を追加するには、<remarks> タグを使用します。
<summary> タグのテキストは、IntelliSense の型に関する唯一の情報源です。このタグのテキストは、オブジェクト ブラウザとコード コメント Web レポートにも表示されます。

<value>
プロパティの説明を指定できます。Visual Studio .NET 開発環境のコード ウィザードで追加したプロパティには、<summary> タグが追加されます。そのプロパティが表す値を記述するには、<value> タグを手動で追加する必要があります。

Thursday, July 29, 2004 1:37:36 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 
 Monday, July 26, 2004

以前ノートPCが欲しいって書きましたが、結局メモリの増設で満足することにしました!

ノートPCの仕様では最大値が384MBなのですが、
マザーボードのチップを調べるとどうも4GBまでは対応している様子。
#128MB標準搭載で、拡張スロットが1つあるという構成

そこでパソコンパーツを扱っているお店に行って、
「PC2100 200pin DDR SDRAM SO DIMMっていう規格のノート用のメモリで一番大きいやつください」って
言ったら出てきたのが1GB。店員さんは私が所有するノートPCを聞き
「多分大丈夫ですけど、保証外になりますよ」とあまり売りたくない様子。
「大丈夫。大丈夫。」と内心ドキドキしながらも約6万円(内1割ポイント還元)で購入。

早速家に帰ってドキドキしながら装着。
電源ON! Windowsを起動し、マイコンピュータのプロパティを確認。
1.10GB RAM!やった~!

これで当分ノートPCの買い替えはないなぁ

CPU : Pentium 4-M 1.6GHz
Memory : 1128MB(VIDEO : 16MB)
HDD : 60GB
CDR/CDRW/DVDROM

Monday, July 26, 2004 8:35:41 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 
GDNJの投稿より
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=13469
デュアルコアが普通な世の中になると
こういう事象に結構遭遇するようになるんでしょうか?

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
class App {
  [DllImport("Kernel32", SetLastError=true)]
  static extern bool SetProcessAffinityMask(IntPtr hProcess, ulong dwProcessAffinityMask);
  [DllImport("Kernel32", SetLastError=true)]
  static extern bool GetProcessAffinityMask(IntPtr hProcess, out ulong dwProcessAffinityMask, out ulong dwSystemAffinityMask);
  static void Main() {
    ulong proc, sys;
    bool b = GetProcessAffinityMask(Process.GetCurrentProcess().Handle, out proc, out sys);
    Console.WriteLine(proc);
    Console.ReadLine();
    b = SetProcessAffinityMask(Process.GetCurrentProcess().Handle, 0x2);
    if (!b)
       Console.WriteLine(Marshal.GetLastWin32Error());
    b = GetProcessAffinityMask(Process.GetCurrentProcess().Handle, out proc, out sys);
    Console.WriteLine(proc);
    Console.ReadLine();
  }
}
Monday, July 26, 2004 11:03:54 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 
 Friday, July 23, 2004

仕事柄PowerPointやWordのファイルをPDFに変換することが多いのですが、
全く面識のない方の資料を読んでいると、「これって私の...」と思うようなことがあったりします。
ということで、印刷制限や修正制限を設定したくなることが多々あります。

そんな機能を搭載した「いきなりPDF Professional」が8月2日に発売されます。
http://www.sourcenext.info/sp/press/040721_pdfpro.html

#ソースネクストの回し者ではありませんよ(笑)

Friday, July 23, 2004 9:49:22 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Software  | 

.NET Frameworkのすべての型は、なぜ参照型ではないのか?
(=プリミティブデータ型(整数など)を考慮して値型があるのか?)
⇒これにより余分なオーバーヘッドの発生は抑制される

ボクシング : 値型のコピーをマネージドヒープ上に作成すること
 int val = 1;     // 値型のインスタンスを宣言する 
 object obj = val; // 値型を参照型に変換する(ボクシング)

アンボクシング : 参照型のコピーをスタック上に作成すること
 int val = 1;
 object obj = val;
 int val2 = obj;     // コンパイルされない
 int val3 = (int) obj; // 正常にコンパイルされる(明示的なキャスト)

単純なデータ型がガベージコレクタの管理下のヒープではなく、
スタック上に格納され処理効率が改善される為、
ボクシングやアンボクシングを行うと、パフォーマンスが低下することは避けられないが、
大多数のアプリケーションでは問題にならない。

Friday, July 23, 2004 2:07:44 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

デリゲート
極端な言い方をすると、C++のコールバックのメカニズム
コールバックメソッドが型の安全性を壊さないことを保証する*
複数のメソッドの同時呼び出しをサポート*

Sample Code
using System;
using System.Windows.Forms;
using System.IO;

class Set
{
  private object [] items;
  public Set(int numItems) {
    items = new object[numItems];
    for (int i=0; i<numItems; i++)
      items[i] = i;
  }
  public delegate void Feedback(object value, int item, int numItems);
  public void ProcessItems(Feedback feedback) {
    for (int item=0; item<items.Length; item++) {
      if (feedback != null) {
        feedback(items[item], item+1, items.Length);
      }
    }
  }
}

class App
{
  static void Main() {
    StaticCallbacks();
    InstanceCallbacks();
  }
  static void StaticCallbacks() {
    Set setOfItems = new Set(5);

    setOfItems.ProcessItems(null);
    Console.WriteLine();

    setOfItems.ProcessItems(new Set.Feedback(App.FeedbackToConsole));
    Console.WriteLine();

    setOfItems.ProcessItems(new Set.Feedback(App.FeedbackToMsgBox));
    Console.WriteLine();

    Set.Feedback fb = null;
    fb += new Set.Feedback(App.FeedbackToConsole);
    fb += new Set.Feedback(App.FeedbackToMsgBox);
    setOfItems.ProcessItems(fb);
    Console.WriteLine();
  }
  static void FeedbackToConsole(object value, int item, int numItems) {
    Console.WriteLine("{0} / {1} : {2}", item, numItems, value);
  }
  static void FeedbackToMsgBox(object value, int item, int numItems) {
    MessageBox.Show(string.Format("{0} / {1} : {2}", item, numItems, value));
  }
  static void InstanceCallbacks() {
    Set setOfItems = new Set(5);

    App appobj = new App();
    setOfItems.ProcessItems(new Set.Feedback(appobj.FeedbackToFile));
    Console.WriteLine();
  }
  void FeedbackToFile(object value, int item, int numItems) {
    StreamWriter sw = new StreamWriter("Status", true);
    sw.WriteLine("{0} / {1} : {2}", item, numItems, value);
    sw.Close();
  }
}

Friday, July 23, 2004 1:31:01 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

「プログラミングMicrosoft .NET ASP.NETによるサーバーサイド開発」P359より抜粋
P363のXmlNavBarコントロールとP370の動的ローディングってのは興味深いなぁ

LoginCtrol1.ascx
<%@ Control Inherits="LoginBase" %>
<table>
 <tr>
  <td>User Name:</td>
  <td><asp:TextBox id="MyUserName" runat="server" /></td>
 </tr>
 <tr>
  <td>Password:</td>
  <td><asp:TextBox id="MyPassword" textmode="password" runat="server" /></td>
 </tr>
 <tr>
  <td colspan="2"><asp:LinkButton text="Log In" OnClick="OnLoginButtonClicked" runat="server" /></td>
 </tr>
</table>

LoginBase.cs
using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
public class LoginEventArgs
{
  private bool LoginValid;
  public LoginEventArgs(bool isValid) {
    LoginValid = isValid;
  }
  public bool IsValid {
    get { return LoginValid; }
  }
}
public class LoginBase : UserControl
{
  protected TextBox MyUserName;
  protected TextBox MyPassword;
  public string UserName {
    get { return  MyUserName.Text; }
    set { MyUserName.Text = value; }
  }
  public string Password {
    get { return MyPassword.Text;  }
    set { MyPassword.Text = value; }
  }
  public delegate void LoginEventHandler(object sender, LoginEventArgs e);
  public event LoginEventHandler Login;
  public void OnLoginButtonClicked(object sender, EventArgs e) {
    if (Login != null) {
      bool IsValid = (UserName.ToLower() == "yama3" && Password == "hoge");
      Login(this, new LoginEventArgs(IsValid));
    }
  }
}

LoginPage1.aspx
<%@ Register TagPrefix="user" TagName="LoginControl" src="LoginControl1.ascx" %>
<html>
 <body>
  <h1>User Control Demo</h1>
  <form runat="server">
   <user:LoginControl id="MyLogin" OnLogin="OnLoginUser" runat="server" />
  </form>
  <h3><asp:Label id="Output" runat="server" /></h3>
 </body>
</html>
<script language="C#" runat="server">
void OnLoginUser(object sender, LoginEventArgs e) {
 if (e.IsValid) {
  Output.Text = "Hello, " + MyLogin.UserName;
 }
 else {
  Output.Text = "Invalid login";
  MyLogin.UserName = "";
  MyLogin.Password = "";
 }
}
</script>

Friday, July 23, 2004 12:58:40 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   ASP.NET  | 
 Thursday, July 22, 2004

.NET Frameworkのリソースへのアクセス手順
1.ILのnewobj命令を呼び出して、リソースを表現する型のためにメモリ領域を確保する。この命令はMicrosoft C#、Visual Basicやそのほかの言語でnew演算子を利用することで出力される。
2.メモリを初期化してリソースの初期状態を設定し、リソースを利用可能な状態にする。型のコンストラクタが初期状態の設定を行う。
3.型のメンバにアクセスしてリソースを利用する(必要ならばこの手順を繰り返す)。
4.リソースの状態を消去してクリーンアップする(Finalize、Dispose、Close)。
5.メモリを開放する(ガベージコレクタだけがこの手順を行う)。

Thursday, July 22, 2004 1:55:37 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

Authentication(認証)
要求の受信者が呼び出しもとの特定を可能とするメカニズム
Windows認証/Passport認証/フォーム認証

Authorization(許可)
ユーザが誰であるかわかれば、許可のメカニズムを通して、そのユーザがアクセスできるリソースを決める。
ACL許可/URL許可

Thursday, July 22, 2004 1:29:54 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   ASP.NET  | 

DataBinder.Eval について

DataBinder.Evalは、データバインディング構文を飛躍的に簡素化し、
バインディング式とデータソースとの間の関係をより抽象化してくれる

DataBinderは、System.Web.UIに定義されいているクラス
Evalは静的メソッドであり、その内部でリフレクションを使ってデータバインディング式を評価する
第2のパラメータは、現在のレコードのフィールドを識別する
第3のパラメータはオプションだが、文字列の書式を指定し、目的のフィールドをどのように文字列を変換するのかを規定する

具体的にはこんな感じになる
DataBinder.Eval(Container.DataItem, "price", “{0:c}“)

Thursday, July 22, 2004 1:14:23 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   ASP.NET  | 
 Wednesday, July 21, 2004

やってしまいました。

今日空き時間を見つけてActive Directoryを使ったセキュリティ設定の検証を行っていたのですが、
何を思ったかOUのルートのグループポリシーでスタートアップスクリプトに
Cドライブのファイルを全削除するやつを設定してしまいました。
もちろん再起動後に全端末のCドライブがクリアされ御臨終となってしまいました。
#クライアントだけでなくDCまでも...

いやぁVirtual PCでよかった。

Wednesday, July 21, 2004 8:34:25 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   Active Directory  | 

asp:Label コントロールはHTML要素では span に変換される
asp:Panel コントロールはHTML要素では div に変換される

Wednesday, July 21, 2004 2:27:58 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   ASP.NET  | 
 Tuesday, July 20, 2004

無料のURL圧縮サービスがオープンしたそうです。
Microsoftのサイトに使われている「go」みたいなやつですね。
確かに一般的にサービスしてるのはなかったかもしれないですね。
#実は私の会社にはこのようなシステムが存在します。
#サーバ変更に伴うURL変更の際などには、結構便利なんですよね。

しかし一般市場では、どんな風にデータを使うんでしょうか?(金儲けも含めて)
#サイトの参照率なんかも算出できますね。結構有用そうです。

元ネタ
http://www.itmedia.co.jp/news/articles/0407/20/news045.html

Tuesday, July 20, 2004 11:12:42 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 

MS04-022のセキュリティホールを突くコードが公開されているそうです。

元ネタ
https://www.netsecurity.ne.jp/article/1/13629.html

Tuesday, July 20, 2004 11:03:27 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   Security  | 

SOA戦略の中核となるMSの最新BPM支援ツール
http://www.atmarkit.co.jp/fwin2k/techreview/bts2004_001/bts2004_001_01.html

現場で使えるASP.NETのSessionオブジェクト利用法
http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp06/entwebapp06_01.html
あっ、これ読んだ本の記事だ...

データベース業界の戦国地図をウォッチ!
http://www.atmarkit.co.jp/fdb/rensai/dbwatch2004/dbwatch200407_1.html

多様な視点でIT投資の優先順位を企業トップに提示
http://www.atmarkit.co.jp/fbiz/cinvest/serial/roi/04/04vantage.html
資格から考える「システム監査人材」の育成と活用
http://www.atmarkit.co.jp/fbiz/cstaff/complete/audit/01.html

Tuesday, July 20, 2004 3:05:40 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   Development  | 
 Monday, July 19, 2004
Monday, July 19, 2004 8:15:33 AM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 

先日書いた「Live Communication Server 2003 やりたいな~」の途中経過です。
一応私以外にもやりたい人は(少なくとも2人)見つけました。

しか~し!我社のActive Directoryは、思ってた以上に細かい設定がされてました...
LCS2003のインストール中にインストール環境のActive Directoryのスキーマを調べるみたいなんですが、
その時に使っているActive Directoryの(私の)アカウントにはその権限がないようで...
う~ん、「LCS2003やりたいから、必要な権限をくれ」って申請してもNGだよなぁ
どうしたものか...

Monday, July 19, 2004 1:34:14 AM (東京 (標準時), UTC+09:00)  #    Comments [2]   LCS  | 

今日晩飯を池袋に食べに行きました。待ち合わせまで少し時間があったので、
池袋といえば!っていう電気屋さんのパソコン専門のお店で時間をつぶしてたら...

おぉ!モバイルラックにUSB2.0接続のものが!とりあえず買ってみました。
#Owltech Mobile Rack PRO(AF80UP)

先程装着完了。あっ、これって結構便利かも。
なんといっても稼動中に簡単に抜き差しできるってのが良いですね。
さすがにシステムドライブはIDEのモバイルラックですが、データドライブはこれで十分ですね。
2本挿してミラー構成にしたら十分サーバ(業務用は当然駄目よ)でも使えそうな予感...

Monday, July 19, 2004 1:20:03 AM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 
 Sunday, July 18, 2004

GDNJのタグと顔アイコンのガイドへのリンク めも
http://www.gotdotnet.com/japan/team/guide/guide05.aspx

Sunday, July 18, 2004 11:20:03 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 

Monoをちょっとくらい使ってみるかということで...
さらに、Mono試すんだったら、やっぱLinuxだなと...
#ず~っと(半年くらい)使ってなかったRedHat9をインストールしてたPCのスイッチオン!

ソースからコンパイルするかと思ってたんですが、
なんかめんどくさそうな匂いがしたので、とりあえずはRPMでイイやとhttp://mono.ximian.com/archive/1.0/redhat-9-i386/から
mono-all.zipをダウンロードして解凍してみると、
何じゃこの数のRPMは!う~ん、ようわからん!
つたない英語力で海外のサイトをノラリクラリ...
とりあえず、以下のRPMをインストール!(すれば良さそう...)

libicu26-2.6.2-1.ximian.6.0.i386.rpm
libicu-devel-2.6.2-1.ximian.6.0.i386.rpm
icu-2.6.2-1.ximian.6.0.i386.rpm
libpixman-0.1.0-1.ximian.6.2.i386.rpm
libpixman-devel-0.1.0-1.ximian.6.2.i386.rpm
cairo-0.1.23-2.ximian.6.1.i386.rpm
mono-posix-1.0-1.ximian.6.1.i386.rpm
mono-core-1.0-1.ximian.6.1.i386.rpm
mono-runtime-devel-1.0-1.ximian.6.1.i386.rpm
#実は他のRPMもインストールしてみたんだけど、
#どれをインストールしたんだかわからなくなってしまった...

うーん。cairo-0.1.23-2.ximian.6.1.i386.rpmをインストールしようとすると
libpixmanの0.1.1以上が必要ってエラーメッセージがでるなー
けど、zipにはlibpixman-0.1.0-1.ximian.6.2.i386.rpmが同梱されてる...
Why?

けど、とりあえず以下はコンパイルできた...
using System;
public class HelloMono {
  public static void Main() {
    Console.WriteLine("Hello, Mono!");
  }
}
んで
$ mcs HelloMono.cs
$ mono HelloMono.exe
Hello, Mono!

一応Windowsでも...
D:\>HelloMono.exe
Hello, Mono!

おぉー!パチパチ

しかし、インストールはもう少し簡単にしたほうがいいなぁ
#個人的には燃えるけど(笑)

Sunday, July 18, 2004 10:04:48 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 
Copyright © 2010 yama3. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: