随笔-129  评论-508  文章-0  trackbacks-12
  2011年8月25日
摘要: CSLA.Net 是一个有帮助的成熟开发框架,但不适于初学者。该框架支持在任何地方、任何时间创建对象,值得我们花时间去学习了解这一框架。CSLA.Net 框架设计的业务对象,支持对完全透明的数据源进行保存和检索数据操作。显然,在大型企业级应用开发过程中,CSLA 框架以节省时间的优势,快速开发稳健的应用程序。阅读全文
posted @ 2011-08-25 09:22 EntLib 阅读(627) 评论(2) 编辑
  2011年6月9日
关于DotNetMQ 开源消息队列系统的介绍,可参考如下文章:

DotNetMQ-基于C#和.NET框架的开源消息队列系统

下面具体介绍如何安装、部署以及使用DotNetMQ 消息组件。

1. 先看看DotNetMQ 项目源码

DotNetMQ 项目是消息组件服务;MDSManager 项目消息组件的管理界面,用来配置系统中的客户端机器,如下图所示。

MDSCommonLib 项目是客户端系统需要引用的DLL程序集,使客户端系统可以和MDS 服务进行交互。

2. 部署DotNetMQ 服务

该服务编译的DLL程序集在如下目录 — DotNetMQ_Sources\DotNetMQ\bin\Debug

在CMD窗口中,在上述目录下,执行如下命令,安装部署 DotNetMQ 服务:

installutil dotnetmq.exe

看看安装好的DotNetMQ服务,并启动服务。

3. 注册和配置DotNetMQ 消息应用程序

在安装部署好DotNetMQ服务之后,开始运行MDSManager.exe 程序,添加和注册客户端应用程序,如下所示,添加Application1和Application2 应用程序。

如上图所示,添加好应用程序配置之后,可以到DotNetMQ_Sources\DotNetMQ\bin\Debug 目录下,查看MDSSettings.xml 配置文件:

<?xml version="1.0" encoding="utf-8"?>
<MDSConfiguration>
  
<Settings>
    
<Setting Key="ThisServerName" Value="this_server" />
    
<Setting Key="StorageType" Value="SQLite" />
  
</Settings>
  
<Servers>
    
<Server Name="this_server" IpAddress="127.0.0.1" Port="10905" Adjacents="" />
  
</Servers>
  
<Applications>
    
<Application Name="Application1" />
    
<Application Name="Application2" />
  
</Applications>
</MDSConfiguration>

 


 

4. 开发和运行客户端范例程序

在Visual studio 2010 开发工具下,编写2个简单的Console 应用程序:Application1和Application2。其中,Application1 用来发送消息;Application2 用来接收并显示消息。

在上述程序中,需要添加对 MDSCommonLib 程序集的引用,并且在代码中添加MDS.Client 命名空间的引用。

Application1 发送消息部分的代码如下:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MDS.Client;

namespace Application1
{
    
class Program
    {
        
static void Main(string[] args)
        {
            var mdsClient 
= new MDSClient("Application1");

            mdsClient.Connect();
            Console.WriteLine(
"输入文本,并按回车键传送消息给Application2,输入exit退出。");

            
while (true)
            {
                var messageText 
= Console.ReadLine();
                
if (string.IsNullOrEmpty(messageText) || messageText == "exit")
                {
                    
break;
                }

                var message 
= mdsClient.CreateMessage();
                message.DestinationApplicationName 
= "Application2";
                message.MessageData 
= Encoding.UTF8.GetBytes(messageText);
                message.Send();
            }

            mdsClient.Disconnect();
        }
    }
}

 

 

Application2 接收消息的代码如下:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MDS.Client;

namespace Application2
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
//Create MDSClient object to connect to DotNetMQ
            
//Name of this application: Application2
            var mdsClient = new MDSClient("Application2");

            
//Register to MessageReceived event to get messages.
            mdsClient.MessageReceived += MDSClient_MessageReceived;

            
//Connect to DotNetMQ server
            mdsClient.Connect();

            
//Wait user to press enter to terminate application
            Console.WriteLine("输入回车键退出...");
            Console.ReadLine();

            
//Disconnect from DotNetMQ server
            mdsClient.Disconnect();
        }

        
/// <summary>
        
/// This method handles received messages from other applications via DotNetMQ.
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e">Message parameters</param>
        static void MDSClient_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            
//Get message
            var messageText = Encoding.UTF8.GetString(e.Message.MessageData);

            
//Process message
            Console.WriteLine();
            Console.WriteLine(
"接收的消息 : " + messageText);
            Console.WriteLine(
"发送方应用程序 : " + e.Message.SourceApplicationName);

            
//Acknowledge that message is properly handled
            
//and processed. So, it will be deleted from queue.
            e.Message.Acknowledge();
        }
    }
}

 

 

启动Application1应用程序之后,再次查看MDSManager管理程序,发现Connected Clients由原来的 0 变成 1,说明现在有1个Application1应用程序连接到DotNetMQ服务了。

在Application1的运行窗口,输入消息:

Hello, welcome to www.entlib.com ecommerce system

您好,欢迎访问 www.entlib.com 电子商务平台

启动Application2 应用程序,就可以在Application2的应用程序界面看到接收的消息,如下图所示。

最后,在Application1应用程序输入 exit 退出应用程序。当然在Application2 应用程序最后也可输入 exit 退出应用程序。

如果Application1应用程序启动,并发送消息;而Application2应用程序尚未启动,Application1发送的消息则默认存放在SQLite 数据库中,关于SQLite数据库的简单介绍,可参考:SQLite 开源的嵌入式关系数据库

