Orchard网上商店模块
原文地址: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返回的集合,这里就没深入研究了
Orchard网上商店模块的更多相关文章
- 从头开始编写一个Orchard网上商店模块(4) - 创建ProductPart
原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...
- 从头开始编写一个Orchard网上商店模块(2) - 配置您的Orchard开发环境
原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...
- 从头开始编写一个Orchard网上商店模块(1) - 介绍
原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...
- 从头开始编写一个Orchard网上商店模块(6) - 创建购物车服务和控制器
原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-pa ...
- 从头开始编写一个Orchard网上商店模块(5) - 创建和渲染ProductCatalog的内容类型
原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-pa ...
- 从头开始编写一个Orchard网上商店模块(3) - 创建Orchard.Webshop模块项目
原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...
- Web Server Notifier 是chrome网上商店的一个插件
Web Server Notifier 是chrome网上商店的一个插件
- ORCHARD 是什么?
官网 http://orchard.codeplex.com 教程 http://www.cnblogs.com/sunjunlin/p/3876693.html [翻译]从头开始编写一个Orchar ...
- Orchard学习资料,适合入门上手
名词解释: http://www.cnblogs.com/esshs/archive/2011/06/01/2067501.html Orchard如何工作: http://www.cnblogs ...
随机推荐
- 《代码的第一行——Android》封面诞生
<代码的第一行--Android>已经上市近一个月,现在的情况是相当不错的销售,也特别感谢众多朋友的支持. 其实一本好书,假设你想卖.除了给予外力所要求的内容.封面设计是至关重要的,这本书 ...
- JS扩展 或 Jquery的扩展写法
<script>//JS扩展String函数test,其它类推String.prototype.test = function(s){ alert(this+s);}var str = ' ...
- elasticsearch的rest搜索---对于相关度的大牛的文档
目录: 一.针对这次装B 的解释 二.下载,安装插件elasticsearch-1.7.0 三.索引的mapping 四. 查询 五.对于相关度的大牛的文档 五.对于相关度的大牛的文档 http: ...
- 建立Cent OS7server有些问题需要注意
1.与网络有关的问题 (1)网络配置问题 CentOS 7 与曾经的版本号项目在网络配置等许多的地方都做了比較大的改动,比如你会发现ifconfig命令没有了... 这是由于,centos7以下使用: ...
- 【LeetCode】 sort list 单清单归并
称号:Sort a linked list in O(n log n) time using constant space complexity. 思路:要求时间复杂度O(nlogn) 知识点:归并排 ...
- 突破IP限制动态替换代理ip。
须要导入的两个jar包 实现的javabean <span style="font-size:18px;">package com.jx.po; public clas ...
- [CLR via C#]1.3 加载公共语言运行时
原文:[CLR via C#]1.3 加载公共语言运行时 1. 你生成的每个程序集可以是EXE,也可以是DLL.最终都是有CLR管理这些程序集中代码的执行. 2. VS2010中,创建新的EXE项目时 ...
- Redis MSET的极限在哪里
·背景 Redis以"快.准.狠"而著称,除了其主-从模式略失光彩(主从模式更多是被以讹传讹,3.0依旧在测试中),大部分的应用可谓尖兵利器.在一些常规写的时候,MSET和HMSE ...
- C# winform调用WebBrowser经典怪问题总结
原文:C# winform调用WebBrowser经典怪问题总结 最近一直研究网页数据采集,单单采集数据,其实HtmlAgilityPack就足够了. 对HtmlAgilityPack感兴趣的可以到这 ...
- ASP.NET如何显示农历时间
ASP.NET如何显示农历时间 CS部分代码如下: 代码如下: public string ChineseTimeNow = ""; public string ForignTi ...