Кіріспе
CSLA NET – Rockford Lhotka жасаған бағдарламалық құрал, ол бизнес-объектілерді пайдалана отырып, берік объектіге бағытталған бағдарламаларды құрудың стандартты жолын ұсынады. Бизнес-объектілер – бұл объектіге бағытталған бағдарламада бизнес-бірліктерді абстракциялайтын объектілер. Бизнес-бірліктердің мысалдарына сату тапсырыстары, қызметкерлер немесе шот-фактуралар жатады. CSLA-ның өзі тегін жүктеуге қолжетімді болса да, авторы ұсынатын жалғыз құжаттама – оның кітаптары мен бейнелері, олар тегін емес. CSLA (Component based Scalable Logical Architecture) бастапқыда Лотканың Visual Basic 6.0 Business Objects кітабында Visual Basic 6 үшін жасалған. Microsoft .NET пайда болғаннан кейін CSLA толығымен қайта жазылды, ескі код қолданылмады және CSLA .NET деп аталды. Бұл жаңа нұсқа Web Services және Microsoft .NET-пен бірге келген объектіге бағытталған тілдердің мүмкіндіктерін пайдаланды (әсіресе, Visual Basic .NET және C#). CSLA .NET туралы мәліметтер Лотканың жазған Expert C# Business Objects және Expert One on One Visual Basic .NET Business Objects кітаптарында егжей-тегжейлі сипатталған. CSLA және CSLA .NET бастапқыда Microsoft бағдарламалау тілдері үшін жасалған болса да, құралдың көп бөлігі басқа объектіге бағытталған тілдерде де қолданылуы мүмкін. CSLA .NET туралы ағымдағы ақпаратты Лотканың өзі шығарған CSLA 4 электрондық кітаптар сериясынан табуға болады.
Ақылды деректер
Бизнес-объект өкілдік ететін объектіге қатысты барлық деректерді және мінез-құлықты (бизнес-логика мен ережелерді) қамтиды. Мысалы, OrderEdit объектісі пайдаланушыға тапсырыс туралы ақпаратты дұрыс өңдеуге мүмкіндік беру үшін қажетті деректер мен бизнес-ережелерді іске асыруды қамтиды.
Қоидалар қозғалтқышы
CSLA NET базасы валидация ережелерін, бизнес ережелерін және рұқсат беру ережелерін қолдайтын ережелер жұмыс істететін құралды ұсынады. Бұл ережелер нысан мысалдарына немесе қасиеттеріне тіркеледі және қажет болған жағдайда CSLA NET жүйесімен автоматты түрде орындалады. Валидация ережелері CSLA NET ережелер жұмыс істететін құралын немесе Microsoft .NET DataAnnotations мүмкіндігін пайдалану арқылы жүзеге асырылуы мүмкін.
Нысанның тұрақтылығы
Деректерді құру, алу, жаңарту және жою (CRUD) деректерді сынауға қатысты бизнес-объектінің нақты белгіленген әдістері арқылы жүзеге асырылады. Деректерге қол жеткізу логикасы бизнес-логикадан бөлек, көбінесе репозиторий үлгісі немесе басқа да кең таралған объектіге бағытталған бағдарламалау техникаларын пайдалана отырып сақталады.
Метастаздарды сақтау
CSLA NET әрбір бизнес объектісінің метадеректемесін басқарады. Мысалы, әрбір бизнес объектісі жаңа екенін (яғни деректер әлі сақталмаған) және өзгертілгенін (жаңа болғандықтан немесе соңғы жүктелуден бері мүшелік деректері өзгергендіктен сақталуы керек екенін) қадағалайды. Бизнес объектілерін кейіннен жою үшін белгілеуге болады (мысалы, пайдаланушы жолдарды жоюға ниетті екенін растағанда батырманы басқан кезде).
n-деңгейін жою
Бұл мүмкіндік объектіге немесе объектілер жиынтығына күйлер жиынтығын сақтауға мүмкіндік береді. Бұл объектінің бұрынғы күйіне оңай қайта оралуына жол ашады. Бұл, егер пайдаланушы қолданбадағы алдыңғы өңдеулерді бірнеше рет кері қайтаруды қаласа, пайдалы болуы мүмкін. Сондай-ақ, бұл мүмкіндік пайдаланушыға бұрын кері қайтарылған бірнеше өңдеулерді қайта жасауға мүмкіндік береді. Бұл мүмкіндік десктоптық және веб-қосымшаларға кең функционалдық мүмкіндіктерді ұсынуы мүмкін. Бір ескерту ретінде, жоғары транзакциялық веб-қосымшалардағы қосымша жүктемені ескеру қажет. n Кері қайтару деңгейі қосымшаның бұрынғы күйін сақтауды талап етеді, ол әдетте рефлексия арқылы қол жеткізіледі. Бұл десктоптық қосымшаларда кең таралған практика, онда өзгерістер "қолданылуы" тиіс. Веб-қосымшалардағы қосымша сақтау қажетсіз жүктеме тудыруы мүмкін, себебі өзгерістер көбінесе жинақтап жіберіледі және бірдей деңгейдегі "кері қайтару" мүмкіндігін қажет етпейді.
Бизнес ережесін бақылау
Нысандарға "бұзылған ереже" нысандарының жиынтығын сақтауға мүмкіндік береді. Бұзылған ережелер нысан жарамды күйге келгенше, яғни дерекқорға сақталуға дайын болғанша сақталады. BrokenRule нысандары көбінесе деректерді тексеру логикасымен байланысты, мысалы, телефон нөмірі өрісіне әріптер енгізілмеуін қамтамасыз ету. Мысалы, егер Account нысаны PhoneNumber қасиетіне ие болса және осы қасиетке әріптер бар телефон нөмірі тағайындалса, Account нысанының IsValid қасиеті жалған болады (дерекқорға сақтау мүмкін емес) және содан кейін жаңа BrokenRule нысаны құрылып, Account-тың бұзылған ережелер жиынтығына қосылады. Ереже, жарамсыз телефон нөмірі түзетілгенде жойылады, соның арқасында Account нысаны өзін дерекқорға сақтауға қабілетті болады.
Қарапайым пайдаланушы интерфейсін құру
CSLA .NET арқылы жасалған бизнес-объектілер Microsoft .NET UI технологияларының барлығына, оның ішінде Windows Runtime (WinRT), WPF, Web Forms, ASP.NET MVC, Windows Phone, Silverlight және Windows Forms үшін деректер байланысын толыққанды қолдайды. DataGrid және ListBox сияқты деректермен байланысты басқару элементтерін ADO.NET деректер жиынтықтары мен деректер кестелері сияқты жалпылама дерекқоры объектілерінің орнына бизнес-объектілерге байланыстыруға болады.
Деректерге үлестірілген қол жеткізу
CSLA NET фреймворкі мобильдік объектілер немесе мобильді агенттер деп аталатын ұғымды іске асырады, бұл объектілерге WCF, веб-қызметтер немесе басқа технологияларды пайдалана отырып, желілік шекаралардан өтуге мүмкіндік береді. Осының нәтижесінде деректерге қол жеткізу орналасқан жерге тәуелсіздікке ие болады, яғни логика қолданба конфигурациясына сәйкес клиенттік жұмыс станциясында немесе серверде орындалуы мүмкін. Сонымен қатар, қолмен деректер базасы транзакцияларын немесе таратылған екі кезеңді міндеттеме транзакцияларын пайдалану үшін конфигурациялауға болады. Деректерге қол жеткізу логикасы бизнес-логикадан бөлек және Microsoft .NET платформасында қол жетімді кез келген деректерге қол жеткізу технологиясын қолдану арқылы іске асырылуы мүмкін. Мысалдарға ADO.NET Entity Framework, қарапайым ADO.NET, nHibernate және т.б. жатады.
Веб-қызметтерді қолдау
CSLA .NET аясымен жасалған бизнес-логиканы қашықтағы қолданушыларға веб-қызмет ретінде оңай ұсынуға болады. Бұл Web API, WCF және asmx веб-қызметтері сияқты серверлік Microsoft .NET технологияларын қолдану арқылы іске асырылуы мүмкін.