WebSurfer's Home

トップ > Blog 1   |   Login
Filter by APML

IETester

by WebSurfer 20. November 2010 16:36

IE5.5, IE6, IE7, IE8 での動作が検証できるという IETester というツールをインストールしてみました。

IETester

DEBUGBAR という会社(?)の IETester のページ からダウンロードできます。この記事を書いている時点での最新版は v0.4.6 です。上の画像のように、日本語にも対応しています。

ご存知のように、IE はアップグレードしてしまうと、その PC ではアップグレードしたバージョンしか使えません。IETester を使うと、同一 PC 上で IE5.5, IE6, IE7, IE8 での動作が検証できるのが便利です。

ただし、完全に下位バージョンの動作を再現できるというわけではなさそうです。例えば、自分のブログの SyntaxHighlighter の表示が、IE8 では正常に表示されるものの、IE6 では一部崩れるところがあるのですが、IETester では IE8 と同様に正常に表示されます。

でも、使えそうな感じです。

Tags:

DevelopmentTools

[デバッグの停止] で止まらない

by WebSurfer 31. August 2010 16:28

Visual Studio でデバッグ

Visual Studio で ASP.NET の Web アプリケーションをデバッグしている時の話です。

表題に「止まらない」と書きましたが、正確には、デバッガは止まるものの、コードはデバッガのコントロールが外れて実行されていき、メモリが開放されて終了するまで走っていってしまうということです。

従って、DB の更新などのコードがある場合、その手前でブレークポイントを設けて実行を止め、[デバッグの停止(E)]をしても DB の更新が行われてしまいます。デバッガのバグとかではなくて、そういう仕様だそうです。

ウソだと思う人は(笑)、以下に検証するためのコードをアップしておきますので、適当なところにブレークポイントを設けて試してみてください。ブレークポイントで [デバッグの停止] をしても、その後のコードは実行され、ファイル(file1.txt ~ file3.txt)はすべて作成されるはずです。

