从头开始编写一个Orchard网上商店模块(1) - 介绍

原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-1

介绍
在这个系列博客中,我们将共同经历从头开始构建一个Orchard模块的过程!
虽然Orchard是一个了不起CMS(内容管理系统),有着强大的功能和令人振奋的架构,可以无限的扩展,但它可能需要花费一定时间,以充分了解它的架构,并能够定制您自己的主题的各个方面或甚至创造整个模块来集成Orchard所有的可扩展性点。

我希望,你将受益于我前进的道路上所获得的知识,你会看到Orchard及其架构之美。它不仅只是在简单或高级的网站和博客方面表现很出色,同时它也是一个非常基础的平台,用于创建各种基于Web的应用,如电子商务后端,  CRM的投票系统,项目管理,社区网站,学习管理系统等等。基本上你打算从头创建的任何应用都应考虑使用Orchard创建。Orchard实际上是一个可扩展的框架,它不仅仅“只是”一个CMS。你可以通过插件方式做任何常规ASP.NET MVC应用可以做的事,同时Orchard还拥有一套丰富的功能和兼容概念,你可以获得额外的好处。

本播客系列主要面向刚刚接触Orchard的ASP.NET MVC开发人员,在开始深入这前,如果您还没有阅读过下面文章,我强烈建议您先阅读以下文章:
http://docs.orchardproject.net/Documentation/How-Orchard-works
http://msdn.microsoft.com/en-us/magazine/hh708754.aspx

网上商店功能

我们的网上商店模块将启用以下功能:

  • 管理员将能够将任意ContentType(内容类型)通过附加到ProductPart上,从而把它变成产品。
  • 网站访客(顾客)将能够把产品添加到购物篮,通过网站注册,并成为注册用户。
  • 用户将能够进行结算和通过在线支付服务提供商(PSP)支付(在我们的演示,我们将使用Ogone模拟PSP)选定的产品。
  • 在客户被重定向到PSP之前,系统将创建一个Order(订单)记录,及其OrderDetail (订单明细)记录。
  • 在客户支付订单后,我们需要处理的产品交付。在实物产品的情况下,我们可能要通知一些航运伙伴。在虚拟产品的情况下,我们可能要产生类似于票据,或其他近似的产品。为了这种灵活性,我们将实现某种接口IShippingProvider,我们将创建两个简单的实现:一个是发送电子邮件通知托运人,另一个会产生票据。
  • 管理后台,使管理员能够管理客户以及订单。

(注意: 关于嵌入截图, 出现一些截图太小,你只需拖动图片到您的浏览器的地址栏中,查看其原始大小的图片。)

好吧,就让我们开始创建Orchard Webshop Module(网店模块)!

第1部分 - 简介(本篇)
第2部分 - 配置您的Orchard开发环境
第3部分 - 创建Orchard.Webshop模块项目
第4部分 - 创建ProductPart
第5部分 - 创建和渲染ProductCatalog的内容类型
第6部分 - 创建购物车服务和控制器
第7部分 - 渲染ShoppingCart和ShoppingCartWidget
第8部分 - 注册新客户与网站
第9部分 - 创建订单和与PSP通信
第10部分 - 客户和订单管理后端
第11部分 - 在内容列表中定制产品和类别的:DisplayTypes
第12部分 - 与ERP系统集成
第13部分 - 处理运费和税费
第14部分 - 实施付款方式:Google Checkout
第15部分 - 实施付款方式:PayPal

点击这里查看演示!

C#调用Java代码

c#直接调用java代码,需要ikvmbin-0.44.0.5.zip。下载地址:

http://pan.baidu.com/share/link?shareid=3996679697&uk=255031021

1.下载并解压

2.配置环境变量:

在path中添加%IKVM_HOME%\bin,IKVM_HOME为解压后的IKVM的主目录。在dos界面,输入"ikvm"命令,测试是否配置成功

3.编写java代码(java代码,要放在指定的package下,不要放在默认包下):

 1 package com.xyy.csharp;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class TestMain {
7
8 //获得集合
9 public List<Demo1> getLists(){
10 List<Demo1> lst=new ArrayList<Demo1>();
11 Demo1 d=new Demo1();
12 d.setId(1);
13 d.setName("admin");
14 Demo1 d2=new Demo1();
15 d2.setId(2);
16 d2.setName("sa");
17
18 lst.add(d);
19 lst.add(d2);
20 return lst;
21 }
22
23 //获得字符串
24 public String getString(){
25 return "我是字符串";
26 }
27
28 //获得对象
29 public Demo1 getObject(){
30 Demo1 demo=new Demo1();
31 demo.setId(1);
32 demo.setName("admin");
33 return demo;
34 }
35
36 //获得boolean
37 public boolean getBoolean(){
38 return Boolean.TRUE;
39 }
40
41 //在控制台输出
42 public void SystemOutPrint(){
43 System.out.println("我是控制台输出语句");
44 }
45 }

