เหตุใดโลกของ. NET จึงไม่มีอะไรเหมือน rails / grails / django / roo [ปิด]


10

สำหรับฉันดูเหมือนว่าแพลตฟอร์มเว็บที่มีการพัฒนาอย่างรวดเร็วกำลังจะเปลี่ยนแปลงโลกของเว็บแอปพลิเคชันอย่างสิ้นเชิง

เป็นเวลาห้าปีแล้วที่ Rails 1.0 เปิดตัวสำหรับ Ruby และหลังจากนั้นเราได้เห็น Grails for Groovy, Django สำหรับ Python และ Roo for Java

แต่สำหรับความรู้ของฉัน (ซึ่งอาจมี จำกัด เป็น Java / Groovy progammer) ไม่มีกรอบที่คล้ายกันสำหรับ C #

สิ่งนั้นมีอยู่จริงหรือไม่? ถ้าไม่ทำไมล่ะ

แก้ไข: เป็นไปได้มากที่ฉันไม่ได้ใช้คำพูดที่ถูกต้องเมื่อฉันพูดว่า "การพัฒนาอย่างรวดเร็ว" แต่ฉันกำลังพูดถึงเฟรมเวิร์กที่ช่วยให้คุณสามารถสร้างเครื่องมือบล็อกที่ใช้งานได้ใน 30 นาที คุณไม่สามารถทำสิ่งนี้ด้วยพูดจาวาสปริงและไฮเบอร์เนตเนื่องจากการกำหนดค่าต่าง ๆ ที่จำเป็นเพื่อให้ตัวควบคุมของคุณสามารถพบได้และทั้งการกำหนดค่าและรหัสที่จำเป็นสำหรับเอนทิตีของคุณยังคงอยู่และถูกดึงออกมา

ดังนั้นฉันกำลังพูดถึงเฟรมเวิร์กที่จัดการกับ CRUD ทั้งหมดด้วยความคิดในการตั้งค่าแบบแผน หากใครบางคนมีคำที่ถูกต้องสำหรับสิ่งที่ฉันพูดถึงให้ฉันรู้

คำตอบ:


5

สำหรับฉันดูเหมือนว่ายังไม่มีชื่อสำหรับกรอบประเภทนี้ที่คุณกำลังพูดถึงในหัวข้อนี้ ฉันเรียกพวกเขาว่าเดี๋ยวแค่กรอบเหมือน RAILS : กรอบที่เพิ่มประสิทธิภาพการผลิตโดยการเตรียมเฟรมเวิร์กอื่นที่มีอยู่โดยมีวัตถุประสงค์เพื่อแก้ไขความต้องการขั้นพื้นฐานของเว็บแอพพลิเคชันส่วนใหญ่ แต่ในขณะเดียวกันก็ซ่อนความซับซ้อนทั้งหมดจากนักพัฒนา

ตามความต้องการขั้นพื้นฐานฉันหมายถึงการดำเนินงานของ Persistence Provider, Dependency Inyection Container, เครื่องมือบันทึก, แพลตฟอร์ม MVC, เครื่องมือเทมเพลต HTML, ชุดแม่แบบเว็บไซต์แม่แบบเริ่มต้นด้วย CSS ที่ตั้งไว้ล่วงหน้า, กรอบความปลอดภัยและคุณสมบัติ Javascript Library สำหรับ AJAX และสิ่งดีๆอื่น ๆ กรอบเหมือน RAILS จัดวางเฟรมเวิร์กและเครื่องมือเหล่านี้ทั้งหมดตามรูปแบบโดเมน (เอนทิตีของระบบของคุณด้วยคุณลักษณะ)

ด้วยหลักการ Convention-over-Configuration เฟรมเวิร์กเหล่านี้หลีกเลี่ยงความต้องการในการกำหนดไฟล์การกำหนดค่าจำนวนมากซึ่งเฟรมเวิร์กเหล่านั้นต้องการ (เช่น Spring, Spring MVC, Hibernate, Log4J และอื่น ๆ ) โดยสมมติว่าเป็นค่าเริ่มต้นตามการตั้งชื่อ โครงสร้างและข้อมูลเมตารวมอยู่ในคำจำกัดความของคลาสเดียวกัน

ต้องขอบคุณภาษาไดนามิกที่เฟรมเวิร์กเหล่านี้ใช้ (เช่น Ruby, Groovy, Python, Clojure, ฯลฯ ) ยกเว้น SpringRoo ที่ใช้การทำงานแบบไดนามิกใน Java โดยใช้ AspectJ ฟังก์ชันการทำงานที่เป็นของเฟรมเวิร์กภายใต้จะถูกขยายและ มีให้บริการแก่นักพัฒนาในลักษณะที่เป็นชุดและสง่างามที่เขา / เธอเพิ่งรู้เทคโนโลยีพื้นฐาน

ในที่สุดก็ต้องขอบคุณเทคนิค Scaffold การทดสอบหน่วยการทดสอบการรวมตัวควบคุมและมุมมองที่สร้างขึ้นโดยอัตโนมัติสำหรับฟังก์ชั่นหลัก (CRUD) เหนือแต่ละโดเมนวัตถุที่กำหนดโดยนักพัฒนา

