胡百敬老师谈SQL Server 2005

news/2024/7/16 8:05:09 标签: SQL Server, SQL, 企业应用, 设计模式, .net
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>

博文专访——与作者面对面

<personname w:st="on" productid="胡百敬"><span lang="ZH-CN" style="FONT-WEIGHT: normal; FONT-FAMILY: SimHei; mso-font-kerning: 0pt; mso-bidi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-weight: bold; mso-font-width: 85%; mso-ascii-font-family: Arial">胡百敬</span></personname>老师谈SQLSERVER.html" title=SQL Server>SQL Server 2005

针对<personname w:st="on" productid="胡百敬">胡百敬</personname>老师的新书《SQLSERVER.html" title=SQL Server>SQL Server 2005数据库开发详解》的出版,博文视点对<personname w:st="on" productid="胡百敬">胡百敬</personname>老师进行了专访,以飨读者。

采 访 人:博文视点首席策划编辑刘铁锋(Joylite

受 访 人胡百敬

采访方式:电子邮件

Joylite

SQL0"><personname w:st="on" productid="胡"><span lang="ZH-CN" style="FONT-FAMILY: KaiTi_GB2312; mso-ascii-font-family: 'Times New Roman'">胡</span></personname>老师您好!您即将出版的这本关于SQLSERVER.html" title=SQL Server>SQL Server 2005的新书,应该是国内第一本全面讲述SQLSERVER.html" title=SQL Server>SQL Server 2005的原创图书了。SQLSERVER.html" title=SQL Server>SQL Server 2005 Beta版距离发布到现在也就是一年多的时间,从时间上来说,您写《SQLSERVER.html" title=SQL Server>SQL Server 2005数据库开发详解》这本书是相当地超前。我想,读者们或许会有疑问,您是如何来创作这本书的呢?

百敬:

SQL" style="text-indent:19pt;">其实,早在2002年台湾微软举办TechEd研讨会时,他们就邀请我讲SQLSERVER.html" title=SQL Server>SQL Server 2005的设计理念,那时根本不晓得何时会出,以及产品正式名称为何,只知道Code NameYukon,以及它的目的为何。但从那时开始,其后,我在每年的TechEd都有一场关于SQLSERVER.html" title=SQL Server>SQL Server 2005的演讲,让自己一直关注着这个产品的动向。

SQL" style="text-indent:19pt;">或许因为自己有多重身份,既是认证教育培训中心的讲师、微软及多家厂商的顾问,又是作者、演讲者,因此微软会提供一些先期的信息给我,让我得以研究,以准备后续对各大企业项目的规划、导入、研发、调校和维护等。

SQL" style="text-indent:19pt;">SQLSERVER.html" title=SQL Server>SQL Server 2005总共出了16Beta版本,我大概测试了10个,外加两个中文Beta版本,昏天暗地中,不断地学习、比较、重测。信息技术是我的兴趣爱好,虽然忙碌和常常陷于对某项技术不知所云的焦躁和苦恼,但是强化了每有会意便欣然忘食的乐趣J

SQL" style="text-indent:19pt;">随着产品上市时间的临近,我除了赴美以及香港等地受训外,也开始积极准备国内的教育培训、编写演讲稿、专栏和教材。同时参与先期导入的工作,试行新技术以验证其优缺点。写书一直是我凝聚与沉淀技术的方式之一,例如以往在编写如《Microsoft SQLSERVER.html" title=SQL Server>SQL Server性能调校》、《SQLSERVER.html" title=SQL Server>SQL Server商业智慧圣经》(繁体版)等书的过程中,会强迫自己研究、试行、比较,这些与企业顾问的实战经验相辅相成。自2004 年底开始,一年多来,以聚沙成塔的方式完成《SQLSERVER.html" title=SQL Server>SQL Server 2005数据库开发详解》这本书,期待对新的观念与技术能有较深入的介绍。

Joylite

SQL0">谈到您以前的《Microsoft SQLSERVER.html" title=SQL Server>SQL Server性能调校》一书,不禁让我想起了当年拿到样书的兴奋之情。我以前从来没有看到哪本书能够从如何提高数据库设计和访问性能的角度来探讨数据库的设计以及数据库的查询效率。能请您再简单谈谈这本书么?

百敬:

SQL" style="text-indent:19pt;">早在16年前当学生时,我就以跑单帮的方式,用Quick BasicCDBASE IIIClipper等程序语言和数据库软件帮机构、学校、商店编写简单的数据处理程序。后来有幸进入到最大的中文报系——联合报系服务,开始处理企业级的数据问题,也展开了迄今约10年的MS SQLSERVER.html" title=SQL Server>SQL Server研究著述生涯。其间,一再碰到数据库的性能问题。可能原因很多,如设计不佳、累积大量数据、用户习惯改变等等。

SQL" style="text-indent:19pt;">数据库性能不好的原因千头万绪,如同汽车开到一半抛锚了,往往引擎盖一打开,对着复杂的机件束手无策。企业内信息系统的复杂度更甚于汽车,因为多个产品搭配组合,工程师们结合商业需求的智能结晶,还有成百上千的用户参与其中。细心、耐心、对技术的广度与深度的掌握,是性能调校工作的基本需求。

SQL" style="text-indent:19pt;">SQLSERVER.html" title=SQL Server>SQL Server SQLSERVER.html" title=SQL Server>SQL Server 2000版本进入到产品的成熟期,不论是功能,还是口碑,都很好。中大型企业的核心系统也渐渐采用了SQLSERVER.html" title=SQL Server>SQL Server,但因为应用经验不足,往往用一段时间之后,就会出现性能问题。

SQL" style="text-indent:19pt;">在代表台湾微软公司参与多个性能调校的顾问项目后,当时的SQLSERVER.html" title=SQL Server>SQL Server产品经理希望我收集资料配合实战经验,在教育训练中心开一门关于性能调校的课程,帮助SQLSERVER.html" title=SQL Server>SQL ServerDBA们处理这类问题。授课一段时间后,在大家的强烈要求下,整理编写了《Microsoft SQLSERVER.html" title=SQL Server>SQL Server 性能调校》一书供DBA参考,帮助他们了解性能不好的可能原因为何。

Joylite

SQL0">从《Microsoft SQLSERVER.html" title=SQL Server>SQL Server性能调校》一书中,我们看到了您多年经验的积累和总结。您是否可以谈谈目前这本新书《SQLSERVER.html" title=SQL Server>SQL Server 2005数据库开发详解》的写作思路和读者定位? 是否对新技术还会有相当深入的分析和比较呢?

百敬:

SQL" style="text-indent:19pt;">SQLSERVER.html" title=SQL Server>SQL Server 2005数据库开发详解》的定位是广泛地介绍SQLSERVER.html" title=SQL Server>SQL Server 2005的各项新功能,毕竟这是微软投入重金、1000多人耗时五年集结而成的旗舰产品,不是一时半刻可以融会贯通的,也不是任何系统都会用到所有功能。我相信渐渐地会像Office一样,大家都会选择自己想要用的局部功能。因此我想先写一本书,让大家知道SQLSERVER.html" title=SQL Server>SQL Server 2005关于开发的新功能,或是至少有个印象。毕竟,程序设计与数据库管理是我比较擅长的领域。

SQL" style="text-indent:19pt;">SQLSERVER.html" title=SQL Server>SQL Server在基本架构上一直是延续的,如它的数据库核心、T-SQL语言、安全基本架构,以及几个主要的服务,如:SQLSERVER.html" title=SQL Server>SQL Server ServicesAgent ServicesAnalysis ServicesReporting Services等,其功能角色不变,协作关系也非常清楚。

SQL" style="text-indent:19pt;">.NET技术和XML规格已行之多年,我从1999年开始研究XML2001年开始玩.NETSQLSERVER.html" title=SQL Server>SQL Server终于在这个版本提供了融合与统一,这会对那些正在犹豫是否要进入.NET/SQLIT从业人员有临门一脚的功效。

SQL" style="text-indent:19pt;">对于技术整合我一直非常有兴趣,学习与经验能发挥作用是淋漓畅快的,有豁然开朗左右逢源之乐,在技术间穿针引线自由挥洒。当实现出XML与关系数据可以一起显示在同一句查询语法中,或让网络上的数据可以通过.NET与本机数据库集成显示时,那种一致性的满足难以言喻。

SQL" style="text-indent:19pt;">通过SQLSERVER.html" title=SQL Server>SQL Server 2005数据库开发详解》这本书,我想将可能性介绍给广大的系统开发设计者和数据库管理员。技术的融合与成熟会让大家有更大的挥洒空间,发挥对信息系统的创意。这本书属于全面入门指引,对于各项技术的介绍不是特别深刻,这需要各领域在实际应用之后,累积数年的Best Practice,然后才能结晶出Design Pattern

Joylite

SQL0">SQLSERVER.html" title=SQL Server>SQL Server 2005的体系中,我们可以看到了很大的转变。甚至可以说是革命性的转变。一个是内嵌了对.NET的支持,同时对XML的功能进行了增强。您如何来看待这两点对SQL Sever 2005的转变?那么对于程序员来说,应该怎样才能适应这种转变?

百敬:

SQL" style="text-indent:19pt;">一直以来,IT人员都有多项技术选择,针对不同的应用方面,有着许多专属语言与开发技术,然后在特殊的平台与引擎上执行。工程师往往是一头栽进某个领域后,就偏好用该领域的技术解决所有问题,这设计到分析设计的逻辑偏好,开发、维护和管理的集成环境与团队默契。讲句题外话,所以刚进入职场选工作很重要,若将青春耗在没有前景的技术上,那是很可悲的。L

SQL" style="text-indent:19pt;">种种因素,导致编写Basic/Java/C等程序语言的人,在数据层不喜欢用SQL语法写存储过程、自定义函数、视图等,习惯于用程序语言直接访问基础数据表,解决所有数据处理的问题,这会丧失弹性、效率与安全。反之亦然,习惯于数据处理的人,听到非SQL语法的数据处理解决方案往往就会皱起眉头,惧怕其技术的复杂度,而这紧缩了数据处理应用的广度与深度。

SQL" style="text-indent:19pt;">现在,SQLSERVER.html" title=SQL Server>SQL Server 2005.NET的技术可以直接扩展到数据引擎核心,让技术人员有更多的选择,以单一技术涵盖更广泛的层面。但因为界限模糊掉了,在设计时就需要更谨慎规划,以取各项技术的优点来完成系统。因此我们先来讨论一下各项技术在不同应用时的优劣。

.NET开发的组件集成到SQLSERVER.html" title=SQL Server>SQL Server中有以下的好处:

SQL1">l 强大的程序逻辑.NET Framework中的类大都能够引用,藉以扩展SQLSERVER.html" title=SQL Server>SQL Server的功能。

SQL1">l 安全.NET在程序编写与执行环境安全上下了很大的功夫,相对于用C/C++开发出来的扩展存储过程来说,SQLSERVER.html" title=SQL Server>SQL Server执行根植于CLR的组件也就更安全与稳定。

SQL1">l 统一的开发与调试环境:由于Visual Studio 2005的便利性,将可提升开发SQLSERVER.html" title=SQL Server>SQL Server 2005对象的品质与效率,并让数据层与应用层的开发经验一致。

SQL1">l 性能和扩充性.NET是编译,T-SQL则是以直译的方式执行。所以较为复杂的商业逻辑用.NET的语言编写较佳。

SQL1">l 多语言选择:不管是Visual Basic,还是C#······只要熟悉该种语法,即可开发SQLSERVER.html" title=SQL Server>SQL Server的对象,而不像以往一定要凭借C/C++才行。

SQL" style="text-indent:19pt;">虽然用.NET语言开发程序有很多好处,但它仍无法取代SQL语言,以及纯以T-SQL编写的SQLSERVER.html" title=SQL Server>SQL Server对象。T-SQLSQLSERVER.html" title=SQL Server>SQL Server的原生语言,它无所不在,有其不可取代性。我们一般用T-SQL维护数据时,可以广泛地分成两类行为,一是数据查询与维护,也就是直接引用SELECT / INSERT / UPDATE / DELETET-SQL语法,另一类程序逻辑,也就是使用WHILESET、建立游标等语法。而大体来说,.NET是提供程序逻辑的另一种选择,数据查询与维护依然是以T-SQL为主。

SQL" style="text-indent:19pt;">搭配索引的数据集合导向运作(Set Orient),也就是批次大量数据处理,依然以T-SQL为佳,在访问数据时,应当尽量发挥T-SQL的功能。尤其是在SQLSERVER.html" title=SQL Server>SQL Server 2005大幅增加T-SQL的能力后,你应当先研究如何通过T-SQL完成需求,然后再以.NET CLR补其不足。若将所有的商业逻辑都搬进到SQLSERVER.html" title=SQL Server>SQL Server势必大幅增加服务器的负担,因此仍要慎选程序逻辑的执行位置。

SQL" style="text-indent:19pt;">由于.NET语言编写程序的特性,程序员很有可能习惯性地组织T-SQL语法然后传给SQLSERVER.html" title=SQL Server>SQL Server虽然.NET编写SQL对象存在SQLSERVER.html" title=SQL Server>SQL Server 2005之内,但依然是一句句独立的T-SQL语法交由查询引擎执行,查询引擎仍要解析、确认、建立执行计划等等。相之下,静态的T-SQL编写对象只有在第一次执行时需要建立执行计划,因而比较有效率。另外,若基础的数据维护,也就是单纯添加、修改和删除等操作,通过.NET编写的对象再传进SQLSERVER.html" title=SQL Server>SQL Server查询引擎,等同多了一层调用,速度一定比直接调用执行T-SQL慢。

SQL" style="text-indent:19pt;">最后,大多数的DBA听到SQLSERVER.html" title=SQL Server>SQL Server支持.NET后,第一个反应是如何关闭该功能,毕竟DBA要的是稳定与安全。以往若程序员开发的用户端应用程序有臭虫或安全漏洞,可能只危害到某个用户,就算系统崩溃或安全信息外泄也是该用户倒霉。但对于公司核心的数据库服务器,可能有多个重量级应用系统架构都依存于该服务器,若将有问题的组件植入,会危害到全公司,DBA不可不慎。

SQL" style="text-indent:19pt;">我们再来讨论一下你的第二个问题:XML

SQL" style="text-indent:19pt;">电脑的使用不外乎程序逻辑与数据,微软似乎正努力将数据的使用与XML画上等号J,毕竟XML先天具备易解读、标准开放、可扩展、跨平台的优点。而各厂家企业级的系统与应用程序也莫不与XML以及Web Service整合。如何管理日益庞大的XML数据变成需要慎重考虑的课题。

SQL" style="text-indent:19pt;">SQLSERVER.html" title=SQL Server>SQL Server 2000版本就已经增加了对XML的支持,然后也一直以SQLXML单独安装文件,通过Web下载的方式提供新增的功能。而在SQLSERVER.html" title=SQL Server>SQL Server 2005大幅增强了XML数据访问的功能。

SQL" style="text-indent:19pt;">例如,新增原生的XML数据类型(Native XML Data Type),可以为该类型的变量或数据字段定义XML Schema来验证数据的输入与更新的正确性。通过业界标准XQueryW<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="C">3C</chmetcnv>委员会正在审核)来查询XML数据,特别的Infoset-Based结构索引,藉以提升查询XML数据的效率。

SQL" style="text-indent:19pt;">搭配XML数据类型与XQuerySQLSERVER.html" title=SQL Server>SQL Server 2005是一个全新的里程,为了有效处理XQueryT-SQL并行的执行计划,SQLSERVER.html" title=SQL Server>SQL Server的查询最优化引擎必须要重新改写,以最优化这两种截然不同的数据类型一起访问。在目前,我们踏入这种全新的应用模式,在验证过的最佳使用模式的经验尚未被大家建立起来之时,正是各种想象力奔放的时候。或许现在SQLSERVER.html" title=SQL Server>SQL Server 2005XML引擎尚未提供最佳的性能,但随着软硬件技术的推移,相信性能将不会是问题,而数据使用模式将出现全新的风貌。

Joylite

SQL0">我一直有一个疑问。在使用.NET程序来编写存储过程、自定义函数、以及触发器之后,原有的设计模式是否会改变?也就是说,从性能或者易用性等角度来看,程序员在设计数据库逻辑的时候,是否需要有非常大的改变?如传统的展示层 →业务逻辑层→数据库(存储过程)→数据库,是否可能会转为:展示层→业务逻辑→..Net数据访问逻辑→数据库?是否需要新的经验才能适应这种开发方式?

百敬:

SQL" style="text-indent:19pt;">程序设计的模式从未固定过,随着信息技术日新月异,商业模式推陈出新,两者互相引动,让信息工作者疲于奔命。在企业主管来看,IT不变就是怠惰。而如何在对的时机,设计出弹性的架构,引进适合的技术,尽量发挥既有投资,又可以配合潮流演变,这是困难处。随着选择性变多,我们需要宏观的架构工程师,以指引团队的方向。但我要强调的是设计是巧思,是艺术,不要为技术而技术,KISSKeep It Simple and Stupid)是不变的原则。没有绝对的好技术,只有合用的技术。别忘了,探讨合用时,还需要包括人员对该技术的掌握能力、技术前景、相关系统的整合配套能力、拥有成本等等。对内的仔细审视,因势利导,比追潮流重要得多。

SQL" style="text-indent:19pt;">设计系统时,层次分明(Layer)很重要,或许实体上并没有多台机器,但逻辑上依然要区分清楚。你的题目点明了一般的基本层次,但哪一层要用何种技术?由于层与层间界面的标准化,让选择充满弹性。毕竟你还要兼顾上述团队成员的技术成熟度,整体拥有成本(TCO)等诸多方面。或许目前迫于某些形式,而用某项技术完成某一层,但若设计得好,以后都可以轻易地替换掉。至于 .Net数据访问逻辑,如同我在前一个问题强调的,依据用户商业逻辑的需求而决定。但就系统架构师和程序员而言,他要具备这个能力,设计系统时才能够做正确的决定。但因为商业逻辑的需求差异,这个层级并没有必然如何的使用方式。

SQL" style="text-indent:19pt;">

SQL" style="text-indent:19pt;">

Joylite

SQL0">SQL Sever 2005中,对传统的Reporting Services以及DTS做了很大的改进。分别独立出了Reporting ServicesIntegration Services。以您的经验来看,功能的增加对现在程序员是否提出了更高的要求呢?

百敬:

SQL" style="text-indent:19pt;">这要看该程序员所负责的工作,若是负责数据处理以及显示,影响会很大。尤其对于大型企业,数据的整合与显示是非常沉重的负荷。就我亲身的授课与顾问经验,不管是在美国还是台湾,DTS简单易用,都是数据整合的要角。

SQL" style="text-indent:19pt;">对于你这个问题,我也分两方面来谈,首先是Reporting Services,报表一直是各信息系统所必备的,企业内各层次的人员都有不同的报表需求,所有信息系统或多或少都有报表的产出。因为用途广泛,用户参差不齐,所以报表系统的成本必须低廉,可访问各种数据来源,其开发环境的功能丰富但操作直观,维护容易,还要让程序设计人员易于将报表整合在自己开发的应用程序中。

SQL" style="text-indent:19pt;">报表在新兴的商业智能领域更是兵家必争之地。微软报表服务在20041月推出后,由于简单易用,系统架构具备扩充性,符合各类型企业的需求,且版权费用算在SQLSERVER.html" title=SQL Server>SQL Server之上,因此立刻广泛地流行开来。

SQL" style="text-indent:19pt;">Reporting Services的设计诉求是报表平台,而非仅是程序设计员开发应用程序时,辅助提供一两张报表的工具。它支持报表的全生命周期管理,从设计、管理、使用、派送到扩展开发一应俱全。Reporting Services 2005再次加强了与用户交互的界面与报表设计环境,扩增数据源的弹性。另外新增一般知识工作者可用的报表设计环境Report Builder,并提供程序开发者方便使用的Report Viewer控制项,让报表服务的用户可以用更简单的方式完成更丰富的功能。期待它可减轻我们有做不完的报表的无奈,能满足用户永远需要新增修改报表的需求。

SQL" style="text-indent:19pt;">再就Integration Services而言,当你有各种数据格式或内容需要转换、整合,将数据搬有运无,也就是有不同的数据源与目标时,你可以通过文本文件、ODBCJDBCOLE DB.NET Data Provider等,搭配程序或工具来互相转换数据。

SQL" style="text-indent:19pt;">在以往当我们要把其他系统的数据,如大型主机上的文件、dBase/Clipper/FoxPro.dbfExcel.csvAccess/Jet.mdb乃至于SQLSERVER.html" title=SQL Server>SQL Server/Informix/DB2/Oracle等数据库,或是.html/XML文件彼此互转时,都需要自己动手编写程序,而这些转换的操作往往还特别需要注意错误处理,将有错误的记录另外存放起来供事后查看等。因为不同系统的需求不同,且新旧系统或是其他非数据库系统在设计时,大都没有注意到关系数据库的正规化以及一些相关的需求,所以数据内容很可能不符合我们所定义的数据规格。为了提供数据整合更佳的效率,更丰富的功能,SQLSERVER.html" title=SQL Server>SQL Server 2005放弃了之前相当成功的DTS,改用.NET完全重新改写,务求提升性能和增添更丰富的功能。

SQL" style="text-indent:19pt;">SSIS从核心重新开发,成为脱胎换骨的新产品。其中最大的变革之一是将流程管理与数据转换分成两大引擎来处理。这提供了较佳的流程管理与数据处理的细节可见度,同时增加了用户自行编写程序扩展SSIS的方便性。新版本在执行程序的流程管理、错误处理、对象设置、调试、部署、执行记录、效率等方面都有长足的进步。

SQL" style="text-indent:19pt;">整合数据与显示报表是数据处理人员日常的业务,随着系统变多,数据量巨幅累积,需求琐碎、变化多且繁复,如同凿山开隧道,不可能再标榜用圆锹,榔头徒手蛮干。数据整合与显示也不再是程序设人员日夜hard coding可以应付得来的,强大的工具将不可或缺。

Joylite

SQL0">SMOSQLSERVER.html" title=SQL Server>SQL Server 2005里面提出的一个新的功能。让程序员有了可以通过.Net控制SQLSERVER.html" title=SQL Server>SQL Server 2005的各种对象的能力,您觉得这种功能的提出意味着什么呢? 这些功能将主要应用在何种场合呢?

百敬:

SQL" style="text-indent:19pt;">若想要自行编写类似SQLSERVER.html" title=SQL Server>SQL Server 2005SQLSERVER.html" title=SQL Server>SQL Server Management Studio管理程序,以及通过WMI管理SQLSERVER.html" title=SQL Server>SQL Server旗下的各种服务,如SQLSERVER.html" title=SQL Server>SQL Server Configuration Manager。也就是你想要将管理功能整合在自行开发的程序中,就需要SQLSERVER.html" title=SQL Server>SQL Server提供的管理对象。

SQL" style="text-indent:19pt;">SQLSERVER.html" title=SQL Server>SQL Server 2005将管理对象由以往的DMODistributed Management Object)换成了SMOSQLSERVER.html" title=SQL Server>SQL Server Management Object)。前一版的DMO是遵循COM规格开发而成的,而SMO则是架构在.NET Framework 2.0上,你可以通过其丰富的类完成各项管理工具所提供的诸多功能。SQLSERVER.html" title=SQL Server>SQL Server 2005为了向前兼容,依然支持 DMO,但功能不如 SMO 完整,因此,若你想要自行编写程序来管理SQLSERVER.html" title=SQL Server>SQL Server 2005,还是研究SMO比较好。

