随笔分类 - .NET
企业开发,winform开发,.NET原理
摘要:Dynamic Query是一个支持动态Entity Framework查询的库。它的设计初衷是为了减少在管理系统中大量出现的对一个数据集进行查找、排序、分页的这类场景的开发工作量,其设计思想是”markup is code ”。通过在View上编写具有语义信息的标签,来实现这类常见的功能需求,而不再需要额外的代码。它不是一个完整的ORM,是基于Entity Framework的,因此开发者仍然可以利用Entity Framework提供的大量特性,和现有的EF项目保持兼容。 Dynamic Query分为两个部分,其中之一是一个查询接口,这是一个IQueryable<T>的扩展方
阅读全文
摘要:EF4.1支持了纯粹的POCO实体,对编写Persistence-Ignorant 的程序很有帮助。EF4.1还支持Code First的开发方式,但个人感觉利用Code First在处理较为复杂的关联的时候还是力不从心,Model First是更加合适的方式。在MVC应用程序中,由于无法长久的保留DbContext,在更新一个实体的时候,通常的场景是这样的: ActionResult Edit...
阅读全文
摘要:1. let 绑定 F#使用let关键字来将一个变量或者函数绑定到一个标识符上。例如: let i=5*5结果为:val i : int = 25也可以绑定函数到标示符:let f i=i*ilet j=f 5结果为:val f : int -> int val j : int = 25这表示f是一个接受一个int型参数并且返回int的函数。2. 函数函数是F#中的一等公民,和变量...
阅读全文
摘要:上文介绍的互斥方法都是用于进程间的不同线程的互斥。.NET 提供了不同进程间线程互斥的方法。可以使用named mutex来实现进程间的互斥。named mutex是一个全局的mutex,通过给mutex一个名称,可以在所有进程间有效。注意要仔细选择mutex的名称,避免和其他程序冲突。 using System;using System.Threading;using System.Threa...
阅读全文
摘要:.NET有个WebBrowser控件,在上一篇文章中已经用到过。WebBrowser有个DocumentText属性,从MSDN上面看它就是可以直接设置WebBrowser要显示的内容,但是实际操作的时候: webBrowser1.DocumentText = "htmlbodydivHello/divpw/p/body/html"; 这样操作并不会改变其Doc...
阅读全文
摘要:Javascript是一种脚本语言,它可以寄宿在各种不同的宿主中实现强大的功能。本文介绍的是嵌入在.Net的WebBrowser控件中显示的HTML文件中的Javascript如何调用C#代码。现在在客户端程序中嵌入网页的做法已经非常普遍了,例如腾讯的新闻弹出框之类的。 .Net的WebBrowser用的内核应该还是IE的。IE中,window对象有个external属性,这个属性提供了一个外部...
阅读全文
摘要:关于这个论题, Delegates, Events, and Lambda Expressions 对此有比较深入的分析,可以参考。 C# vs C++之一:委托 vs 函数指针 比较了委托和C++指针的区别。 .NET 中的委托确实和C/C++的函数指针非常相似。它是一个值类型,它包装了一个指向方法的引用。它的作用也是为了能够将方法和变量一样作为参数传递。委托的典型应用是控件的事件处理方法...
阅读全文
摘要:这是一个老问题了,对新手比较困惑,不过网上有很多讨论。.net 2.0之后,Winform控件默认不允许由非它所在的线程改变它的状态。如果你在其他的线程中改变控件的状态,则会抛出异常 Cross-thread operation not valid.窃以为,Control类对于多线程操作应该封装起来,不知道微软为何没这么做。这个问题解决也不难,Control有一个Invoke方法,它接受一个委托作...
阅读全文
摘要:ajax的实现主要依靠浏览器内部的XMLHttpRequest对象,XMLHttpRequest对象在所有现代的浏览器中都被实现了,虽然它还没有被标准化,目前仅是W3C的一个Working Draft. 套用下W3C对它的描述: The XMLHttpRequest specification defines an API that provides scripted client functio...
阅读全文
摘要:SQL Server Express默认是不安装Management Studio的,如果在部署应用程序的时候,需要开启SQL Server Express的远程连接,又不想用户干涉,则需要编程修改如下位置的的注册表的值: Important This section, method, or task contains steps that tell you how to modify the r...
阅读全文