A. 如何使用WCF调试器WcfTestClient.exe
在VS Studio Command命令行 窗口里 直接输入 WCFTestClient 即可启动
但是 VS2008要求 提供 元数据地址
VS2010不需要,直接可以启动后在输入服务 元数据地址
B. 如何配置net.tcp 的WCF服务
1部署IIS1.1安装WASIIS原本是不支持非HTTP协议的服务,为了让IIS支持net.tcp,必须先安装WAS(),即windows进程激活服务。打开控制面板--程序和功能--打开或关闭windows功能,安装WAS,安装完毕后在Services窗口中可以到到如下服务:;Net.MsmqListenerAdapter;Net.PipeListenerAdapter;Net.TcpListenerAdapter;Net.TcpPortSharingService.这几个服务。确定Net.TcpListenerAdapter与Net.TcpPortSharingService是否已经启动。1.2确定WCF是否启用Non-Http支持同样是在控件面板中打开这个功能1.3给站点添加net.tcp绑定在IIS中,选中网站,然后在右边的操作菜单栏中单击绑定,会弹出一个“网站绑定”窗口,点击添加,类型选择net.tcp1.4启用net.tcp协议选择网站,点击“高级设置”,弹出的的窗体中,在“已启用的协议”一栏中手动添加:net.tcp2测试服务2.1新建服务用VS2010新建一个WCF服务,为了简单,我就直接用VS默认生成的作测试了。只有一个GetData方法下面是配置的Config:ViewCode2.2发布服务将服务发布到IIS,在浏览器中访问服务,如果访问正常就说明服务部署成功,2.3测试服务新建一个控制台项目,测试服务。添加服务测试服务正常。3遇到的问题问题1:找不到具有绑定NetTcpBinding的终结点的与方案net.tcp匹配的基址。注册的基址方案是[http]。这可能是网站中没有启用net.tcp协议所到致,也就是少了上面的1.4.问题2:未找到URI“net.tcp://gyoung/Service1.svc/mex”的兼容TransportManager。这可能是因为使用了指向虚拟应用程序外部的绝对地址,或终结点的绑定设置与其他服务或终结点所设置的绑定设置不匹配。请注意,同一协议的所有绑定在同一应用程序中应具有相同的设置。这个问题并没有找到真正的原因,应该是binding设置的原因,原先的binding配置是:这样的话会出现上面的错误,但当我将后面四个节点去掉后,即变成:就没有报这个错误了。问题3:有没有必要绑定host地址:之前我在service节点下有增加host地址但发现这根本不起作用,因不不管我怎么设置,最后我的net.tcp地址都是上面那个,是我设置有错误?补充一点:如果你的Silverlight程序无法调用net.tcp服务,可能是你少了跨域文件:clientaccesspolicy.xml将clientaccesspolicy.xml放到IIS的根目录:C:\inetpub\wwwroot中,因为SL默认只访问80端口,所以要增加这个文件。
C. VS2005和VS2008做的项目有什么区别
测试环境windows xp sp2 :界面比VS2005更加美观大方。加载速度比较快,运行速度与耗占资源基本和VS2005持平。JavaScript 可以智能感应。自带AJAX 不需要单独安装。出现新的技术 LINQ 多了ListView 和 DataPager 控件。安装使用 Silverlight 技术 比 vs2005方便
VS 终於可以支援巢状 Master Page 的 WYSIWYG 设计了!我不知道有多少人曾经为了这个原因而减少或避免巢状 Master Page 的使用(我是其中之一)。VS2008 终於支援这个本来就应该有的功能,相信能在某一程度上改变大家的设计习惯.
其次,VS2008提供了 CSS 的即时编辑和套用的功能。用过 DreamWeaver 的人或许了解那是什麼意思。不过实际上我觉得 VS2008对 CSS 的支援感觉起来比 DreamWeaver 强大一点。
此外,VS2008 还提供了和 FrontPage/DreamWeaver 一样的 Split View,也就是可以开一个分割视窗,同时看到设计画面和原始码。我想这个功能在拉画面和设计前端页面时非常有帮助。
2. 支援对 JavaScript 的除错与 Intelisence
随著 Ajax 的风行,客户端程式设计也逐渐受到重视。我还记得多年前在 VS2005 上市前的一场 MVP 线上会议中,我向美国微软的开发经理问到会不会支援 JavaScript 的 Intelisense,答案是不会时,心里有多麼的失望。但晚到总比不到好,我认为这个功能的加入,一定能让所有网站开发者同感高兴。
3. Multi-targeting 功能
第一次看到这个新名词可能会另人有点摸不著头绪,像我还以为是一个 HyperLink 控制项可以一次把网页开到 _blank 和 _top。其实跟那个一点关系都没有,而是让你可以选择新的专案到底是要支援 .Net 2.0 / 3.0 还是 3.5。不管你选择哪一种,VS2008 会根据你的选择提供对应的 Intelisense、控制项和其它功能。但不管你指定哪一个版本,并不会让 VS2008 的基本功能回到 VS2005。换句话说,上面提到的像 JavaScript 除错等新功能都仍然可用。
4. 内建 Ajax,不需另外安装
5. 加入两个新的资料控制项:ListView 和 DataPager
6. 内含 LINQ
VS 2008将支持嵌套母版页面
ASP.NET 2.0种最引人称道的一项新特性就是母版页面(Master Page)。母版页面将作为网站的风格模板,允许我们很容易地统一整站的样式。不过VS 2005在对其支持方面做得却并不算好——它无法支持嵌套的母版页面。
对于那些拥有超过一种布局的大型网站来说,嵌套母版页面非常有用。否则开发者就必须手工协调每个母版页面,以便让其中的公共内容保持(例如横幅广告和版权信息等)一致。
而事实上,ASP.NET 2.0早就内建了对嵌套母版页面的支持。不过在Visual Studio 2005集成开发环境中,这个特性却一直无法使用。好在Visual Studio 2008终于对其添加了支持,开发者很容易即可切换到这种编程模型中,同时也不必担心失去任何IDE内建的辅助支持。
需要注意的还有,因为嵌套母版页面的功能内建在ASP.NET 2.0中,所以开发者无须在产品服务器上部署.NET 3.5,只要确保项目在.NET 2.0中编译即可。
Visual Studio 2008 十大新功能
No.1 代码中插入图片,而且它可以被Notepad进行编辑?
是神话么,不是。它实际上是在注释中加入了另一个标签,其标签指向当前解决方案的的一个图片链接正如下面的样子
/// <img> ref = /img/img01.gif </img>
很好,它的确可以被NotePad进行编辑。为什么要供这个功能? 呵呵,当你维护一段代码时,你首先是想是了解它是如何来组织程序的,当然你可以通过文字描述,类视图等等来了解,或者也是我们常用的写一个说明文档,然后放入另一个DOC的目录,然后过了一两年,你,噢不是你,是你现在的手下发现找不到那个文档了!文档中插入图片,一目了然。 其实类似的功能还有几个,象/// <docfile> </docfile>
No.2 完美的代码段编辑器
我已经很烦写#region之类的东东了,在VS2008中如果你想要对一个函数进行具体编码你只需要按快捷键就可以进入代码段编辑器,其实早在古老的VB6.0中就有的,只是它还是在同一个窗口里,但是这次有点不一样,它是另个一个窗口。现在有两个窗口了,一个全部代码的窗口,还有一个是本函数的窗口,而且它是浮动的,下面的窗口也可以进行滚动。
所谓完美,当然不只是这个功能,它还包括相当好的注释编辑,以及代码自动生成,呵呵还有微软内部的类似源代码,居然还是中文的,呵呵。
No.3 兼容linux平台检查
这个特性并不是微软主动想要来做的,没办法,市场逼得他这样做。一帮高手在linux下推出了linux平台下的.net环境,呵呵,而且居然形成了标准,MS坐不住了。比尔在一个星期一的早晨把VS2008的项目经理NB007叫去要他想点办法,于是NB007又把他手下这帮人叫来开了个会,据说那天是2007-4-1日,因此这项检查在微软内部的名称叫"愚人节标准",在MS对外的名称叫做 CLX兼容性检查,对了在这里你不能使用System.windows.forms这个命名空间,你必须使用System.Xnix.Forms,它可以在多种Unix/Linux下使用。
而且基于这个特点,你可以在Windows平台下编辑你的代码,然后可以模拟Unix/Linux平台运行,不过好象还有点小bug,总是在最后弹出一个对话框:
“Warn: M$建议你在Windows下运行此应用程序!"
No.4 即时交流功能
其实这个功能是在企业版才有的,而且只局限于局域网内,它需要一个Server中心。企业版在其他国家都比较贵,而且这个功能需要另外付费1000$。在中国,企业版只要五元,这个功能是免费赠送的,而且可以在Internet上使用。据说是一个0day组织用ILDASM改动了一些代码。
它的作用其实就是当你在写代码时可以和朋友讨论问题,当然你也可以选择隐身!
No.5 更漂亮的界面,透明,真正的3D
如果你要发挥VS2008的界面效果,一定要安装Window Vista,并且需要Patch3,在VS2005及以前的版本中,界面只是好看而已,这个版本体现了Window 界面项目组的专业水平,以前可以叫浮动 的窗口,现在叫悬空,效果你安装后就知道了。对了,还有一点点小要求,MS推荐配置
CPU :PⅦ 4.0T(群核处理器)
内存:64 T
硬盘:128T
No.6 大幅提升的Visio功能
现在你不需要完全用手写代码,只需要在Visio中画一个一个的类,对象,关系图等等。然后选一定一个生成模板,就可以基本生成一个应用程序(因为这个原因,众多的软件学院添加了计算机制图这门课程,还不是选修)。其实我是比较喜欢这个功能的,不过有一点点小问题,生成的代码性能不是很好,需要手工进行优化,MS在它的网站上宣告在下一个版本中它会提供更多的应用模板,分类更加细致等等。
No.7 超多的专业控件
以前VS跟Delphi(现在它叫 Siphi,由Sun,IBM联合开发)比,总是它的控件不够,这次MS花了血本制作了上千个控件,象ComboBox就有多达三十多种的变种控件,并且你可以上MS的网站检索 更多的控件,你也可以向MS提交你自已写的控件,并且向世界共享。
N0.8 内嵌汇编
其实这算不上一个很好的功能,不过有人需要,也就提供了。你可以嵌入IL代码或者本地汇编代码,不过如果嵌入了本地汇编代码,C#4.2会提出一个编译警告。
asm:IL{ .... } asm:Native{ ... }
No.9 强大的配套工具
多种功能强大的工具,包括内存图形器,压力测试工具,性能分析器,还有一个Java2CSharp的工具,能够转换95%以上的代码。 对了,终于MS推出了自已的混淆器,功能强大,但是MS说明在某些场合可能出错。
No.10 命令行爱好者的福音
如果你实在喜欢命令行,喜欢写批处理,这个也会令你激动不已。因为微软里面也有一帮古怪的老家伙,不喜欢集成环境,而一定要用DOS下的Edit来编写一个Make文件,然后写一个批处理,我是不喜欢DOS的,因此没用过。不过可信的是在VS2008测试版发 行的头个晚上一个叫 EditCrazy.Dos的家伙把他用汇编写的一个可以方便选择编译的选项的工具MakeTemplate.com放入了光盘的母版中。
VS2008 Web开发使用的新特性
.NET Framwork 3.5与Visual Studio 2008 包含很多新特性。AJAX的Web开发人员支持与综合查询语言(LINQ)是其中最重要的更新。此外还包含一些新的服务器端控件以及客户端对象库。Visual Studio对JavaScript也有了完整的只能感知。
下面主要是描述ASP.NET与Web开发Visual Studio的新特性。
1、 ASP.NET的新特性
· 新服务器控件、类型与客户端脚本库的推出方便开发人员开发AJAX类型的的Web应用程序。
· 扩展的服务器安全认证,角色管理,以及可被销毁的profile services。(不知道这句翻译的对不对)
· 推出新的ListView数据控件以支持更好的界面自定义。
· 提供LinqDataSource控件作为Linq与服务器控件的数据接口。
· 新的merge工具(Aspnet_merge.exe)使我们更好的发布应用程序。
· 新提供的Framwork3.5与IIS7.0集成。
AJAX支持.现在你可以根据你的需要方便的创建服务器或客户端或者两者结合的Web页面。
· 扩展AJAX的服务器控件,包含ScriptManager、 UpdatePanel,、UpdateProgress, 和 Timer controls。这些控件帮助我们使用少量的JavaScript创建类似与富客户端应用的页面异步刷新。
· 不受浏览器限制的支持客户端对象应用的AJAX库。除此之外这个库支持你开发自定义的客户端组件。
· 服务器控件可以访问公开的自定义客户端组件的事件和属性通过实现IExtenderControl 或IScriptControl 接口。
· 支持客户端脚本的全球化和本地化。
现在.NET支持我们简单的实现界面的局部刷新,以避免高价的全页面刷新。我们只需要将现有的控件用UpdatePanel控件包裹起来。页面回调可以在UpdatePanel内变为异步的并且刷新这部分被包裹的页面,以此提供流畅的用户体验。同时我们还可以使用UpdateProgress来显示局部页面的更新进程。
Web 服务和 Application 服务.NET Framwork 3.5 允许我们创建基于ASP.NET的WEB服务(.asmx)和基于WCF的Web服务供使用了AJAX库的Web页面的客户端脚本调用我们还可以调用包含在Web服务内部的的服务器Window服务。
You can also call server-based application services that are exposed as Web services, which includes forms authentication, roles management, and profiles. These application services can be consumed in WCF-compatible applications, which includes AJAX-enabled Web pages and Window Forms clients. As a result, applications that are built with these ASP.NET or WCF technologies can share information that is made available by application services. For more information
ListView 数据控件 Control这个控件集成了很多现在控件的特性,类似与DataList 和 Repeater 控件。不同的是ListView支持编辑,插入,删除操作。翻页功能则通过新的DataPager控件来提供。
ListView控件通过模板与样式提供很好的自定义特性来显示控件界面。跟Repeater, DataList, 和 FormView 控件一样,模板都不是预定义好的界面外观。
DataPager控件DataPager控件用来为实现了IPageableItemContainer接口的控件提供分页(像ListView控件)。我们可以来指定NumericPagerField对象,NextPreviousPagerField对象,来实现翻页方式。同样的我们使用TemplatePagerField对象来自定义分页界面。
LinqDataSource控件LinqDataSource控件用来暴露Linq的数据结构体系给数据控件。当我们使用LINQ来建立数据对象模型的时候可以使用该控件。使用该控件我们可以简单的来执行数据操作。使用LinqDataSource控件比我们使用SqlDataSource与ObjectDataSource操作数据需要编写更少的代码。使用LinqDataSource我们可以方便的创建一个与数据库或数据集合的数据连接。通过LINQ模型我们可以详细指定显示、筛选、排序和分组的数据的方式当。当使用一个SQL数据源的时候我们不需要去写SQL脚本来执行获取、插入、删除、更新操作。LinqDataSource类提供一个事件模型支持我们自定义显示更新事件。
ASP.NET Merge 工具ASP.NET merge tool (Aspnet_merge.exe)帮助我们管理程序集。这个工具发布时间跟Visual Studio 2005一样早。我们可以使用它为这个站点、每一个Web站点或站点的一部分创建程序集。
LINQ在开发中的地位?
DLINQ *.dbml文件该属于哪一层,的确Linq to Sql存在问题,DLINQ中,虽然可以在语言层级定义查询逻辑。但是依然没有将数据库持久化数据映射为领域对象,所以还是一种针对数据库的编程模型。
LINQ是微软将在C# 3.0中将推出的语言集成查询技术,许多人也将LINQ叫做微软的ORM。LINQ不仅仅针对关系数据库,它只是解决一个问题Data!=Object,也就是说他解决的就是Data=Object.。作为底层框架,可以为ORM实现提供更强大的基础平台。在Linq之前在.net领域最流行的框架就是Nhibernate。是不是在LINQ之后Nhibernate就要消失呢?答案自然是否定的。
有个帖子Microsoft LINQ + NHibernate:
在那篇帖子中,作者列举了三大原因:
在DLINQ中,虽然可以在语言层级定义查询逻辑。但是依然没有将数据库持久化数据映射为领域对象,所以还是一种针对数据库的编程模型。而Nhibernate则可以直接将关系数据映射为领域模型,这是DLINQ的主要问题。
DLINQ不支持继承类的映射。
Nhibernate已经提供了许多帮助进行领域面向对象建模的特征。而DLINQ目前还无法拥有。
而LINQ + NHibernate的好处则是:
类型安全的查询,并且能使用智能提示功能!这样可以不用学习HQL了。
能获得所有NHibernate所拥有的能力。
假如你已经从数据库中查询出了一个数据集,那么可以使用LINQ来进行过滤,排序和分页操作。
从原理上来说,DLINQ是将Lambda查询表达式解析为SQL语句:DLINQ => SQL,而NHLINQ则是将Lambda查询表达式解析为HQL语句:NHLINQ => HQL。
开源社区的智慧是无穷的,并且和微软也不是你死我活的关系。反倒应该是一种互相补充的关系。开源社区可以做一个.net framework这样大的东西Mono,开源社区的这些闪烁的创造性思维火花也为沉闷的软件开发带来了很多灵气。也保持了我们这些没有多少机会能做创造性工作的普通程序员的一些创作热情!
LINQ没有提供在多层应用程序中应用的功能,这一个功能可以通过序列化Expression Tree 来解决,Expression Tree 就可以通过Remoting或者WCF发布出去,正好有一个开源项目解决这个问题:http://www.codeplex.com/interlinq。这个项目也包含着上面所说的NHibernate.Linq. net framework 2.0,3.0与3.5三个版本之间关系如下:
.net framework 2.0 = CLR 2.0 + FCL(framework class library)
.net framework 3.0 = .net framework 2.0 + SP1 + WPF + WCF + WF + CardSpace
.net framework 3.5 = ..net framework 3.0 + SP2 + new compiler
这三个版本framework的CLR都是2.0,因此,asp.net的runtime还是只有1.1和2.0,像Linq这些新功能其实只是用新的编译器加上一些新的类库来实现的,3.5版本并没有对CLR做大的升级。
VS2008支持在2.0,3.0和3.5三种版本下开发项目,VS2005的项目可以平稳的升到VS2008上,在VS2008下做VS2005的项目,用的编译器和类库同VS2005都是一样的,但是提供了更好的开发环境。
D. WCF 在配置文件中设置 maxReceivedMessageSize 不起作用
<apping></apping>什么的
中间
from = 'true'
E. VS 2008调试时 无法按F11进入方法内
F10 本来就是无法进入方法体内的。 F10是指向下一行的。F11才是进入方法内。 F12也是。不过F11就带调试点进入方法,而F12是直接进入方法内不带调试。 还有就是确保您打断点的方法,在编译运行的时候经过。