自由、创新、研究、探索……

windows和Linux平台下的Dotnet技术

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  212篇文章 :: 98篇收藏:: 97篇评论:: 2个Trackbacks

公告

欢迎来这里讨论,共同进步,不断学习才能不断进步。

天气预报

你是第
联系方式:

MSN:zsygz@hotmail.com QQ:33235911
MSN在线状态
MSN在线状态指示器

文章

收藏

相册

blog

dotnet技术

XML技术

操作系统

软件工程

数据库

存档


正在读取评论……


企业应用架构

构建企业级应用时又许多架构方面的问题。

    摘要:61条面向对象设计的经验原则    (全文共3902字)——点击此处阅读全文


    摘要:DataSets vs. Collections    (全文共1566字)——点击此处阅读全文


    摘要:在业务逻辑层中使用Castle Facility:Automatic Transaction Management     (全文共2924字)——点击此处阅读全文


    摘要:介绍一个完全托管代码的对象数据库DB4O     (全文共215472字)——点击此处阅读全文


    摘要:DotNet软件开发框架    (全文共2434字)——点击此处阅读全文


    摘要:AOP里面3个概念Advice,PointCut,Advisor    (全文共43727字)——点击此处阅读全文


    摘要:IOC    (全文共341字)——点击此处阅读全文

Rails是一个open source的使用Ruby开发web应用的框架,它采用了流行的MVC模式,本文介绍了一个简单的基于数据库的web应用的开发。

翻译自 http://www.rubyonrails.org/show/TutorialStepOne
翻译   http://www.ruby-cn.org
原文分六步六页,这里简化到一页。

1 创建数据库

创建名为rails_production的数据库,以及有访问数据库权限的用户。本例数据库如下:
#
#
数据库 : `rails_production`
#

# --------------------------------------------------------

#
#
`people`定义
#

CREATE TABLE `people` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(50) NOT NULL default '',
  `street1` varchar(70) NOT NULL default '',
  `street2` varchar(70) NOT NULL default '',
  `city` varchar(70) NOT NULL default '',
  `state` char(2) NOT NULL default '',
  `zip` varchar(10) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `name` (`name`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

#
#
`people`插入数据
#

INSERT INTO `people` VALUES (1, 'Superman', '123 Somewhere', '', 'Smallville', 'KS', '123456');


2
.设置数据库参数
编辑config/database.yml(明天我做个东西配置文件教*.zml了:-)),相应的例子如下:

My Sql
production:
  adapter: mysql
  database: rails_production
  host: localhost
  username: root
  password:
SQLite
production:
  adapter: sqlite
  dbfile: ../db/rails-production.db

test:
  adapter: sqlite
  dbfile: ../db/rails-test.db
Postgre SQL
production:
  adapter: postgresql
  database: rails_production
  username: postgres
  password:

test:
  adapter: postgresql
  database: rails_test
  username: postgres
  password:


3
.创建控制器
如果还没有创建rails应用,先要创建它。如:
rails path/to/your/new/railsapp
【注意】这将删除这个目录下的已有的rails应用。
创建新的控制器用new_controller(查看文档可以不带参数运行它)。本例如下:
./script/new_controller Friends list display new edit
: new_controller new_model(下面会看到)命令都需要包括ruby路径设置的一行,如果需要改变这些参数,可以丛script文件夹打开这些文件直接修改,设置ruby的正确位置。
: 不要定义任何叫做'process'action, 这个方法是系统正确工作必须得,你不能重载它。
: Windows用户需要这样来运行程序。
ruby script/new_controller Friends list display new edit

4.创建模型model
创建模型用命令script/new_model,同样,不带参数可以查看本命令的帮助文档。
./script/new_model Person
5
.然后进入rails目录,如果安装了rake程序的话,运行 "rake"。这将测试你的rails应用是否正确部署了。
: 在版本0.5.0中,这个测试只支持mysql,所以如果你用sqlite或者psql出错的话,不必担心。

6.开发rails应用
打开views/friends/display.rhtml文件,当然在rails应用目录下。这个文件是前几步自动产生的,需要我们往里面填充一些东西。修改后如下:

<html>
<body>
<h1>Friends#display</h1>
This page should display one friend
<p />
<%= @person.name %><br/>
<%= @person.city %><br/>

</body>
</html>

这里面有一些动态内容,其中@person对象需要控制器来创建,所以打开controllers/friends_contrller.rb。一些方法已经被自动创建了,但是model还没有被连接进来,所以在require顶部加入:
require 'person'
这将引入我们定义好的 Active Record 类,通过它我们就可以访问数据库了。
找到名为display的方法,改成下面的:
def display
  @person = Person.find(1)
end


