Csla 프레임워크의 명령 대상 이해
7260 단어 프레임
모두가 알다시피 업무 흐름의 개발 과정에서 절차 정의 과정, 절차 운행 과정과 작업 임무의 추적으로 나눌 수 있다. 특히 절차 실례가 운행하는 과정에서 주요한 실현은 절차 실례 창설, 임무 제출, 임무 반환, 처리, 베끼기 등으로 요약할 수 있다. 그 중에서 각 기능은 일정한 상대적인 독립성을 가지고 대부분 작업은 명령 제출 후 한꺼번에 처리한다.이러한 생각을 바탕으로 자신이 실현하는 과정에서 상술한 기능에 대해 Csla 프레임워크의 명령 대상을 사용하여 실현한다.
Csla 프레임워크의 다른 대상과 달리 기본 코드 블록은 모든 대상 유형 중 가장 간단하며 코드에는 정적 공장 방법과 명령의 실행 코드만 DataPortalExeceut () 는 다른 대상 내부에 존재할 수 있으며 내부 클래스로 외부 클래스에 호출될 수도 있고 공개 유형이 다른 모든 코드에 사용될 수도 있으며 명령 대상의 초기화는 클라이언트에 있기 때문에 클라이언트가 명령 대상과 내부 구성원에 대해 초기화할 수도 있고 서버에 전달되기 전에 클라이언트가 데이터의 유효성을 검증할 수도 있다. 그 중에서 서버에서 실행하는 방법은 DataPortal 뿐이다Execeut().이것은 단지 하나의 데이터 개수의 통계를 간단하게 진행할 수도 있고, 다른 N개 클래스를 호출해서 이번 명령 조작을 실현할 수도 있으며, 조작의 결과를 필드에 반영하여 클라이언트가 수신할 수 있도록 할 수도 있다.다음은 단순화된 명령 객체입니다.
1: /// <summary>
2: ///
3: /// </summary>
4: [Serializable]
5: public class ShareNode : Csla.CommandBase
6: {
7: // ID
8: private int _NodeID;
9:
10: //
11: private List<string> _ShareUser;
12:
13: private ShareNode(int nodeID, List<string> shareUser)
14: {
15: this._NodeID = nodeID;
16: this._ShareUser = shareUser;
17: }
18:
19: public static void Execute(int nodeID, List<string> shareUser)
20: {
21: ShareNode com = new ShareNode(nodeID, shareUser);
22: com = DataPortal.Execute<ShareNode>(com);
23: }
24:
25: protected override void DataPortal_Execute()
26: {
27: if (_NodeID == null || _NodeID <= 0 || _ShareUser == null || _ShareUser.Count <= 0)
28: {
29: return;
30: }
31: foreach (var item in _ShareUser)
32: {
33: ShareNode data = ShareNode.NewShareNode();
34: data.ID = _NodeID;
35: data.Date = DateTime.Now.ToString();
36: data.ShareUser = item;
37: data.ReadDate = DateTime.MaxValue.ToString();
38: data.State = false;
39: data.Type = ShareType.Node.ToString();
40:
41: data.Save();
42: }
43: }
44: }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
위에서 말한 것은 자신이 이전에 실현한 간단한 프로세스 베끼기 기능이다. 그 중에서 베끼는 명령 대상인 ShareNode는 클라이언트가 공장 방법을 호출하여 실례화하고 개인 구조 방법을 호출하여 필드를 초기화한다(실례화하기 전에 전달된 파라미터를 검증할 수 있어 서버 측에 도착한 후에 초기화 데이터가 잘못되었다는 것을 피할 수 있다).실례적인 Execute 방법을 호출합니다. 실례적인 대상의 이동은 서버에서 (물론 로컬로 설정될 수도 있습니다) DataPortalExecute 방법은 내부에서 자신이 실현해야 할 기능을 실현한다.여기서는 간단한 데이터 조작일 뿐입니다. 복잡하면 명령 대상은 더욱 복잡한 대상 형식으로 되돌아갈 수 있습니다. 클라이언트든 서버든 더 복잡한 업무 코드가 존재할 수 있습니다.
간단하게 보면 원격 코드에 접근하는 입구일 뿐이다. 마치 wcf 중의 한 방법을 호출하는 것과 같다. 그러나 그의 이름인'명령 대상'에서 알 수 있듯이 작가는 명령이라는 것도 대상으로 보았다. 마치 자신이 업무 흐름을 실현하는 과정에서 모든 명령이 명령 대상으로 존재할 수 있는 것처럼 첫 번째 느낌은 뚜렷하다.명령 대상에서 어떻게 복잡한 코드가 이루어졌든주의해야 할 것은 명령의 집행 과정이 여러 번 데이터베이스를 조작하면 대상의 방법을 사무 속성으로 표시하여 만일을 대비해야 한다는 것이다.
프레임의 모든 유형의 대상은 사용 조건이 있습니다. 예를 들어 명령 대상과 같이 명령 처리 작업에서 유연성을 발휘할 수 있습니다.
물론 이런 용법은 이 틀을 사용하는 각도에서 생각하기 때문에 그 외에 실현할 수 있는 방법이 많고 서로 다른 상황이 한 틀에 적합하지 않을 수도 있다.아니면 그 문장을 쓰는 것은 사용 과정에서 더 많은 지식을 배우기 위해서이다.
마지막으로 주의해야 할 것은 프레임워크에서 모든 업무 대상, 조건 대상(Criteria)을 포함하여 서열화로 표시해야 한다는 것이다!그건 평상시 사용에서도 표시해야 할 것 같은데..
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
node.js 파충류 프레임워크 node-crawler 첫 체험바이두 파충류라는 단어는 일반적으로 나타나는python 관련 자료이다. py에도 파충류 프레임이 많은데, 예를 들면 scrapy, Portia, Crawley 등이다. 이전에는 개인적으로 C#로 파충류를 만드는 것을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.