随笔分类 - .net foundation

.net 基础
摘要:codeplex切换到目前的主流开源中心https://github.com/microsoft 几个核心技术的站点https://github.com/Microsoft/dotnethttps://github.com/aspnethttps://github.com/microsoft/vsc 阅读全文
posted @ 2017-08-15 18:17 2012 阅读 (351) | 评论 (0) 编辑
摘要:最近在看这本书,比较实用。抽点时间把公开的部分内容简单的翻译了一下,下文是序部分。书的具体地址为:http://www.amazon.cn/Metaprogramming-in-NET-Hazzard-Kevin/dp/1617290262/ref=sr_1_1?ie=UTF8&qid=1374625885&sr=8-1&keywords=Metaprogramming++in+.NET序对元编程这个问题,我从三个方面的经验进行阐述:作为一个计算机科学家,业务开发员,以及。NET框架的作者。从计算机科学的角度来看,从语言的角度来看,我们的行业已经基本停滞,而且是非常长的 阅读全文
posted @ 2013-07-24 08:42 2012 阅读 (804) | 评论 (0) 编辑
摘要:在Silverlight的世界中,RIA Service + Silverlight可以无缝的进行集成,如有一个实体对象和关联的复杂子对象,在这里可以非常简便的实现:1、构建公用的Domain Class定义2、Silverlight客户端可以使用双向绑定和以上的对象关联3、服务端可以使用以上的Domain Class进行存储因此非常方便,WCF框架已经提供了WCF Trackable支持,如某个对象内容的变化内容可以跟踪,等等。。Flex中配合BlazDS也可以非常方便的处理这个问题。而在JavaScript+ Servlet的环境以上对象该使用哪种方式呢?查阅了相关的资料,归纳起来,目前查 阅读全文
posted @ 2013-05-29 20:44 2012 阅读 (995) | 评论 (0) 编辑
摘要:p/Invoke可以使用工具辅助自动生成,以减少混淆1、官方的支持http://visualstudiogallery.msdn.microsoft.com/site/search?query=p%2Finvoke&f%5B0%5D.Value=p%2Finvoke&f%5B0%5D.Type=SearchText&ac=4微软的官方扩展上也有很多开源的工具http://www.pin5i.com/showtopic-22763.html看起来微软自己也是深受.NET蹩脚的P/Invoke支持的毒害,因此无奈之余发布了P/Invoke Interop Assistant 阅读全文
posted @ 2013-05-07 08:56 2012 阅读 (4852) | 评论 (0) 编辑
摘要:前几天看到园子有提供MS Press官方发布的一些免费电子书,现补充几个http://blogs.msdn.com/b/mssmallbiz/archive/2012/07/27/large-collection-of-free-microsoft-ebooks-for-you-including-sharepoint-visual-studio-windows-phone-windows-8-office-365-office-2010-sql-server-2012-azure-and-more.aspxhttp://blogs.msdn.com/b/mssmallbiz/archive/ 阅读全文
posted @ 2013-01-05 10:38 2012 阅读 (366) | 评论 (0) 编辑
摘要:Boo is an object-oriented, statically typed programming language for the Common Language Infrastructure (CLI) with a Python-inspired syntax and a special focus on language and compiler extensibility. It’s this focus on extensibility that makes it ideally suited for building DSLs. Boo is not just... 阅读全文
posted @ 2012-10-09 17:24 2012 阅读 (1584) | 评论 (0) 编辑
摘要:WinRT是为消费市场准备的,和传统的桌面、企业应用差别巨大。 When designing apps for Windows 8, you must keep this in mind as well. You will build apps for consumers when using WinRT. otherwise, you are most likely building software for providers or enterprise users. Metro style development is not aimed at those scenarios. Win. 阅读全文
posted @ 2012-09-27 21:23 2012 阅读 (409) | 评论 (0) 编辑
摘要:这些年读.net关于web开发的方方面面的书很多,如下从历史的书单中选取一些比较经典的图书供参考。C#基础语言基础和工具使用非常重要,如下是基本比较经典的图书书名概要CLRviaC#(第3版)http://product.china-pub.com/196978本书针对clr和.netframework4.0进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试 JeffreyRichter是全球享有盛誉的技术作家C#Primer中文版举世闻名的“primer”风格,畅销书作者stanlippman现为您呈上一份不容错过的c#指南C#与.NET3.5高级程序设计(第4版)本书是 阅读全文
posted @ 2012-08-09 08:30 2012 阅读 (7732) | 评论 (27) 编辑
摘要:生产率工具 Productivity tools ■ ReSharper—www.jetbrains.com/resharper ■ CodeRush—www.devexpress.com/coderush ■ TestDriven.Net—www.testdriven.net自动化测试工具 Automated testing tools ■ NUnit—www.nunit.org ■ MbUnit—www.mbunit.com ■ RhinoMocks—www.ayende.com/projects/rhino-mocks.aspx ■ Moq—http... 阅读全文
posted @ 2012-08-01 08:55 2012 阅读 (554) | 评论 (0) 编辑
摘要:C# 5.0 in a Nutshell The Definitive Reference WinRT C# 5.0 also interoperates with Windows Runtime (WinRT) libraries. WinRT is an execution interface and runtime environment for accessing libraries in a language-neutral and object-oriented fashion. It ships with Windows 8 and is (in part) an enhan.. 阅读全文
posted @ 2012-07-08 20:33 2012 阅读 (1926) | 评论 (0) 编辑
摘要:我们使用Windows都知道,整个Windows和微软提供的应用软件的稳定性和崩溃后的体验是逐步提升的。在大牛的作品《软件调试》中有描述。在Windows下,软件出错,常见的报告手段:1、事件日志:这里记录了很多关键的错误信息2、崩溃报告:可以自动提交错误的信息,或者手动提交,以不断的改进软件和方便排错3、专用的日志工具:如Netmon,sysinternal等那我们的软件在崩溃后如何处理呢?主要目的:1、方便我们的排错2、提供更好的使用体验最近在设计一个应用系统时对这个问题进行处理。这方面有比较多的参考:首先在stackoverflow上可以看到,c++ release program cr 阅读全文
posted @ 2012-05-18 08:48 2012 阅读 (3315) | 评论 (1) 编辑
摘要:应用中Undo/Redo是比较常用的功能,如果每个应用做一个比较麻烦,可以参考如下的框架:大名鼎鼎的infragistics提供的框架:http://blogs.infragistics.com/blogs/ambrose_little/archive/2012/01/26/infragistics-undo-redo-framework-ctp.aspxhttp://www.infoq.com/news/2012/01/undo-redo-silverlight-wpfcodeplex一个比较早的框架http://undo.codeplex.com/http://blogs.msdn.com 阅读全文
posted @ 2012-02-01 11:28 2012 阅读 (740) | 评论 (0) 编辑
摘要:Autofac http://code.google.com/p/autofac/ Castle Windsor http://www.castleproject.org/ Common Service Locator http://commonservicelocator.codeplex.com/ FxCop http://code.msdn.microsoft.com/codeanalysis MEF Contrib http://mefcontrib.codeplex.com/ MVC Contrib http://www.codeplex.com/MVCContrib/ Moq ht 阅读全文
posted @ 2011-12-19 22:10 2012 阅读 (549) | 评论 (2) 编辑
摘要:最近使用了Sharepoint 2010的开发,其中包括一个新的服务STS,看了一下,主要资料如下: 现有的认证授权如Memebership的开发支持已经比较完善了,之所以引入WIF,主要是通过间接的形式抽象,使认证和授权在分布式环境下更易使用。 With the inflationary growth of distributed systems and online businesses, in the last few years the increasing need for interoperable protocols that could tear down the wall.. 阅读全文
posted @ 2011-12-14 22:04 2012 阅读 (915) | 评论 (0) 编辑
摘要:现有的应用程序代码代表了一个开发者在时间和金钱上的大量投入。理想情况下,现有代码可以通过某种平台相关的接口结合起来,这种接口提供了一个快速方案,帮助利用原有的资源。但在实践中,这种转换平台的做法并不总是容易的,Patrick Smacchia最近的文章《Real world feedback on a .Net to Mono migration》就他把现有的.NET代码移植到Mono平台上的经历给出了一些有用的想法。Smacchia提到他的公司最近把他原先的产品NDepend(为.NET平台而写的)移植成一个新的产品JavaDepend,这个新的产品运行在Windows和Linux的Mono 阅读全文
posted @ 2011-11-30 08:19 2012 阅读 (648) | 评论 (0) 编辑
摘要:在我们处理各类信息系统的业务时,定时的调度问题会经常的涉及,quartz是java社区一个很成熟的解决方案,.net也有对应的开源实现,具体为:http://quartznet.sourceforge.net/不过这个版本对vs2010和64的支持不好,今天抽了一些时间对以前的这些部分进行了升级,整理了一个初步的通用的方案。具体的结构图如下:客户端RemoteDemo<quartz> <add key="quartz.scheduler.proxy" value="true"/> <add key="quartz. 阅读全文
posted @ 2011-10-12 22:14 2012 阅读 (3489) | 评论 (2) 编辑
摘要:在设计应用程序界面时,使用一个商业的软件包,可以提高开发效率.NET的常用的界面库软件包有: devexpress telerik componentone infragistics如下是各个软件的主页和WPF界面库的内容devexpresshttp://www.devexpress.com/http://www.devexpress.com/Products/NET/Controls/WPF/Telerikhttp://www.telerik.com/http://www.telerik.com/products/wpf.aspxComponentonehttps://home.compon 阅读全文
posted @ 2011-09-23 12:47 2012 阅读 (5543) | 评论 (3) 编辑
摘要:Memcached的大名相信很多人都知道,分布式缓存。以下是几个很好的参考资料,在项目中可以方便得集成。一个很详细的介绍相关原理和使用的文章系列,包括了应用的总结信息,很好的参考memcached全面剖析–PDF总结篇http://tech.idv2.com/2008/08/17/memcached-pdf/asp.net使用Memcachedhttp://www.cnblogs.com/dudu837/archive/2010/03/25/1694844.html.net下几个访问Memcached的库http://www.cnblogs.com/dudu/archive/2009/07/1 阅读全文
posted @ 2011-05-23 12:07 2012 阅读 (430) | 评论 (0) 编辑
摘要:垃圾回收算法: 托管堆:CLR要求的资源从托管堆分配,任何对象只要没有应用程序的根引用它,都会在某个时刻被垃圾回收器回收 基于代的机制,提高回收的性能,在程序的生命期中,新建的对象是新一代,而创建的比较早的对象是老一代,第0代是最近分配的对象,CLR 使用了0,1,2三代进行管理 GC和调试GcAndDebug.cs (例子代码)本地资源终结(finalization)是CLR提供的一种机制,允许对象在垃圾回收器回收其内存之前执行一些得体的清理工作,任何包装了本地资源的类型都必须支持终结操作(实现一个命名为Finalize的方法)。 GC判断一个对象是垃圾时,会调用对象的Finalize(实现 阅读全文
posted @ 2011-05-13 22:20 2012 阅读 (332) | 评论 (0) 编辑
摘要:.net中的异步编程模型比较模型主要用途用什么模拟辅助用途父子进度报告取消等待超时返回结果/异常QueueUserWorkItem计算同步I/ONoNoNoNoNoNoTimer计算同步I/ONoNo通过DisposeNoYesNoRegisterWaitForSingleObject计算同步I/ONoNo通过UnregisterNoYesYesTasks计算同步I/OTaskCompletionSourceTaskScheduler'sFromAsyncYesNo计算;在Task开始前取消;Task支持取消;放弃结果YesYesYesIAsyncResult APMI/O委托的Beg 阅读全文
posted @ 2011-05-12 08:10 2012 阅读 (386) | 评论 (0) 编辑
摘要:EAP是针对Windows窗体开发提供的方便使用的异步模式,可以在IDE中可视化的设计和使用//TheSystem.Net.WebClientclasssupportstheEvent-basedAsynchronousPatternWebClientwc=newWebClient();//Whenastringcompletesdownloading,theWebClientobjectraisesthe//DownloadStringCompletedeventwhichwillinvokeourProcessStringmethodwc.DownloadStringCompleted+= 阅读全文
posted @ 2011-05-11 08:21 2012 阅读 (853) | 评论 (1) 编辑
摘要:概念异步执行计算限制的操作,可以使用线、线程池、Task在多个内核上调度任务,使多个线程并发的工作,从而高效的使用系统资源,同时提升应用程序的吞吐能力。异步I/O操作,允许将任务交由硬件设备处理,期间完全不占用线程和CPU资源,这样系统资源可以高效的使用。I/O操作的结果是由线程池来处理的。Windows中使用I/O完成端口的形式完成异步I/O,<Windows核心编程>有详细描述。执行异步操作是构建高性能、可伸缩应用程序的关键,它允许用非常少的线程执行许多操作,和线程池配合,异步操作允许利用机器的所有CPU。为此,CLR团队提供了一种模式:异步编程模型(Asynchronous 阅读全文
posted @ 2011-05-10 08:38 2012 阅读 (1758) | 评论 (0) 编辑
摘要:CLR Via C#中一个推荐的库Power Threading,通过了解功能很是强劲,主要是把异步编程的步骤给简化了。以下是学习的过程推荐http://wintellect.com/PowerThreading.aspx 下载Wintellect_Power_Threading_Library_(October 26, 2010).zip,包中Power Threading Overview.pdf 这个是个详细的介绍,不过有的没有更新。AsyncEnumeratorWindowsForms展示了AsyncEnumerator的使用、取消、延时取消、丢弃处理结果TcpServer异步方式实现 阅读全文
posted @ 2011-05-08 14:32 2012 阅读 (2480) | 评论 (0) 编辑
摘要:同步的目的是防止多个线程访问共享数据的破坏问题,关键点:处理同步是容易出错的通过锁对性能会有影响同一个时刻只允许一个线程写共享资源一些建议避免静态字段共享数据(只读除外)创建的对象在线程之间不传递使用,也不需要同步最好使用值类型,线程操作的是这些类型的拷贝,因此不需要同步用户模式、内核模式基元构造优点缺点例子基元用户模式使用特殊的CPU指令,速度比内核模式快OS不能侦测到线程的阻塞,会多次反复调度易失Volatile construct:Thread.VolatileWriteThread.VolatileReadvolatile互锁构造Interlocked constructSystem. 阅读全文
posted @ 2011-05-07 22:06 2012 阅读 (1265) | 评论 (0) 编辑
摘要:CLR线程CLR使用的是Windows的线程处理能力,目前的CLR实现一个CLR线程对应于一个Windows线程System.Threading.ThreadSystem.Threading.Threadt=newSystem.Threading.Thread(op=>{Console.WriteLine(op);});t.Start("demo");t.Join();CLR线程池创建和销毁线程是一个昂贵的操作,要耗费大量时间、资源,对性能也有影响。为改善这个情况,CLR包含了代码来管理它的线程池。可将线程池想象成可由你的程序使用的一个线程集合,每个CLR一个线程池, 阅读全文
posted @ 2011-05-06 08:26 2012 阅读 (1151) | 评论 (2) 编辑
摘要:一般的开发中常用的集合有:列表:List集合:Set字典:Dictionary队列:Queue栈:Stack只要知道了这些名字,在FCL库中可以找到合适的实现,如下列出了各种类,根据需要选择即可。命名空间引入的.net版本说明集合实例System.Collections1.0普通的集合类、接口等ArrayListBitArrayHashTableQueueSortedListStackSystem.Collections.Specialized1.0特定的强类型集合HybridDictionaryListDictionaryNameValueCollectionOrderedDictionar 阅读全文
posted @ 2011-05-04 17:32 2012 阅读 (3806) | 评论 (1) 编辑
摘要:.net的基础库提供了4个类别的计时器,使用的时候经常搞混,为了更好的使用这几个计时器,把每个的情况整理如下:类别说明使用场景System.Threading.Timermscorlib (in mscorlib.dll)要在一个线程池上执行定时的(周期性发生的)后台任务是,常用的计时器触发器方法在系统提供的线程池中执行(不是在创建计时器的线程)不更新UI的情况基本都适用System.Windows.Forms.TimerSystem.Windows.Forms.dll构造这个类的一个实例,相当于告诉Windows将一个计时器和调用线程关联(Win32的SetTimer).这个计时器触发时,W 阅读全文
posted @ 2011-05-03 17:25 2012 阅读 (1885) | 评论 (1) 编辑