这将从数据库中选出第一个记录,并放入@person变量,供view使用。
现在,我们再来看看model类,打开models/person.rb文件。同样系统已经为我门做了很多工作,已经为我们创建了访问属性的方法,所以不需要我们再写了。需要做的事情是这个类如何映射的我们创建的数据库表。Active Record负责了对象名到表名的映射。具体参见:http://api.rubyonrails.org/classes/ActiveRecord/Base.html

现在我们要做的只是把这个方法加入到Person:
def self.table_name()
"people"
end
然后打开浏览器,打开地址http://rails/friends/display
 "rails"
是机器名,如果一切正常,你应该能看到应用已经开始工作了。
注意URL中包括控制器friendsaction display

Rails' web site http://www.rubyonrails.org/show/HomePage

Dotnet平台上使用Rails的请关注Castle On rails项目哦,可以通过此处察看:

http://www.castleproject.org/castle/show/castleonrails

只不过需要拥有服务器的控制权限,他的后缀名称是rails,要配置IIS以便支持此文件名,目前可以支持ashx,但普通的虚拟主机依然无法使用,这可能是个比较麻烦的地方.这里有很多Rail的东西http://blog.csdn.net/ruby_cn/category/65002.aspx

http://blog.itpub.net/category/325/821

 


可以查看此地址

http://www.castleproject.org/castle/show/ActiveRecord

使用此工具可以免去编写NHibernate的配置文件,完全在代码内使用属性配置就可以自动内部映射成NHibernate所需要的数据库映射文件.上面有具体的例子,感兴趣就去瞧瞧

http://rubyforge.org/projects/activerecord/


面向对象的模型设计方法

  定义:利用面向对象方法,把应用程序分成许多小块(对象),这些对象是独立的,然后组合这些对象,建立程序。

  特点:包装、继承、多态。

  常用的建模工具:PlayCase, Rational ROSE, Computer Association BPWin , Computer Association ERWin, Oracle Designer/2000, Sybase PowerDesigner

UML语言概述

  定义:一种面向对象的统一建模语言。
  作用:帮助我们对软件系统进行面向对象的和建模。
  核心:类,类之间的关系。
  建模:通过将用户的业务震需求映射为代码,保证代码满足这些需求,代码能方便地回溯需求,这个过程叫建模。

ROSE建模工具

  定义:是一种分析和设计面向对象的建模工具。

  作用:利用ROSE这个工具,我们可以建立用UML的软件系统的模型,面目可以自动生成和维护C++、JAVA、VB、PB、ORACLE等语言和系统的代码。

  核心:七大框图
  1. Use-Case Diagrams(用例框图)
  2. sequence diagram (顺序框图)
  3. Collaboration diagram (协作框图)
  4. Class diagram (类框图)
  5. State Transition diagram (状态框图)
  6. Component diagram (组件框图)
  7. Deployment diagram (扩展框图)

  下面结合软件工程知识、利用ROSE建模工具,本人在开发电力部们的"110KV标准设计图文管理系统"中所用到的ROSE模型及对ROSE在开发实践中的剖析

一、 需求分析阶段

  任务:建立用户需求和功能模块,确定系统中的角色和使用案例。利用ROSE,生成角色,使用案例和生成用例图
所用到的框图:

  1.Use-Case Diagrams:显示使用案例(表示系统功能)与角色(人或系统)间的交互。如下图:

  Use Case(用例):在不展现一个系统或系统内部结构的情况下,对系统或系统的连贯的功能单元的定义和描述。
角色:使用软件的人或外部系统本身。

2. sequence diagram

  按时间先后顺序,从上到下分析使用案例,确定案例的处理流程。如下图:


3 Collaboration diagram :

  确定对象之间的关系的处理过程的分析流程。如下图:

二、 概要设计阶段

  任务:通过分析Use-Case Diagrams ,得到所用到的类,分析这些类的属性、操作和它们之间的关系。

  所用到的框图:

1.Class Diagrams.

  显示系统中类与类之间的交互。


2.包:具有一些共性的类组合在一起的图。

 

三、 详细设计阶段

  任务:细化和个性Use-Case的描述 ,如类的操作和对象之间的消息相对应,填充参数及复杂的类的设计。

  所用到的框图:

1.Class Diagrams

2.State Diagrams:显示一个对象从生成到删除的生命周期。

四、 编码和测试阶段

  任务:进行软件的开发和测试,生成组件框图。
  组件:表示代码的物理模块。
  组件框图:表示系统中的组件及相互依赖性。
  Delpoyment Diagrams:显示网络中的物理布局和各种组件的位置。

双向工程

  1.生成代码:根据选择开发应用程序的语言生成对应的程序的代码。

  步骤:检查模型-生成组件-将类映射组件-设置代码生成属性-选择类、组件和包-生成代码

  2.逆向转出工程:根据选择开发应用程序的语言生成对应的程序的代码。

  步骤:检查模型-生成组件-将类映射组件-设置代码生成属性-选择类、组件和包-生成代码


第1页,共3页