用好VS2010扩展管理器-NHibernate生成



S2010已经推出有一段时间了,相比VS2008它确实有很多先进之处,这点想必很多已经开始使用VS2010的人已经感受到了,在这里要介绍的是VS2010的扩展管理器。

打开VS2010 之后,我们可以在“工具”菜单下找到“扩展管理器”,如下:
 

打开“扩展管理器”之后,界面如下:
 

这个时候我们看到的是一个空的界面,这是很正常的,因为我们没有安装任何扩展。如果你当前的计算机可以连接到网络的话,点击“联机库”就可以看到联机的扩展了,下图是周公连接点击“链接库”的情形:
 

从上图可以看到VS2010 提供的联机扩展分为三个大类别,分别是工具、控制和模板,当然每一个类别下面又有很多类别。在连接扩展管理器界面的中间就是目前可用的扩展,因为这些扩展大都是国外人开发的(国内的开发人员不是忙于买房子就是模仿去了)所以扩展的名字和描述都是英文的,不过这些描述有基本英语功底的人就能看懂,如果实在不能看懂的话,当你选中一个扩展的时候在扩展管理器的右边可以看到扩展的创建者、版本、下载次数、分级及界面预览,这些信息基本上就可以作为你是否选择安装这个扩展的参考了。在这里说一下,这里面提供的扩展有些是直接利用VS2010 就能下载和安装的,有些是需要外部工具下载的,并且有些是免费的,有些是需要注册收费的(不过是否需要注册收费这个在扩展管理器中不是太明显)。
下面我介绍几个扩展,第一个就是H3Viewer ,这个东东在我的《Silverlight3 学习笔记(1): 准备工作》中就介绍过,它可以方便我们查看VS2010 的联机帮助的。在扩展管理器的搜索栏输入"h3" 就能搜到这个东东,如下:
 

点击下载就可以按照提示操作了。
第二个就是NHibernate 扩展。最近一段时间周公在关注一些ORM 方面的技术,包括ADO.NET Entity Framework Nhibernate Java 平台上的Hibernate ,通过一些辅助工具我们也可以方便地生成NHibernate 的配置文件和实体类,抱着试试看的态度我搜了一下有没有NHibernate 扩展,结果还真找到了(可惜等我熟悉用法之后才发现这个是收费的,不想Java 中有很多免费Eclipse Hibernate 插件),下面是搜索结果界面:
 

经过一番搜索,周公下载并安装了以下几个插件,如下图所示:
 

说明,根据你安装的插件的不同,它们出现的位置也不同,有些可能是鼠标右键菜单,有些可能是一些菜单,有些可能还是一些组件。
在这里介绍一下Mindscape NHibernate Model Designer 这个插件。这个插件是一个收费的插件,利用它可以很方面的生成NHibernate 的配置文件和实体类。下面用一个简单的实例介绍一下它的操作步骤。
首先创建一个控制台项目(注意这个项目所使用的.NET Framework 的版本必须大于.NET 2.0 ),在向项目中添加新项时如果我们拉到最下方我们会看到如下界面:
 

选择NHibernate Model 并在下方输入生成文件的名称然后点击添加按钮,这样就完成了添加NHibernate Model 文件,并且你还会看到一个新的界面,这个界面询问数据库中主键的生成方式,如下图所示:
 

如果我们数据库中主键字段是自动增长列,就可以按上图设置,如果某些表不是自动增长的主键也没有关系,可以在设计视图中更改。下面是添加NHibernate Model 之后的界面:
 

注意:下面的操作需要在VS2010 的服务器资源管理中操作,如果在你的VS2010 种没有看到服务器资源管理器工具栏的话,请点击“视图”—“服务器资源管理器”打开,这样你就能在界面中看到了。默认情况下是没有任何任何数据库连接的,你可以点击“添加连接”来完成添加数据库连接,在添加连接界面中你会看到要求你配置数据库连接的界面,如下图所示:
 

如果安装了对应的数据库的.NET 版本的驱动程序就可以连接到该类型的数据库了,比如MySQL 等。
在上图的ArticleCollectorDB 是《ASP.NET 夜话》一书中最后一章中所使用的数据库,添加完数据库连接之后找到数据库连接下的表,将这些表拖放到NHibernate Model 区,就可以看到下面的结果:
 

因为在创建表的时候已经设置了主外键关系,所以在拖拽相关的表到工作区时会自动设置关联(同时表现在生成的实体类代码和配置文件上)。生成了这些文件之后如何使用呢?很简单,我们在工作区上点击鼠标右键,会看到如下右键菜单:
 

选择“Get Started ”就会出现如下界面:
 

在上图中有两个文本框,第一个就是告诉如何在应用程序中添加有关NHibernate 的配置以便启用NHibernate 的,第二个文本框就是告诉你创建一个NHibernate 的辅助类,利用这个辅助类就可以使用NHibernate Session 了(NHibernate.ISession ),向当前项目中添加有关NHibernate 所需的类库(这些类库可以从下载到的NHibernate 框架中找到),分别是:
Antlr3.Runtime.dll
Iesi.Collections.dll
LinFu.DynamicProxy.dll
log4net.dll
NHibernate.ByteCode.LinFu.dll
NHibernate.dll
完成之后编写一个如下的类,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate;
using NHibernate.Cfg;
 
namespace NhibernateStudy
{
    class Program
    {
        static void Main(string[] args)
        {
 
 
            using (ISession session = NHibernateHelper.OpenSession())
            {
                IList<User> userList=session.CreateQuery("from User u").List<User>();
                foreach (User user in userList)
                {
                    Console.WriteLine(user.Email);
                }
 
                IList<Article> articleList = session.CreateQuery("from Article a").List<Article>();
                foreach (Article article in articleList)
                {
                    Console.WriteLine(" 用户名为{0} 的用户发表了标题为《{1} 》的文章",article.User.UserName,article.Title);
                }
            }
        }
    }
}
这个程序运行的结果如下:
 

至此,我们没有手动做任何有关ORM 配置工作,仅仅是将有关的表拖拽之后就编写使用NHibernate 的代码,结果证明它和我们手动编写的效果一模一样,但是这个开发效率更高!
也许有些人觉得好奇,其实这也没有什么好奇的,我们没有做那些工作是因为这个VS2010 下的NHibernate Model 插件帮我们做了,打开那个后缀为nhmodel 下的cs 文件就可以看到如下结果:
 

至此,一切真相大白了。
结束语
VS2010 的在线扩展中有不少不错的东东,如果你认真去找肯定能找到一些免费的、有用的扩展,用熟了它们可以在开发中达到事倍功半的效果哦。在本篇周公仅仅是讲述了这个NHibernate 相关的扩展,其实还有很多不错的东西,只不过周公也是刚刚开始用这些东西,等以后周公发现了更好的扩展也会再写文章介绍给大家的,如果大家发现了不错的也请分享一下。本文所使用到的数据库创建脚本和本解决方案代码稍后提供,敬请关注。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值