PDA

View Full Version : گفتگو: ساخت برنامه طراحی سایت



Barbababak
جمعه 09 مرداد 1388, 23:08 عصر
با درود
می خواستم نظرتون رو درباره سایت یک برنامه طراح سایت بدونم

به عقیده شما یک برنامه طراح سایت باید بر چه اساسی نوشته بشه و جزئیات اون به چه شکل باشه؟

1. بعضی ها برای ساخت این نوع برنامه ها یک سایت جامع طراحی می کنند که شامل همه بخشهای مورد نظر هست (مثل بخشهای خبر، مقاله، فروشگاه، ...) و موقع فروش، بخشهای مورد نظر رو به مشتری تحویل می دهند.
2. بعضی ها برای این کار یک الگوی نسبتا کلی طراحی می کنند بر اساس نیازی عمده مثلا بر اساس سایت خبری یا وبلاگ و اون الگو رو تا حدی برای هر مشتری، سفارشی می کنند.
3. شاید بشه روش سومی رو از روش دوم جدا کرد، که سایتی طراحی بشه کاملا بی شکل، که قبل از کاربری شدن سایت باید به شکلی، مثل برنامه نویسی به زبان خود این سایت در اون بخشها رو ساخت. (مثلا برای سایت توضیح داد که تو شامل یک بخش به عنوان بیوگرافی هستی که شامل عنوان متنی، تنه متن و تصویر هست، یا مشخص بشه سایت صفحه اصلیِ خبری داره که باید لینکهایی رو نشون بده از پایگاه داده که فیلد مشخص کننده نوع رکورد اونها برابر با رشته "news" باشه)

ایراد مورد اول اینه که برای هر بخش باید اون رو به طور کامل و همراه با تمام جزئیاتی که ممکن توی یک سفارش باشه و یا توی سفارش بعدی نباشه طراحی کرد و خوبی این روش اینه که هر بخش طراحی شده تخصصی تر به حساب میاد (مخصوصا در طراحی پایگاه داده اون). ایراد دوم اینه که شاید نام این روش رو نشه برنامه طراح سایت گذاشت!

بیشتر منظور من از موضوع نحوه پیاده سازی روشهای دوم و سوم هست که بیشتر به خلاقیت مربوط می شه تا خودِ برنامه نویسی.

Barbababak
چهارشنبه 14 مرداد 1388, 11:21 صبح
یک روش اینه که در پایگاه داده جدولی داشته باشیم برای تمام رکوردهای داده های اصلی (خبر، محصولات، گروهبندی محصولات و خبر و ...) و جدول دیگه ای برای نگهداری اطلاعات مربوط به ساختار بخشهای سایت (نحوه نمایش هر بخش)

در جدول اول باید جا برای ذخیره داده های همه بخشهای مورد نیاز بسازیم (فیلد عنوان، تعدادی فیلد nVarChar، فیلدnText، تعدادی فیلد Int، تعدادی فیلد Bit)
نمونه تعداد فیلدها: 10 فیلد nVarChar، دو فیلد nText،سی فیلد Int، سی فیلد Bit و سی فیلد عدد اعشاری

جدول دوم (ساختار بخشها) هم همین فیلدها رو داره به اضافه یک فیلد nText که در اون ساختار صفحه اون نوع رکورد نوشته می شه. نام این فیلد رو BodyBuilder میذاریم.

در جدول داده های اصلی، هر رکورد باید نشون بده که کجای سایت قرار گرفته. برای این منظور دو فیلد داریم:
ParentId که آی دی رکورد پدر در اون ذخیره میشه (مثلا آی دی صفحه "فهرست محصولات" برای هر رکورد "محصول") یعنی هر رکورد حتما باید رکورد پدری داشته باشه. فیلد دوم فیلد رشته ای Kind هست که به نوع رکورد در جدول دوم (جدول نوع رکوردها و ساختار سایت) اشاره داره.

مثال برای فیلد BodyBuilder در جدول ساختار :

ساختار صفحه ای مثل درباره ما یا بیوگرافی (برای رکوردهایی که مقدار Kind آنها برابر با 'News' یا 'AboutUs' است)


<h1><%this.Title%></h1>
<a href='<%this.ImageThumbWebUrl%>'><%this.ImageWebUrl%></a>
<%this.Details%>


ساختار صفحه ای مثل ریشه اخبار (فهرست خبرها Kind:NewsRoot است)


<%head%>
child1="SELECT * FROM Table1 WHERE Kind='News' ORDER BY Id DESC"
<%/head%>

<h1><%this.Title%></h1>
<%this.Details%>

<%child1%>
<a href='builder.aspx?id=<%child1.Id%>'><%child1.Title%></a><br/>
<%/child1%>


در کد اول ما صفحه یک خبر رو تعریف کردیم و در کد دوم صفحه فهرست خبرها که تمام خبرهای سایت رو فهرست می کنه ساختیم.

برنامه طراح سایت ما برای هر رکورد فیلد BodyBuilder رو خونده و کدهایی که درون <%this%> یا <%child%> نوشته شده رو Replace با داده های جدول اول جایگزین میکنه.
برای کد <%child%> هم حلقه ای داره که برای تمام رکوردهایی که پایگاه داده خونده و کد اس کیو الش در <%head%> وجود داشته تکرار میشه و اچ تی ام ال هر اجرای حلقه به انتهای اچ تی ام ال قبلی افزوده شده و در پایان برای بازدید کننده فرستاده می شه.


فکر می کنم این راه خیلی خوبیه برای ساختن برنامه ای که با گرفتن کد های ساده یک بخش رو تحویل میده و با کنار هم قرار دادن چند بخش ساده ما یک سایت کامل خواهیم داشت.

نظر شما چیه؟ چه در ایده های جدید چه در بهتر کردن همین روش.
منتظر نظرات شما هستم.