参考链接:

DotNetMQ-基于C#和.NET框架的开源消息队列系统

SQLite 开源的嵌入式关系数据库

posted @ 2011-06-09 09:07 EntLib 阅读(787) 评论(2) 编辑
  2011年5月27日

项目概述

使用ASP.NET MVC 3、Razor、EF Code First、Unity 2.0 等等技术,演示如何创建一个ASP.NET MVC 3 的范例应用程序。

相关技术帖子:

中文:

使用ASP.NET MVC 3、Razor和Entity Framework Code First技术开发Web应用程序 – Part 1

使用ASP.NET MVC 3、Razor和Entity Framework Code First技术开发Web应用程序 – Part 2

英文:

Developing web apps using ASP.NET MVC 3, Razor and EF Code First – Part 1

Developing web apps using ASP.NET MVC 3, Razor and EF Code First – Part 2

Dependency Injection in ASP.NET MVC 3 using DependencyResolver and ControllerActivator

Mobile enabled web apps with ASP.NET MVC 3 and jQuery Mobile

功能特性:

  • 使用Entity Framework 4.1 Code First,实现MVC 应用程序的CRUD 功能;
  • Razor视图引擎;
  • 针对Entity Framework Code First的Generic Repository;
  • Repository 模式和Unit of Work 模式;
  • 使用Unity 2.0 实现依赖注入;
  • 使用JQuery Mobile 实现移动终端页面;
  • 移动终端页面使用ASP.NET MVC Area技术;
  • 使用EF 4.1 Code First实现定制Member/Role Provider;

项目源码下载地址:

http://efmvc.codeplex.com/

posted @ 2011-05-27 09:10 EntLib 阅读(1261) 评论(4) 编辑
  2011年5月20日
摘要: 首先,推荐使用Visual Studio 2010 中的NuGet 组件,在MVC 项目中,来安装和添加对Autofac ASP.NET MVC3 Integration 组件的引用,具体操作可参考《使用NuGet 来管理Visual Studio的开源组件(Package)》。在上述步骤完成之后,在项目的Global.asax文件中,实施对Controller的依赖注入。在Global.asax中,需要添加如下2个命名空间的引用:?123using Autofac;using Autofac.Integration.Mvc;在Application_Start() 方法中添加如下代码:?12阅读全文
posted @ 2011-05-20 08:35 EntLib 阅读(1157) 评论(1) 编辑
  2010年9月24日
摘要: Beginning ASP.NET E-Commerce in C#: From Novice to Professional 源码下载地址:http://www.cristiandarie.ro/asp35-sql-server-ecommerce阅读全文
posted @ 2010-09-24 21:30 EntLib 阅读(247) 评论(0) 编辑
  2010年4月27日
摘要: Enterprise Library 5.0 开发向导- 简介(1)微软企业库 Enterprise Library 5.0 正式发布!!!在基于微软.NET 框架开发的应用程序中,无论是企业级的业务程序,或者是WPF、WCF或者ASP.NET应用程序,你都可以考虑使用Enterprise Library。本系列文章将帮助你快速掌握Enterprise Library 企业库,范例程序的应用,让你...阅读全文
posted @ 2010-04-27 07:48 EntLib 阅读(1040) 评论(2) 编辑
  2010年3月19日
摘要: ASP.NET MVC 2 学习篇(4)- 创建一个基本的MVC 项目ASP.NET MVC 2 学习篇(1)ASP.NET MVC 2 学习篇(2)ASP.NET MVC 2 学习篇(3)ASP.NET MVC 2 学习篇(4)- 创建一个基本的MVC 项目(附项目)ASP.NET MVC 2 学习篇(5)- 在ASP.NET MVC 中应用Forms认证本文演示如何在Visual Studio...阅读全文
posted @ 2010-03-19 09:54 EntLib 阅读(1073) 评论(0) 编辑
  2010年3月16日
摘要: 请尊重 EntLib.com 的辛苦奉献及版权! 1、未获商业授权之前,不得将本软件用于商业用途(包括但不限于企业网站、经营性网站、以营利为目的或实现盈利的网站)。购买商业授权请登陆http://www.entlib.com/ 了解最新说明。2、未经官方许可,不得对本软件或与之关联的商业授权进行出租、出售、抵押或发放子许可证。3、未经官方许可,不得利用任何反编译、反汇编等技术手段对本软件进行分析、...阅读全文
posted @ 2010-03-16 10:10 EntLib 阅读(738) 评论(6) 编辑
  2010年3月8日
摘要: EntLib.com 电子商务系统 v2.5 – 前台购物网站/网店发布免费下载!EntLib B2C电子商务(或网店)系统采用最新的ASP.Net 分层技术和AJAX技术,结合Microsoft .Net 平台和MS SQL 2005/2008 数据库运行,并且在开发过程中融入了优良的电子商务业务流程设计、网络营销和用户体验理念,让系统的流程设计、稳定性、易用性和实用性都得到了充分的...阅读全文
posted @ 2010-03-08 12:50 EntLib 阅读(492) 评论(1) 编辑
电子商务系统

免费开源论坛系统

免费开源博客平台

MSN: entlib@hotmail.com
WEB: http://www.EntLib.com
昵称:EntLib
园龄:3年8个月
粉丝:41
关注:1
<2012年1月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

搜索

 
 

常用链接

我的标签

随笔分类

随笔档案

相册

开源.NET平台

最新评论

阅读排行榜

评论排行榜

推荐排行榜