如何利用NB代码生成工具和NBear框架,快速开发WEB项目

news/2024/7/5 12:53:45

如何利用NB代码生成工具和NBear框架,快速开发WEB项目

NBear是一个.Net 2.0下的快速开发框架。它提供了包括可视化实体设计、代码生成、持久化、SOA、MVP等一系列组件。

    NBear的设计目标是尽最大可能减少程序员的重复劳动、提高开发效率、提升代码的可维护性和整体质量。 
    官方网站:http://nbear.org/ 
    中文教程目录索引:http://www.cnblogs.com/teddyma/archive/2006/11/07/553562.html 
    示例程序:从官方网站下载NBearVXXX_tutorials.zip,解压后见tutorials目录。
    案例网站: http://www.jfpxw.com/ 是我使用NBear开发的WEB网站.

本文提到的NBear代码生成工具,主要是配合NBear框架更快速开发项目的一种代码生成工具。主要工具是根据数据库生成NBear框架中ServiceInterfaces层ServiceImpls层的代码。提高开发效率。接合本身NBear所带的实体生成工具,和配置文件生成工具。加上本文中的这个工具,可以大大提高项目的开发时间,开发人员只用编写跟业务有关的代码,框架相关的代码,基本上这几个工具,都可以自动生成了。

下面详细说明一下如何使用这几个工具来快速开发项目:

 一、创建应用程序解决方案

 

1 .1 打开VS2005开发环境,新建一个空的解决方案Solution

 1.2 Solution中添加两个新建的C#类库工程,两个类库工程的名称分别为EntityDesignsEntities,删除IDE自动创建的Class1.cs文件。

 1.3 Solution中再添加两个新建的C#类库工程,两个类库工程的名称分别为ServiceInterfacesServiceImpls,删除IDE自动创建的Class1.cs文件。

 

 

1.4 Solution 中新建一个名叫WebApplicationASP.NET Web应用程序,为WebApplication添加一个Web.config文件。

 

 

1.5 项目依赖设置:

WebApplication > Entities, ServiceInterfaces
ServiceInterfaces  > Entities
ServiceImpls   >  Entities, ServiceInterfaces

 

 

注:设置完依赖后,记得添加项目引用,并在各项目中添加NB的相关dll

 1.6

相关引用

 WebApplication需:NBear.Common.dllNBear.Data.dllNBear.IoC.dll的引用

ServiceInterfacesf需:NBear.Common.dllNBear.IoC.dll的引用

ServiceImpls  需: NBear.Common.dllNBear.Data.dllNBear.IoC.dll的引用

Entities需:NBear.Common. dll

EntityDesigns需:NBear.Common.Design.dll的引用,因为每一个设计实体接口必须继承自NBear.Common.Design.Entity这个接口

 

 

记得using

 

一、从数据库到实体

 1. 运行NBear.Tools.DbToEntityDesign.exe,在Connection String文本框中输入下面的连接子串:Server=(local);Database=Northwind;Uid=sa;Pwd=sa

2. EntitiyDesigns工程中新建一个代码文件EntityDesigns.cs,添加using Systemusing NBear.Common.Design设置namespaceEntityDesigns。并将刚才从DbToEntityDesign复制的代码粘贴至该文件中。

 

3 下面,对这些生成的代码做一下改造(具体查询NB中文说明书Step 3 设计实体、关系及元数据)

  

 

二、从实体设计代码生成实体代码、实体配置文件

 

3.1编译EntityDesigns工程。
3.2 运行dist目录中的NBear.Tools.EntityDesignToEntity.exe工具,载入EntityDesigns工程编译生成的EntityDesigns.dll。点击Generate Entities按钮,将生成的代码保存到Entities工程中的一个名叫Entities.cs的新代码文件
3.3 点击Generate Configuration按钮,将生成的代码保存到website工程下的名为EntityConfig.xml的新文件中。

 三、使用Nbear代码工具生成代码

 打开工具后,在系统菜单中找到参数配置。配置好数据库类型及相应的链接字符串,将项目的顶级名字空间设置好(PX.ServiceInterfaces)那这里要设置成PX,导出路径设置成你项目的根目录(一般是跟解决方案.sln同一路径,这样生成时,代码自动会生成到解决方案的相应目录中,然后在IDE中,点击解决方案上方的显示所有文件按钮,将生成好的.cs包括到项目中就可以了)

 工具说明:本工具用在数据库表很多时,才会发挥大的作用,主要是生成ServiceInterfacesServiceImpls这两层的代码,ServiceImpls中使用了partial关键字,用户自己写的代码要放在ServiceUS.cs中,以免当数据库修改后,二次生成后,把用户自己写在Service里的代码覆盖。

 四、使用实体及NBear.Data.Gateway访问数据库

 1.设置websiteWeb.config文件,添加一个entityConfig section以包含EntityConfig.xml这个实体配置文件,并设置数据库连接字串。下面是设置完的Web.config,注意,粗体的部分都是我们添加的代码(注意修改数据库登录密码。):

 

