用好VS2010扩展管理器

简介:

 VS2010已经推出有一段时间了,相比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 相关的扩展,其实还有很多不错的东西,只不过周公也是刚刚开始用这些东西,等以后周公发现了更好的扩展也会再写文章介绍给大家的,如果大家发现了不错的也请分享一下。本文所使用到的数据库创建脚本和本解决方案代码稍后提供,敬请关注。
 

















本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/419268  ,如需转载请自行联系原作者


相关文章
|
搜索推荐 C++
QT应用编程: 应用程序的配置保存与恢复
QT应用编程: 应用程序的配置保存与恢复
370 0
|
大数据 C# 虚拟化
WPF 列表开启虚拟化的方式
原文:WPF 列表开启虚拟化的方式 正确开启虚拟化的方式 列表如ListBox,ListView,TreeView,GridView等,开启虚拟化 ScrollViewer设置CanContentScroll=True 直接在模板中,设置CanContentScroll="True" 如模板中未设置CanContentScroll属性,可以在列表添加属性ScrollViewer.CanContentScroll="True"。
931 0
Confluence 6 关于统一插件管理器
所有的组件通过 统一插件管理器(Universal Plugin Manager)进行管理,这个也被称为 UPM。UPM 可以在几乎所有的 Atlassian 应用中找到,能够提供完整同意的插件安装管理体验。
1047 0
CheckListView扩展之框架修改
我之前写过一个自定义的选框列表https://www.jianshu.com/p/e4cebd5d79bc 当时我说功能就我能想到哪些就先把哪些可能需要的功能怼进去,然后在实战中,我发现它不能满足我所有的需求,所以这个框架要改。
937 0
H2Engine游戏服务器设计之属性管理器
游戏服务器设计之属性管理器   游戏中角色拥有的属性值很多,运营多年的游戏,往往会有很多个成长线,每个属性都有可能被N个成长线模块增减数值。举例当角色戴上武器时候hp+100点,卸下武器时HP-100点,这样加减逻辑只有一处还比较好控制,如果某天有个特殊功能当被某技能攻击时,角色武器会被击落,这样就会出现减数值的操作不止一处。
1222 0

热门文章

最新文章