2012年04月09日

VisualStudioのプロジェクト(WEBアプリとWEBサイト)

Visual Studio 2005 以降、WEBページを作成する方法として、WEBアプリとWEBサイトの2つが提供されている。
デフォルト設定での主な相違点は、以下の通り。

◆WEBアプリケーションプロジェクト
・プロジェクト/ソリューションファイル:有り
  プロジェクトファイルに登録されているもののみがビルド対象。
・ビルドタイミング:作成時
  複数のコードは単一のDLLにビルドされる。
・デプロイ対象:
  単一DLLのデプロイとなる為、軽微な修正でも全アプリのデプロイ対象となり、一時的に全アプリのサービスが停止するとも考えられる。

◆WEBサイトプロジェクト
・プロジェクト/ソリューションファイル:無し
  フォルダー下の全コードファイルがビルド対象
・ビルドタイミング:実行時
  IIS上にデプロイされたコードが初回実行時にビルドされる。
・デプロイ:
  修正対象となったコードファイルのみで可。それ以外のアプリはサービス継続可能。

それぞれ一長一短は有り意見が分かれる所とは思われるが、メンテナンス性の観点からは後者かと。
実際、後者はVS2005から追加されたものなので、その部分の不便さを補完する意味があるのでは。

cf.
http://msdn.microsoft.com/ja-jp/library/dd547590.aspx
posted by rocknfields at 17:26| ASP.NET & IIS設定

2012年04月05日

Visual Sourcesafe オプションのデフォルト値変更

ソース管理にVisual Sourcesafeを使用してチーム開発を行う場合、Visual Sourcesafe オプションのデフォルト値を一括して変更したい場合が有る。
特に、ローカルファイル関係の[タイムスタンプ]や[読み取り属性]は、デフォルト値では、実際の運用にちょっと相応しくない。
SRCSAFE.INIの内容を追記/変更する事で、デフォルト値の変更が可能。

[タイムスタンプ] => [変更時刻]
SetTime = Mod

[読み取り属性] => [セットしない]
Use_Readonly = No

