基于flex4技术从零开发flex博客系统:6 Using FluorineFx2010-04-20 cnblogs sbanGoogle app engine虽好,既支持python,又支持java,将来可能还会支持.net,php等语言。但是我不敢把宝全部押在GAE上,如果哪一天appspot.com被屏了,我等开发也就歇菜了。为此,我计划让我的flexblog支持.net与php。今天就看一下如何用.net搭建一个remoting server。一,.Net+FluorineFx开发环境搭建我在GAE中用了WebORB for java做了remoting框架, 但是对于.net,我并不打算用WebORB for .net搭建remoting server。与WebORB for .net相比,FluofineFx的普及程度及名气更大一些。我倾向于使用后者。1,下载Microsoft .NET Framework,安装:http://www.asp.net/downloads/essential/2,下载Visual Web Developer 2008 Express Edition,安装:http://www.microsoft.com/express/vwd/3,下载FluofineFx,安装:http://www.fluorinefx.net/download.html4,下载SQL Server 2005 Express Edition(http://www.microsoft.com/Sqlserver/2005/en/us/express.aspx)及Microsoft SQL Server Management Studio Express(http://www.microsoft.com/downloads/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796&displaylang=en),安装以上4步是在本地布署基于.Net+FluorineFx的flex server端开发环境,安装步骤较为简单,不再一一叙述。当然,如果你已经有了Visual Studio,便不用再安装vwd express版本;如果已经有SQL Server标准版或企业版,也不用安装SQL Server 2005 Expres。数据库版本没有特别要求,sql2000应该也是可以的。我选用express版本,是因为它们全是免费的。打开vwd,创建一个FluorineFx Asp.net web site,如下图所示:

配置iis,使http://localhost/指向gapp_flexblog项目的war目录;使http://localhost/dotnet/指向适才创建的web site根目录。打开浏览器,访问http://localhost/dotnet/Gateway.aspx, 验证配置是否成功,糟糕,爆出了如下error:
Parser Error Message: Could not load file or assembly ‘FluorineFx’ or one of its dependencies. 系统找不到指定的文件。 (D:flex4-lessonsdotnet_webweb.config line 180)
Source Error:
Line 178:
Line 179: <httpModules>
Line 180: <add name="FluorineGateway" type="FluorineFx.FluorineGateway, FluorineFx" />
这是由于网站项目未能正确添加FluorineFx.dll引用造成的。切到vwd,右键点击项目,选择Add Reference:

选择Fluorinefx.dll(该文件可在FluorineFx的安装目录下找到),添加。再次访问http://localhost/dotnet/Gateway.aspx, 页面一片空白,这便是正常了。至此,.Net+FluorineFx开发环境配置成功。修改WEB-INF/flex/remoting-config.xml中destination为GenericDestination。二,数据库与数据表的创建打开SQL Server Management Studio,添加新数据库,名为flexblog。添加一个新表,名为Greeting,表结构如下:

创建Greeting的sql语句为:
USE [flexblog]
GO
/****** Object: Table [dbo].[Greeting] Script Date: 05/01/2009 00:21:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Greeting](
[id] [bigint] IDENTITY(1,1) NOT NULL,
[user] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[greetingContent] [nvarchar](200) COLLATE Chinese_PRC_CI_AS NOT NULL,
[date] [datetime] NOT NULL CONSTRAINT [DF_Greeting_date] DEFAULT (getdate()),
CONSTRAINT [PK_Greeting] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
该数据库并非打算只给.net用,为避免重复工作,php计划也使用该数据库。