最近想研究一下系统扩展怎么搞,简单的就是支持动态运行,复杂的就是支持二次开发。两种方式如果要是用.net做,还是比较麻烦的,主要是处理引用集啊、命名空间什么的,不过也是可以做的。我以前发帖讨论过。比如C#的动态编译运行。但是确实很麻烦,毕竟不是脚本语言。当然,听说net4支持动态语言,再说吧。
今天发现用ironpython合.net程序互补处理一些系统扩展性问题,还是很不错的。毕竟Python是脚本语言,使用起来简单易于学习。如果系统的再开发系统支持Python,工作量和易用性上也没有用.net做那么费事。毕竟技术发展到今天,没必要重复前人劳动,特别是我还没那个能力超越前人的情况下。
废话不说了,转个帖子当作介绍吧。
http://hi.baidu.com/newtype/blog/item/a1e3f8dcf9c4dda2cc1166c1.html
最近无聊,下了个visual studio 2005的furture,发现里面多了对动态语言的支持.其实很早就想摆弄下python,正好是个机会.一开始是想学ironpython,但后来发现还是实在的学python吧.
下面是我昨天一天的学习结果,记录一下,方便和我一样的python初学者.
python是什么?
Python,是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。
更多介绍:
http://baike.baidu.com/view/21087.htm
官方网站:
http://www.python.org/
python能做什么?
我比较关注的web领域开发,python就可以做.其他的cs程序,相信也不出成问题.
为什么要学python?
按照我的理解,python是和现在流行的java c# c等相比都不同的语言.多学点不同的东西,不仅可以开拓视野,也会帮助你现在使用的语言(比如我在用c#).而且,说不定一发不可收拾,你的下一份工作就是python!
如何安装python.
到官方网站 http://www.python.org/ 来下载最新版本的python(我下的是2.5),根据你的操作系统(我是windows xp)选择相应的下载点.下载完成后安装.
安装的包括python的运行环境,库,和其他组件.其中比较重要的是一个用来编写python的ide,IDLE,在开始-程序-python2.5下可以看到它.
学习python
这里有一个很好的教程,可以帮助你快速的掌握python
简明Python教程:
http://www.woodpecker.org.cn:908 ... /chinese/index.html
这是稍微复杂些的
Dive Into Python:
http://www.woodpecker.org.cn/diveintopython/toc/index.html
我昨天下午看了看简明Python教程,python的一些语法非常的有意思!
怎么运行python?
最简单的是用IDLE进行python程序的编写,完成后按F5就会打开python shell看到程序的结果.
打开IDLE后,File-New Window,就可以开始一个新python程序的编写.
编写python的IDE都有哪些?
除了上面提到的IDLE,还有一个比较好的选择是Active Python,这个也是免费下载的软件.你可以到这里来下载
Active Pytho: http://www.activestate.com/Products/activepython/
想要多一些关于python的资源
Python chm版电子书籍列表
http://bound0.xinwen365.com/python/
到这里,基本上就可以开始python的学习与实践了.实际上,大体了解了语法后,你肯定想知道怎么用python来编写一个更复杂的程序.
怎么用python开发网站?
现在有一些支持python开发网站的框架可选.
入门级的Karrigell:
http://karrigell.sourceforge.net/en/front.htm
高级的Django:
http://www.woodpecker.org.cn/obp ... bystep/newtest/doc/
我现在是做.net开发的,所以也比较关注python和.net的一些结合.现在python在.net上通过ironpython实现.下面是这个的一些问题.
ironpython是什么?
简单理解就是一个.net可用的组件,或者说是.net框架下和c#等平行的另一种语言.(这样理解其实有问题,但可以帮助你快速的进入ironpython的世界).
官方网站: http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
但是,如果抛去vs和.net,ironpython和python没有什么特别的不同.我们可以把此时的vs看成一个开发python程序的IDE或框架.
怎么在.net环境下使用ironpython?
使用ironpython当然是指用visual studio.net进行开发.要使用ironpython,需要给你的vs打个补丁.
下载这个Microsoft ASP.NET Futures安装,可以让你的vs支持ironpython
http://www.microsoft.com/downloa ... &displaylang=en
通过下面的介绍,可以简单的了解如何在vs中使用ironpython
http://quickstarts.asp.net/Futur ... miclanguage_wt.aspx
另外的五个教程
为了帮助初学者尽快地使用,开发小组提供了如下五个教程:
1.Creating a Basic Web Page with IronPython.doc
http://static.asp.net/asp.net/fi ... with-IronPython.doc
2.Using Shared Code with IronPython for ASP.NET.doc
http://static.asp.net/asp.net/fi ... hon-for-ASP.NET.doc
3.Databinding with IronPython for ASP.NET.doc
http://static.asp.net/asp.net/fi ... hon-for-ASP.NET.doc
4.Debugging IronPython for ASP.NET.doc
http://static.asp.net/asp.net/fi ... hon-for-ASP.NET.doc
5.Creating a User Control with IronPython.doc
http://static.asp.net/asp.net/fi ... with-IronPython.doc
我想直接在vs中像建立c#项目一样建立ironpython项目,该怎么办?
很遗憾,现在还没有这样的vs补丁发布,但是,你可以下载一个Visual Studio 2005 SDK Version 4.0来暂时的使用这一特性
http://www.microsoft.com/downloa ... &displaylang=en
这个下载并安装后,会给你提供一个vs项目,打开后,按ctrl+f5运行,就会给你开启一个新的vs实例,在这个vs中,可以像建立c#项目一样建立ironpython项目.
关于这个sdk的更多信息,看这个文章
http://blogs.msdn.com/aaronmar/archive/2006/02/16/533273.aspx
想要关于ironpython的更多的信息
看博客园的ironpython小组:
http://www.cnblogs.com/ipyteam/archive/2006/11/05/506995.html
随着项目的逐渐收尾, 对IronPython脚本也越来越熟悉,这里为IronPython脚本感兴趣但不入门的朋友写几篇使用心得,这是第一个:最简单的hello world程序。
首先,我们必须有一个IronPython脚本引擎库(IronPython.dll),我用的版本是V1.0,你可以在网上直接下到相关源码,编译后即生成IronPython.dll。
新建一个C#桌面程序,引用该库后,我们便开始编写第一个程序。
下面是C#中的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using IronPython.Hosting;
namespace TestIronPython
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
PythonEngine scriptEngine = new PythonEngine();
scriptEngine.Execute(textBox1.Text);
}
}
}
代码很简单,声明了一个scriptEngine 实例,直接用Execute执行代码即可。下面看看py的代码该怎么写:
import clr
clr.AddReferenceByPartialName("System.Windows.Forms")
clr.AddReferenceByPartialName("System.Drawing")
from System.Windows.Forms import *
from System.Drawing import *
MessageBox.Show("Hello World!")
第一句代码很重要,导入.net clr,用clr的AddReferenceByPartialName方法加载我们熟悉的System.Windows.Forms和System.Drawing库,最后可以直接执行.net中的MessageBox方法。
运行后,直接单击button1,即可弹出一个对话框"Hello World!"
怎么样,是不是很简单?!