1

VideoGames データベース (SQL) を使用しており、ASP プロジェクト (VISUAL STUDIO) をコーディングしています。ページに適切に編成されていないコーディングがあり、特定の機能がコーディングの繰り返しによって呼び出されています。コードを関数に整理して、C# コーディングをより適切に構造化する必要があります。誰かがそれについてのガイドラインを教えてください。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ASPLinqToSql
{
    public partial class About : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var ctx = new VideoGamesDataContext();
            var products = from p in ctx.Products
                           select new
                           {
                               p.ProductID,
                               p.ProductName,
                               p.ProductDescription,
                               p.ListPrice
                           };
            GridView1.DataSource = products;
            GridView1.DataBind(); 
        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int SupplierID = int.Parse(DropDownList1.SelectedValue);
            var ctx = new VideoGamesDataContext();
            var products = from p in ctx.Products
                           where p.SupplierID == SupplierID
                           select new
                           {
                               p.ProductID,
                               p.ProductName,
                               p.ProductDescription,
                               p.ListPrice
                           };
            GridView1.DataSource = products;
            GridView1.DataBind();
        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {
            if (chkLike.Checked == true)
            {
                int Supplierid = int.Parse(DropDownList1.SelectedValue);
                var ctx = new VideoGamesDataContext();
                var products = from p in ctx.Products
                               where p.SupplierID == Supplierid
                               && p.ProductName.StartsWith(txtProductName.Text.ToString())
                               select new
                               {
                                   p.ProductID,
                                   p.ProductName,
                                   p.ProductDescription,
                                   p.ListPrice
                               };
                GridView1.DataSource = products;
                GridView1.DataBind();
            }
            else
            {
                int Supplierid = int.Parse(DropDownList1.SelectedValue);
                var ctx = new VideoGamesDataContext();
                var products = from p in ctx.Products
                               where p.SupplierID == Supplierid
                               select new
                               {
                                   p.ProductID,
                                   p.ProductName,
                                   p.ProductDescription,
                                   p.ListPrice
                               };
                GridView1.DataSource = products;
                GridView1.DataBind(); 

            }
        }
4

3 に答える 3

0

コード全体を配置するには、レイヤーに分割する必要があります。このために、空のソリューションを作成し、2 つのクラス ファイル プロジェクトと Web アプリケーションまたは Web サイトを追加します。2 つのクラス ライブラリ プロジェクトは DAL と BAL である必要があり、UI は WebApp または Web サイト プロジェクトになります。

  1. ダル
  2. バル
  3. UI

  4. DAL : Datacontext といくつかのカスタム ヘルパー クラスで構成されるデータ アクセス レイヤーになります。同じリポジトリパターンを選択できます。すべてのテーブルの CRUD 操作用のリポジトリを作成するには。この2つの記事を参照してください

  5. http://www.iainbenson.com/programming/C-Sharp/LanguageLearner/ORM.php

  6. http://www.hightech.ir/SeeSharp/linq2sql-and-repository-pattern

  7. これで、すべてのビジネス ロジック/計算またはオブジェクトを含むビジネス レイヤーを作成できます。このプロジェクトでは、DAL プロジェクトの参照を追加して、DataObjects にアクセスします

  8. ビジネス レイヤーの参照を Ui レイヤーに追加し、それに応じてコードにアクセスします。

また、ソリューション全体でアクセスできるいくつかの一般的なメソッドに対して、別のクラス ライブラリ タイプのプロジェクトを作成することもできます。たとえば、プロジェクトの要件に応じて、メールの送信、カスタム解析、文字列操作などがあります。

N 層アーキテクチャ: http://mikesdotnetting.comで追加のリソースを参照することもできます。これら2 つのサイトは、.net 開発者にとって非常に役立つことがわかりました。

于 2013-07-22T09:57:00.607 に答える