
.Net/Windows Forms/WPF
alvachien
Development Architect, SAP Labs China.
展开
-
Visual Studio无法调试特定的ASP.Net项目
Visual Studio无法调试特定的ASP.Net项目。原创 2022-11-10 23:19:50 · 899 阅读 · 0 评论 -
[.NET] 常用的reusable library
1. NAudioNAudio is an open source .NET audio and MIDI library, containing dozens of useful audio related classes intended to speed development of audio related utilities in .NET. It has been in de原创 2013-10-27 22:20:51 · 1014 阅读 · 0 评论 -
[WPF] Caliburn Micro学习一 Installation
在之前的文章(http://blog.csdn.net/alvachien/article/details/5670838)里面,已经提到过MVC和MVVM在Design Pattern上的比较。首先,关于MVVM这个Pattern,补充两个不错的资源:1. MSDN Channel 9的“MVC, MVP and MVVM”, http://channel9.msdn.com/E原创 2013-10-24 01:32:04 · 3017 阅读 · 0 评论 -
那些年用过的UI开发平台
屈指算来,在我不长也不能算短的职业生涯中,接触了数代 的UI技术:MFC (Microsoft Foundation Class)- Win32上最强大的Class Library,没有之一。VS唯一的对手Borland出品的C++ Builder同样支持MFC。在Win32时代,MFC配合强大的C++,将MVC Pattern普及到前所未有的地步。虽然我的C++生涯中,使用MFC做界原创 2013-10-31 22:53:18 · 834 阅读 · 0 评论 -
[WPF] Caliburn Micro学习三 Binding
如果说WPF推崇的Binding开辟了一条UI开发新的方式——让写代码的人专注在代码上,让界面设计师去实现界面,他们工作在同一个项目上,使用不同的IDE,最终Build出来真正的产品,那Caliburn Micro无疑是一个加速器,它不仅加速了原创 2013-12-02 23:41:39 · 2023 阅读 · 0 评论 -
创建OData Service(基于ASP.NET 4.6.1, EF 6),Part I:Project initialize
由于ASP.NET Core 1处于RC阶段,加上OData WebAPI 对ASP.NET Core 1的跟进不是很积极,基于ASP.NET Core 1的Alpha 1版本已经N月没有check in,所以这次的OData Service还是基于ASP.NET 4.6.1创建。有兴趣的可以自行查看: https://github.com/OData/WebApi开始之前,有两个常见问题必须原创 2016-04-11 22:24:30 · 709 阅读 · 0 评论 -
Recursive Learning
At first, I just want to learn SQL Server / T-SQL, which I hope can replace MySQL.Then, I was attracted by Azure.And I was trying to deploy Nodejs application on Azure.Later on, I noticed that I原创 2016-04-07 14:22:00 · 562 阅读 · 0 评论 -
ASP.NET Core 1.0: API的输入参数
Web API是需要接受参数的,譬如,通常用于创建数据的POST method需要接受输入数据,而用于GET method也需要接受一些可选参数,譬如:为了性能起见,控制返回数据的数量是至关重要的。首先来看输入参数的几种形式:/api1/{parameter1}/{parameter2}/…/{parametern}/api1&{parameter1}=xxx&{parameter2}=xxx&原创 2016-06-24 10:17:24 · 2947 阅读 · 0 评论 -
ASP.NET Core 1.0: Using Entity Framework Core 1.0 - Transaction
跟Entity Framework之前的版本不同,Class DbContext不再有AcceptAllChanges()方法。使用Transaction需要使用DbContext中的Database对象。using (var transaction = await _dbContext.Database.BeginTransactionAsync()){ try {原创 2016-06-03 10:27:45 · 1531 阅读 · 0 评论 -
ASP.NET Core 1.0: 指定Default Page
前不久写过一篇Blog《指定Static File中的文件作为Default Page》,详细参见链接。然而,今天偶然发现了一个更加简洁的方法,直接使用Response的Redirect方法:public void Configure(IApplicationBuilder app){ app.UseStaticFiles(); app.Run(ctx => {原创 2016-06-24 15:23:34 · 1244 阅读 · 0 评论 -
C#: 统计method的执行时间
对于性能分析来说,无非是内存占用,CPU使用和执行时间。那么,对于执行时间(elapsed times)的测量,需要强调的是,尽量不要使用DateTime类来,而是应该使用Stopwatch 类。MSDN文档:https://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch(v=vs.110).aspxvar watch =原创 2016-06-13 11:05:30 · 686 阅读 · 0 评论 -
C# III: 数据库基本操作
用C#操作数据库——数据库使用SQL Server为例,对应的namespace是System.Data.SqlClient.读取数据 从数据库中读取数据是最基本的操作了。 示例代码如下: String connString = @""; // Connection string SqlConnection conn = new SqlConnection(connString); tr原创 2016-06-29 22:51:37 · 672 阅读 · 0 评论 -
C# II: Class ViewModelBase and RelayCommand in MVVM
好久不写WPF和MVVM,新建一个Project后,想起来ViewModelBase和RelayCommand没有。以下Code摘自MSDN上的Article:Patterns - WPF Apps With The Model-View-ViewModel Design Pattern中附带的示例代码:Class ViewModelBase :using System;using System.原创 2016-06-20 20:32:24 · 1733 阅读 · 0 评论 -
C# IV: 数据库基础操作2
需上一篇C# III:数据库基础操作另外一个经常碰到的数据库操作是,单次执行多个SQL语句,譬如,一次性插入多条数据。方法一,拼凑长SQL语句 拼凑长SQL语句实际上是String的操作。如下示例: string[] arr = { query2, query3 }; string allQueries = string.Join(";", arr); command.CommandTex原创 2016-08-22 19:38:02 · 407 阅读 · 0 评论 -
C# V: 读取XML文件
在C#中读取XML有LINQ版本和非LINQ版本。 LINQ版本:// Loading from a file, you can also load from a streamvar xml = XDocument.Load(@"C:\contacts.xml");// Query the data and write out a subset of contactsvar query =原创 2016-08-23 18:40:02 · 524 阅读 · 0 评论 -
C# VI: 删除字符串中指定字符的几种方法
本文基于Stackoverflows上以下几个Question: Fastest way to remove chars from string (http://stackoverflow.com/questions/2182459/fastest-way-to-remove-chars-from-string) More efficient way to remove special char原创 2016-09-05 10:53:29 · 23904 阅读 · 1 评论 -
C# VII: 统计文本行数
本文基于StackOverflow的以下问题收集整理而成。 What is the fastest waty to count newlines in a large .NET string: http://stackoverflow.com/questions/2557002/what-is-the-fastest-way-to-count-newlines-in-a-large-net-str原创 2016-09-05 11:00:44 · 692 阅读 · 0 评论 -
C# VIII: 操作Web API (.Net Core 1.0)
所谓操作Web API,无非是Send相应的Request到API。 以下代码基于.NET Core 1.0. var vm = null; // View model for real data var client = new HttpClient(); try { c原创 2016-09-30 17:16:31 · 676 阅读 · 0 评论 -
[WPF] Caliburn Micro学习二 Infrastructure
Caliburn Micro学习一 Installation http://blog.csdn.net/alvachien/article/details/12985415Step 1. 无论是通过Package Manager Console添加Caliburn.Micro从nuget安装了对应的Package,还是手动在Project的Reference中添加Caliburn.Mi原创 2013-10-26 14:25:25 · 1700 阅读 · 0 评论 -
[WPF] DataGrid的用法小结
DataGrid的用法小结。原创 2010-06-19 14:34:00 · 2827 阅读 · 0 评论 -
Basic Concepts of Microsoft .Net Framework
1. 常用的CIL指令BOX: value type和reference type之间的转换CALL: 调用方法,如果方法是虚拟的,虚拟性被忽略CALLVIRT: 调用方法,如果方法是虚拟的,虚拟性不被忽略CASTCLASS: 将对象转换为另一种类型LDC: 向堆栈中加载数值常量LDARG[A]: 向堆栈中加载参数或参数地址[A]LDELEM: 向堆栈中加载数组元素LDLOC[A]:原创 2005-06-17 12:33:00 · 1738 阅读 · 0 评论 -
学习.NET (1) 语言和国家地区 上 Language and Region (1st Half)
Part I: Language and Region (1st Half)By Alva Chien1. The name of culture contains two parts, and the names follow the RFC 1766 standard in the format "-", where is a lowercase two-l原创 2006-09-19 23:22:00 · 5115 阅读 · 0 评论 -
学习.NET (2) 语言和国家地区 下 Language and Region (2nd Half)
Part II: Language and Region (2nd Half)1. CultureInfo used to contain all the information, including Calendar, DateTimeFormat,TextInfo, as so on, but concerning of strings for a multi-language原创 2006-09-24 19:56:00 · 2007 阅读 · 0 评论 -
学习.NET (3) Inside GAC --浅析GAC目录架构在不同CPU平台上的工作原理
Inside GAC --浅析GAC目录架构在不同CPU平台上的工作原理By Alva ChienFile Version: 1.0Released: 2007.5.30 GAC是用来存放可以被大部分Assembly引用的Assembly的地方,它的地址是:%SystemRoot@/Assembly,GAC中只能存放Strongly named assemb原创 2007-05-30 13:45:00 · 2267 阅读 · 0 评论 -
学习.NET (5) XML起步 -研究System.Xml命名空间对XML文件操作的支持
XML起步-研究System.Xml命名空间对XML文件操作的支持By Alva ChienFile Version: 1.0Released: 2007.8.30FCL提供了System.Xml这个命名空间来支持对XML文件的操作,一开始接触这个namespace会发现很多Class,可能会无所适从,不知从何开始。事实上,对于简单的XML读写操作,可以原创 2007-08-30 00:52:00 · 1312 阅读 · 0 评论 -
学习.NET (4) Inside Assembly -研究Assembly的结构,强命名Assembly的生成以及Delayed signing的过程
Inside assembly-研究Assembly的结构,强命名Assembly的生成以及Delayed signing的过程By Alva Chien File Version: 1.0Released: 2007.6.4 .NET平台的Module文件一个.NET上的Module(模块)文件由4个部分组成:1. PE32(+) Header: 标准原创 2007-06-04 18:48:00 · 1648 阅读 · 0 评论 -
Microsoft JET Engine的完美替代: SQL Server Compact Version 3.5和完美的Synchronizer库
喜欢自己写程序的人都知道,Microsoft JET Engine是一个非常好用的In-Process的基于文件(即Access的数据文件,后缀名为MDB)的数据库引擎,好些小网站也使用MDB文件作为数据库解决方案。一般而言,需要独立的数据库引擎进程的程序都是比较巨大的程序。然而,使用过Microsoft JET Engine的兄弟都知道,这个引擎的优点跟它的缺点一样明显。撇开它安全性能较弱等原创 2007-10-16 16:49:00 · 1842 阅读 · 3 评论 -
学习.NET(7) ISerializable接口简析之二
上一篇"学习.NET(6) ISerializable接口简析"中已经分析过如何把Serializable的对象保存到MemoryStream中。通过BitFormatter可以很轻易的把MemoryStream保存为二进制数组中,无论是存为二进制文件,还是保存在数据库等可以存储数据的地方,以便将来可以轻易的Deserialize。当然二进制数据Byte[]总是不方便使用,可以UnicodeEnc原创 2008-10-02 11:44:00 · 1550 阅读 · 0 评论 -
学习.NET (6) ISerializable接口简析
ISerializable接口的定义如下:namespace System.Runtime.Serialization { // Summary: // Allows an object to control its own serialization and deserialization. [ComVisible(true)] public in原创 2008-10-01 00:41:00 · 1460 阅读 · 0 评论 -
学习.NET (8) 实现派生类中Deep Copy的几种常用方法(通过ICloneable接口)
By Alva Chien 2008.10.03跟C++编译器会默认提供一个Copy Constructor函数不同,C#中回避了这个问题。跟System.Object提供了一个充满歧义的Equals方法一样,System.Object还提供了一个MemberwiseClone方法,但是这个方法的名字依旧带来不小的误解,其实,这个函数只是实现了Shallow Copy,对.NET CLR中占绝原创 2008-10-03 15:15:00 · 1166 阅读 · 0 评论 -
UI控件: ACUIBaseControl
所谓的界面,无非用来显示或者用来编辑数据。比如说,在软件系统中创建一个用户,那么,必须有个创建用户的Form,一个修改用户信息Form,还有一个单纯的显示用户信息Form。既然以上三种需求是针对同一个数据,那么创建一个Control应该是最合理的方案,尤其是以后维护、增强都很方便。ACUIBaseControl就是这么一个基类。它的实现支持的情景设定:创建 修改 只读显示 自定义的情景原创 2009-02-20 21:10:00 · 855 阅读 · 0 评论 -
【数据结构】有向图、无向图以及最短路(Dijkstra, Floyd)算法的C#实现(纯模板Template实现)
有个网友在前面一篇里面留言,要求Floyd算法。这里我实现了两个算法,同时去原有代码进行了一下更新: public sealed class GraphVertex { #region Constructor public GraphVertex() { } #endregion原创 2009-07-16 23:16:00 · 2275 阅读 · 1 评论 -
【数据结构】有向图、无向图以及最短路(Dijkstra)算法的C#实现(Template模式)
为了写个“运筹学”的小工具,发现必须用到数据结构中的图。找了一圈没有找到自己满意的,只能自己写一个。所有代码基于C#,完全模板实现。 首先是顶点的定义,顶点可以是任意类型,但其ID为Int32,该ID只是Graph内部使用。 public sealed class GraphVertex { #region Constructor原创 2009-07-12 17:51:00 · 5524 阅读 · 5 评论 -
[.NET] C#中SendMessage通过LPARAM传递Structure
这两天一直被一个问题烦着:SendMessage在C#始终不正常。因为SendMessage是标准的WinAPI,在C/C++中,Structure可以很方便通过取地址传递给SendMessage,比如Richedit中常用的EM_GETCHARFORMAT消息:SendMessage( hWnd, EM_GETCHARFORMAT, ( WPARAM)SCF_SELECTION原创 2009-11-24 14:34:00 · 4084 阅读 · 1 评论 -
Websites for WIC/XMP, EXIF, IPTC
首先,一个值得收藏的个人Blog: http://www.tassography.com/。看得偶自己都又想做一个自己的了。 Resources websites:EXIF official website: http://www.exif.orgIPTC official website: http://www.iptc.org/原创 2010-04-20 11:44:00 · 1057 阅读 · 0 评论 -
[WPF] Binding Enum to ComboBox
方法一:在Resources中定义ObjectDataProvider,如: 对Combo设定: 方法二:定义一个MarkupExtension。 [MarkupExtensionReturnType(typeof(object[]))]public class EnumValuesExt原创 2010-04-28 16:09:00 · 3052 阅读 · 0 评论 -
[WPF] MVVM的一点资源
MVVM的一些资源,或者说是学习之路。原创 2010-06-14 14:55:00 · 1511 阅读 · 0 评论 -
Basic Concepts of ASP.Net
1. 浏览器通过HTTP协议访问网络,首先由DNS将地址转换为IP地址,然后浏览器打开一个套接字连接,通过一个地址端口连接服务器,一个典型的HTTP请求:GET /test.html HTTP/1.1Accept: */*Accept-Language: en-usAccept-Encoding: gzip, deflateIf-Modified-Since: Web, 24 Oct原创 2005-06-19 23:57:00 · 2617 阅读 · 0 评论