SQL" style="text-indent:19pt;">

SQL" style="text-indent:19pt;">

Joylite

SQL0">SQLSERVER.html" title=SQL Server>SQL Server 2005中,XML的加入以及XML存储格式的加入,您觉得意味着什么?这种功能的加入是否对表的设计、索引的设计等带来了更高的要求呢?这样的功能结合ADO.NET 2.0对现有开发模式的冲击是什么?

百敬:

SQL" style="text-indent:19pt;">SQL/XML/ADO.NET 2.0提供整合的XML处理,让系统设计与程序编写都有更佳的选择。但是否有冲击,这要看你怎么用XML了。我无法评估对你的冲击,但解释一下技术选择的关键点,让你自行抉择J

SQL" style="text-indent:19pt;">


http://www.niftyadmin.cn/n/600942.html

相关文章

培养编程兴趣学易语言还是c,怎么培养对编程(c++)的兴趣以前拉下了,看周围的同学编程都挺厉 爱问知识人...

也许我回答这个问题不太适合&#xff0c;因为我从小就对这个感兴趣。。。不过我还是说一下自己的想法吧。。首先&#xff0c;最好不要把编程当成是一个任务。。。。也许大家都有这种感觉吧&#xff0c;我最初学编程的时候&#xff0c;是因为看到别人写程序&#xff0c;很感兴趣…