cf.
http://support.microsoft.com/kb/138147/ja
posted by rocknfields at 12:06| .Netコーディング (C#, VB etc)

2012年04月04日

VB vs C# コンバート

VB と C# では、言語仕様の関係から、必ずしも同等のコードを記述できないケースがある。
以下、現状、把握できているケース。

◆VBの引数付きプロパティは、C#に変換できない。
C#ではコレクションを返し、呼び出し側でハンドリングする事を想定していると思われる。

cf.
http://ufcpp.net/study/csharp/oo_property.html#indexed


◆VBのオプショナル引数を関数は、C#に変換できない。
VisualStudio2008(.Net3.5)までは、C#でオプショナル引数が使えない。(C# 3.0の仕様)
この為、オーバーロード関数などで対応する必要あり。
尚、VisualStudio2010(.Net4)からは、使用可能。(C# 4.0の仕様)

cf.
http://ufcpp.net/study/csharp/sp4_optional.html#optional

※その他、各言語間のキーワード比較は以下を参照。
http://msdn.microsoft.com/ja-jp/library/zwkz3536.aspx
http://dobon.net/vb/dotnet/vb2cs/vb2cstable.html
posted by rocknfields at 17:47| .Netコーディング (C#, VB etc)

BitMaskをenum定義する

EnumにFlags属性を付与すると、Bitデータとして定義する事ができ、Enumメンバーをビット演算やビットマスクに使用可能となる。

== C# =========================

[Flags]
public enum BitTest
{
LSB = 0x00,
2bit = 0x01,
3bit = 0x02,
4bit = 0x04,
5bit = 0x08,
:
}

== VB =========================

<Flags()> _
Public Enum BitTest
LSB = &H0
2bit = &H1
3bit = &H2
4bit = &H4,
5bit = &H8,
:
End Enum

cf.
http://www.atmarkit.co.jp/fdotnet/dotnettips/1052enumflags/enumflags.html
http://msdn.microsoft.com/ja-jp/library/cc138362.aspx
posted by rocknfields at 17:22| .Netコーディング (C#, VB etc)

2012年02月07日

「IIS メタベースにアクセスできませんでした」の対処方法

◆ASP.NET の version 確認
[AdministrativeTools]-[Internet Information Services]でWeb共有のプロパティを開き、[ASP.NET]タブの ASP.NET version を確認する。(多くの場合、2.0.50727 の筈。)

◆ASP.NET を再登録
コマンドプロンプトで以下を実行する。( 上記で確認したversionのASP.NETをIISに再登録する。)

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
posted by rocknfields at 17:21| ASP.NET & IIS設定

2012年01月27日

AndroidでSOAP w/ 自己証明書HTTPSエラー回避

インターネット通信の許可
AndroidManufest.xmlに以下のエントリを追加。
  <uses-permission android:name="android.permission.INTERNET /">

SOAP設定(ksoap2を使用)
・ダウンロード
  ksoap2_jar_2.6.0

・デプロイ
  eclipse/pluginフォルダにダウンロードしたjarをコピーし、プロジェクトのプロパティ「javaのビルドパス」にて「外部jar追加」を行う。

自己証明書HTTPS用の修正(Uncertificated errorの回避方法)
・ダウンロード
kosap2ソースをダウンロードし、以下のソースをプロジェクトに追加する。(各ソース冒頭のpackage名は適宜修正)

HttpsServiceConnectionSE.java
HttpsTransportSE.java
HttpTransportSE.java
ServiceConnection.java
ServiceConnectionSE.java
Transport.java


・全ての証明書を許容する為の修正
HttpsServiceConnectionSE.javaのコンストラクタに以下のコードを追加する。

    public HttpsServiceConnectionSE(String host, int port, String file,
                                     int timeout) throws IOException {

        try {
            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(null,
                    new TrustManager[]{
                        new X509TrustManager() {
                            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                                return null;
                            }
                            public void checkClientTrusted(
                                java.security.cert.X509Certificate[] certs, String authType) {
                            }
                            public void checkServerTrusted(
                                java.security.cert.X509Certificate[] certs, String authType) {
                            }
                        }
                    },
                    new java.security.SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
        } catch (Exception e) {
            e.getMessage();
        }

        connection = (HttpsURLConnection) new URL(HttpsTransportSE.PROTOCOL, host, port, file).openConnection();

        connection.setHostnameVerifier(new AllowAllHostnameVerifier());

        updateConnectionParameters(timeout);
    }
posted by rocknfields at 14:48| スマートフォン

2011年12月30日

CrashPlanでBackup (ARM CPU model w/ JRE)

以下、ARM系CPUモデルのNASでCrashPlanを使用する為の手順

◆ダウンロード
以下の3ファイルをダウンロードする。

・CrashPlan QPKG 3.0.3_18
・CrashPlan QPKG 3.2.21

・JRE QPKG
※解凍し、qpkgを取り出しておく。

・JRE (v1.6.0.10 linux arm5)
※Oracleサイトより最新のJREを取得してもインストールでエラーとなる(QPKGとの整合が取れていない模様)。

◆デプロイ
ダウンロード/解凍した3ファイルをNAS上の任意の共有フォルダにコピーする。

・ejre-1_6_0_10-ea-b39-linux-armv5-sflt-eabi-headless-eval-31_jul_2009.tar.gz
・JRE_6_arm-x19.qpkg
・CrashPlan_3.0.3_18_arm-x19.qpkg
・CrashPlan_3.2_21_arm-x19.qpkg

Note:
コピー先はデフォルト共有のPublicが推奨。
他のフォルダでは、インストールエラーとなる場合有り。
また、他のマシンの共有フォルダを使用した場合は、インストールエラーとなる。

◆インストール&起動(有効化)
以下の各qpkgファイルを順次、[INSTALL]&[ENABLE]する。

1.JRE QPKG
2.CrashPlan QPKG

・インストール方法:
管理画面の[Application Servers]-[QPKG Plugins]-[INSTALLATION]タブにおいてファイルを選択し、[INSTALL]ボタンを実行。
・イネーブル方法:
[QPKG INSTALLED]タブにおいて、当該の QPKG icon をクリックし、[ENABLE]を実行。

Note:
JRE QPKGのインストール時、同一フォルダにJREが存在すれば、同時に解凍/インストールを行ってくれる。
(言い換えると、有効なJREが存在しないと、インストールエラーとなる。)

◆バックアップ設定(クライアント画面の起動方法)
管理画面では設定等を行う事はできないので、他のPCより接続しNASのバックアップ設定を行う。
1. いずれかのPCにCrashPlanをインストールする。
2. テキストエディタで %ProgramFiles%\CrashPlan\conf\ui.properties を開き、serviceHostのIPアドレスを対象のNASに変更し、コメントアウトを外してセーブする。(名前解決できる環境ならばホスト名でも可。エントリはコメントアウトされているので行頭の#は削除が必要。)
3. PCのサービス(CrashPlan Backup Service)は不要なので停止する。(起動プロパティも[手動]か[無効]にしておく)

以上でスタートメニューよりCrashPlanを起動すれば、NAS上のClashPlanに接続できる。
(CrashPlanサイトではポート変更して、SSHをトンネルする方法が説明されているが、NASの設定を行う為だけであれば上記のみで充分。)

cf.
http://www.turbonas.com/phpBB3/viewtopic.php?f=18&t=870
http://forum.qnap.com/viewtopic.php?f=121&t=39078

※2012/03/20追記
 2012/03/17頃より CrashPlan_3.0.3_18_arm-x19.qpkg にて接続不能となった。
 CrashPlan_3.2_21_arm-x19.qpkg に更新し、復旧。
posted by rocknfields at 12:12| QNAP NAS

2011年12月17日

ファームウェアリカバリ方法

カスタマイズ失敗で起動不能になったケースなどでも、QNAP純正のファームウェアにリカバリ可能。

http://wiki.qnap.com/wiki/Firmware_Recovery

http://coaster-serv.com/2011/12/10/qnap-ts-219p-ii-fw%E6%9B%B4%E6%96%B0%E5%A4%B1%E6%95%97/
posted by rocknfields at 19:56| QNAP NAS

2011年12月08日

既存マシンを仮想マシンへ移行

下記ツールにて、既存マシンのDiskを仮想ドライブイメージ(VHD)へ変換可能。
このVHDをVirtualPCにて起動すれば、旧マシンや環境をホストマシンに集約できる。

・変換ツール
http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx

・参考
http://www.atmarkit.co.jp/fwin2k/win2ktips/1228disk2vhd/disk2vhd.html
http://hddnavi.jp/focus/windows7_2_2.html
http://windows.microsoft.com/ja-JP/windows7/install-and-use-windows-xp-mode-in-windows-7
posted by rocknfields at 11:09| Windows設定/環境構築

2011年11月10日

Windows7 Pro の言語変更

Windows7において標準で言語切り替え可能なのは、Ultimate と Enterprise のみ。
ProやHomeなどでも言語パックが有れば、基本的には、切り替え可能。
以下、日本語版Windows7Proを英語化する場合の例。

1.英語の言語パックを用意
言語パックのファイルを任意のフォルダに配置する。(以下、%langpack_path%と表記。)

2.言語パックの追加
コマンドプロンプトを管理者モードで開き、以下のコマンドを実行する。

dism /online /Add-Package /PackagePath:%langpack_path%\lp.cab

3.レジストリの変更
レジストリエディタで以下を変更する。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language]
Default=0409
InstallLanguage=0409


4.地域と言語の設定変更
コントロールパネルの「地域と言語」(Region and Language)にて、場所や入力方法などを適宜変更する。
(日本にいて、日本語入力をメインに使用するなら変更は不要の筈。)

5.起動時言語の変更
コマンドプロンプトを管理者モードで開き、以下のコマンドを実行する。

bcdedit /set {default} locale en-us

※備考
最大の問題は、言語パックの入手方法。
MS-TechNetに加入していれば、D/L可能。
posted by rocknfields at 16:20| Windows設定/環境構築