5.将java项目打成jar包(test.jar)
    6.使用命令,将jar包打成dll:ikvmc -out:IKVM.dll test.jar

7.新建c#项目,引入以下三个dll:

%IKVM_HOME%\bin\IKVM.OpenJDK.Core.dll

  %IKVM_HOME%\bin\IKVM.Runtime.dll

  %IKVM_HOME%\bin\IKVM.Runtime.JNI.dll

引入刚刚打包的IKVM.dll

8.

9.输出结果:

10.c#不能直接接收java返回的集合,这里就没深入研究了

 

 
 
 
标签: javac#调用

Orchard网上商店模块的更多相关文章

  1. 从头开始编写一个Orchard网上商店模块(4) - 创建ProductPart

    原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...

  2. 从头开始编写一个Orchard网上商店模块(2) - 配置您的Orchard开发环境

    原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...

  3. 从头开始编写一个Orchard网上商店模块(1) - 介绍

    原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...

  4. 从头开始编写一个Orchard网上商店模块(6) - 创建购物车服务和控制器

    原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-pa ...

  5. 从头开始编写一个Orchard网上商店模块(5) - 创建和渲染ProductCatalog的内容类型

    原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-pa ...

  6. 从头开始编写一个Orchard网上商店模块(3) - 创建Orchard.Webshop模块项目

    原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...

  7. Web Server Notifier 是chrome网上商店的一个插件

    Web Server Notifier 是chrome网上商店的一个插件

  8. ORCHARD 是什么?

    官网 http://orchard.codeplex.com 教程 http://www.cnblogs.com/sunjunlin/p/3876693.html [翻译]从头开始编写一个Orchar ...

  9. Orchard学习资料,适合入门上手

    名词解释: http://www.cnblogs.com/esshs/archive/2011/06/01/2067501.html   Orchard如何工作: http://www.cnblogs ...

随机推荐

  1. 使用Heartbeat实现双机热备

    使用Heartbeat实现"双机热备"或者称为"双机互备"heartbeat的工作原理:heartbeat最核心的包含两个部分,心跳监測部分和资源接管部分,心跳 ...

  2. IOS的UITextField,UIButton,UIWebView它描述的一些属性和IOS提示图像资源

    有时UI要开发的资源与实际frame不符.这一次,我们要绘制图片 UIImage* image = [[UIImage imageNamed:@"text_field_bg.png" ...

  3. hdu More is better

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 题意:王老师要找一些男生帮助他完成一项工程.要求最后挑选出的男生之间都是朋友关系,可以说直接的, ...

  4. sql server 汉字的长度

    前几天改了人家程序中的一个小bug,就是输入时长度的校验问题.项目是.Net的,数据库是 sql server的.检查了一下,发现以前的人员把长度给控制小了,数据库中允许输入256的长度,而别人在as ...

  5. ArcPad 10 的安装和部署

    ArcPad它被安装在一个手持装置或业内外的移动终端ArcGIS产品,那ArcPad这是Esri软件产品,哦,不是硬件. 虽然优于ArcGIS Desktop功能复杂的乐趣,是对于野外作业.数据採集等 ...

  6. mysql_自动备份

    1 @echo off 2 set errorlevel=0 3 set dump_command="C:\Program Files\MySQL\MySQL Server 5.5\bin\ ...

  7. [注意事项&amp;车轮]java源代码 产生局部javadoc api档

    随着Eclipse书写java码时间,有时候,因为我们不知道java函数返回.通过鼠标移动到java该功能,假设它javadoc相关内容将被显示. 但是,并非所有java代码javadoc:连装jav ...

  8. js 正则练习之语法高亮

    原文:js 正则练习之语法高亮 学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解.今天就分析下 次碳酸钴 和 Barret Lee 语法高亮实现. 先 ...

  9. boost进程间通信经常使用开发一篇全(消息队列,共享内存,信号)

    本文概要: 敏捷开发大家想必知道并且评价甚高,缩短开发周期,提高开发质量.将大project独立为不同的小app开发,整个开发过程,程序可用可測,所以提高了总体的质量.基于这样的开发模式和开发理念,进 ...

  10. 直读Innodb datafile

    这两天有空翻了翻大神写的<innodb存储引擎>,手痒亲身实践.由于此书出版了有段时日,没有用其推荐的python工具,通过点滴推敲,略微发现其中冰山一角的奥秘.对于今后对于一些问题查证或 ...