VS2015+QT5.6.1环境配置后,在VS中双击无法打开*.ui文件

在环境都搭建好以后&#xff0c;在VS中新建了一个QT界面工程。 双击*.ui后&#xff0c;期望得到Qt designer那种直接进入拖拉控件进行编辑的操作界面。but 并不能得到预期结果。 解决方法如下: 第1步&#xff1a; 在【解决方案资源管理器】中&#xff0c;右击你的 xxx.ui文件&…

swift版的StringAttribute

swift版的StringAttribute 效果 源码 https://github.com/YouXianMing/Swift-StringAttribute // // StringAttributeProtocol.swift // Swift-StringAttribute // // Created by YouXianMing on 15/10/8. // Copyright © 2015年 YouXianMing. All rights reserved. /…

c语言json数组转字符串数组中,在C#中将字符串数组转换为json对象

我建议使用Newtonsoft.Json NuGet包,因为它使处理JSON变得微不足道.您可以执行以下操作&#xff1a;var request new String[2];request[0] "Name";request[1] "Occupaonti";var json JsonConvert.SerializeObject(request);哪会产生&#xff1a;[&quo…

上海大学c语言吉米试题,求c语言大神学长学姐解答题目

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼【问题描述】验证哥德巴赫猜想&#xff1a;任何一个大于6的偶数均可表示为两个素数之和&#xff61;例如&#xff0c;633&#xff0c;835&#xff0c;…&#xff0c;18513&#xff61;要求将6~100之间的偶数都表示为两个素数之和&a…

MIS 工業化...路漫長

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/46860.html" frameborder"0" width"468" scrolling"no" height"60"></iframe>花了一天時間&a…

QT两个子线程之间通过信号-槽通信

假设两个子线程A、B均是通过继承Object类然后使用官方推荐的moveToThread方式创建的。B线程中的work函数内有个while大循环&#xff0c;在里面不断的轮询做某事。 while(running true) { //do something } QThread* threadObjThreadA new QThread(); threadObjA new ScanTh…

c语言获取线程返回值,如何用C语言实现多线程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Windows操作系统&#xff0c;C语言实现多线程&#xff1a;#include #include DWORD APIENTRY ThreadOne ( LPVOID threadArg ){printf ( "线程开始啦&#xff0c;参数是&#xff1a;%s\n" , (char *)threadArg );return …