IronPython ASP.NET MVC
Quelqu'un a-t-il essayé ASP.NET MVC utilisant IronPython? Ayant fait beaucoup de développement de Python récemment, il serait agréable de continuer avec le langage que je vais dans un potentiel ASP.NET projet MVC.
je suis particulièrement intéressé à exploiter les aspects dynamiques de Python avec les fonctionnalités .NET telles que LINQ et je veux savoir si cela sera possible. L'autre voie qui pourrait être viable pour certaines émissions dynamiques serait C# 4.0 avec son dynamic
mot.
réflexions, expériences?
3 réponses
Oui, il y a un exemple MVC de l'équipe de DLR.
Vous pourriez également être intéressé par Spark.
utilisation de L'IronPython dans ASP.NET MVC: http://www.codevoyeur.com/Articles/Tags/ironpython.aspx
cette page contient les articles suivants:
- un simple outil de commande IronPython pour ASP.NET MVC
- un simple Ferpython ActionFilter pour ASP.NET MVC
- un moteur de vision discrète en IronPython pour ASP.NET MVC
j'y travaille actuellement. Il soutient d'ores et déjà beaucoup de choses: https://github.com/simplic-systems/ironpython-aspnet-mvc
plus d'informations sur ceci:
Import aspnet
module
import aspnet
Vous pouvez écrire votre propre contrôleur
class HomeController(aspnet.Controller):
def index(self):
return self.view("~/Views/Home/Index.cshtml")
Vous pouvez enregistrer automatiquement tous contrôleur
aspnet.Routing.register_all()
Vous pouvez utiliser différentes méthodes http
@aspnet.Filter.httpPost
def postSample(self):
return self.view("~/Views/Home/Index.cshtml")
et il y a beaucoup plus. Voici un très courte exemple
# ------------------------------------------------
# This is the root of any IronPython based
# AspNet MVC application.
# ------------------------------------------------
import aspnet
# Define "root" class of the MVC-System
class App(aspnet.Application):
# Start IronPython asp.net mvc application.
# Routes and other stuff can be registered here
def start(self):
# Register all routes
aspnet.Routing.register_all()
# Set layout
aspnet.Views.set_layout('~/Views/Shared/_Layout.cshtml')
# Load style bundle
bundle = aspnet.StyleBundle('~/Content/css')
bundle.include("~/Content/css/all.css")
aspnet.Bundles.add(bundle)
class HomeController(aspnet.Controller):
def index(self):
return self.view("~/Views/Home/Index.cshtml")
def page(self):
# Works also with default paths
return self.view()
def paramSample(self, id, id2 = 'default-value for id2'):
# Works also with default paths
model = SampleModel()
model.id = id
model.id2 = id2
return self.view("~/Views/Home/ParamSample.cshtml", model)
@aspnet.Filter.httpPost
def postSample(self):
return self.view("~/Views/Home/Index.cshtml")
class SampleModel:
id = 0
id2 = ''
class ProductController(aspnet.Controller):
def index(self):
return self.view("~/Views/Product/Index.cshtml")