<?xml version="1.0"?>
<configuration>
 <configSections>
    <section name="entityConfig" type="NBear.Common.EntityConfigurationSection, NBear.Common" />
 </configSections>

 <entityConfig>
    <includes>
      <add key="Sample Entity Config" value="~/EntityConfig.xml" />
    </includes>
 </entityConfig>
 <appSettings/>
<connectionStrings>
<add name="DbName" connectionString="Server=(local);Database=tempdb;Uid=sa;Pwd=sa" providerName="NBear.Data.SqlServer.SqlDbProvider"/>
 </connectionStrings>
<castle>
<components>
<component id="Article" service="ServiceInterfaces.IArticleService, ServiceInterfaces" type="ServiceImpls.ArticleService, ServiceImpls"/>
 <system.web>
        <compilation debug="false" />
        <authentication mode="Windows" /
    </system.web>
</configuration>

 

5.3 好了,到目前为止,实体设置和配置完毕了。下面我们将开始讨论 IoC 模块的使用。

具体使用参看DEMO;

作者:王林 稻草人.net 'Blogs
出处:
转载请注明此处,谢谢!

转载于:https://www.cnblogs.com/terrylin/archive/2008/07/10/1240177.html


http://www.niftyadmin.cn/n/4058290.html

相关文章

android list 替换元素_JDK源码分析-List, Iterator, ListIterator

List 是最常用的容器之一。之前提到过&#xff0c;分析源码时&#xff0c;优先分析接口的源码&#xff0c;因此这里先从 List 接口分析。List 方法列表如下&#xff1a;由于上文「JDK源码分析-Collection」已对 Collection 接口的方法进行了简要分析&#xff0c;而 List 接口继…

改变JVM中的参数以提高Eclipse的运行速度

首先建立评估体系&#xff0c;将workspace里所有的项目close掉&#xff0c;关闭eclipse。优化的用例就是启动eclipse&#xff0c;open一个项目&#xff0c;eclipse会自动build这个项目&#xff0c;保证没有感觉到明显的卡&#xff0c;也就是没有full GC。 开始&#xff1a; …

运算符重载:string类

运算符重载规则如下&#xff1a; ①、 C中的运算符除了少数几个之外&#xff0c;全部可以重载&#xff0c;而且只能重载C中已有的运算符。 ②、 重载之后运算符的优先级和结合性都不会改变。 ③、 运算符重载是针对新类型数据的实际需要&#xff0c;对原有运算符进行适当的改造…

10个方法提高你的编程生产力 转载

我在google工作过&#xff0c;现在有了自己的公司&#xff0c;多年的程序员工作经验告诉我&#xff0c;如果有一个良好的工作习惯&#xff0c;能够极大提高你的工作效率。以下是我的建议&#xff0c;如果你长时间坚持这样做&#xff0c;一年到两年时间&#xff0c;你发现你能够…

css sprites-简单实例让你快速掌握css sprites精髓

这段时间有几次接触到了css sprites的概念&#xff0c;一个就是在用css做滑动门的时候&#xff0c;另外一个就是在用YSlow分析网站性能的时候&#xff0c;于是对css sprites这个概念产生了浓厚的兴趣。在网上查找了很多的资料&#xff0c;但可惜的是大部分都是只言片语&#xf…

SCAU 概率论 期末复习(开卷)

说明&#xff1a;由于考试是上机开卷&#xff0c;所以下面写出了求值的代码&#xff08;java&#xff09;&#xff0c;考试的时候可以直接输入数据即可获得答案。 第四章 1.求下四分位&#xff0c;中位数和上四分位 package com.company;import java.util.Arrays; import ja…

远程访问大华摄像头_通过WEB调用大华网络摄像头

通过WEB调用大华网络摄像头1.要调用的大华摄像头为Dahua 大华DH-IPC-HFW2100P-0600B 网络摄像机 (白色)&#xff0c;摄像头外形如下图所示2.调用效果如下图所示4.解压OCX包单击文件中的reg.bat注册dll5.新建index.html关输入以下代码视频控件body {font-family:"", a…

面试题14:剪绳子(动态规划,贪心算法)

一、题目&#xff1a; 一根长度为n的绳子&#xff0c;剪成m段,m,n都大于1&#xff0c;且都为整数,每段长度记为k[0],k[1]…,k[m].求k[0]*k[1]…*k[m]可能的最大乘积 1.1解法&#xff1a; 两种不同的方法解决这个问题&#xff0c;先用常规的需要O(n)时间和O(n)空间的动态规划…