随笔-105  评论-2168  文章-18  trackbacks-49

   记得还是去年七月份。在微软的一次培训中,一位姓杨的讲师提到了这个DEMO。我后来回到公司就从相关站点
http://www.dinnernow.net 下载了一个安装包和相关视频,粗略的看了一下。之后因为产品开发比较繁重就一直
没再仔细研究。直到最近才想起来:)

  因为本人机器上系统是window2003+sp2, 开发环境是VS2008 Team, 数据库是SqlServer 2005,不是官方
文档所要求的VISTA+IIS7+SQL2005。

     但我并不死心,所以才有了今天的文章。在正文开始之前,有必要介绍一下DinnerNow到底是个什么东东:)

     作为微软最新技术应用的DEMO。dinnernow使用了: IIS7, ASP.NET Ajax Extensions, LINQ, WCF, WF,
WPF,Windows PowerShell, Card Space以及 .NET Compact Framework
.

     相信园子中有不少朋友可能面临跟我一样的问题,就是对于新技术(热点)通过学习掌握了之后如何应用到具体
的产品或项目中。而这个DEMO总体上还是可圈可点的。另外就是本人比较爱吃美食,而这个项目在教人学习架构的
过程中,还能让人欣赏美食并可订餐,实在是一举两得:)

     好的,开始正文吧:)

     下载安装包:http://www.codeplex.com/dinnernow/release/projectreleases.aspx
相关的介绍和演示视频链接如下: http://www.dinnernow.net/DinnerNow%20Web.wmv

     通过本地安装之后,(默认)会在"c:\dinnernow\"下生成安装脚本,数据库备份,源码等文件。

  1.首先要在本地上新建立一个数据库(默认为DinnerNow),然后将安装目录下的\database\DinnerNow.bak
       备份文件还原进来。(如果没有安装membership, 可以vs2008命令行下键入aspnet_regsql进行安装)

     2.运行安装目录\scripts\install\sql\下的cardspace_tables.sql,cardspace_stored_procedures.sql
     
   
3.依次运行下载压缩包中的(当然可直接使用安装目录\scripts\others\database下的DinnerNowWF.bak的
      文件进行还原):
            SqlPersistenceService_Schema.sql
            SqlPersistenceService_Logic.sql
            Tracking_Schema.sql
            Tracking_Logic.sql


     4.安装msmq。

     5.配置下列文件中相应的(connectionString)数据库链接串(具体文件如下):
       安装目录\solution\DinnerNow - Web\DinnerNow.WebUX\web.config
       安装目录\solution\DinnerNow - ServicePortfolio2\source\DinnerNow.Data\app.config
       安装目录\solution\DinnerNow - ServicePortfolio2\source\DinnerNow.Data\DinnerNow.dbml
       安装目录\solution\DinnerNow - ServicePortfolio2\source\DinnerNow.ServiceHost\web.config
    
     6.配置IIS: 
       将安装目录\solution\DinnerNow - Web\DinnerNow.WebUX文件夹以虚拟目录方式(名称为DinnerNow)
到当前站点(如localhost).
       将安装目录\solution\DinnerNow - ServicePortfolio2\source\DinnerNow.ServiceHost文件夹以虚拟
目录方式(名称为Service)配置到上面的DinnerNow(虚拟目录)下。
配置完成后的截图如下:

      

     而这样配置的原因主要是在web.config中的设置项很多都是这个指向的,所以可以在按照如下方式配置完站
点后,程序应该就能直接运行起来了:)

      相应的操作截图如下:

      运行首页

      
      按上面中的设置进行搜索结果如下:

      

      选取相应食物: 

      

      填写收货地址及相关信息:

      填写相应的支付信息:

      
      修改订餐数量和支付页面:


      当完成了支持流程之后,我们可以进行订单管理和跟踪:
      通过编译运行安装目录\solution\DinnerNow - Kiosk的SLN文件,运行效果如图:

   
     

        点击某一订单显示订单明细:

   点击TrackOrder跟踪某一订单送餐情况:
 
