DCSIMG
How to change ASP.NET MVC 2 default folder structure in Visual studio 2010 Beta 2 - Avi Pinto

Avi Pinto

על הבלוג

Follow uberPinto on Twitter

View Avi Pinto's profile on LinkedIn

Subscribe in a reader Subscribe by Email

 


Two new sculptures

View my Air Brush Work at Avipinto.com

Helping a friend, great tool for fixing file names

JavaScript Tutorial


Disclaimer All postings/content on this blog are licensed under a Creative Commons Attribution By license and provided "AS IS" with no warranties, and confer no rights.
All entries in this blog are my opinion and don't necessarily reflect the opinion of my employer or sponsors.

How to change ASP.NET MVC 2 default folder structure in Visual studio 2010 Beta 2

החלטנו בצוות לכתוב את המערכת החדשה ב MVC 2 (נשבר כבר מזמן מ web Forms).
מבנה הספריות הדיפולטי לא מתאים לנו - לוגית האפליקציה שלנו מחולקת לשני תחומים עיקריים, לכן רצינו פיצול של הקוד, בעיקר מטעמי תחזוקה.

ב web Forms היינו יוצרים שתי ספריות ומתחת לכל ספריה היו נמצאים הקבצים הרלוונטים אליה.
ב MVC 2 התווסף הפיצ'ר Areas, או יותר נכון single-project area (בגרסא הסופית של MVC 2 לא ישוחרר הפיצ'ר של פיזור areas בפרוייקטים שונים, אבל מי צריך את זה בכלל)-
     הכוונה - הוספת ספריה בשם Areas ב root של הפרוייקט,
                ומתחתיה יש ספריה לכל area - בעצם ספריה שמכילה את ה controllers ו views עבור אותו area
                מאוד נח לחלוקת הפרוייקט, מה גם שיכול להיות לכם controller בשם זהה בשני איזורים שונים(שכמובן יעשה פעולות שונות)
הסבר על areas אפשר לראות בהרצאה מ PDC2009 בשם Microsoft ASP.NET MVC 2: The New Stuff בערך מדקה 12

בצורה מפתיעה, ב 2 visual studio 2010 beta לא קיים התפריט של הוספת area (חבל שהבחור מה PDC לא ציין זאת, ותודה לנעם קינג שהעלה את הנקודה הזו בפניי והפנה אותי לכאן)
קצת מתסכל שבכל חיפוש כמעט הגעתי אל הפוסט של Phil Haack, שמסביר איך לממש areas אבל גם מציין בראשית הפוסט ש "Single project areas are a core part of ASP.NET MVC 2"

איזו התרגשות,יש תמיכה, ויהיו תפריטים בגרסה של visual studio שתצא בפבואר, אבל איך בונים את זה עכשיו??
חיפושים העלו את ההסבר הבא Walkthrough: Organizing an ASP.NET MVC Application using Functional Areas ששוב מראה שימוש בכלים, שכרגע קיימים רק עבור visual studio 2008 מול asp.net mvc 2 rc, אבל יש שם פרוייקט דוגמא :-).
1. תורידו את פרוייקט הדוגמא.
2. צרו בפרוייקט שלכם מבנה ספריות דומה למבנה שיש שם תחת ספרית areas,
    ואל תשכחו להעתיק את קובץ הרישום AreaRegistration.cs בכל אחד מהאיזורים שלכם.
3. עכשיו שנו את שמות האיזורים בקובץ הרישום,
    ואל תשכחו לשנות את ה  namespace (שימו לב שה namespace צריך להכיל .Areas. בשביל שיעבוד).
4. תוסיפו AreaRegistration.RegisterAllAreas(); בפונקציה RegisterRoutes  שב global.asax מיד אחרי ה IgnoreRoute.

סיימנו Happy Happy Joy Joy

הסיבה להיצמדות לקונבנציות האלה קשורה למציאת ה views ע"י ה view engine הדיפולטי של asp.net MVC
יכולנו לכתוב View Engine משלנו ואז לבנות את הפרוייקט באיזו צורה שנרצה (המיקום של ה controller-ים פחות משנה, הם בכל מקרה יזוהו)
אבל אני מעדיף להיצמד לקונבנציה במקרה זה.

הסבר קצרצר באנגלית אפשר למצוא בתשובה שלי ב stackoverflow ועוד הסברים על פתרון בעיות בפוסט הבא


מקווה שזה עוזר למישהו


תוכן התגובה

ASP.NET MVC Archived Blog Posts, Page 1 כתב/ה:

Pingback from  ASP.NET MVC Archived Blog Posts, Page 1

# January 30, 2010 2:36 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 2 and 5 and type the answer here:


Enter the numbers above: