- 浏览: 507245 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (329)
- [发布至博客园首页] (12)
- [随笔分类][01] .Net X (59)
- [随笔分类][20] Architecture (16)
- [随笔分类][21] Developer Logs (13)
- [网站分类]Windows 7 (1)
- [随笔分类][13] Oracle & .Net (7)
- [随笔分类][16] Love in China (14)
- [随笔分类][15] Development Tools (20)
- [随笔分类][18] Windows Phone (12)
- [随笔分类][12] Design & Pattern (17)
- [网站分类].NET新手区 (22)
- [网站分类]首页候选区 (2)
- [随笔分类][08] Windows (Server) (13)
- [随笔分类][02] CSLA.Net (3)
- [随笔分类][10] jQuery & javaScript (10)
- [随笔分类][11] SQL Server (4)
- [随笔分类][22] Enterprise Logs (3)
- [随笔分类][03] News (9)
- [随笔分类][19] Quality Assurance (2)
- [随笔分类][05] Silverlight (20)
- [随笔分类][14] Google Earth & .Net (6)
- [网站分类]非技术区 (9)
- [随笔分类][07] WWF (2)
- [随笔分类][04] SharePoint (1)
- [随笔分类][20] Analysis & Design (36)
- [随笔分类][06] WCF (5)
- [随笔分类][12] Architecture (1)
- [随笔分类][09] WPF (0)
- [随笔分类][17] VStudio & Expression (5)
最新评论
-
zhangyy130:
你好,我关于第二段的那个表视图、模型与图这三者的关系我没有看明 ...
UML模型的组成 -
guji528:
谢谢分享!
Enterprise Architect 基础应用 -
studentsky:
好文章,图文并茂!
WCF 第一个用 Visual Studio 2010 创建的WCF服务 -
chen975311486:
用哪个工具画的????
UML中对关系的描述 (二) -
frankies:
继续学习中。。
UML 交互概述图
CSLA.Net 3.0.5 项目管理示例 名值列表基类、只读基类、业务负责人基类
using System; using System.Data; using System.Data.SqlClient; using Csla; using Csla.Data; namespace ProjectTracker.Library { /// <summary> /// 集?成?明?值?对?基?类?,?两?个?泛?型?参?数?,?名?类?型?,?值?类?型?,?因?为?其?中?的?NameValuePair子?对?象?需?要?这?连?个?泛?型?的?支?持? /// /// </summary> [Serializable()] public class RoleList : NameValueListBase<int, string> { #region Business Methods /// <summary> /// 获?得?默?认?的?职?位? /// </summary> /// <returns></returns> public static int DefaultRole() { RoleList list = GetList(); //如?果?列?表?中?有?值?,?返?回?第?一?个?职?位?为?默?认?职?位? if (list.Count > 0) return list.Items[0].Key; else throw new NullReferenceException( "没?有?可?用?的?职?位?,?提?供?默?认?选?择?"); } #endregion #region Factory Methods /// <summary> /// 静?态?的?列?表?成?员?,?这?代?表?着?,?她?是?一?个?公?用?的? /// </summary> private static RoleList _list; /// <summary> /// 返?回?职?位?列?表? /// </summary> public static RoleList GetList() { //如?果?列?表?是?null空?的?,?则?加?载?她? //Fetch提?供?了?一?个?泛?型?,?参?数?Criteria是?使?用?了?基?类?中?默?认?定?义?的?,?这?在?这?里?已?经?足?够?了?,构?造?Criteria //的?时?候?提?供?了?一?个?roleList的?类?型?对?象?typeof可?以?获?得?一?个?类?的?类?型?对?象?,?通?过?这?个?对?象?可?以?获?得?此?类?的?方?法?,?属?性?等?值?,?但?这?里?使?用?初?始?化?不?详? if (_list == null) _list = DataPortal.Fetch<RoleList>(new Criteria(typeof(RoleList))); return _list; } /// <summary> /// Clears the in-memory RoleList cache /// so the list of roles is reloaded on /// next request. /// 就?像?上?面?所?说?的?,?在?内?存?中?清?空?RoleList,?这?样?下?一?次?访?问?就?可?以?从?新?加?载?职?位?列?表?,?这?个?列?表?是?静?态?的?哦?,?如?果?不?清?空?就?会?存?在? /// 清?空?缓?存? /// </summary> public static void InvalidateCache() { _list = null; } /// <summary> /// 默?认?构?造?器? /// </summary> private RoleList() { /* require use of factory methods */ } #endregion #region Data Access private void DataPortal_Fetch(Criteria criteria) { //去?掉?属?性?更?改?事?件? this.RaiseListChangedEvents = false; using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) { cn.Open(); using (SqlCommand cm = cn.CreateCommand()) { cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "getRoles"; using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) { //由?于?这?个?基?类?默?认?的?情?况?下?是?只?读?的?,?所?有?在?为?其?添?加?对?象?的?时?候?应?该?将?其?回?复?为?可?写?的?,?修?改?后?再?还?原? IsReadOnly = false; while (dr.Read()) { //加?一?个?名?值?对?的?对?象?到?名?值?集?合?中? this.Add(new NameValuePair( dr.GetInt32("id"), dr.GetString("name"))); } IsReadOnly = true; } } } this.RaiseListChangedEvents = true; } #endregion } }
using System; using System.Data; using System.Data.SqlClient; using System.Collections.Generic; using System.Security.Principal; using Csla; namespace ProjectTracker.Library.Security { /// <summary> /// 继?承?自?只?读?基?类?,?与?.net 安?全?标?志?接?口? /// </summary> [Serializable()] public class PTIdentity : ReadOnlyBase<PTIdentity>, IIdentity { #region Business Methods private bool _isAuthenticated;//是?否?通?过?验?证?标?记? private string _name = string.Empty;//名?字? private List<string> _roles = new List<string>();//权?限?列?表? //验?证?类?型?CSLA public string AuthenticationType { get { return "Csla"; } } //是?否?通?过?验?证?属?性? public bool IsAuthenticated { get { return _isAuthenticated; } } //标?记?名?称? public string Name { get { return _name; } } //重?载?已?获?得?object支?持? protected override object GetIdValue() { return _name; } //是?否?存?在?,?内?联?,?进?调?用?list对?象?的?Contains实?现? internal bool IsInRole(string role) { return _roles.Contains(role); } #endregion #region Factory Methods /// <summary> /// 未?经?验?证?方?法?,?内?部?将?调?用?Identity构?造?器?实?例?化?标?记?类? /// </summary> /// <returns></returns> internal static PTIdentity UnauthenticatedIdentity() { return new PTIdentity(); } /// <summary> /// 获?得?一?个?标?记? /// </summary> /// <param name="username">用?户?名?</param> /// <param name="password">密?码?</param> /// <returns></returns> internal static PTIdentity GetIdentity( string username, string password) { //数?据?门?户?调?用?,?标?准?类?传?递? return DataPortal.Fetch<PTIdentity>(new Criteria(username, password)); } //防?止?意?外?实?例?化? private PTIdentity() { /* require use of factory methods */ } #endregion #region Data Access /// <summary> /// 标?准?类?定?义?有?用?户?名?及?密?码?属?性?,?提?供?移?动?对?象?的?查?询?需?求? /// </summary> [Serializable()] private class Criteria { private string _username; public string Username { get { return _username; } } private string _password; public string Password { get { return _password; } } /// <summary> /// 构?造?器?,?初?始?化?私?有?成?员?变?量?(?或?者?叫?数?据?域?/实?例?域?)? /// </summary> /// <param name="username"></param> /// <param name="password"></param> public Criteria(string username, string password) { _username = username; _password = password; } } private void DataPortal_Fetch(Criteria criteria) { using (SqlConnection cn = new SqlConnection(Database.SecurityConnection)) { cn.Open(); using (SqlCommand cm = cn.CreateCommand()) { cm.CommandText = "Login"; cm.CommandType = CommandType.StoredProcedure; cm.Parameters.AddWithValue("@user", criteria.Username); cm.Parameters.AddWithValue("@pw", criteria.Password); //使?用?的?SqlDataReader using (SqlDataReader dr = cm.ExecuteReader()) { if (dr.Read()) { _name = criteria.Username; //将?验?证?标?记?志?真? _isAuthenticated = true; //如?果?存?在?下?一?个?数?据?集? if (dr.NextResult()) { //装?载?权?限?列?表? while (dr.Read()) { _roles.Add(dr.GetString(0)); } } } else { //没?有?通?过?验?证?则?建?立?一?个?未?经?过?授?权?的?标?记?类? //总?之?他?都?会?将?对?象?传?给?UI用?于?建?立?一?个?负?责?人?对?象?,?提?供?对?权?限?的?支?持? _name = string.Empty; _isAuthenticated = false; _roles.Clear(); } } } } } #endregion } }
using System; using System.Security.Principal; namespace ProjectTracker.Library.Security { /// <summary> /// 继?承?自?框?架?的?安?全?空?间?中?的?业?务?负?责?人?基?类? /// </summary> [Serializable()] public class PTPrincipal : Csla.Security.BusinessPrincipalBase { /// <summary> /// 构?造?函?数?,?提?供?标?准?对?象?做?参?数?初?始?化?给?基?类? /// </summary> /// <param name="identity">标?准?对?象?,?提?供?给?了?基?类?</param> private PTPrincipal(IIdentity identity) : base(identity) { } /// <summary> /// 静?态?登?入?,? /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static bool Login(string username, string password) { //返?回?通?过?方?法?验?证?一?个?标?记?对?象?,?下?面?的?Unauthenticated是?用?来?返?回?无?需?验?证?的?标?记?对?象? PTIdentity identity = PTIdentity.GetIdentity(username, password); // 如?果?验?证?成?功? if (identity.IsAuthenticated) { //利?用?标?记?对?象?,?建?立?负?责?人?对?象? PTPrincipal principal = new PTPrincipal(identity); //将?负?责?人?对?象?交?给?CSLA,?引?用?程?序?上?下?文?中?的?用?户? Csla.ApplicationContext.User = principal; } //返?回?验?证?结?果? return identity.IsAuthenticated; } /// <summary> /// 静?态?登?出?,? /// </summary> public static void Logout() { //使?用?未?经?验?证?的?标?记?方?法?,?生?命?一?个?标?准?方?法? PTIdentity identity = PTIdentity.UnauthenticatedIdentity(); //利?用?未?经?验?证?的?标?记?对?象?,?初?始?化?一?个?负?责?人?对?象?,? PTPrincipal principal = new PTPrincipal(identity); //并?将?此?负?责?人?对?象?,?赋?予?当?前?上?下?文?的?用?户? Csla.ApplicationContext.User = principal; } /// <summary> /// 重?载?基?类?,?判?断?当?前?标?准?类?权?限?是?否?是?参?数?说?的? /// </summary> /// <param name="role">要?判?断?的?权?限?</param> /// <returns></returns> public override bool IsInRole(string role) { //this,?使?用?的?是?业?务?基?类?中?定?义?的?成?员?变?量?,?这?个?变?量?已?经?在?初?始?化?负?责?人?对?象?的?时?候?被?传?输?给?了?业?务?基?类? //获?得?当?前?上?下?文?中?负?责?人?的?标?记? PTIdentity identity = (PTIdentity)this.Identity; //调?用?这?个?标?记?的?方?法?来?判?断?是?否?存?在? return identity.IsInRole(role); } } }
发表评论
-
[转] 面向对象设计原则
2009-08-02 14:23 658一、单一职责原则(S ... -
iBATIS.NET
2009-09-03 17:49 1443下载主页: http://ibatis.apache.org ... -
Castle
2009-09-06 16:23 724下载地址:http://www.castleproject.o ... -
CSLA.Net 3.0.5 版本 教学程序,代码附教学注释
2009-09-13 10:01 1325离开原来的公司后,就 ... -
Enterprise Library 4.1 Caching Block 图文笔记
2009-10-03 23:06 1524一,下载并安装好Enterprise Library ... -
Enterprise Library 4.1 Logging Block 快速使用图文笔记
2009-10-04 12:06 1648一,下载并安装好Enterprise Library ... -
Enterprise Library 4.1 Data Access Block 快速使用图文笔记
2009-10-04 17:30 1314一,下载并安装好Enterprise Library 4. ... -
Enterprise Library 4.1 Cryptography Block 快速使用图文笔记
2009-10-04 20:10 756哈希算法------ http://baike.baidu.c ... -
Enterprise Library 4.1 Security Block 快速使用图文笔记
2009-10-05 08:33 938.Net 2.0 开始,从前Security Block 一部 ... -
Enterprise Library 4.1 Application Settings 快速使用图文笔记
2009-10-05 08:41 910Application Settings 可以使我们运用企业库 ... -
Unity Application Block 1.2 图文学习笔记
2009-10-05 09:05 747此内容将会在数星期后学习 -
Enterprise Library 4.1 Policy Injection Block 快速使用图文笔记
2009-10-05 09:09 760示例源码下载:EL41Sample.rarEnterprise ... -
Enterprise Library 4.1 Instrumentation 快速使用图文笔记
2009-10-05 09:17 771示例源码下载:EL41Sample.rarEnterprise ... -
CSLA.Net 3.0.5 项目管理示例 业务基类 Project.cs
2009-10-06 09:39 1192using System; using System.Coll ... -
CSLA.Net 3.0.5 项目管理示例 业务集合基类(ProjectResources.cs,ProjectResource.cs)
2009-10-06 09:47 890using System; using System.Data ... -
CSLA.Net 3.0.5 项目管理示例 UI ProjectEdit.aspx
2009-10-06 10:23 911<%@ Page Language="C#&q ...
相关推荐
CSLA.NET是一个强大的.NET开发框架,由Rockford Lhotka创建,主要用于构建可复用的、业务逻辑层的对象。这个框架的核心目标是提供一个统一的方式来创建业务对象,这些对象不仅能在客户端应用程序中使用,也能在...
5. **事务处理**:CSLA.NET支持事务管理,可以轻松地在业务逻辑中包裹多个数据库操作,确保数据操作的原子性。 6. **单元测试**:框架设计考虑了测试驱动开发,使得编写和运行单元测试变得简单,从而提高软件质量。...
1. **框架目标**:Csla.Net的主要目标是简化业务层的开发,通过提供一系列预定义的基类和工具,帮助开发者快速构建符合企业级标准的业务对象。 2. **设计原则**:遵循SOLID原则,包括单一职责原则、开闭原则、里氏...
CSLA.NET 4.0 源码是一个用于构建企业级业务对象的框架,它源自Chuck Noble所著的《Expert C# Business Objects》一书。这个框架的核心目标是提供一个可扩展、易于维护的解决方案,帮助开发人员创建复杂的业务逻辑层...
1. **业务对象**:CSLA.NET提供了一种模型,将业务逻辑封装在业务对象中,这些对象可以是值类型或引用类型,支持服务器端和客户端的验证规则。 2. **数据持久化**:框架支持多种数据访问策略,包括直接使用ADO.NET...
1. **业务对象模型**:CSLA.NET的核心是它的业务对象模型,它提倡将业务逻辑和数据访问逻辑分离,使得代码更加模块化。这种设计模式鼓励开发人员创建具有内置验证、授权和状态管理功能的智能业务对象。 2. **数据...
CSLA.NET 框架成为了微软.NET 平台上最广泛应用的开发框架之一,本书介绍了CSLA.NET 3.6 架构背后的构思过程,描述了怎样搭建支持这个架构的框架,如何创建应用程序的业务对象,并且展示了如何使用这个框架创建基于...
5. **安全性与权限管理**:CSLA.NET提供了内置的安全性和权限管理机制,可以控制用户对业务对象的访问权限。这部分内容会涵盖如何设置和实施这些安全策略。 6. **单元测试与持续集成**:作为企业级应用,单元测试和...
**C#企业应用开发艺术:深入理解CSLA.NET框架** CSLA .NET(Component Services Library for Applications)框架是由Rockford Lhotka创建的一种强大的、可扩展的企业级应用程序开发框架,它基于C#语言并充分利用了...
[CSLA.NET] Using CSLA 4 eBook Series ☆ 图书概要:☆ The Using CSLA 4 ebook series will teach you how to use CSLA 4 to create powerful object-oriented business layers for your applications, as well ...
[Apress] CSLA .NET 框架企业应用开发艺术 (2008 版本) (英文版) [Apress] Expert C# 2008 Business Objects (E-Book) ☆ 图书概要:☆ In Rockford Lhotka’s Expert C# 2008 Business Objects, you’ll learn ...
《#企业应用开发艺术CSLA.NET框架开发实战》(Expert C#2008 Business Objects)配套源码及例程csla-4.5.700。 CSLA .NET is a software development framework that helps you build a reusable, maintainable ...
通过分析Csla.net 4.6.5源码,开发者可以了解到如何实现这些特性,学习到面向对象设计原则、模式的应用,以及如何在实际项目中有效地利用Csla来提高开发效率和代码质量。同时,源码阅读也帮助开发者更好地调试和优化...
### 使用CSLA 4:CSLA .NET概览 #### 一、CSLA .NET简介 **CSLA(Component-based Scalable Logical Architecture)**是一种面向对象的应用程序开发框架,主要针对.NET平台。它由Rockford Lhotka创建,并在多个...
5. **更完善的文档和示例**:随着版本的更新,CSLA.NET的文档通常会得到更新,提供更详尽的教程和示例,帮助开发者快速上手。 **压缩包内容分析** "README.txt" 文件很可能是包含了安装指南、更新内容和注意事项的...
Visual Studio CSLA Extension for ADO.NET Entity Framework. Visual Studio extension and T4 templates for generation of CSLA objects ...CSLA.NET框架面向实体框架的代码自动生成工具。 支持VS2012和VS2010。
8. **项目Tracker cs**:在压缩包中的"ProjectTracker cs"可能是一个使用CSLA .NET 框架开发的示例项目,它演示了如何将CSLA的特性应用于实际的项目管理应用中,包括任务跟踪、资源分配等功能。 综上所述,CSLA ...
2. **数据访问**:Csla.NET 提供了多种数据访问策略,包括ADO.NET、Entity Framework、NHibernate等,可以根据项目需求选择合适的方式。 3. **验证(Validation)**:Csla.NET 提供了一套完整的验证规则框架,允许...
这本书籍通过深入浅出的方式,为读者揭示了如何高效地利用CSLA.NET来构建可复用、可维护的业务对象,是C#开发者学习企业级应用开发的重要资源。 CSLA.NET是由Rockford Lhotka创建的一个开源框架,它为.NET平台提供...
在"压缩包子文件的文件名称列表"中提到的"cslademo"可能是一个包含Csla.NET示例项目的文件。这个项目可能包括以下几个部分: 1. **Business Objects**:这是Csla.NET的核心,包含业务逻辑类。这些类通常会继承自...