企业程序库(Enterprise31415

上传人:无*** 文档编号:243860507 上传时间:2024-10-01 格式:PPTX 页数:46 大小:822.73KB
返回 下载 相关 举报
企业程序库(Enterprise31415_第1页
第1页 / 共46页
企业程序库(Enterprise31415_第2页
第2页 / 共46页
企业程序库(Enterprise31415_第3页
第3页 / 共46页
点击查看更多>>
资源描述
编辑母版标题样式,编辑母版文本样式,第二级,第三级,第四级,第五级,DEV 205,企业程序库(,Enterprise Library,),王筱东,战略合作伙伴技术经理,平台及开发技术部,微软(中国)有限公司,日程,企业程序库前世今生,企业程序库的,7,种武器,合作伙伴成功案例(中软融鑫),Q&A,企业开发中经常谈论的话题:,几乎所有的企业应用都有一些类似的需求,编写一个组件以便简化对存储过程的访问,构建一个日志机制能将错误信息进行多渠道的输出,构建一个基于角色的用户权限管理机制,对敏感数据进行加密,我们如何实现这些常用的需求?,百家争鸣时代,各企业内部根据自身需求编写组件,类似的代码在不同的企业被一次又一次地重复,企业开发的经验与最佳实践得不到共享,应用程序块时代,应用程序块是开源的,.NET,组件,是微软与合作伙伴多年实践与经验的总结,可重用,可扩展,可修改,通用服务,e.g.,日志,缓存,数据访问,配置,可重用的架构,e.g.,自动更新,离线应用,用户界面处理,群众的呼声,各程序块间应提供一致性保障,对程序块的评估及理解应更加容易,减少相互间的依赖(如,Exception Management,),容易对程序块进行配置,易于扩展,应用程序块重装上阵,一致性,采用了一致的设计模式和实施方法,扩展性,编写代码以插件的方式外挂到应用程序块上进行扩展,易用性,充分利用图形化配置工具,提供了简明、完整的文档及快速启动案例,集成性,各程序块既能相互工作,.,又能独立工作,企业程序库时代,2005,年,1,月发布第一版,最新版本在,6,月发布,可重用的应用程序块库,用于解决企业级开发中所面临的常见挑战,较低风险(实践是检验真理的唯一标准),降低成本(可重用性),快速实施的问题(易用性),当前有,7,个应用程序块组成,免费下载,Security,Crypto,Data,Access,Logging,Caching,Exceptions,企业程序库,Legend,Dependency,Plug-in,Configuration,Config,Tool,日程,企业程序库前世今生,企业程序库的,7,种武器,合作伙伴成功案例(中软融鑫),Q&A,霸王枪配置程序块,Security,Crypto,Configuration,Data,Access,Logging,Caching,Exceptions,Config,Tool,配置程序块百兵之祖,为应用系统提供了公用的配置管理解决方案,允许应用程序方便灵活地从不同配置存储读写配置信息,隔离应用程序和配置数据的物理存储位置,Storage Providers,:,允许从不同的物理存储读写信息(如,SQL/XML,),Transformers,:将读取的配置数据经转换器转换为结构化数据,内置对,XML,的支持,改善安全性(支持加密保存),配置文件监控器能够监测到配置文件的变化并发出事件通知,配置程序块示例,EditorFontData,configData,=New,EditorFontData();,configData.Name=fontDialog.Font.Name;,configData.Size=fontDialog.Font.Size;,configData.Style=Convert.ToInt32(fontDialog.Font.Style);,/write an object info to config file,ConfigurationManager.WriteConfiguration(EditorSettings,configData);,Public EditorFontData(),Private string fontName;,Private Double fontSize;,Private Integer fontStyle;,/Read an object with multiple properties,EditorFontData,configData,=,ConfigurationManager.GetConfiguration(EditorSettings),Security,Crypto,Configuration,Data,Access,Logging,Caching,Exceptions,碧玉刀数据访问程序块,Config,Tool,数据访问程序块大开大阖,对数据库访问提供了简单、高效的访问方式,屏蔽了对常用,ADO.NET,使用的复杂度,使用单条语句即可完成对存储过程的调用,为,SQL Server,Oracle,DB2,提供了统一的编程,当移植应用程序到不同数据库类型时,减少重写代码的数量,搭起了逻辑数据库与物理数据库间的桥梁,降低改变物理数据目标的难度,容易对数据库访问的配置信息进行调整和验证,数据访问程序块架构,数据访问程序块示例,Public Function GetProductsInCategory(ByRef Category As Integer)As DataSet,Create the Database object,using the default database service.The,default database service is determined through configuration.,Dim db As Database=DatabaseFactory.CreateDatabase(),Invoke the stored procedure with one line of code!,return db.ExecuteDataSet(GetProductsByCategory,Category),Note:connection was closed by ExecuteDataSet method call,End Function,Security,Crypto,Configuration,Data,Access,Logging,Caching,Exceptions,长生剑异常处理程序块,Config,Tool,异常处理程序块攻如风,守似磐,异常处理程序块为系统的不同层面提供了一致的例外处理策略,异常由配置工具进行定义和维护,不需要通过编码控制例外处理,定义“异常策略”,可指定该策略发生时的行为,将异常写入日志,用另外一个异常进行封装,采用不同的异常替代以便隐藏敏感的异常信息,创建自己的,Handler,,提供附加的处理行为,异常处理程序块示例,DataSet customersDataSet,try,customersDataSet=RunQuery(“GetAllCustomers”);,catch(Exception ex),string formattedInfo=FormatException(ex);,Logging.Log(formattedInfo),Throw new DataAccessException(“Database access failure for query GetAllCustomers”,e),Without Exception Handling App Block,1.0,DataSet customersDataSet,try,/Some code that may throw,customersDataSet=RunQuery(“GetAllCustomers”);,catch(Exception ex),if(,ExceptionPolicy.HandleException(ex,“Data Access Policy”),throw;,Exception policy:“Data Access Policy”,Exception type:,System.Data.SqlClient.SqlException,Exception Handler:Logging Handler,Wrap Handler,exceptionhandling.config,With Exception Handling App Block,Security,Crypto,Configuration,Data,Access,Logging,Caching,Exceptions,离别钩缓存程序块,Config,Tool,缓存程序块,心神合一,灵活的缓存机制可以用于以下各种类型的应用架构,:,Windows Forms,Console application,NT Service/COM+Server,ASP.NET Web application or Web service,支持两类缓存机制,:,In-memory cache,非永久缓存,但性能很好,Backing store,永久性缓存,但较慢,易于使用,提供了,Cache,处理需的所有功能,(添加,查询,删除),可配置的过期策略,Security,Crypto,Configuration,Data,Access,Logging,Caching,Exceptions,孔雀翎加密程序块,Config,Tool,加密程序块,第一暗器,简化了开发人员为敏感信息进行加解密工作,加解密任何类型(,Stream/Byte,)的信息,提高易用性(,CreateHash/CompareHash,),支持多种加解密算法,支持所有,.NET,提供的加密算法,通过,DPAPI,,对单台计算机上的信息进行无密钥加密,允许集成自己开发的加解密算法,Provider,提高集成性,算法与密钥可以通过配置工具进行配置,Security,Crypto,Configuration,Data,Access,Logging,Caching,Exceptions,多情环安全程序块,Config,Tool,安全程序块人情色彩,帮助开发人员在应用程序中实现通用的安全相关任务,认证,授权,角色管理,Profile,管理,简单的方法,Authenticate,Authorize,GetRoles,SetProfile,基于应用安全的最佳实践,安全程序块架构,Security,Crypto,Configuration,Data,Access,Logging,Caching,Exceptions,拳头日志程序块,Config,Tool,日志程序块一切尽在掌握,提供简单标准一致的,Logging,机制,能灵活指定哪类信息以何种格式输出、输出到何处,实现了应用程序代码与日志策略的隔离,当前提供了以下日志输出:,Event Log,Database,Text File,MSMQ,Email,WMI,自定义输出,日志程序块示例,Dim log As LogEntry=New LogEntry,log.Message=“Your message here”,log.Priority=1,log.EventId=100,log.Category=Debug,Logger.Write(log),/Or if you prefer one line.,Customer cust=GetCustomer(123);,/Log the customer will call/cust.ToString()for the log entry,Logger.Write(cust,Category,Priority);,配置企业程序库,日程,企业程序库前世今生,企业程序库的,7,种武器,合作伙伴成功案例(中软融鑫),Q&A,我们的应用,Red SMS Platform V3.0,短信服务平台,完成短信收发,SMS,系统管理助手,V1.0,Server Management System,助手,帮助用户完成如,License,管理等辅助功能,Red SMS Platform V3.0,小试牛刀,日志程序块,配置程序块,以前的做法,写类来完成文本文件写入,Logger.Write
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!