因为是用WPF制作的介面,总体感觉很清爽,功能也很好很强大。

   

   主要的功能说的差不多了,当然还有一些功能因为机器或个人问题无法演示,如用Window Mobile显示订餐
相关信息操作,POWERSHELL管理等。

   相应的该DEMO的架构图及PPT请点击这里

        注:因为该DEMO中有些页面使用了HTTPS,因为本人只有研究使用,所以已将相应页(Registration.aspx,
SignIn.aspx)中的HTTPS跳转链接代码去掉.

      当然今天说的仅限于配置和使用,因为如果不能启动运行的代码,本身就不会让大家产生什么兴趣,如果有
什么问题,可以在回复中进行交流.

      另外就是如果以后有时间,可能会写一些关于这个DEMO的设计架构上的文章以及思考:)

      最后以这首she's gone来表达一下我对灾区同胞的悲痛之情,希望他们能够坚强面对眼前的巨大困难,早日重
建家园:()
    
    

posted on 2008-05-16 14:51 代震军 阅读(2408) 评论(24)  编辑 收藏 所属分类: VS2005LINQDinnerNow案例分析

评论:
#1楼  2008-05-16 15:19 | LeoHuang [未注册用户]
虽然有些大杂烩,还是需要认真的研究一番
  回复  引用    
#2楼  2008-05-16 15:51 | 求知无傲      
学习
  回复  引用  查看    
#3楼  2008-05-16 16:55 | xiao_p(匿名) [未注册用户]
这项目如果还有哪个公司敢这么做,那就真太nb了,新技术一大把一大把的。哈哈!!!
  回复  引用    
#4楼 [楼主] 2008-05-16 18:06 | 代震军      
@xiao_p(匿名)
:)
  回复  引用  查看    
#5楼  2008-05-16 18:07 | Jeffrey Zhao      
@xiao_p(匿名)
我这里都是及时更新的.
  回复  引用  查看    
#6楼  2008-05-16 19:58 | J.T.R.      
请问为什么我运行CARDSPACE_tables的那个sql脚本时出这个错误呀。
消息 4902,级别 16,状态 1,第 1 行
找不到对象 "dbo.aspnet_Membership",因为它不存在或者您没有所需的权限。
消息 1913,级别 16,状态 1,第 1 行
操作失败,因为在 表 'dbo.cardspace_InformationCards' 上已存在名称为 'IX_cardspace_InformationCards_UniqueId' 的索引或统计信息。
我在v2.0.50727中执行了aspnet_regsql呀,希望帮帮忙。
  回复  引用  查看    
#7楼  2008-05-17 17:55 | juliuslzww [未注册用户]
没办法在XP下装IIS7(因为自己装了raid,装Server2008又没raid驱动)

用IIS6可以跑这个么?
  回复  引用    
#8楼 [楼主] 2008-05-19 09:17 | 代震军      
@J.T.R.
如果确定数据库中已该存储过程的话,那么请确保存储过程和表的执行权限(如DBO)等与数据库所有者一致,否则也可能会出现您所报的错误
  回复  引用  查看    
#9楼 [楼主] 2008-05-19 09:18 | 代震军      
@juliuslzww
我的机器就是IIS6,能跑起主站程序的:)

  回复  引用  查看    
#11楼 [楼主] 2008-05-19 17:05 | 代震军      
@黑白之间
已回复了:)
  回复  引用  查看    
#12楼  2008-05-23 12:33 | e叶之秋      
兄弟,我不久前也在官方网站下了这个,新家伙一大把。共同学习哦。
  回复  引用  查看    
#13楼 [楼主] 2008-05-23 12:57 | 代震军      
@e叶之秋
好的,呵呵:)
  回复  引用  查看    
#14楼  2008-05-31 00:03 | Doho      
楼主你好!请问一下,我安装 DinnerNow-25.msi 的时候出现错误:
'DinnerNow.cab' required for this
installation is corrupt and cannot be used. This could
indicate a network error, an error reading from the
CD-ROM, or a problem with this package.
这是什么回事呢?
  回复  引用  查看    
