![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
.net(C#/CLI/DLR)
文章平均质量分 61
QQ_370566617
上海航天技术研究院 工程师;
上海交通大学 工学博士
展开
-
Visual Studio 2010并行编程及调试诊断功能
Visual Studio2010 Beta 1发布后,开发人员从其新特性,新功能中得到了不少的帮助。这里将介绍Visual Studio 2010并行编程方面的改进,较Visual Studio 2008有了极大的提高。每当出现新的编程模型时,开发人员便需要一个用来学习、编写、调试以及优化代码的健壮的工具,以便能更好的利用该模型。由于并行计算在公式中添加了新的变量,对于工具的需求便更为突出。原创 2009-12-09 11:24:00 · 1527 阅读 · 0 评论 -
托管与非托管间的代码级桥梁——C++/CLI
我们知道托管与非托管程序之间的桥梁有很多,PIvoke和Mashel,COM和CLR API都算是。然而这些都是模块(assembly)间的桥梁,好处就是方便直接,缺点就是细节上处理不了。是啊,毕竟是两类语言,两类运行环境。如果要更为细腻的处理二者之间的衔接,看来还要署C++/CLI最经典了。当然,C++/CLI也有缺点,就是他两边都站,但两边都不得意他,因此它成为口碑最不好的原创 2010-04-21 13:17:00 · 2000 阅读 · 0 评论 -
C++/CLI实战
什么是C++/CLI? C++/CLI描绘的是一种多元组合,此处的 C++ 当然是指 Bjarne Stroustrup 在 Bell 实验室发明的C++编程语言。它支持速度和执行 文件的大小都得到优化的静态对象模型。但除了堆内存分配以外,它不支持运行时程序对对象的更改。 它允许对底层机器进行无限制的访问,但对于正转载 2010-04-21 23:12:00 · 888 阅读 · 0 评论 -
SharpDevelop
不得不佩服老外的创造力。很早以前就久闻SharpDevelop的大名,终于抽空一睹庐山真面目!这不简直就是IDE中的Firefox吗?!全插件式开源IDE!牛B。当然,SharpDevelop不如visualstudio,那是Microsoft的重量级产品之一了。不过还好了,没有VS那么大,有时候携带安装还是挺方便的。原创 2010-06-30 19:44:00 · 4613 阅读 · 0 评论 -
PowerShell教程
[01]初识PowerShell 作者: Edengundam(马涛) PowerShell的概念性介绍我不太想说得太多, 简单概括几点: 1. 微软Windows操作系统最初的设计目标是面向非技术用户, 甚至是对计算机不感兴趣的人群, 因此, 真转载 2010-05-07 22:06:00 · 8648 阅读 · 3 评论 -
Visual Studio Team System - Unit Test
Unit Test用于测试代码的健壮性和检验代码改动的影响,以及早发现问题。下面两个帖子是详细的使用介绍,我就不转帖了:http://blog.csdn.net/yesbar/archive/2006/04/25/676351.aspxhttp://www.techmango.com/Blog/article.asp?id=497还有就是要做原创 2010-05-08 23:47:00 · 892 阅读 · 0 评论 -
在U盘上运行SharpDevelop
能够在U盘上运行SharpDevelop已经有好一段时间。而在3.0版中的一个新功能是,通常保存在用户配置目录(注解:也就是XP上的Documents and Settings,Vista上的Users)的配置可以直接保存在U盘上——这样你就能够一直带着你的设置了。转载 2010-07-02 08:45:00 · 1044 阅读 · 0 评论 -
C# 中的特性(Attributes)
原帖:http://sifang2004.cnblogs.com/archive/2006/01/12/316313.html翻译不是为了翻译,是为了学习!因为只有翻译我才能逐句的看完整篇文章。 当然还可以得到各位达人的斧正,让我由懂得皮毛到渐入佳境!乐哉,幸哉!原文 约定转载 2010-05-12 23:39:00 · 689 阅读 · 0 评论 -
WPF自定义控件选择
DataTemplate, UserControl, ControlTemplate, CustomControl转载 2010-07-23 22:12:00 · 1604 阅读 · 0 评论 -
WPF中的数据模板(DataTemplate)
在WPF中我们可以为自己的数据定制显示方式,也就是说虽然某数据数据是一定的,但我们可以做到让它的表现方式多种多样,比如一个时间,在以前我们一般使用一个字符串(比如“12:03”)来显示,但我们为什么就不能显示一个小时钟呢,其实这更合乎情理,利用WPF中的数据模板技术随意并轻松地表现你的数据.转载 2010-07-23 22:17:00 · 1437 阅读 · 0 评论 -
WPF CustomControl
为快速地为你的应用定制一个零部件,你需要的是UserControl, 为了让你打造的控件更标准化,更灵活以及更具有普遍意义,你需要用到的CustomControl,这正是本文要介绍的.转载 2010-07-23 22:27:00 · 6130 阅读 · 0 评论 -
C#程序实现动态调用DLL的研究
【篇首语】其实本文介绍的方法是一个思路,但是我感觉吧问题搞复杂了。老外的这个C#调用C++的dll方式挺好的,也很稳定,可以看看http://www.codeproject.com/KB/cs/DynamicInvokeCSharp.aspx。 摘 要:在《csdn开发高手》2004年第03期中的《化功大法 ——将DLL嵌入EXE》一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执转载 2010-04-19 22:27:00 · 1093 阅读 · 0 评论 -
dynamic不应滥用:dynamic应用原则探讨
4.0的经典就是动态语言特性,其中体现在C#4.0上就是dynamic。 看到网上的一些观点和例子,我不禁困惑:dynamic和反射如何区分使用? 很多人热捧dynamic,似乎有取代反射之用。其实在我看来,“反射+接口”依然是程序扩展的主体思路,因为接口的约束使得程序体系是健康的。如果滥用dynamic,将造成程序结构混乱的情况。要知道,当年面向对象语言超越面向过程语言的原因之一就是:规矩(原创 2010-04-19 17:14:00 · 983 阅读 · 0 评论 -
VS 2010之多显示器支持 / Multi-Monitor Support (VS 2010 and .NET 4 Series)
【原文地址】Multi-Monitor Support (VS 2010 and .NET 4 Series) 【原文发表日期】 Monday, August 31, 2009 10:37 PM 这是我针对即将发布的VS 2010 和 .NET 4所撰写的 贴子系列的第四篇。今天的贴子讨论其中一个IDE改进,我知道很多人都在迫切期望VS 2010的---多显示器支持!使用多个显示器转载 2009-12-16 23:59:00 · 1982 阅读 · 0 评论 -
c# 4.0新特性一览 / New Characteristic of C# 4.0
【编者语】很久没有做开发了,但是仍然很关注C#的发展,我一直的观点就是便捷快速开发,因为我们要把精力集中在专业算法和应用上。其实,早先我也转载过C#4.0的介绍文章,但是看到这篇文章,其中的认识进一步深刻,觉得挺好的,有必要转载一下。 终于静下心来仔细听了一遍Anders Hejlsberg(Visual Studio组的TECHNICAL FELLOW,C#的设计者之一)在PDC08上讲转载 2010-03-05 13:01:00 · 833 阅读 · 0 评论 -
谈谈Matlab与C/C++或C#的互调用(混合编程)
记得当初一个师姐问我知不知道如何在Matlab里调用C++的程序,还真把我问住了。因为我以前就知道C++调用Matlab的方法,这方面网上资料一大堆。没想到现在自己突发奇想又遇到另外一个问题,Matlab如何调用C#开发的程序。1、C/C++调用Matlab这方面资料太多了,随便搜一下“Matlab C++ 混合编程”。2、Matlab调用C/C++原创 2010-03-27 09:41:00 · 4258 阅读 · 0 评论 -
即时聊天工具二次开发
突然想做一个能够通知另一台电脑消息的工具。因为是自己用,又不想大动干戈,想想不如就采用现有即时聊天软件如QQ、MSN等开发个小程序就行了。我现在也不愿意编程,能少费事就少费事。研究了QQ的二次开发,根本就不支持,自己要解析协议。本人水平低下,没这个能力和静力。MSN到是有个dotmsn的类库,但是只能发消息给在线用户,不能发送离线用户。我想算了吧,我自己经常脱机显示,岂原创 2010-04-12 00:23:00 · 2178 阅读 · 1 评论 -
一个UG Open API的代码网站 / Code Snippet Library - NX Open C API
http://blattmans.com/code/language/nx-open-c-api/ 挺不错的,是个学习api的好地方。原创 2010-04-15 11:20:00 · 2604 阅读 · 0 评论 -
C#中动态加载和卸载DLL
在C++中加载和卸载DLL是一件很容易的事,LoadLibrary和FreeLibrary让你能够轻易的在程序中加载DLL,然后在任何地方卸载。在C#中我们也能使用 Assembly.LoadFile实现动态加载DLL,但是当你试图卸载时,你会很惊讶的发现Assembly没有提供任何卸载的方法。这是由于托管代码的自动垃圾回收机制会做这件事情,所以C#不提供释放资源的函数,一切由垃圾回收来做。转载 2010-04-17 08:20:00 · 991 阅读 · 0 评论 -
.net程序版本兼容性解决
【篇首语】虽然是1.1的文章,但是原理是一样的,就是改写配置文件。.Net framework 1.1版本是出来一阵子,然后大部分程序员还是习惯用Visual studio .net 2002编写基于.net framework 1.0(以下简称v1.0)的程序。随着前不久Microsoft正式推出Visual Studio .net 2003中文版,其开发的程序产品都转载 2010-04-16 13:50:00 · 2093 阅读 · 0 评论 -
Visual Studio 2010 之调用继承树Call Hierarchy
【篇首语】看到VS2010的这个功能,我真的是泪流满面啊!因为早在开博之初,我就提出过这个设想,调用继承树!不信,您可以自己去找找。当时我写博文只是幻想中建议可以有这样一个功能。没想到居然梦想成真了!!!写程序离不开调试,调试离不开理清程序的执行流程。在以前的Visual Studio版本中,我们几乎都是调试的时候通过调用栈来查找函数间的调用关系,帮助调试的。调转载 2010-04-06 10:24:00 · 2426 阅读 · 0 评论 -
.Net CLR Hosting原理及实践
【篇首语】最近由于.net4升级运行时库的原因,逼得我要去寻求混合编程方法。偶遇这个就转帖过来。通常C++调用.net的dll,都是通过COM的方式,其实也可以采用CLR API,就是本文讲到的内容。这种方式的好处就是效率高,总比COM包装来报装去好一些。多说一点,1、这个API不能加载4.0以上的代码,因为运行时库更新了。可以参看这个 MSDN的说明文档http://msdn.mic转载 2010-04-18 20:54:00 · 1125 阅读 · 0 评论 -
.NET 4.0新功能介绍:In Process Side By Side
【篇首语】除了SxS的介绍以外,该文还体现了一个信息:运行时库更新了,具体的说以前的Host API不能加载4.0以后的程序。 我们先来看一个在Outlook上运行.NET插件的一个情景。暂时机器上面安装的是CLR v1.1,Outlook上运行了一个Addin,在v1.1上编写和测试完毕,运行良好。之后,用户在机器上面安装v2.0。因为Outlook采取的方式是总是启动最新的.NET Fram转载 2010-04-18 21:51:00 · 767 阅读 · 0 评论 -
WPF Commands
说到用户输入,可能我们更多地会联想到键盘、鼠标、手写笔,其实还用一种高级别的输入——命令(Commands),从WPF类库角度讲他们分别对于 Keyboard,Mouse,Ink与ICommand。命令是一种语义级别的输入而不是设备级别的,比如“复制”与“粘贴”,但实现一个命令可以有很多中方式,比如“粘贴”,我们可以使用CTRL-V,也可以使用主菜单或右键菜单(上下文菜单)等等。在以往的.net版本中,要在软件界面上添加一个 “粘贴”按钮,是非常麻烦的事情,你得监视剪切板中是否有可用的文本以及对应的文本框是转载 2010-07-23 22:36:00 · 2406 阅读 · 0 评论 -
WPF binding
到目前为止,很多人都知道使用 Windows® Presentation Foundation (WPF) 可以轻松地设计强大的用户界面。但是您可能并不知道它还提供了强大的数据绑定功能。使用 WPF,可以通过利用 Microsoft® .NET Framework 代码、XAML 或两者的组合进行数据操作。您可以绑定控件、公共属性、XML 或对象,从而使数据绑定比以前更快捷、灵活和简单。所以,让我们来看一下如何开始将控件绑定到您所选的数据源中。转载 2010-07-25 10:41:00 · 3155 阅读 · 1 评论 -
C#之扩展方法
C#3.0扩展方法是给现有类型添加一个方法。现在类型既可是基本数据类型(如int,String等),也可以是自己定义的类。 //Demo--1 //扩展基本类型 namespace TestExtensionMethods { // 必须建一个静态类,用来包含要添加的扩展方法 public static class Extensions { //要添加的扩展方法必须为一个静态方法 //此方法参数列表必须以this开始 第二个即为原创 2010-11-20 10:56:00 · 870 阅读 · 0 评论 -
WPF XBAP 部署发布
以往在部署网站的时候都有许多手动的步骤需介入,对于许多对IIS / SQL 不太熟悉的新手来说部署网站变成一件非常困难且危险的事。 这 次Visual Studio 2010 对于ASP.NET 网站部署的能力大大的提升,它透过Web Deploy API 直接与IIS 沟通,可在发行的同时除了将网站安装进IIS 之外,还可以设定目录权限、变更web.config 内容、建立应用程序、应用程序集区、IIS 细部设定、安装组件进GAC、安装凭证、设定机码、建立数据库、…. 等,非常强大的部署机制且与IIS7原创 2010-11-20 11:06:00 · 6336 阅读 · 0 评论 -
could not load dll or one of its dependency
我们知道dotnet的dll的依赖dll,要么加入GAC要么就要在exe的目录下才能反射加载,放到path目录下都不行。 不过网上通过这种加载搜索的方式可以实现非exe目录的依赖dll加载。 a. My C# program will load a dll (which is dynamic), for now let's take a.dll (similarly my program will load more dll like b.dll, c.dll, etc....). b. My pro原创 2010-11-22 16:03:00 · 1598 阅读 · 0 评论 -
从C++中通过CLR hosting API调用.net dll
Use CLR4 Hosting API to invoke .NET assembly from native C++ The Common Language Runtime (CLR) allows a level of integration between itself and a host. This article is about a C++ code sample that demonstrates using the Hosting Interfaces of .NET Framewor原创 2011-03-01 17:11:00 · 3693 阅读 · 0 评论 -
UG NX 加载.net dll机制
这次我们来探讨一下NX加载.net开发的plugin的机制。 我们知道,NX本身是不需要.net framework支持的,即机器上不需要安装.net framework,也可以运行NX软件。 为什么NX还可以使用.net开发的dll呢?(显然必须自行安装.net framework)。原创 2011-03-01 16:43:00 · 3063 阅读 · 0 评论 -
VS 安装包制作
1.添加项目输出 在文件系统编辑器中,如果项目在一个解决方案中,则可以添加项目的主输出,为自动识别添加生成的exe,config,dll引用等;项目经常还包括一些资源文件,如图片,xml等,这些设置为内容的话,则可以添加项目的内容文件;如果还有一些特殊文件添加,比如第3点说到msiexec.exe文件,则可以直接浏览添加。 2.如何使新生成的安装包在安装时自动覆盖以前安装过的版本 设置部署项目属性RemovePreviousVersion为True,并将Version升高,并在生成时提示的“建议在更改原创 2011-02-28 14:20:00 · 2886 阅读 · 0 评论 -
.net 4.0 dll运行于UG NX多个版本的方法
dotnet有多个版本,比如1.0, 2.0,3.0,4,0,目前最高的是4.0了。 dotnet程序向下兼容,但是不向上兼容,即高版本可以调用低版本程序,但是低版本不能调用高版本程序。(当然可以通过一些方法调用,本文就是一种)。 这样就出现了一个问题。原创 2011-03-03 12:41:00 · 2605 阅读 · 0 评论 -
IronPython 承载和消费WCF服务
“IronPython 2.6提供了新特性clrtype,允许程序员用纯IronPython代码提供property、attribute等CLR类型信息。这样IronPython代码就可以无缝地与Sliverlight、WCF等框架集成。”我们就用clrtype来看看怎么承载WCF服务和消费WCF服务。WCF的契约需要定义接口,这是目前IronPython 尚未支持的功能,所以我们先用C#定义个一个WCF的契约: using System; using System.Collections.Ge原创 2011-03-20 15:31:00 · 2802 阅读 · 0 评论 -
.net 调用C++类库
其实这一直是个很无解的问题。最好的办法是将C++类库写成COM。 但是有时候往往不能这个做。那就只有两种办法:转成C函数形式或者Manage C++封装。 下文就介绍了这两种方法。 原帖:http://www.codeproject.com/KB/cs/marshalCPPclass.aspx Introduction I recently needed to marshal some legacy C++ classes into a C# project on which I was work原创 2011-04-26 09:24:00 · 4805 阅读 · 0 评论 -
Manage C++包装Native C++类的例子
Native C++ 1: #include 2: 3: class CPPClass 4: { 5: public: 6: CPPClass(void) {}; 7: public: 8: ~CPPClass(void) {}; 9: 10: void produceByteArray(unsigned原创 2011-04-26 09:50:00 · 3071 阅读 · 0 评论 -
Assembly.LoadFrom与Assembly.LoadFile
区别: 1、Assembly.LoadFile只载入相应的dll文件,比如Assembly.LoadFile("a.dll"),则载入a.dll,假如a.dll中引用了b.dll的话,b.dll并不会被载入。 Assembly.LoadFrom则不一样,它会载入dll文件及其引用的其他dll,比如上面的例子,b.dll也会被载入。 2、用Assembly.LoadFrom载入一个Assembly时,会先检查前面是否已经载入过相同名字的Assembly,比如a.dll有两个版本 (原创 2010-11-19 23:01:00 · 1549 阅读 · 0 评论 -
IronRuby 1.0及与.NET互操作
ironruby 是.Net平台下的一个ruby实现,众所周知,ruby具有Perl的灵活性,带有实体对象模型,是一门动态/解释语言。从进入ironruby 0.9.1之后,ironruby日趋稳定,目前ironruby的最新版本是0.9.2. 由于IronRuby是与.NET集成在一起的,因此你可以在IronRuby中调用任何已有的.NET代码。这意味着可以在IrongRuby 中使用任何框架,比如Windows Forms、WPF或者GTK(#),因为.NET和Mono(分)拥有对这些框架的CLI原创 2010-12-29 09:33:00 · 1163 阅读 · 0 评论 -
关于由ClickOnce部署的应用程序的两种模式和卸载问题
在项目的发布选项卡中可以为应用程序选择两种ClickOnce部署模式: 该应用程序只能联机使用 该应用程序也可以脱机使用(可以从“开始”菜单启动) 在这里,我们姑且分别称它们为联机模式和脱机模式。转载 2010-08-03 12:38:00 · 4574 阅读 · 0 评论 -
Book of Boo
None原创 2010-08-04 18:46:00 · 658 阅读 · 0 评论 -
Boo语言
Boo 是个面向对象语言,语法非常接近 Python,并且提供了许多可以扩充编译器的有趣特色,并且可以运行在 .NET Framework 或 Mono 上。原创 2010-06-15 13:27:00 · 3610 阅读 · 0 评论