なお、このサンプルを動作させるには、アプリケーションルート直下に Files という既存のフォルダがあり、IIS のワーカープロセスがそのフォルダに対して必要なアクセス権を持っている必要がありますので注意してください。

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  protected void Page_Load(object sender, EventArgs e)
  {
    string path = Server.MapPath("~/Files/file1.txt");
    using (StreamWriter writer = File.CreateText(path))
    {
      writer.WriteLine("Hello World!");
    }

    path = Server.MapPath("~/Files/file2.txt");
    using (StreamWriter writer = File.CreateText(path))
    {
      writer.WriteLine("Welcome!");
    }
  }

  protected void Page_Unload(object sender, EventArgs e)
  {
    string path = Server.MapPath("~/Files/file3.txt");
    using (StreamWriter writer = File.CreateText(path))
    {
      writer.WriteLine("Goodbye!");
    }
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <h1>[デバッグの停止] で止まらない?</h1>
  </div>
  </form>
</body>
</html>

デバッグが止まっても実行が止まらないのは、Visual Studio のデフォルト設定(マネージド・コード用のデバッガを使用)における仕様だそうです。

設定によってデバッグの停止と共に実行を止めることは可能です。

Web サイトプロジェクトの場合、ソリューションエクスプローラのアプリケーションルートの右クリックで表示されるコンテキストメニューから[開始オプション(O)...]を開いて、[デバッガー]のオプションで[ネイティブコード(V)]にチェックを入れてみてください。

(注: Visual Studio Community 2015 の Web サイトプロジェクトの場合、[開始オプション(O)...]⇒[デバッガー]のオプションに[ネイティブコード(V)]がありません。別の設定方法があるかもしれませんが調べ切れてません)

Web アプリケーションプロジェクトの場合は、ソリューションエクスプローラの Properties を右クリックして開き[Web]タブを選択すると[デバッガー]の項目の中に[ネイティブ コード(C)]があります。

これにより、デバッガを起動するたびにネイティブコード用デバッガが読み込まれるそうです。結果、デバッグの停止と共に実行も止まります。

ただし、 [ネイティブコード(V)]にチェックを入れた設定でデバッグを停止すると強制的に Web サーバーを停止することになるそうです。それは好ましいことではないということで、デフォルトではデバッグを停止しても実行は止まらないようになっているようです。

なので、自分の場合、Web サーバーの強制停止による好ましからぬ副作用があるとイヤなので、そういうものだ(デバッグを停止しても実行は止まらない)と理解した上で、デフォルト設定のまま使っています。

Tags:

DevelopmentTools

Visual Studio 2010

by WebSurfer 28. August 2010 13:50
Visual Studio 2010

世の中は Visual Studio 2010 への移行が進んでいるようですので、話題に乗り遅れないように、自分も開発環境に Visual Studio 2010 Professional を導入しました。

Web アプリしか作らないし、自分の使っているレンタルサーバーが .NET 3.5 にしか対応していないし、2008 でも何ら問題なく十分使えているし、ちょっと(かなり?)もったいないような気もしますけど。(笑)

まず既存の .NET 2.0, 3.5 ベースの Web アプリを開いて実行してみると、二重定義だとか宣言されてないとかのエラーが出てビルドできません。2008 よりチェックが厳しくなっているようです。でも、それはほんのわずかな部分で、そこを直したら、2008 と同様に使えるようになりました。

使い勝手は 2008 とほとんど同じようです。ただ、ヘルプはブラウザ (IE8) で表示されるようになっており、自分的には非常に使いづ���いです。特に困るのが、2008 で使われている専用の Document Explorer にあるキーワードタブがないんです。これは慣れの問題でなんとかなることではなさそうです。

.NET 4.0 ベースで新しい Web サイトを作ると、どうなるか試してみました。デフォルトで、以下のようなフォルダ/ファイルが自動生成されます。

自動生成された Web サイト

うわさに聞いていた通り、jQuery が標準で実装されています。ASP.NET AJAX には見切りをつけて、jQuery に移行しようとしているという話を聞きましたが、本当でしょうか?

その他、Forms 認証に使う Login.aspx などのページ、マスターページ、CSS などが自動生成されます。CSS は空ではなく、Default.aspx を実行すると以下のようになります。至れり尽くせりというよりは、大きなお世話というべきか・・・(笑)

Default.aspx の実行画面

中でも一番気になっていた web.config ですが、以下のように .NET 3.5 の場合と比べて、ずいぶんと簡略化され、見通しがよくなっているようです。

<?xml version="1.0"?>

<!--
  ASP.NET アプリケーションを構成する方法の詳細については、
  http://go.microsoft.com/fwlink/?LinkId=169433 を参照してください
  -->

<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
      connectionString=
       "data source=.\SQLEXPRESS;
        Integrated Security=SSPI;
        AttachDBFilename=|DataDirectory|\aspnetdb.mdf;
        User Instance=true"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>
    <compilation debug="false" targetFramework="4.0" />

    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" 
        timeout="2880" />
    </authentication>

    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" 
          type="System.Web.Security.SqlMembershipProvider" 
          connectionStringName="ApplicationServices"
          enablePasswordRetrieval="false" 
          enablePasswordReset="true" 
          requiresQuestionAndAnswer="false" 
          requiresUniqueEmail="false"
          maxInvalidPasswordAttempts="5" 
          minRequiredPasswordLength="6" 
          minRequiredNonalphanumericCharacters="0" 
          passwordAttemptWindow="10"
          applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" 
          type="System.Web.Profile.SqlProfileProvider" 
          connectionStringName="ApplicationServices" 
          applicationName="/"/>
      </providers>
    </profile>

    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" 
          type="System.Web.Security.SqlRoleProvider" 
          connectionStringName="ApplicationServices" 
          applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" 
          type="System.Web.Security.WindowsTokenRoleProvider" 
          applicationName="/" />
      </providers>
    </roleManager>

  </system.web>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

--------------- 2010/9/10 追記 ---------------

ヘルプが使いづらいと書きましたが、Viewer がありました。以下のサイトからダウンロードできます。

H3Viewer - Help Viewer for VS 2010

ちょっと使ってみた限りでは、Visual Studio 2008 のヘルプの使い勝手に近いものです。ちょっと動きが遅いような感じがしますが、Visual Studio 2010 のブラウザで表示するヘルプに比べれば、はるかに使いやすそうで、お勧めです。

Tags:

DevelopmentTools

About this blog

2010年5月にこのブログを立ち上げました。その後 ブログ2 を追加し、ここは ASP.NET 関係のトピックス、ブログ2はそれ以外のトピックスに分けました。

Calendar

<<  March 2021  >>
MoTuWeThFrSaSu
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar