共8页: 上一页 1 2 3 4 5 6 7 8 下一页 
摘要: 在上一讲中,我们已经新建了一个聚合根对象Account,并已经可以开始设计领域模型了。在这一讲中,我们会着重介绍EasyMemo领域模型的分析和设计,并引入Visual Studio Ultimate(旗舰版)版本的特性,介绍在Visual Studio 2013 Ultimate中如何使用体系结构建模工具进行领域模型设计,并自动化产生支持Apworks框架的代码。 界定上下文 由于EasyM...阅读全文
posted @ 2015-10-03 20:54 dax.net 阅读(6207) 评论(30) 编辑
摘要: 时隔一年,继续我们的Apworks框架之旅。在接下来的文章中,我将逐渐向大家介绍如何在Visual Studio中结合Apworks框架,使用ASP.NET Web API和MVC来开发面向经典分层架构的应用程序。在这一讲中,我们首先了解一下分层架构的各个“层”,以及所涉及的Visual Studio项目,然后,我们从领域模型开始,在Visual Studio中开始我们的应用程序开发之旅。 说明...阅读全文
posted @ 2015-10-02 11:40 dax.net 阅读(4676) 评论(14) 编辑
摘要: 最近突发奇想,下载了Microsoft Small Basic并编写了两个图形变换的小程序,希望能够让儿子对科技产生兴趣(当然,成为像我一样的码农可不是我的初衷)。 捡起自己入门电脑编程时学会的第一门语言 GW Basic,下载完Small Basic后写的第一个图形程序就是一个五彩缤纷的小球在屏幕上乱跳的程序,看上去有点像DOS下小球病毒爆发时的现象(不好意思暴露自己年龄了),而第二个程序...阅读全文
posted @ 2015-09-26 22:12 dax.net 阅读(2924) 评论(5) 编辑
摘要: 在最新版本(1.0.5715.39966)的CloudNotes桌面客户端中,已经可以把笔记发布到博客园了,它是通过一个新增的桌面客户端插件实现的。事实上,该插件不仅仅支持博客园,它可以支持所有基于MetaWeblog API的博客系统。 发布博客 不多说,先上图。在该版本的桌面客户端中,打开设置对话框,进入“扩展功能”标签,您可以看到在工具型扩展功能列表中,新增了两个扩展功能(也就是常说的插件...阅读全文
posted @ 2015-08-26 16:36 dax.net 阅读(1337) 评论(2) 编辑
摘要: 最近在CloudNotes桌面客户端中新增了笔记撰写样式的功能。当用户新建笔记的时候,可以在输入笔记标题的同时,选择笔记撰写样式,由安装包默认提供的样式主要有默认样式(Default)、羊皮纸样式(Leather Paper)以及Word 2013样式(Microsoft Word 2013)。选择笔记样式的时候,还提供了预览功能,用户可以直接预览样式效果: 当然,为了方便操作,用户可以在设...阅读全文
posted @ 2015-08-19 15:07 dax.net 阅读(1487) 评论(2) 编辑
摘要: 最近因项目需要,我自己设计开发了一个基于Windows Forms的向导开发框架,目前我已经将其开源,并发布了一个NuGet安装包。比较囧的一件事是,当我发布了NuGet安装包以后,发现原来已经有一个.NET的向导开发框架了,它叫Microsoft Visual Studio 2013 Wizard...阅读全文
posted @ 2015-07-01 10:08 dax.net 阅读(7048) 评论(28) 编辑
摘要: 【CloudNotes版本更新历史与各版本下载地址请点击此处】 【CloudNotes中文系列文章汇总列表请点击此处】 【查看CloudNotes源代码请点击此处】 有时候,同一个名词,针对不同的人群,应该采用不同的表达方式。比如插件的概念,对于程序员而言,可以将其称为插件,或者扩展。对于用户而言,或许“扩展功能”一词会更加贴切。本文还是脱离不了码农的气质,继续讨论技术问题,因此,我会以“插...阅读全文
posted @ 2015-02-25 22:06 dax.net 阅读(2268) 评论(9) 编辑
摘要: CloudNotes领域模型还是相对简单的,并不一定需要采用面向领域驱动的设计方法来解决CloudNotes的领域问题。但出于以下几个方面的原因,我还是采用了面向领域驱动的方式来开发CloudNotes: 领域驱动是企业级应用开发的一种指导性模型,以领域模型作为软件开发的中心,符合解决问题的基本思路 现有的企业级应用开发框架对面向领域的开发模式支持得越来越好,如果选用这种方式,可以...阅读全文
posted @ 2015-02-22 20:46 dax.net 阅读(2207) 评论(4) 编辑
摘要: 【CloudNotes版本更新信息与下载地址:http://cloudnotes.cloudapp.net/webapi/Home/Release】【CloudNotes RESTful API帮助文档地址:http://cloudnotes.cloudapp.net/webapi/Help】Clo...阅读全文
posted @ 2015-02-15 13:56 dax.net 阅读(1232) 评论(1) 编辑
摘要: Json数据转换为ADO.NET DataSet其实方法有很多,Newtonsoft.Json也提供了DataSet的Converter用以转换Json数据。但是有些情况下DataSet Converter并不管用,而且也不一定能够满足项目需要。这里介绍另一种简单有效的方法,能够方便快速地将Json数据转为ADO.NET DataSet。 设计 事实上Newtonsoft.Json已经提供了一...阅读全文
posted @ 2015-02-02 10:54 dax.net 阅读(5469) 评论(13) 编辑
摘要: 今天,我发布了CloudNotes的一个更新版本:1.0.5484.36793。这个版本与1.0.5472.20097不同的是,它拥有增强的笔记列表,与之前单调的列表系统相比,新的笔记列表不仅可以显示笔记的摘要内容,而且还可以从笔记中抽取第一张图片,并显示图片的详细信息: 怎么样?相比之前的笔记列表,现在的设计是不是能够展示更丰富的信息呢? 升级到最新版本 如果在读完我的第一篇关于Clo...阅读全文
posted @ 2015-01-07 16:14 dax.net 阅读(1714) 评论(3) 编辑
摘要: 很长时间没有更新博客了,一直在忙着工作和生活琐事,虽然偶尔也有闲暇之时,但短短的几个小时空闲又未必能够静下心来。最近一个多月突发奇想,将自己在近一年前做的一个自己用的云端个人笔记系统重构美化了一下,增强了一部分功能,现打算开源公布出来,分享给大家,也会慢慢地向大家介绍整个系统所使用的开发技术和部署环境等细节。 背景 近一年前,我一直希望能自己开发一套轻量的个人笔记系统,需要的功能不多,能够在W...阅读全文
posted @ 2014-12-25 21:38 dax.net 阅读(5288) 评论(25) 编辑
摘要: 最近发现在项目中或许会遇到让用户自己构建查询表达式的情况。比如需要通过一种可配置的界面,来让用户输入一组具有逻辑关系的查询表达式,然后根据这个查询表达式来过滤并返回所需要的数据。这种用户案例其实非常常见。由此受到启发,或许我们可以自己定义一种通用的面向查询的领域特定语言(DSL),来实现查询的序列化和动态构建。 概述 由此我发布了一个称为Unified Queries(以下简称UQ)的开源项目...阅读全文
posted @ 2014-08-20 20:13 dax.net 阅读(4476) 评论(13) 编辑
摘要: 虽然这部分内容并没有过多地讨论Apworks框架的使用,但这部分内容非常重要,它与Apworks框架本身的设计紧密相关,也是进一步了解Apworks框架设计的必修课。 单元测试与持续集成概述 在敏捷开发过程中,单元测试是非常重要的。这不同于传统的瀑布开发模型,在瀑布模型中,单元测试的重要性体现的并不明显,因为在这种模型中,“测试”被强调为整个开发流程中的一个环节,也会有专门的测试团队来负责测试...阅读全文
posted @ 2014-04-14 22:14 dax.net 阅读(6270) 评论(17) 编辑
摘要: 要使用Apworks进行应用程序开发,您需要安装Visual Studio 2012以上的版本(以下简称Visual Studio 2012+),从Apworks 2.5开始,需要Micrsoft.NET Framework 4.5的支持,因此强烈建议使用Visual Studio 2012+进行开发。 获取源代码 要获得最新版本的代码,请使用下面的命令获取: git clone https...阅读全文
posted @ 2014-04-02 09:29 dax.net 阅读(7108) 评论(16) 编辑
摘要: 简介 Apworks是一款基于Microsoft .NET的面向领域驱动的企业级应用程序开发框架,它适用于以领域模型为核心的企业级系统的开发和集成。Apworks不仅能够很好地支持经典的分层架构,而且还能支持基于事件驱动的命令查询职责分离(Command-Query Responsibility Segregation, CQRS)架构。 随着软件系统日趋复杂,构建一套可用的、稳定的、可扩展的...阅读全文
posted @ 2014-04-01 20:52 dax.net 阅读(14722) 评论(26) 编辑
摘要: 在Entity Framework Model First下, 一个非常常见的需求是改变数据库脚本的生成方式。这个应用场景是指,当用户在Designer上单击鼠标右键,然后选择Generate Database from Model选项,此时Entity Framework Model First会根据模型产生数据库SQL脚本,并将SQL脚本文件添加到解决方案资源管理器中。 事实上,这个自动化产...阅读全文
posted @ 2014-02-09 19:13 dax.net 阅读(3903) 评论(5) 编辑
摘要: 众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后,开发中对页面的更改会同步到所有已连接的浏览器中。Browser Link按钮就是位于浏览器调试按钮右边的一个类似“刷新”的按钮:最近在开发apworks.org的新版本(之前因为供应商的问题导致网站全部瘫痪,我也一直没来得及修复,索性自己重新打造一个,顺便也验证Apworks框架的可用性),发现在使用syntaxhighlighter插件的页面上,以前没有问题的页面现在出现了如下错误:研究了很久阅读全文
posted @ 2013-10-27 19:44 dax.net 阅读(6408) 评论(8) 编辑
摘要: Microsoft Roslyn是微软.NET“编译器即服务(Compiler as a Service)”的主要产品,它提供了开放的编译器API,并为源代码产生、分析和重构提供了新一代的语言对象模型。Anders Hejlsberg在BUILD 2013大会上提到,C# 6.0的编译器将使用Roslyn实现,这一实现会包含在Visual Studio 2013之后的产品中。根据Anders的描述,C# 6.0的编译器将采用C#开发,从而告别现有的本机代码(native code)的实现方式,“虽然是采用C#来实现C#编译器,但我想性能至少不会比原来的实现方式差。”有关Roslyn的内容,可以阅读全文
posted @ 2013-10-19 19:33 dax.net 阅读(4390) 评论(4) 编辑
摘要: 最近在项目上遇到一个问题,需要能够在程序中获取Lync会议的链接地址。Lync是微软出品的一套即时通信(IM)客户端软件,配合Microsoft Lync Server使用,其前身是Microsoft Office Communicator(MOC)。与Live Messenger相比,Lync更适合企业内部使用,因为它还具备一定的与企业级应用组件进行整合的功能。在Microsoft Office 2010/2013中,Lync已成为Office中的一个套件。在企业内部使用Outlook和Lync的读者一定知道,Outlook中有一个Lync的插件,当启用了该插件后,即可在“日历”视图中通过单阅读全文
posted @ 2013-08-11 12:55 dax.net 阅读(3381) 评论(9) 编辑
摘要: 本文为《在Visual Studio 2012中使用VMSDK开发领域特定语言》专题文章的第二部分,在这部分内容中,将以实际应用为例,介绍开发DSL的主要步骤,包括设计、定制、调试、发布以及使用等。 案例:一个单向状态流DSL的设计和开发 假设我们需要设计一个单向状态流DSL,这个单向状态流有着三种不同的状态节点:起始节点、中间节点和结束节点。整个DSL需要满足以下的条件(或具有以下功能): ...阅读全文
posted @ 2013-08-06 15:49 dax.net 阅读(1497) 评论(0) 编辑
摘要: 前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容。在第一部分中,将对领域特定语言进行简单介绍,并讲解如何使用Visual Studio 2012创建一个领域特定语言的开发解决方案,以及Visual Studio 2012集成开发环境对DSL开发的支持;在第二部分中,将以实际...阅读全文
posted @ 2013-08-06 12:55 dax.net 阅读(2783) 评论(8) 编辑
摘要: Byteart Retail提供了相对简单的配置方式:对于应用程序中所需要的参数,都是通过web.config文件进行配置的。这一点与框架系统的配置不同。框架系统至少应该提供两种配置方式:直接编写代码的方式,以及web/app.config的方式,这是为了迎合不同的使用场景而设计的。因为作为一套框架而言,它为应用程序的正确运行提供了支撑平台,因此,它需要向开发者提供直接编写代码的配置方式,以迎合测...阅读全文
posted @ 2013-05-29 10:17 dax.net 阅读(3415) 评论(9) 编辑
摘要: 部署这两天将Byteart Retail案例程序宿主到了Windows Azure虚拟主机上。基本步骤是:在Windows Azure管理器中,新建一台虚拟主机,我选择的配置是最高版本的Windows Server加上基本可以说是最烂的硬件配置: Windows Server:Windows Ser...阅读全文
posted @ 2013-05-17 14:26 dax.net 阅读(2115) 评论(16) 编辑
摘要: 上周我发布了Apworks框架的最新版本,打算写点文章来介绍如何在实际项目中使用Apworks进行开发。今天先简单写一点东西,首先说明一下,Apworks本身是面向领域驱动的一套开发框架,因此,领域模型的分析和建立就是使用Apworks的重点;然而,在大家对Apworks还没有任何了解的基础上,我暂时先抛开领域模型的建立,先向大家展示一下,如何使用Apworks开发第一个可以运行的程序。在这篇文章的介绍中,我们的领域模型只有一个聚合:日记(Note),而且我们会将这个聚合对象同时用作数据传输对象,这当然与DDD的宗旨是违背的,但为了简化介绍过程,我们也不把问题复杂化了。现在,就让我们一起来创建阅读全文
posted @ 2013-05-14 15:42 dax.net 阅读(5929) 评论(25) 编辑
摘要: 经过大半年的断断续续的努力,今天,我发布了Apworks的一个新版本:2.5.4878.35266。Apworks是我从2009年开始一直开发并维护的一个面向领域驱动的基于.NET的企业级应用程序开发框架,通过使用这个框架,开发者可以快速地开发出面向领域驱动的、专业的企业级应用程序。Apworks同时支持经典分层架构以及CQRS架构(基于CQRS架构的案例程序请参考:Tiny Library CQRS:http://tlibcqrs.codeplex.com)。为了更透明地向读者介绍面向领域驱动的经典分层架构,我也在社区中开发过一个案例程序:Byteart Retail(https://git阅读全文
posted @ 2013-05-10 21:36 dax.net 阅读(6566) 评论(31) 编辑
摘要: NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通过NuGet来安装一些Visual Studio的插件等。作为一名开发人员,您可能也会开发一些公共组件以供他人使用,本文将一步步介绍如何以最简单的方式将自己所开发的类库包发布到nuget上,以供更多的人使用。 背景 如果...阅读全文
posted @ 2013-05-07 13:32 dax.net 阅读(21050) 评论(26) 编辑
摘要: 今天花了半天时间,向Byteart Retail案例加入了基于MongoDB的仓储实现,读者朋友可以直接从Byteart Retail的代码库克隆最新代码来使用基于MongoDB的仓储实现。 实现步骤 1、重构ByteartRetail.Domain.Repositories目录结构 本来这一步是不需要做的,但是因为之前没有把结构规划好,所以所有基于Entity Framework的仓储实现...阅读全文
posted @ 2013-05-01 15:42 dax.net 阅读(4138) 评论(13) 编辑
摘要: 在我开发的《Byteart Retail》案例中,已经引入了领域事件(Domain Events)的实现部分,详情请见之前我写的一篇文章:《深度剖析Byteart Retail案例:领域事件(Domain Events)》。经过一段时间的学习和思考,对于领域事件的设计与实现也有了新的认识。在本文中,首先让我们一起了解一下Byteart Retail案例中领域事件的实现有哪些弊端,然后再对领域驱动设...阅读全文
posted @ 2013-04-30 16:25 dax.net 阅读(8662) 评论(12) 编辑
摘要: 关注我的朋友,相信一直会知道Apworks框架,它是我从2009年开始一直坚持开发的一套基于Microsoft .NET的面向领域驱动的应用程序开发框架,框架的源代码地址是:https://github.com/daxnet/Apworks。今天,我在Linux系统(CentOS 6.3)上成功编译了Apworks框架,大致写一下感受。Linux的.NET实现:Mono开源项目目前不支持MSMQ和Entity Framework(当然,据说EF开源以后,Mono就可以支持EF了,而且是6的版本,不过我在编译Apworks的时候,始终提示说无法找到System.Data.Entity程序集,即使阅读全文
posted @ 2013-04-25 15:06 dax.net 阅读(1265) 评论(3) 编辑
共8页: 上一页 1 2 3 4 5 6 7 8 下一页