#15楼  2008-05-31 21:46 | 邱凯@ [未注册用户]
楼主你好!我最近把环境换成windows2008 装上vs2008 安说环境是OK了
Start Here for DinnerNow 的时候 狂报错
后来按楼主说的 方法自己搞数据库 配环境
结果 启动 DinnerNow Web 顶部菜单没有下拉显示
而且编译DinnerNow Kiosk项目时
无法创建在程序集“DinnerNowKiosk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中定义的“OrderStatusWindow”的实例。 调用的目标发生了异常。 标记文件中“DinnerNowKiosk;component/OrderStatusWindow.xaml”行2位置2处的错误。
怎么会这样呢
  回复  引用    
#16楼 [楼主] 2008-06-02 09:01 | 代震军      
@Doho
是不是你下的安装包不完整呀,我的本地包是21236 kb
  回复  引用  查看    
#17楼 [楼主] 2008-06-02 09:05 | 代震军      
@邱凯@
顶部菜单没有下拉显示的问题应该是您的站点配置问题,请按我说的IIS配置方式设置主站和虚拟目录(站点)之后就能解决了.
另外关于DinnerNowKiosk的问题应该也是上面站点配置不正确造成的:)
同时感谢您的关注:)
  回复  引用  查看    
#18楼  2008-06-04 13:35 | 平静中的疯狂      
好东西,谢谢分享
  回复  引用  查看    
#19楼 [楼主] 2008-06-04 14:47 | 代震军      
@平静中的疯狂
:)
  回复  引用  查看    
#20楼  2008-06-19 08:09 | weigaolin [未注册用户]
好东西啊,支持
  回复  引用    
#21楼 [楼主] 2008-06-19 09:31 | 代震军      
@weigaolin
:)
  回复  引用  查看    
#22楼  2008-06-23 10:09 | weigaolin [未注册用户]
楼主,请问可以联系你么,我的email :glwei@126.com ,手机13714272007 魏生
  回复  引用    
#23楼  2008-06-25 17:31 | jetjy [未注册用户]
正在嘗試使用Linq+WCF+Web/Win這樣的架構開發系統
最近也在看這個但是有些問題不明白

1.Model實體和Linq中實體如何對應的?
看到Dinnernow中,好像沒有model(也可能是沒看懂),客戶端直接調用Service提供的DataContract,但看了半天,只在Service中看到了OperationContract,沒看到有DataContract


2.如果Model實體中有嵌套時,如何處理?
比如Employee.ModifyBy 在什么時候做info和linq的對應?
因為Model實體都沒有方法等,如果一直對應,就可能出現死循環Employee.ModifyBy.ModifyBy.....

發現Linq關聯實體之間,是只對應了一層,即Employee.ModifyBy有,Employee.ModifyBy.ModifyBy沒有實例了

3.Linq的連接字符串好像被直接寫在了dbml中一份,是否可以都通過web.config讀取?

謝謝。

  回复  引用    
#24楼  2008-07-11 16:07 | Helnet      
我按照这个过程部署了程序,但是在浏览的时候出现了这个错误。哪位知道这是怎么回事?先谢过了。

Server Error in '/DinnerNow' Application.
--------------------------------------------------------------------------------

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0246: The type or namespace name 'PaymentCollection' could not be found (are you missing a using directive or an assembly reference?)

Source Error:

Line 17: public class ProfileCommon : System.Web.Profile.ProfileBase {
Line 18:
Line 19: public virtual PaymentCollection DisplayPayments {
Line 20: get {
Line 21: return ((PaymentCollection)(this.GetPropertyValue("DisplayPayments")));


Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\dinnernow\02ad3f5a\f08dba4d\App_Code.9zrbn1mg.0.cs Line: 19

  回复  引用  查看    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-07-15 10:53 编辑过
 
另存  打印