Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 42799|Atbildi: 2

[Paziņojums] Detalizēts skaidrojums par trīsslāņu arhitektūras izmantošanu un ieviešanu C# ar piemēriem

[Kopēt saiti]
Publicēts 22.10.2014 21:59:33 | | |
Trīs slāņi: UI (interfeiss), BLL (biznesa loģikas slānis), DAL (datu piekļuves slānis) Šie trīs ir obligāti, no kuriem BLL un DAL klases ir publiskas klases, jo lietotāja interfeisam ir jāizsauc BLL, un BLL ir jāizsauc DAL un UTILITY (pamatā esošā metode, lai izveidotu savienojumu ar datu bāzi un veiktu pamatdarbības "pievienošana, dzēšana, modificēšana un pārbaude"). Turklāt var būt arī entītiju slāņi, piemēram, ENTITY (kas kartē datu tabulas) un Common (šī bibliotēka parasti izvieto dažas vispārīgas metodes, piemēram, datu validācijas metodes, kontroles operāciju metodes utt.).
Vienkārši sakot, tas ir
Piekļuve datiem no datu bāzes ir datu piekļuves slānis
Saistīto datu biznesa attiecību kārtošana ir biznesa loģikas slānis
Apkopoto datu attēlojums parāda, ka tas ir reprezentācijas slānis.

Starp citu, es palīdzēju jums atrast informāciju:
       Laba hierarhiskā struktūra var padarīt izstrādātāju darba dalīšanu skaidrāku. Kad saskarnes starp slāņiem ir definētas, izstrādātāji, kas atbild par dažādiem loģikas dizainiem, var izkliedēt savus centienus un strādāt roku rokā. Piemēram, lietotāja interfeisa personālam ir jāņem vērā tikai lietotāja interfeisa pieredze un darbība, domēna dizaineri var koncentrēties tikai uz biznesa loģikas dizainu, un datu bāzes dizaineriem nav jāuztraucas par apgrūtinošu lietotāju mijiedarbību. Katra izstrādātāja uzdevums tiek apstiprināts, un izstrādes gaitu var ātri uzlabot.

       Brīvas sakabes priekšrocības ir skaidras. Ja sistēma nav hierarhiska, tad to loģika ir cieši saistīta un savstarpēji atkarīga, un neviens nav aizvietojams. Kad izmaiņas notiks, tas ietekmēs visu ķermeni, un ietekme uz projektu būs ārkārtīgi nopietna. Atkarības samazināšana starp slāņiem var ne tikai nodrošināt mērogojamību nākotnē, bet arī acīmredzamas priekšrocības atkārtotas izmantošanas jomā. Kad katrs funkcionālais modulis ir definējis vienotu interfeisu, to var izsaukt katrs modulis, atkārtoti neizstrādājot vienu un to pašu funkciju.

       Lai veiktu labu hierarhiskās struktūras dizainu, būtiski ir arī standarti. Tikai noteiktā standartizācijas līmenī šī sistēma var būt mērogojama un aizvietojama. Komunikācija starp slāņiem obligāti nodrošina arī saskarņu standartizāciju.

  1. 代码

  2.         /// <summary>
  3.         /// 初始化登录名称、登录密码(Model类)
  4.         /// </summary>
  5.         private string adminUser = string.Empty; //设置用户名称为空值
  6.         private string adminPwd = string.Empty; //设置用户密码为空值
  7.         public string AdminUser
  8.         {
  9.             get
  10.             {
  11.                 return this.adminUser;
  12.             }
  13.             set
  14.             {
  15.                 this.adminUser = value;
  16.             }
  17.         }
  18.         public string AdminPwd
  19.         {
  20.             get
  21.             {
  22.                 return this.adminPwd;
  23.             }
  24.             set
  25.             {
  26.                 this.adminPwd = value;
  27.             }
  28.         }

  29. 代码

  30.         /// <summary>
  31.         /// 用户登录(BLL类)
  32.         /// </summary>
  33.         /// <param name="m"></param>
  34.         /// <returns></returns>
  35.         public static int sysLogin(Model m)
  36.         {
  37.             string str = "adminValid"; //存储过程名称
  38.             SqlParameter[] sqlParameter =
  39.                 {
  40.                     // 将UI层传递过来的用户名称和密码赋值给存储过程中的变量分别是adminUser和adminPwd(注意大小写)
  41.                     new SqlParameter("adminUser",m.AdminUser),
  42.                     new SqlParameter("adminPwd",m.AdminPwd)
  43.                 };
  44.             DAL d = new DAL();
  45.             return Int32.Parse(d.ExecuteScalar(str,sqlParameter));
  46.         }

  47. 代码

  48.         /// <summary>
  49.         /// 新建一个SQL登录链接
  50.         /// </summary>
  51.         /// <returns></returns>
  52.         private static SqlConnection con()
  53.         {
  54.             return new SqlConnection("Data Source=localhost;Initial Catalog=数据库名称;Integrated Security=SSPI;");
  55.         }
  56.         /// <summary>
  57.         /// 执行操作(DAL类)
  58.         /// </summary>
  59.         /// <param name="str"></param>
  60.         /// <param name="sql"></param>
  61.         /// <returns></returns>
  62.         public string ExecuteScalar(string str, SqlParameter[] sql)
  63.         {
  64.             SqlConnection con = DAL.con();
  65.             try
  66.             {
  67.                 con.Open();
  68.                 SqlCommand com = new SqlCommand(str, con);
  69.                 com.CommandType = CommandType.StoredProcedure;
  70.                 com.Parameters.AddRange(sql);
  71.                 return Convert.ToString(com.ExecuteScalar()); //返回受影响的行数(例如影响的行数为1,那么返回数值1到BLL层,然后BLL层将数值1返回到UI层)
  72.             }
  73.             catch (Exception Error)
  74.             {
  75.                 throw Error;
  76.             }
  77.             finally
  78.             {
  79.                 con.Close();
  80.             }
  81.         }

  82. 代码

  83.         //UI 层
  84.         Model m = new Model(); //实例化Model类
  85.         m.AdminUser = this.TextBox1.Text.ToString(); //将文本框1中的值传递给Model类中的AdminUser
  86.         m.AdminPwd = this.TextBox2.Text.ToString(); //将文本框2中的值传递给Model类中的AdminPwd
  87.         if (BLL.sysLogin(m) > 0)
  88.         {
  89.             this.Label1.Text = "登录成功!马上进入管理平台...";
  90.         }
  91.         else
  92.         {
  93.             this.Label1.Text = "用户或密码错误,请重新输入!";
  94.         }

  95. 代码

  96. --存储过程 (SQL2005)
  97. set ANSI_NULLS ON
  98. set QUOTED_IDENTIFIER ON
  99. go

  100. ALTER PROC [dbo].[adminValid]
  101. @adminUser varchar(20),@adminPwd varchar(120)
  102. AS
  103. SELECT COUNT(*) FROM admin WHERE adminUser = @adminUser AND adminPwd = @adminPwd
Kopēt kodu







Iepriekšējo:Daudzi tīkla kartes rīki ir jāinstalē ar winpcap, vai jūs zināt, kam tas paredzēts?
Nākamo:Pievērsiet uzmanību WeChat "Yantang Dairy", lai 100% izlozētu balvu "vainaga sēnīte"
Publicēts 06.10.2021 09:51:23 |
Labi, paldies īpašniekam par nodrošināšanu !!
Publicēts 06.10.2021 11:09:10 |
Uzziniet par trīs līmeņu arhitektūru C#
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com