0

私はまだASP.NET(Windowsよりもはるかに複雑なプラットフォームであるため、変数は以前所有していたものすべてを「失う」)とクライアントVSの初心者であるため、WinFormsで要求された機能を実現することができました。サーバー、私は自分自身にどこから始めればいいのか尋ねます。


システムリフレクションを使用するWinFormsでは、(現在のフォームに配置されたListViewを介して) 再ポッティングすることができました。ListViewに は
すべての関数情報(タイミングパラメーターなど)
が入力されますが、Webサイトについて考えることはできません。ListViewアプリケーションを公開する前に失う可能性があるとしても、それをホストします。その代わり、

次のようなことを考えましたが、経験豊富な開発者に確認したいのですが、どのように対応していますbusinessか?

VisualStudio独自のデバッグ機能に実際に満足できます。

これが私のアプローチです

たとえば、送信ボタンをクリックします

protected void imgBut_Submt_Click(object sender, ImageClickEventArgs e)
{
    //debugging and logging via methods that's in a namespace/ classses showed below         
    SeSn.Modify(Act.Edit,SeSn.CurrentStage, Mod.submitedFreshQuery); <-----=======
    App.Add(AppFlags.SubmitButtonWasPressed);<------===========

    Display.Show(DV_UsersInTblTime); 
    tblTimeDataLists.getReportFromSP(Convert.ToInt32(DDL_ChosenBranch.SelectedItem.Value), SelectedReportMonth, SelectedReportYear);
    Visibility.Hide(imgBut_Submt);
    var m = Request.Form["DDLmonth"];
    var y = Request.Form["DDLyear"];

    string branchName = GetTableData.AsString(HTDB_Cols.TblBranches.BranchName, HTDB_Tables.TblBranches, HTDB_Cols.TblBranches.BranchID, DDL_ChosenBranch.SelectedItem.Value);
    if (tblTimeDataLists.TheresNoRecordForThatSnif(Convert.ToInt32(DDL_ChosenBranch.SelectedItem.Value), Convert.ToInt32(m), Convert.ToInt32(y)))
        JsTemplates.Alert(string.Format("No data for {0} at period   {1}/{2}", branchName, m, y));
    DisplayRepResults();

}

システムセッションデータを「収集」するために私が使用している方法を少し見てみることができます

namespace DebugTests
{
    namespace Sesseion
    {

    public static class SeSn
    {
        public const string CurrentStage = "CurrStage";
        public static bool isNotEmpty()
        {
            return HttpContext.Current.Session.Keys.Count > 0;
        }
        public static bool Raised(string FlagName)
        {
            return GetValueAS.Bool(FlagName);
        }
        public static void Modify(Act action, string NewQs_paramName, string NewP_Value = "", string CurSes_ParamName = null, bool redirectWithNewQuerySettings = false)
        {
            switch (action)
            {
                case Act.Remove:
                    if (isNotEmpty())
                        HttpContext.Current.Session.Remove(CurSes_ParamName);
                    break;
                case Act.Replace:
                    HttpContext.Current.Session.Remove(CurSes_ParamName);
                    HttpContext.Current.Session.Add(NewQs_paramName, NewP_Value);
                    break;
                case Act.Edit:
                    HttpContext.Current.Session.Remove(CurSes_ParamName);
                    HttpContext.Current.Session.Add(CurSes_ParamName, NewP_Value);
                    break;

                case Act.Add:
                    HttpContext.Current.Session.Add(NewQs_paramName, NewP_Value);
                    break;
                case Act.AddFlag:
                    HttpContext.Current.Session.Add(NewQs_paramName, true);
                    break;

            }


        }

    }
    public enum Act
    {
        Edit, Add, AddFlag, Remove, Replace
    }
    public sealed class SesVals
    {
        public const string state = "Cstate";
        public const string custid = "custid";
        public const string recordID = "recordID";
        public const string SelectedMonth = "SesMonth";
        public const string SelectedChosenWorker = "SesChosenWorkerSelected";
              //etc....
    }
    public sealed class Mod
    {
        public const string FirstloadeViaLink = "Link",
                            submitedFreshQuery = "submitedFreshQuery",
                            canceledInsert = "cancelInsert",
                            filteredByTable = "filteredByTable",
                            filterByColumn = "filterByColumn";
        //etc....


    }
    public sealed class App
    {
        public static void Add(string flagName)
        {
            Sesseion.SeSn.Modify(Act.AddFlag, flagName);
        }
    }
    public sealed class AppFlags
    {
        public const string SubmitButtonWasPressed = "SubmitButtonWasPressed";
        public const string MainDataSetIsPopulated = "MainDataSetIsPopulated";
        public const string HTDB_DisplayCpa_Cols_WasSelected = "HTDBCpa_ColsWasSelected";
           //etc....
    }

  }
}

VS用の追加のプログラム/プラグインを避けたい場合、またはそれらを使用する必要がある場合、これはそれを行う方法ですか?

アプリの操作をどのように管理していますか?

4

1 に答える 1

1

(タイトルの質問に関連していないように見える問題のテキスト/コードの束全体を無視します)

Visual Studioを使用して、ASP.Netを使用して作成されたWebアプリケーションの両端をデバッグできます。

VSを使用したブラウザー側のデバッグはIEに限定されていますが、デスクトップシステム用の最新のブラウザーにはすべて開発者ツールが含まれているため(通常はF12をクリックすると利用可能)、通常は問題ありません。

サーバー部分は、組み込みのWebサーバーまたはIISのいずれかで直接デバッグできます。デフォルトのデプロイメントを使用しない場合は、VSデバッガーを特定のサイトのアプリプールを含むw3wpプロセスにアタッチするだけです。

于 2012-11-03T03:15:25.293 に答える