IronPython على ASP.NET MVC
-
22-07-2019 - |
سؤال
وقد حاول أي شخص ASP.NET MVC باستخدام IronPython?بعد أن فعلت الكثير من بيثون التنمية في الآونة الأخيرة ، سيكون من الجميل أن تستمر مع اللغة كما ذهبت إلى ASP.NET MVC المشروع.
انا مهتمة بصفة خاصة في استغلال الجوانب الحيوية من الثعبان .صافي ميزات مثل LINQ و أريد أن أعرف إذا كان هذا لن يكون ممكنا.الطريق الآخر التي قد تكون قابلة للتطبيق على بعض البرمجة الديناميكية سيكون C# 4.0 مع dynamic
الكلمات الرئيسية.
الأفكار التجارب ؟
المحلول
نعم، هناك مثال MVC من فريق DLR أ >.
وكنت قد تكون مهتمة ايضا في سبارك .
نصائح أخرى
باستخدام IronPython في ASP.NET MVC: http://www.codevoyeur.com/Articles/Tags/ironpython.aspx
هذه الصفحة تحتوي على المواد التالية:
- بسيطة IronPython ControllerFactory على ASP.NET MVC
- بسيطة IronPython ActionFilter على ASP.NET MVC
- بسيطة IronPython مسار معين عن ASP.NET MVC
- غير مزعجة IronPython ViewEngine على ASP.NET MVC
وأنا أعمل حاليا على هذا. وهو يدعم بالفعل الكثير من الأشياء: https://github.com/simplic-systems/ironpython -aspnet-MVC
ومزيد من المعلومات حول هذا:
واستيراد وحدة aspnet
import aspnet
ويمكنك كتابة تحكم بنفسك
class HomeController(aspnet.Controller):
def index(self):
return self.view("~/Views/Home/Index.cshtml")
ويمكنك تسجيل تلقائيا كل تحكم
aspnet.Routing.register_all()
ويمكنك استخدام مختلف أساليب HTTP-
@aspnet.Filter.httpPost
def postSample(self):
return self.view("~/Views/Home/Index.cshtml")
وهناك ما هو أكثر من ذلك بكثير. هنا هو مثال قصيرة جدا
# ------------------------------------------------
# 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")