ในโลก. NET ยังไม่มีการพัฒนาอะไรเลยตามคำจำกัดความก่อนหน้านี้ทั้งหมด แต่ไม่มีอะไรป้องกันไม่ให้เกิดขึ้นในไม่ช้า มีเฟรมเวิร์กเครื่องมือและไลบรารีที่ยอดเยี่ยมที่มีอยู่แล้วในโลก. NET ซึ่งสามารถจัดการได้โดยเฟรมเวิร์กคล้าย RAILS ใหม่ที่สร้างขึ้นสำหรับ CLR มี Unity, Spring.NET และ Castle Windsor รวมถึงสิ่งอื่น ๆ สำหรับความต้องการ Inyection Entity Framework 4, NHibernate และ iBatis.NET เป็นผู้ให้บริการ Persistence .NET ที่ค่อนข้างดี ASP.NET MVC ได้มาถึงแล้วพร้อมกับการรองรับแม่แบบเอนจิ้นต่าง ๆ นอกเหนือจาก ASP.NET ดั้งเดิม

แม้ว่าจะไม่มีใครประสบความสำเร็จในการใช้ภาษา DLR เพื่อสร้างเฟรมเวิร์กชนิดนี้ใครก็ตามที่มีเพียงพอจะสามารถติดตามเส้นทาง SpringSource และใช้เฟรมเวิร์กเหมือน RAILS ที่มีภาษาคงที่เช่น F #, C # หรือ VB.NET โดยใช้ Aspect -Oriented Container (เช่น AspectSharp หรือ Gripper-LOOM.NET) เพื่อรับพฤติกรรมแบบไดนามิก

ฉันชอบที่จะรู้เกี่ยวกับกลุ่มคนที่พยายามพัฒนากรอบดังกล่าวใน. NET


4

ฉันไม่รู้ว่าคุณหมายถึงอะไรโดย "แพลตฟอร์มการพัฒนาเว็บอย่างรวดเร็ว" คำจำกัดความของ "การพัฒนาอย่างรวดเร็ว" ที่ฉันคุ้นเคยไม่มีอะไรเกี่ยวข้องกับภาษากระบวนทัศน์หรือกรอบการทำงาน แต่เป็นการใช้ต้นแบบอย่างรวดเร็วและการพัฒนาแบบวนซ้ำเพื่อผลิตระบบ ภาษาหรือกรอบงานใด ๆ สามารถใช้ได้ดีพอ ๆ กัน

ฉันไม่เคยใช้ Grails หรือกินตานาโรมาก่อน แต่ Django และทางรถไฟมีทั้งกรอบ MVC เพื่อให้คู่ของพวกเขาใน .NET จะASP.NET MVC


1
ฉันจะเห็น ASP.NET MVC เป็นคู่ของ Spring MVC และจะบอกว่า Rails เป็น MVC framework เหมือนบอกว่า Stackoverflow เป็นไซต์ QA เหมือนผู้เชี่ยวชาญแลกเปลี่ยน มันเป็นแถลงการณ์ที่แท้จริง แต่มันขาดคุณสมบัติที่สำคัญที่สุดและสาเหตุของการประสบความสำเร็จ
Eric Wilson

1
โปรดอธิบาย "คุณสมบัติที่สำคัญที่สุด" Rails ไม่มีอะไรมากไปกว่าเฟรมเวิร์ก MVC สำหรับภาษา Ruby ที่รวบรวมทุกอย่างเกี่ยวกับมัน
Thomas Owens

2
Spring เป็นกรอบ MVC สำหรับ Java แต่ไม่ได้ทำอะไรมากมายที่ทำให้ Rails และ Grails ยอดเยี่ยม ตัวอย่างเช่นด้วย Grails หลังจากสร้างวัตถุโดเมนฉันสามารถพิมพ์grails generate-allและ Grails สร้างตัวควบคุมมุมมองและจะจัดการความคงอยู่
Eric Wilson

3

คุณสามารถเข้าไปใน Visual Studio และลากและวางการควบคุมบนหน้าเว็บและเชื่อมต่อพวกเขาไปยังฐานข้อมูลที่มีรหัสน้อยหรือไม่มีเลย คลิกเดียวเพื่อทดสอบ / ดู และคลิกเดียวเพื่ออัปโหลดไปยังเว็บไซต์ (ตกลงป้อนข้อมูลประจำตัว)

ไม่ใช่ว่านี่เป็นวิธีที่ใช้บ่อยที่สุดหรือเป็นวิธีที่แนะนำให้ทำ แต่จริงๆแล้วมันไม่ได้ง่ายไปกว่านี้อีกแล้ว


0

เพราะเว็บแอปพลิเคชั่น. NET มีวงจรการสร้าง

Ruby / Python เป็นภาษาที่คล่องแคล่วว่องไวและมีพลวัต

ที่ที่ฉันทำงานเรามีเว็บแอปพลิเคชั่น. NET ขนาดใหญ่และเวลาในการรวบรวมนั้นเทียบได้กับโปรแกรม C ++ ขนาดกลางถึงใหญ่

ในเวลาว่างของฉันฉันพัฒนาเว็บแอพพลิเคชั่นในไพ ธ อนและเวลาในการรวบรวมคือ 0 ไม่มีขั้นตอนการรวบรวมเลย ล่ามที่กำลังเรียกใช้เพียงแค่โหลดไฟล์. py เมื่อคุณบันทึก


1
แอปพลิเคชัน Java มีวงจรการสร้าง แต่ Spring Roo ยังคงทำงานได้อย่างมหัศจรรย์สำหรับแอปพลิเคชัน Java / Spring ดังนั้นฉันคิดว่ามีปัญหาอื่น ๆ ที่นี่
Eric Wilson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.