通过t4模板结合XML定义文件生成MVVM中的Model Entity Class 代码 在之前的两篇文章,我针对MVVM项目实践中如何简化Model和ViewModel类型的编码工作,提供了两种不同的方法。它们分别是 如何利用AOP简化MVVM中Model和ViewModel的设计 http://www.cnblogs.com/chenxizhang/archive/2011/06/24/2089392.html 如何利用Interception简化MVVM中的Model和V
XMLDatabase项目已经发布到nuget gallery 如果你在使用Visual Studio 2010,你应该了解nuget。如果你还是不了解,可以参考下面这些介绍 http://zzk.cnblogs.com/s?w=nuget 今天介绍一下,之前我开发过的一个开源数据库项目(XMLDatabase)也已经发布到了unget gallery,有兴趣的朋友可以在项目中使用 该项目的永久位置在:http://xmldatabase.codeplex
如何利用Interception简化MVVM中的Model和ViewModel的设计 这一篇是“如何利用AOP简化MVVM中Model和ViewModel的设计”一文的姊妹篇。阅读本文之前,请一定要先阅读上一篇,否则你可能对有关问题理解不深。 上一篇说到,我们可以用AOP的方式,具体来说,我们使用了一个第三方的框架(PostSharp)来实现了代码注入。PostSharp的方式是静态注入,它是需要改变IL代码的。 请看下面这个截图,Customer类型里面的IL代码其实是被改过
如何利用AOP简化MVVM中Model和ViewModel的设计 这一篇谈一个MVVM中的一个虽然小但却很实际的问题,就是如何简化Model和ViewModel的设计。这是我们在项目中总结提炼的一些做法。 【备注】关于MVVM的概念,并不是本文的重点。如果你对MVVM还不熟悉,可以参考这里。关于MVVM与之前的MVP,MVC设计模式的渊源和比较,还有目前主流的几个MVVM框架的大致情况,我最近可能再会抽时间另外整理一篇,有兴趣的朋友关注一下。 有用过MVVM的
在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构 这是项目中一个页面上的一个功能。我们需要在界面上通过一个TreeView控件显示一个递归的树状结构,也就是说会很多层嵌套的节点,而且层数是不确定的。 这个功能,可以通过HierarchicalDataTemplate来很方便地实现 1. 业务实体 作为举例,我定义了一个大家都很熟悉的Folder类型,即文件夹。我们都知道,文件夹又可以包含子文件夹,而且可以多层嵌套。所以,这是一个递归的结构体。
WCF技术的不同应用场景及其实现分析(续) 上一篇 我总结介绍了WCF技术的背景,核心要素,和典型场景,目的是希望让大家更好地掌握WCF技术,并且在工作中知道如何选择。 由于篇幅较长,这一篇继续写完第二部分。 应用场景: WCF 从发布到现在的将近5年左右的时间,经过了多次增强和改进,从最开始单纯的SOAP Service的方式,发展出来其他多种应用场景,分别是 1. SOAP Services 2. WebHttp Services 3
WCF技术的不同应用场景及其实现分析 这一篇文章,是总结一下WCF技术,以及基于这个技术发展出来的几个典型应用场景,并且我将尝试对这些不同的WCF实现的原理进行一些比较分析。 关于WCF这个技术的基本概念,如果你不是很清楚,可以参考一下有关的文档 微软开发者中心 http://msdn.microsoft.com/en-us/netframework/aa663324 我的博客中先前也有很多这方面的介绍 http://zzk.cn
如何理解IIS 7的两种应用程序池的管道模式(Managed Pipeline Mode) 之前我写过一篇博客文章,讲的是.NET 4.0的应用程序部署问题。有网友问到一个相关问题就是:如何理解IIS 7中的应用程序池的管道模式,尤其是如何理解“托管模型(integrated mode)”,今天特意再写一篇文章来介绍这个问题。 IIS 7是微软最新版本的IIS版本,从Vista开始提供,目前在Vista,Windows 7,Windows Server 2008中提供。这个全新的版本
RIA Service 的 SOAP EndPoint 越来越多的朋友都在使用Silverlight开发应用程序,其中我们常用的还会有一个特殊的服务,就是RIA Service,具体来说,它是一个所谓的Domain Service. 关于这个服务的基本概念,如果有不清楚,请参考下面这个网址 http://www.silverlight.net/getstarted/riaservices/ 今天这一篇是要谈谈一个问题,就是如何让RIA Servic
在jquery中处理带有命名空间的XML数据 这一篇记录一个小技巧。 如果你在做AJAX应用,则你可能经常会用到jquery(或者其他框架)处理服务返回的数据。如果用Jquery处理Json格式,将是相当方便的。但不幸的是,很多服务返回的数据仍然是XML格式的。 jquery对于xml这种数据的处理是内置支持的,这一点没有任何问题。但前提是返回的数据没有带任何命名空间。例如下面这份数据"1.0" encoding="utf-8" ?>
再谈谈ADO.NET Data Service 数据格式(xml和json) 去年的时候,我写过一篇文章,介绍如何让ADO.NET Data Service返回json数据格式。如果有兴趣,可以参考下面这个链接 http://www.cnblogs.com/chenxizhang/archive/2010/10/27/1862898.html 近日被网友问起,为什么这个成熟的框架(ADO.NET Data Service, 现在新版本里面叫WCF Data Servic
RIA Service中对于递归实体类型处理的问题及解决方案 故事是这样开始的: 我们在开发一个Silverlight应用程序的时候使用到了RIA Service,我们需要通过该服务公开一个对文件夹的查询操作。 为此,我们建立了如下的一个实体类型using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Ru
【SSAS】Model-First Cube 设计的最佳实践 【备注】这是最近在一个讲座中的例子,整理出来给大家参考 相关名词解释 SSAS: SQL Server Analysis Service。 这是微软SQL Server BI(商务智能)平台的一个核心组件,它可以基于UDM(统一维度模型)构建多维数据集和挖掘模型,支持OLAP(在线分析)和Data Mining(数据挖掘) Cube: 多维数据集 这是SSAS项目设计的一个核心目的,创建多维
常见SQL Server导入导出数据的几个工具 在我们的日常工作中,与数据库打交道的机会越来越多。这一篇文章我整理一下常见的SQL Server导入导出数据的几个工具 1. 数据导入导出向导 这是一个可视化的工具,我放在首位,是由于它可以极大灵活地满足导入导出功能,而且是所见即所得的,易于使用。 启动数据导入导出向导的方式有好多种,我自己习惯直接通过如下的命令启动(开始=》运行) dtswizard(顾名思义,它是一个wizard——向导,
【VSTO】Office开发中遇到的兼容性检查问题 事情是这样的: 我们的一个应用程序需要通过VSTO代码方式操作本地的Excel,包括打开工作簿,生成新的工作簿,设置数据,并且保存为新文件等等。 该程序在Excel 2003的环境下没有任何问题,但是在Excel 2007或者是Excel 2010中就老是遇到中途被卡住的状况。 究其原因,是因为我们想将文件继续保存为Excel 2003格式,但Excel 2007或者Excel 2010默认会
如何在SQL Server中使用正则表达式 最近处理客户一个需求,是要在SQL Server中对某个列进行校验,使用正则表达式保证该列必须是一个邮件地址。 我们都知道,SQL Server的T-SQL中默认是没有这样的语法的。找了一些资料,下面这个例子还不错,分享给大家参考 http://www.codeproject.com/KB/database/xp_pcre.aspx 大致步骤是 1.下载他提供的那个压缩包,里面有源代码和安装脚本
SQL Server 2008 R2的StreamInsight 【文章转载】 下面文章转载自:http://blogs.msdn.com/b/stbcblog/archive/2011/04/18/streaminsight-on-sql-server-2008-r2.aspx StreamInsight是SQL Server 2008 R2的新模块。它是一个基于.NET的平台,用于复杂事件处理(CEP,Complex EventProcessing),即对于来自多数据
如何在SSIS的脚本组件中访问变量 这是一个小问题,我们在SSIS的设计中很多地方都会用到变量,我习惯性地将“变量”和“表达式”称为SSIS的灵魂,虽然不见得绝对准确,但它们确实是保证一个SSIS包灵活性的根本。 同时,我们可能也会在数据流任务中添加“脚本组件”,用我们熟知的C#或者VB.NET编写一些数据转换处理的逻辑。这里可能就有一个需求,我们希望在脚本组件中访问变量(读或者写),但默认情况下,这个需求并不是那么容易实现。我们来
How to: Handle Data Conflicts and Errors 【转载】 MSF(Microsoft Sync Framework)是微软的一套数据同步框架,其中一个典型场景就是实现本地数据库与远程数据库之间的数据同步,这样可以比较容易实现脱机应用程序的架构 有关MSF的一些具体内容,可以参考微软的官方网站 http://msdn.microsoft.com/en-us/library/bb902854.aspx 这一篇特别摘录一下有关数据同步时的冲突检测和处理
Console的默认Encoding问题 有时候我们需要在Console程序中,切换Console的OutputStream,大致的做法如下 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace ConsoleApplication1{ cl
IE9网站模式 技术白皮书 微软最近发布了“IE 9网站模式技术白皮书”,给大家参考一下吧 也可以下载附件:IE9_固定网站_技术白皮书.rar ************************************************************************ IE9固定网站功能简介 简单来说,IE9固定网站(Pinned Website)就是通过几行HTML代码(标签),将网站应用访问方
細微之處看看mysql與sql server的一些差別 以前不怎麼使用mysql,最近有些事情,需要用到php和mysql。目前使用的版本是5.5.1 發現mysql與sql server有很多不同。可能逐漸地會整理一些文檔出來給大家參考。 今天第一篇說說,update操作的差異。在mysql中,如果update語句要設置的新值,與數據庫中當前的值是一樣的,其實意味着無需更改。這種操作是不會被執行的。 為什麼會發現這個問題呢?因為我在php程序中,
如何通過編程獲取列表項目的附件以及多行文本中的文件內容 我們都知道在SharePoint的列表中,可以有多種方式附加文件。例如下圖所示,在一個列表項目上,我們添加了多行文本字段,在該字段中,添加了兩個文件,並且我們在整個列表項目上,也添加了兩個附件。 那麼對於這些文件的編程訪問,是否有比較標準和簡單的方法呢?今天我就整理一下給大家參考參考 那麼,首先來看一下,如何獲取多行文本中的附件內容呢? 我們可以先看一下,多行文本裡面的內容是怎麼樣的 很顯
Excel 2007 automation on top of a Windows Server 2008 x64 今天在一个客户这边出来一个windows service的问题。这个service需要启动excel程序,并且对一些excel文件做一些操作。 环境是:windows server 2008 x64+Excel 2007 总是报告错误:(类似下面这样) Service cannot be started. System.Runtime.InteropServices.COMException (0
做软件也是要有点追求的 作为软件这个行业的参与者,有时候也经常思考软件到底应该怎么做,软件业者如何在理想和现实之间取得平衡。当然,这方面没有标准答案的。 有一个小软件,叫paint.net,是基于.NET做的一个很好用的图形编辑软件,很小,很实用,而且免费。 经常会有更新,作者还在不断地改进他。今天在升级的时候,留意到下面一句话,很有意思的。呵呵 所以,我觉得做软件,或者做其他任何事情,还是要有点精神境界的啊
SQL Server 2008性能数据收集(Data Collector)的一些扩展话题 Data Collector是SQL Server 2008 新增的一个特性,位列管理员需知的top 10列表中。该功能在SQL Server 2008 R2中没有太大的变化 什么是Data Collector 关于这个主题,请直接参考微软官方的说明 http://msdn.microsoft.com/zh-CN/library/bb677248.aspx 关于如何配置Data Collector
谈谈技术体会、创业和职业规划及相关 这几个月都比较少写技术文章和博客,固然有工作忙的原因。但其实也是一个调整和思考的阶段。 关于技术实践的文章,我写了不少。最近想得更多的一些技术体会,自己其实也是在做第二次的创业准备,所以思考的问题会不太一样。 去年年底的时候,CSDN和《程序员》杂志对我做了一次访问,我也谈到了一些想法。今天摘录一些给有兴趣的朋友参考参考吧 记者:请谈一下你自己的技术成长经历和心得? 陈希章:我是从1999年
html5及其相关学习资源介绍 这段时间,关于Html5的议论甚嚣尘上(包括围绕Silverlight是否已死的争论),甚至有的客户已经在打听这方面的应用。当然,我的回答是:目前还没有应用。 html5意味着什么,我想当然意味着一次洗牌。简单地说,它将改变网页描述内容的方式,这当然是革命。 说老实话,这可不是一个简单的事情,绝对不可能一蹴而就。 我自己html5也了解不深,不发表太多评论。考虑到可能也有很多朋友想要了解这方面的东西,所以整理一些资料出来,也可以给大家参考参考吧 http://www.w3.org/TR/html5/ 这
使用jquery构造自己的多级菜单 最近在讲AJAX方面的一些理论和在项目中的应用。我介绍到了AJAX的一些内部原理,以及两套AJAX框架:Microsoft ASP.NET AJAX和jquery. 我个人很喜欢Jquery,我对它的赞美从不吝啬。呵呵 关于Jquery,其实之前就写过不少,有兴趣的可以参考 http://zzk.cnblogs.com/s?w=blog%3Achenxizhang%20jquery 课程中讲到一个问题,就是如何动态生成多级菜单。我知道网上有不少类似的菜单。但既然咱学了Jquery,为什么不可以尝试自己实
【MOSS 2010】 如何开发一个自定义的WebPart来承载Silverlight应用程序 在 MOSS 2010:Visual Studio 2010开发体验(8)——Silverlight应用 这篇文章中,我介绍到了在MOSS 2010中提供的对Silverlight支持。它默认提供了一个Silverlight WebPart可以很方便地显示我们的Silverlight应用程序 但是也有些朋友问到,如果我们要自己开发一个WebPart实现类似的功能,那么该怎么做呢? 【备注】我并不认为这是必须要做的事情,因为我觉得默认那个WebPart绝大部分都能满足要求。 如果你确实需要定制自己的Web
ASP.NET自定义身份验证的实践 事情是这样的:有一套ASP.NET应用程序,用户一般会用工号登录,但是我们希望在应用程序中方便地访问到该用户相关的其他信息,例如用户名或者工厂名称。 按照标准的ASP.NET Membership的做法,它不能提供这样的信息。Page.User.Identity.Name只是返回用户登录时使用的名称,在本例中是工号。 我们的目标是,能不能实现Page.User.Identity.Name显示用户的真实名称,而不是工号,甚至还可以显示其他的一些信息。 要实现这样的功能,我的思路是自定义身份验证。下面就是我
MOSS 2010 Content Type(内容类型)开发中的一个问题及其解决方法 内容类型是SharePoint中一个很重要的功能,简单地说,它使得我们可以定制列表或者文档库的项目模板。关于这个方面,我以前也写过一些文章介绍,请参考 http://zzk.cnblogs.com/s?w=blog%3Achenxizhang%20%E5%86%85%E5%AE%B9%E7%B1%BB%E5%9E%8B 今天要讲的一个问题,是我们在项目中遇到的,虽然不大,但却是困扰了很久,而且百思不得其解(以前在MOSS 2007的时候却没有这个问题)。 这个问题最近与微软中国这
谈谈IE 9的创新和我的一些建议 是时候谈谈IE 9了,虽然现在还没有正式发布。但就我个人安装beta版的体验来说,我觉得还是蛮不错的,值得给大家介绍和推荐 IE 9是一个重要的发布,对于各方面都是如此。微软在这个版本上无疑下了很大的功夫,我们能看到的创新主要包括 1. 界面的改进,更加简洁易于使用 2. 速度提高。可以说是大大提高 3. 对标准(html 5和css 3)的支持。这两个标准也是最近很热的。 4. 开发体验和工具的改进(针对这一点我下面会重点演示一下) IE 9预览工具:http://ie.microsoft.com/t
ADO.NET Data Service如何直接支持用Json格式返回数据 今天在介绍WCF及其在项目开发中应用时,再次提到了ADO.NET Data Service。关于这个主题,其实之前我写过不少内容,有兴趣可以参考 http://zzk.cnblogs.com/s?w=blog%3Achenxizhang%20ado.net%20data%20service 同时,微软有一篇非常详细的文档 http://msdn.microsoft.com/en-us/library/cc907912.aspx 我们知道,ADO.NET Data Service是支持两种数据格式的:
MVC 2中HandleErrorFilter的问题及其解决方法 近日在使用MVC2的异常处理的时候,遇到一些问题 1. 我们的Error.aspx是没有使用MasterPage 2.通过如下代码测试using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MvcApplication1.Controllers{ [HandleError] public cla
小技巧:如何管理保存在本地的用户凭据 我们都有这样的经验:由于工作需要,我们会需要访问到很多内部或者外部的服务器,典型的场景就是远程桌面连接和共享目录访问。一般在连接的时候,都会提示输入用户名和密码,而且一般都有一个选项:“保存用户凭据”。这样显然可以大大地方便我们的工作。下图就是一个范例 那么,我就有一个疑问,这些凭据到底保存在什么地方去了?如果我们需要修改的话,是否有可能? 其实不难,请打开”Control Panel”==>”User Accounts”, 在左侧点击“Manage your credentials ”,这里可以看
Powershell简介及其编程访问 Powershell是下一代的命令行外壳程序,较之于它的前身(cmd.exe),它的功能更加强大,也更加易用。最根本的区别在于它是基于对象的操作(基于.NET Framework),而不是基于字符串的操作。 这个工具可以单独使用,完全可以取代cmd.exe。例如如下 但它的功能远不止于此,例如我们可以很容易地获取所有的进程名称 再来看一个,下面这个例子是获取当前正在运行的服务列表。(可以用条件很方便地筛选) 除此之外,Powershell还支持定制,例如微软很多产品都提供了专门的Power
推荐几个有关Silverlight和Prism的学习资源 现如今,Silverlight应该是地球人都知道了吧? 但什么是Prism呢?恐怕知道的人就不是那么多,坦白说我也是最近才了解的。今天顺便整理一些有关的学习资料出来给大家参考参考,我自己就不写了,呵呵 什么是Prism?这是微软的patterns & practics team开发的一套Guidance, 准确的名称是 Composite Application Guidance 。 简单地说,就是试图提供一些设计模式,工具和标准库,帮助开发人员更好地实现在WPF & Silverlight中的模块化开
Workflow Foundation 4.0中的事件驱动流程设计和应用(五) 之前,我通过4篇文章介绍了在WF4中开发基于事件的工作流的范例。请参考下面的链接。 Workflow Foundation 4.0中的事件驱动流程设计和应用(一) Workflow Foundation 4.0中的事件驱动流程设计和应用(二) Workflow Foundation 4.0中的事件驱动流程设计和应用(三) Workflow Foundation 4.0中的事件驱动流程设计和应用(四) 这一篇是这个系列的最后一篇,介绍如何通过配置文件,而不是代码的方式启动宿主。这在现实工作中是相当有用的,
Workflow Foundation 4.0中的事件驱动流程设计和应用(四) 前面三篇,我介绍到了如何在WF 4中设计简单的审批流程,没有什么特别出奇的技术,只不过WF4对于事件机制有了不小的改进吧。 Workflow Foundation 4.0中的事件驱动流程设计和应用(一) Workflow Foundation 4.0中的事件驱动流程设计和应用(二) Workflow Foundation 4.0中的事件驱动流程设计和应用(三) 这一篇要来谈谈更加深入一点的话题:如果我们的流程需要长时间才能完成(这是很常见的),那么如何在这些流程空闲(例如等待经理审批)的时候,更好地管理
如何让一个现有的程序集运行在Silverlight环境中 故事是这样的:我们有一个组件,是一个标准的Class Library,里面有一些代码是实现了某些计算或者业务逻辑。例如下面这样 然后,我们做了一个Silverlight的应用程序,和一个用于运行该程序的网站 我们想让这个按钮,能调用DAL中Customer的PlaceOrder方法。这样的要求很自然不过了吧 我们马上会想到,要在SilverlightApplication中添加对DAL项目的引用。 很不幸,我们居然会遇到一个错误 这个错误提示的意思是说,你只能引用Silverlight项目。
Workflow Foundation 4.0中的事件驱动流程设计和应用(三) 前面两篇已经实现了最简单的基于事件的工作流程,用户可以在客户端(任意类型的客户端)发出流程操作的指令,通过WCF的通讯,驱动后台的工作流工作。 Workflow Foundation 4.0中的事件驱动流程设计和应用(一) 但之前的例子只有一个事件,就是“创建流程”的事件,显然这是不够的。这一篇就来把这个例子完善一下,通过这个练习之后,大家应该可以大致了解在WF4中如何设计基于事件的流程了 我们将为这个流程添加一个“审批流程”的事件。 本文代码,请通过 这里 下载 1. 修改工作流设计 很显然地,我们会
Workflow Foundation 4.0中的事件驱动流程设计和应用(二) 上一篇,我介绍到了WF4的全新事件驱动工作流设计的第一部分。我们可以大致总结几个重点 1. WF4的事件机制与WF3有了革命性的不同。WF3是基于ExternalDataExchange服务的。而WF4是基于WCF的。这种设计相对来说,对于开发人员而言,简便了很多。 2. WF3中是使用所谓的EventDriven这样的Activity,而WF4则使用了Receive这样的Activity.其实,从WF 3.5的时候就可以看到这样的端倪。 3. 如果需要进行事件的监听,则不能使用WorkflowInvoke
Workflow Foundation 4.0中的事件驱动流程设计和应用(一) 已经有不少朋友知道Workflow Foundation 4了。这个版本较之于以往有了一些明显的区别,开发的一些思路也大不相同了。 很多人会觉得很怀念以前3.0中的“顺序工作流”和“状态机工作流”的分类,其实大可不必。在4.0中虽然没有称之为“状态机工作流”的东西,但其实实现起来也很自然.WF 4提供了FlowChart的功能,其实就是状态机工作流。(它的不同Decision之间可以转化,而这正是状态机与顺序工作流的根本区别) 这一篇不是用来讨论状态机工作流这个话题的,提一下只是想说,大家要抓住重点,而不是
Active Directory(活动目录)与Exchange Server编程及相关 最近的项目涉及到了Active Directory和Exchange Server的操作,主要是动态地维护AD和Exchange邮箱和联系人信息。 有关这方面编程及相关的几个资源,给大家整理如下,可以参考 Adsiedit: Active Directory http://technet.microsoft.com/en-us/library/cc773354(WS.10).aspx 【Adsiedit是一个很好的工具,可以分析AD对象的构成和属性】 Step-by-Step Guide to Bu
SharePoint中的用户信息和检索的有关知识 最近在做的项目中涉及到对于SharePoint用户信息的特殊处理,特意整理一些资料出来,给大家参考参考 1. 首先,在SharePoint中,要检索到网站的用户,有下面一些相关知识 http://www.cnblogs.com/LeimOO/archive/2009/09/03/1559790.html SPWeb site = SPContext.Current.Web; SPUserCollection c1 = site.Users; SPUserCollection c2 = site.Al
WF 4.0中如何实现xaml工作流的动态加载 上一篇,我用实例讲解了在.NET Framework 3.0(3.5)中如何动态加载xoml创建和运行流程的做法。这一篇谈一下在WF 4.0中的情况,首先介绍一下WF 4的一些重要变化 WF 4中,默认就是用xaml(注意,不是xoml),同时不允许包含c#代码 WF 4中,不再区分顺序工作流和状态机工作流 WF 4中,不再能直接使用Code Activity,如果希望写代码,则需要编写一个自定义的Activity,继承Code Activity 我接下来还是用一个例子讲解一下如何在WF 4中动态加载xa
通过XOML或者XAML的方式创建和启动工作流 在Workflow Foundation中,提供了多种设计工作流的方式。例如 纯代码的方式(C#) 代码分离的方式(XOML+C#) 以上两种,可以从Visual Studio提供的项目模板中选择 他们在设计器中看起来是如下的 xoml是一种特殊的XML格式,它可以描述流程。例如下面这样的一个流程 它用XOML描述的话,大致如下
How to: Run Partially Trusted Code in a Sandbox 批注:沙盒机制是.NET Framework 4.0中对于安全性方面给予开发人员的一个鼓励做法,意思是说某些特殊的程序集(你可能不信任,例如插件),则可以让他们运行在一个特殊的区域中。使用AppDomain来实现该功能。 其实,这样的功能在.NET Framework 2.0中也是可以实现的。感觉.NET Framework 4的安全性是一个很大的让步,至少说没有什么大的改进。(纯属个人意见) 转载自:http://msdn.microsoft.com/en-us/library/bb76304
在MVC项目中如何显示图片 首先,有好一阵没有怎么写博客文章了.实在也是很多事情,确实没有停下来过. 这两天在讲解MVC方面的知识和项目实践,其中有一个小的细节,是有关于图片显示方面的,记录下来供大家参考 在MVC项目中,要显示一个图片,尤其是该图片是存放在数据库的话,还是可以继续使用原先Web Forms的那种ashx的方式。但也可以考虑下面的方式 1.创建一个ImageResultusing System;using System.Collections.Generic;using System.Linq;usin
《实践与思考》系列连载(6)——IT从业人员工作环境及状态调查 抽奖结果公布 大家好,在上个月,我们发起的一个“IT从业人员工作环境及状态调查”(http://www.cnblogs.com/chenxizhang/archive/2010/07/19/1780437.html),截至今日,我们一共收到了166份有效的反馈表,您可以随时通过下面的地址查看到图形化统计分析的结果。 http://www.askform.cn/FormViewResult.aspx?Type=1&FormID=94493&UserID=80830 根据我们之前的约定,在今天我们抽出了两位幸运的朋友,他
分享:微软网络电视Internet TV方面的一些消息 这里分享一下微软网络电视Internet TV最新讯息, “Internet TV”服务,让用户可以直接在 Windows Media Center 中观看来自内容提供商网络视频。Internet TV “一键安装包”很快将会被发布,之后您通过点击Internet TV “一键安装包”便可自动进行安装。 您也可登陆以下网站查看相关讯息。 · WMC web site: http://www.microsoft.com/china/windows/windows-media-center/default.
如何在web.config中为Web服务指定扩展 在XML Web Service的开发实践中,经常会用到服务扩展,(SOAPExtensions),关于这一点,如果你不甚清楚,可以参考下面的链接 http://msdn.microsoft.com/zh-cn/library/esw638yk.aspx 这里特别整理一下的是,如何在Web.config中,为所有的服务指定统一的服务扩展。通常的配置如下 .csharpco
关于COM+的一些回顾 今天继续在讲解SOA技术实现方面的课程,这一周主要讨论的是WCF。既然讲到WCF,难免要提一下在其之前的有关技术。其中COM+我认为是非常值得回顾的。 COM+技术所能提供的功能 1、事务服务:它确保了在分布式系统中的数据完整性。 2、安全服务:它的安全模型提供了处理安全性而不用编写任何代码的方法。 3、同步服务:提供了有效管理地解决组件中并发问题的方法,但却不用编写代码。 4、资源管理:(包括资源管理器和资源分配器)管理数据库连接、网络连接和内存等。 5、JIT
《实践与思考》系列连载(1)——引子 这是本书连载的第一篇,我比较详细地介绍了是在什么样的一种心情和背景下,促使我想写这本书。同时也描述了我对于软件及软件产业的理解。 这一篇的开始,引用了著名的MIT创始人尼古拉斯的一段话,然后据此展开。 下面摘录文章开始的一部分: 你所看到的这本书,毫无疑问,它是一定的背景下被作者(就是我)写出来的。那么,是什么引发了我的热情和思考,愿意花这么多时间,开始这段冒险的旅途呢?(是的,很多人都跟我说起过,写书确实是一段冒险的旅途,这比我们写一段精妙的算法或者设计一个软件的挑战有过之而无不及)
《实践与思考》系列连载(2)—— 第一部分 我们走在.NET的实践征途上 序言 昨天已经开始编写的第一部分,我计划采用写实的方式,记录我在一些讲座中讨论到的技术话题。我计划主要会包括的内容是: 1. Framework Fundamentals(基本数据结构和原理) 2. Input Output(输入输出系统) 3. Searching,Modifying and Encoding Text(文本处理) 4. Collection and Generics(集合和泛型) 5. Serialization(序列化) 6. Graphics(图形化) 7. Threadin
《实践与思考》系列连载(4)——众说纷纭“架构师” 最近在讲的一个课程,是有关.NET平台上面软件架构和开发生命周期管理方面的内容。下面这个大纲是我自己规划出来的,如果有兴趣的朋友可以参考一下:http://www.xizhang.com/resources/软件架构和软件生命周期管理培训课程.pdf 这个课程实际上主要关注的是.NET平台本身架构设计思想、以及在特定开发场景下的一些最佳实践,当然也会分享一些我自己的心得和经验。 既然是讲这个课题,难免就会讨论到“什么是架构师?”或者“架构师到底应该做什么?”这样的问题,我得承认,对于这两个问题大
《实践与思考》系列连载(3)——第一部分 第一章:笑侃微软三十年之.NET战略 这是本书第一部分的第一个章节,素材取自我去年在苏州工业园区所做的一个项目和架构交流活动。这一章的篇幅大致是59页,较为完整地概括和讲解了我对.NET平台和战略的认识和解读吧 第一章 笑侃微软三十年之.NET战略 1 第一节 提出.NET战略的历史背景 5 第二节 .NET平台核心思想和目标 10 第三节 .NET平台的发展历程和趋势 40 第四节 开发人员职业规划和学习蓝图 55 总结与思考 59 这一章的完整版本,
《实践与思考》系列连载(5)——问答Hprose,以及关于技术与开源的思考 引子 之前我写过一篇文章,讨论了在XML Web Service或者WCF中,多次发起异步调用可能导致的问题,请参考http://www.cnblogs.com/chenxizhang/archive/2010/05/31/1747812.html 在这一片文章中,我介绍了问题的症状以及发生的原因,及其解决方法。这篇文章收到了一些反馈,其中有朋友介绍到了Hprose这个产品。我后来也实际用了一下,确实在Hprose中是可以避免这种问题的。(有兴趣的朋友,可以参考这里 http://www.cnblogs
《实践与思考》系列连载(6)——IT从业人员工作环境及状态调查 本次调查是《实践与思考》既定的活动之一,主要涉及IT从业人员对目前工作环境、工作状态以及业余职业提升等方面的调查。 请立即参与在线调查 http://www.askform.cn/80830-94493.aspx 【备注】我们这次所使用的调查系统是一个第三方的免费系统。如果有使用上的问题,请让我们知道,谢谢 该调查长期有效,但是我们将在1个月之内评选两位幸运奖。也就是说, 自该调查发布之日(2010年7月18日)起,截止到2010年8月18日 凡是参加该调查的朋友中,我们会抽取两位幸运奖
《实践与思考》系列连载(6)——IT从业人员工作环境及状态调查 本次调查是《实践与思考》既定的活动之一,主要涉及IT从业人员对目前工作环境、工作状态以及业余职业提升等方面的调查。 请立即参与在线调查 http://www.askform.cn/80830-94493.aspx 【备注】我们这次所使用的调查系统是一个第三方的免费系统。如果有使用上的问题,请让我们知道,谢谢 该调查长期有效,但是我们将在1个月之内评选两位幸运奖。也就是说, 自该调查发布之日(2010年7月18日)起,截止到2010年8月18日 凡是参加该调查的朋友中,我们会抽取两位幸运奖,奖品是:
《实践与思考》系列连载(5)——问答Hprose,以及关于技术与开源的思考 引子 之前我写过一篇文章,讨论了在XML Web Service或者WCF中,多次发起异步调用可能导致的问题,请参考http://www.cnblogs.com/chenxizhang/archive/2010/05/31/1747812.html 在这一片文章中,我介绍了问题的症状以及发生的原因,及其解决方法。这篇文章收到了一些反馈,其中有朋友介绍到了Hprose这个产品。我后来也实际用了一下,确实在Hprose中是可以避免这种问题的。(有兴趣的朋友,可以参考这里 http://www.cnblogs.c
《实践与思考》系列连载(4)——众说纷纭“架构师” 最近在讲的一个课程,是有关.NET平台上面软件架构和开发生命周期管理方面的内容。下面这个大纲是我自己规划出来的,如果有兴趣的朋友可以参考一下:http://www.xizhang.com/resources/软件架构和软件生命周期管理培训课程.pdf 这个课程实际上主要关注的是.NET平台本身架构设计思想、以及在特定开发场景下的一些最佳实践,当然也会分享一些我自己的心得和经验。 既然是讲这个课题,难免就会讨论到“什么是架构师?”或者“架构师到底应该做什么?”这样的问题,我得承认,对于这两个问题大家的理
《实践与思考》系列连载(3)——第一部分 第一章:笑侃微软三十年之.NET战略 这是本书第一部分的第一个章节,素材取自我去年在苏州工业园区所做的一个项目和架构交流活动。这一章的篇幅大致是59页,较为完整地概括和讲解了我对.NET平台和战略的认识和解读吧 第一章 笑侃微软三十年之.NET战略 1第一节 提出.NET战略的历史背景 5第二节 .NET平台核心思想和目标 10第三节 .NET平台的发展历程和趋势 40第四节 开发人员职业规划和学习蓝图 55总结与思考 59 这一章的完整版本,可以通过下面地址下载到: http://www.xizh
《实践与思考》系列连载(2)—— 第一部分 我们走在.NET的实践征途上 序言 昨天已经开始编写的第一部分,我计划采用写实的方式,记录我在一些讲座中讨论到的技术话题。我计划主要会包括的内容是:1. Framework Fundamentals(基本数据结构和原理)2. Input Output(输入输出系统)3. Searching,Modifying and Encoding Text(文本处理)4. Collection and Generics(集合和泛型)5. Serialization(序列化)6. Graphics(图形化)7. Threadin
《实践与思考》系列连载(1)——引子 这是本书连载的第一篇,我比较详细地介绍了是在什么样的一种心情和背景下,促使我想写这本书。同时也描述了我对于软件及软件产业的理解。 这一篇的开始,引用了著名的MIT创始人尼古拉斯的一段话,然后据此展开。 下面摘录文章开始的一部分: 你所看到的这本书,毫无疑问,它是一定的背景下被作者(就是我)写出来的。那么,是什么引发了我的热情和思考,愿意花这么多时间,开始这段冒险的旅途呢?(是的,很多人都跟我说起过,写书确实是一段冒险的旅途,这比我们写一段精妙的算法或者设计一个软件的挑战有过之而无不及)。 让我们从
《实践与思考》一书的概述和随笔连载说明 《实践与思考》是我计划在编写的一本书,这本书将计划用半年左右的时间完成,这是一本侧重于软件行业的工作实践和探索观察的书,我试图通过自己的身体力行,并且也倾听其他团队或者个人的声音,总结出来一些技术和行业发展的思考。希望能提供一种不同的视角,来让我们更加了解我们自己,以及我们所处的行业环境,更重要是也希望能探索一些更加好的一些发展道路吧。(当然,限于个人能力,一些观点也会难免有些局限性,但这一点大家应该是会理解的) 这本书在写作过程中,大部分的内容都会用连载的方式第一时间贴在博客园.(这么多年一路走来,真的也
《实践与思考》书籍连载系列反馈区 从今天会开始一个新的随笔系列,是关于计划在今年内编写的《实践与思考》(暂定名)一书的连载。大家的反馈和建议,可以给我发邮件,也可以直接在本贴后面留言。谢谢相关链接随笔系列 地址是:http://www.cnblogs.com/chenxizhang/category/250732.html概述和说明 : http://www.cnblogs.com/chenxizhang/archive/2010/06/21/1761836.html
如何在ADO.NET Data Service的解决方案中修改最大传输数据量 1.问题描述: 如果你在使用ADO.NET Data Service做应用开发,那么有时候你可能会遇到如下的情况,尤其是你传输的数据量比较大的情况下,例如要上传或者下载一个比较大的文件时。 System.Net.WebException was unhandled by user code Message=The underlying connection was closed: An unexpected error occurred on a receive. Source=System
ADO.NET Data Service中更新和查询一对多实体集的注意事项 尽管有人不喜欢ADO.NET Data Service,或者也有人不喜欢LINQ to SQL以及Entity Framework。但我还是愿意写这一篇文章,这是我在用的时候遇到的一个问题和解决方法。写出来,也可以为以后有类似问题的朋友提供一些帮助吧 如果你不了解什么是ADO.NET Data Service,可以参考下面的一些链接和我之前的一些文章 http://kb.cnblogs.com/page/43963/?page=1 ADO.NET Data Service之CRUD操作 如何在AJAX应
基于.NET Framework 4.0的解决方案部署 VS 2010发布之后,随着而来的框架版本也升级到了.NET Framework 4.0。我相信很多朋友已经在用了吧。这一篇文章总结了如何基于.NET Framework 4.0,进行解决方案部署。 之所以要单独写一下,是因为确实这个版本与之前的.NET Framework 2.0,3.0,3.5是不一样的。我们自己在用的时候也摸索了一些时间。所以总结出来给大家参考参考吧,以免多走弯路。 重点事项: .NET Framework 4与之前的版本是可以并行的,他们并不互相干扰。也就是说,你不必在安装.N
XML Web Service并发异步调用的问题及其解决方案 最近在忙些其他项目的事情,之前的MOSS 2010开发系列暂时搁一搁了。这个项目是传统的C/S架构,有客户端,有服务器。客户那边的环境还比较老,是Windows Server 2000. 很不幸的是,Windows Server 2000是不可以安装.NET Framework 3.5的(这个问题我之前也提到过),所以其实有很多东西得用比较早的技术去实现。一个典型的例子就是,在服务层的设计里面,我被迫放弃了WCF,而是采用了XML Web Service的方式。当然,咱对Web Service很熟悉,也很亲
用于 Web 应用程序项目部署的 Web.config 转换语法 【转载】 该文转自MSDN : http://msdn.microsoft.com/zh-cn/library/dd465326(v=VS.100).aspx Web.config 文件通常包括根据应用程序的运行环境而必须不同的设置。例如,在部署 Web.config 文件时,您可能必须更改数据库连接字符串或禁用调试。对于 Web 应用程序项目,ASP.NET 提供了一些工具,用于自动完成在部署这些项目时更改(转换)Web.config 文件的过程。对于要部署到的每个环境,您将创建一个转换文件,该文件仅指定原始
XML Serializable Generic Dictionary 参考地址:http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx简述:默认情况下,Dictionary是不支持XML序列化的,为了达到这个目的,我们需要自定义一个类型来做 For some reason, the generic Dictionary in .net 2.0 is not XML serializable. The following code snippet is a xml serializable generic
如何让组合框的宽度自动适应 在Windows Forms应用程序开发过程中,我们经常会用到组合框(ComboBox),但它的那个下拉列表宽度是固定的,那么如何让它支持自动适应的宽度呢。下面是一个小例子using System;using System.Drawing;using System.Linq;using System.Windows.Forms;using System.IO;namespace WindowsFormsApplication1{ public partial class
MOSS 2010:Visual Studio 2010开发体验(34)——工作流开发最佳实践(六):网站工作流 我们前面花了几篇文章介绍了工作流的概念,以及如何设计可重用的工作流(可重用和全局可重用).如果你对这些话题还不是很清楚,可以先参考的链接 MOSS 2010:Visual Studio 2010开发体验(26)——工作流开发概述 MOSS 2010:Visual Studio 2010开发体验(27)——工作流开发最佳实践(一) MOSS 2010:Visual Studio 2010开发体验(28)——工作流开发最佳实践(二) MOSS 2010:Visual Studio 2010开发体验(2
MOSS 2010:Visual Studio 2010开发体验(33)——工作流开发最佳实践(五):全局可重用工作流 上一篇我们讨论到了可重用工作流,看起来还不错:现在一个工作流可以比较灵活地根据需要与不同的列表关联了。 但还是让我们稍作思考这个重用的话题吧,既然说到重用,就自然还要问一下:那么它到底在什么范围之内重用呢? 默认情况下,我们通过上一篇创建的可重用工作流只能在当前网站间共用。 但我们确实可以设计在更广范围重用的工作流,(例如在整个网站集中重用),现在它有一个专门的称呼:全局可重用工作流。 事实上,MOSS 2010自带了三个所谓的全局可重用工作流。 那么,我们怎么创建自己的“全局可重用工作流”呢? 【注意
MOSS 2010:Visual Studio 2010开发体验(32)——工作流开发最佳实践(四):可重用工作流 【备注】这篇本来之前就应该写好的,但因为在beta版的时候总是遇到一些问题,我自己都没有做成功,所以就搁笔不写。本周装好了正式版,看了看,这些问题总算是得到解决了。 【备注】这个与工作流开发的系列,大致还有三篇。本篇讲的是通过SharePoint Designer设计可复用的工作流。下一篇将讲解网站工作流,最后还有一篇讲解在VS 2010中设计和开发可用于SharePoint的工作流 在前面几篇中,我针对工作流基本概念,和最佳实践的前三步做了讲解和演示。他们的链接分别如下 工作流开发概述 http:
MOSS 2010:Visual Studio 2010开发体验(31)——如何给列表绑定多个内容类型 有朋友看了下面这篇文章,给我留言提到一个问题。 MOSS 2010:Visual Studio 2010开发体验(10)——列表开发之内容类型 他的问题是:如果在列表定义的时候,使用多个内容类型 关于这个问题的简单答复如下。我在原文下面做了回复。 ××××××××××××××××××××××××××××××××××××××××××××× 修改那个schema.xml文件,再注册一个ContentType,但要注意的是,必须设置EnableContentTypes=true如下供参考 ××××××××××
MOSS 2010:安装和使用Office Web Apps 什么是Office Web Apps? 下面这个定义是微软官方给出的 使用 Microsoft Office Web 应用程序,您可以从任何地方访问文档。无论是从家里编辑文档,还是与世界各地的人协作,Office Web 应用程序都有助于您按照需要的方式工作。 它有两个版本 Windows Live 中的 Office Web 应用程序 SharePoint 中的 Office Web 应用程序 详细的情况请看看这里的介绍 http://www.microsoft.com/office/201
如何设置Hyper-V的虚拟机快捷方式 在Windows Server 2008中,提供的Hyper-V功能,可以很方便地在企业环境中部署多个虚拟机,以适应不同的开发需要。一般我们都是通过下面的方式 1. 打开服务器管理器 2.打开Hyper-V管理器,找到有关的虚拟机,然后右键点击“连接” 如果你觉得这个过程太繁琐了,可以尝试建立一个快捷方式。很遗憾的是,这个服务管理器中并没有提供这样的功能。(其实这很值得改进一下) 但我们可以手工做一个快捷方式,放在桌面上。我们其实是要用下面这个工具,vmconnect.exe 这个快捷方式需要带
VS 2010 : 如何开发和部署Outlook 2010插件(Add-in) 概述: 这篇文章,我将通过一个简单的例子,给大家分享一下如何在VS 2010中开发和部署Outlook 2010的插件(Add-in) 首先,我要说一下什么是插件(Add-in) 插件一般是对现有程序的扩展,微软的Office系统公开了一套接口,可以很方便地让开发人员基于这些接口去实现对Office应用程序的增强。这个接口,准确地说,就是Extensibility.IDTExtensibility2. 当然,除了Office,有很多应用程序都支持类似的扩展机制,例如IE,以及Visual Studio本
“人在旅途”之随想以及旅游指南(travel.msra.cn)简介 首先让我们来回味马克.吐温说过的一句话: 旅行可以破除偏见、顽固以及狭隘的思想 稍微细想一下,这句话还是很有些道理的。很多时候,我们回头看看走过的路,难道不总是会有一种“人在旅途”的感触么:感慨昨日之日不可留、今日之日多烦忧、而明日之日不可追,然而就是在懵懵懂懂中我们也逐渐成长,或者不管如何,我们总是从一个又一个的驿站,又走向下一个。 前一阵有一位朋友从原先工作的公司离职,据说是和父母走遍了全国好多地方,出去大致有将近1个月吧,回来写了简单总结给俺们看,那个豪迈劲,羡煞旁人啊。下面几句是他的原话
MOSS 2010:Visual Studio 2010开发体验(30)——Business Data Connectivity(BDC)对数据量的限制 在之前一篇文章中我提到了,使用BDC服务连接到外部数据源做系统集成时(尤其是直接连接到SQL Server的话),最好是对返回的结果做一个筛选和过滤。否则,可能导致其无法工作。你可能会收到如下的错误 那么如何设置筛选过滤条件呢?我们一般都是为Read List这个Operation设置一个Filter Parameter 设置完之后,就可以看到这些数据了。当然是Top 100的 【注意】这个Filter Parameter与分页没有关系。之前有朋友是说,既然数据很多,能不能分页啊。其实分页是在列
MOSS 2010:Visual Studio 2010开发体验(29)——工作流开发最佳实践(三) 在前面几篇中,我针对工作流基本概念,和最佳实践的前两步做了讲解和演示。他们的链接分别如下 工作流开发概述 http://www.cnblogs.com/chenxizhang/archive/2010/05/02/1726105.html 工作流开发最佳实践(一):使用Visio设计工作流概念模型 http://www.cnblogs.com/chenxizhang/archive/2010/05/02/1726154.html 工作流开发最佳实践(二):使用SharePoint Designer实现
MOSS 2010:Visual Studio 2010开发体验(28)——工作流开发最佳实践(二) 在之前的两篇文章中,我介绍了有关工作流的概念,以及最佳实践第一篇 工作流开发概述:http://www.cnblogs.com/chenxizhang/archive/2010/05/02/1726105.html 工作流开发最佳实践(一):http://www.cnblogs.com/chenxizhang/archive/2010/05/02/1726154.html (使用visio设计流程概念) 这一篇我们接下去,将visio设计好的流程概念模型,导入到SharePoint Designer
MOSS 2010:Visual Studio 2010开发体验(27)——工作流开发最佳实践(一) 上一篇我已经介绍到了工作流以及有关的概念。现在我们就来用一个简单的例子,讲解说明如何在MOSS 2010的平台上开发工作流解决方案。 我们的需求是这样的: 我们需要实现一个简单的费用报销流程,用户提交报销申请之后,会有如下的几个情况 如果金额小于500的话,则直接就到财务领钱 如果金额大于等于500,同时小于2000的话,部门经理审批即可,然后到财务领钱 如果金额大于等于2000的话,则部门经理审批之后,还需要总经理审批,然后到财务领钱 经理和总经理都可以拒绝(这是当然啦,经理们不都是经常做这样的事
MOSS 2010:Visual Studio 2010开发体验(26)——工作流开发概述 这一篇开始,我将介绍在MOSS 2010中进行工作流开发的最佳实践。这一篇主要介绍有关的几个概念 1.什么是工作流 工作流开发是这几年都比较火的一个领域。工作流,顾名思义就是工作的流程,而软件系统所要做的就是解决人们现实工作或者生活中的那些流程。所以从事实上说,任何软件系统都离不开工作流。 当然,工作流真正被广大开发人员所熟知,是因为.NET Framework 3.0中的Workflow Foundation(WF)。很显然,WF提供了一个前所未有的选择,就是它提供了运行时、可视化设计器、开箱即用的一些活
MOSS 2010:Visual Studio 2010开发体验(25)——编写自定义的BCS连接器(续) 上一篇我讲解到了如何在Visual Studio 2010中编写自定义的BCS连接器来实现更加灵活的应用程序集成。在那篇文章,我主要讲解了有关的概念,并且做了一个最简单的模型,发布之后能够使用它。 这一篇,我们继续来实现一个更加有现实意义的 BCS 连接器。我们需要读取的数据仍然是有关员工信息的。 我们希望员工实体拥有如下的信息 ID FirstName LastName Age 【提示】通过跟随本文做练习,你将学会如何设计一个自己的业务实体模型。 【注意】不要小看这个步骤,我之前就提到过,自定
MOSS 2010:Visual Studio 2010开发体验(24)——如何在浏览器中直接对BCS模型直接进行编辑和新增操作 上一篇文章我演示了如何结合SQL Server的表格,快速创建一个BCS的模型。然后,可以在浏览器中查看,并且在Workspace中编辑或者新增。 如果你还不熟悉该操作,请参考 http://www.cnblogs.com/chenxizhang/archive/2010/05/01/1725531.html 有朋友问到,是不是要编辑的话,就必须在Workspace中去做?这个是要看具体情况的,我上次的演示之所以没有办法在浏览器中编辑,是因为那个数据模型(Employee)包含了特殊字段,是一个Phot
MOSS 2010:Visual Studio 2010开发体验(23)——编写自定义的BCS连接器 前面我们用了两个篇幅比较详细地介绍了BCS结合SQL Srever和WCF实现应用程序集成的场景和典型做法。 他们的链接分别是 BCS & WCF http://www.cnblogs.com/chenxizhang/archive/2010/05/01/1725576.html BCS & SQL http://www.cnblogs.com/chenxizhang/archive/2010/05/01/1725531.html 我们都还记得,在创建所谓外部内容类型的时候,会让我们添加连接,而连接有三
MOSS 2010:Visual Studio 2010开发体验(22)——利用BCS和WCF进行应用程序集成 上一篇,我们讲到了如何利用BCS服务,直接连接到SQL Server数据库实现一些简单的应用程序集成的场景。看起来很不错,不是吗? 但是,事实上,直接连接到数据库也许有时候是不可能实现的任务,很多系统并不可能直接将数据库暴露出来的。地球人都知道,那样的风险极高。 那么,比较可行的是什么方式呢?我觉得很多系统倒是有公开一些服务,这些服务有的使用Web Service实现,有的不是。这都不要紧。总之,由这些服务去连接数据库,而我们做集成的时候,并不需要知道数据库在哪里?以及什么结构等等信息。 这一篇,我们讲
MOSS 2010:Visual Studio 2010开发体验(21)——使用Business Connectivity Service(BCS)集成业务系统 趁着放假期间,公司服务器比较空闲,抓紧时间写完这个系列吧 这一篇开始介绍一个全新的服务,BCS : Business Connectivity Service。从它的字面意思上说,它应该是用来做商业数据集成的。事实上也确实如此。 什么叫商业数据集成呢?大家可以试想这样一个场景吧 我们公司内部有各种各样的业务系统,诸如ERP,CRM等等之类,它们各自有不同的界面输入和处理数据,并且各自都工作得很好。现在,老板说,希望能在一个统一的页面中,可以很方便地查看(甚至编辑)到这些系统的数据,而不是要打开很多个浏览器去
MOSS 2010 : 如何启用(BDC)Business Data Connectivity——安装WCF Fix 在使用MOSS 2010的BDC功能时,你可能会遇到下面的问题(The Business Data Connectivity Metadata Store is currently unavailable)。 我的环境是Windows Server 2008 R2 【注意】虽然都叫BDC,但MOSS 2010与MOSS 2007的解释是不一样的。原先在MOSS 2007叫Business Data Catalog 经过查找有关资料,找到解决方法,是需要安装如下的一个补丁包 WCF Fix for
MOSS 2010:Visual Studio 2010开发体验(20)——使用ADO.NET Data Service快速访问SharePoint列表数据 上一篇 讨论ECMAScript Object Model的时候,我们在结尾说到了,其实客户端的Javascript是通过一个client.svc文件去查询的。请注意看下图选中的部分 地址是: http://nymoss2010:45223/Sites/dev/_vti_bin/client.svc/ProcessQuery 有些朋友看到这个可能会感到新奇,实际上在我看来没有什么可奇怪的。我之前也提到过,原先MOSS 2007的时候,为了让客户端可以访问到SharePoint的数据,实际上也有公开一些W
关于Silverlight对匿名类型数据绑定的问题及其解决方法 这是一个不得不说一下的问题。同样的代码在WPF应用程序中是可以工作的,而在Silverlight中却不可以。我们来看一下例子吧 1.WPF窗体标记 .csharpcode, .csharpcode pre{ font-size: small; c
MOSS 2010:Visual Studio 2010开发体验(18)——在独立的Silverlight应用程序中通过WCF访问SharePoint数据 上一篇我讲到了如何在Silverlight中使用客户端对象模型访问SharePoint数据,诸如列表,列表条目,文档之类都是可以的,而且这个对象模型是很完整的,它既可以做数据查询,还可以做操作。简单类比一下就是,原先服务器对象模型能做的,客户端对象模型也大致能做。 有关服务器对象模型,请参考http://www.cnblogs.com/chenxizhang/archive/2010/04/05/1704550.html 有关客户端对象模型,请参考http://www.cnblogs.com/chenxiz
MOSS 2010:Visual Studio 2010开发体验(17)——在Silverlight应用程序中访问客户端对象模型 上一篇我们开始介绍到了客户端对象模型,这是MOSS 2010提供的一套全新的API,它允许我们在客户端应用程序(包括控制台,Windows Forms,或者Silverlight应用程序)能够方便地访问到SharePoint的数据和组件。典型的引用是列表数据查询。(但不仅限于此) 我们这一篇将继续这个话题,我们来看看在Silverlight应用程序中如何使用客户端对象模型。这与之前的控制台应用程序还是有些不一样的。根本性的区别在于异步操作。 【注意】在Silverlight中使用客户端对象模型访问Sha
Office 2010的一个小问题 Office 2010最近发布了正式版,在使用的时候遇到一个小问题,就是其中的Word和Outlook这两个应用程序会对输入法有些莫名其妙的控制。具体来说是这样: 1. Office 2010会自动安装一套输入法,现在是微软拼音输入法2010 2. 我自己又有安装一套输入法,例如XX输入法,而且我将该输入法设置为默认 看起来没有什么问题,但是每次打开Word,Outlook的时候,它却总是会切换到微软拼音输入法。实在是让人费解。 通过查找一些资料,我发现它是有一个选项在作怪。请看下面的截图 Word
MOSS 2010:Visual Studio 2010开发体验(16)——客户端对象模型 上一篇,我们讲到了LINQ to SharePoint。它提供了很自然的语法,提高了开发体验。但归根结底,LINQ to SharePoint是使用了服务器对象模型,也就是说,通过这样方式编写的代码,必须在服务器运行。大家其实也发现了,我们并没有在任何地方指定过用户的身份。这意味着什么呢?那种方式就默认使用当前用户的凭据作为身份验证。 但是,假设我们的应用程序并不在服务器,而是在客户端运行的话,那么该怎么办呢? 以前(MOSS 2007或者WSS 3.0中),我们是通过一些Web Service的方式来实现