نظرات مطالب
توسعه سیستم مدیریت محتوای DNTCms - قسمت دوم
با سلام
2 سوال داشتم از خدمتتون
اول اینکه چرا تمام پراپرتیها به صورت Vitual تعریف شده اند؟
دوم اینکه آیا بهتر نیست در چنین سیستمی که تعداد رکوردها اینقدر بالا است از سیستم Database First استفاده نمود.چون احتمال تغییرات دیتابیس زیاد است و حتی استفاده از مایگریشن هم با سرعت کمی انجام میشود.بنا براین بهتر است با SQL Management Studio به دیتا بیس متصل شد و تغییرات را اعمال کرد.
2 سوال داشتم از خدمتتون
اول اینکه چرا تمام پراپرتیها به صورت Vitual تعریف شده اند؟
دوم اینکه آیا بهتر نیست در چنین سیستمی که تعداد رکوردها اینقدر بالا است از سیستم Database First استفاده نمود.چون احتمال تغییرات دیتابیس زیاد است و حتی استفاده از مایگریشن هم با سرعت کمی انجام میشود.بنا براین بهتر است با SQL Management Studio به دیتا بیس متصل شد و تغییرات را اعمال کرد.
این ایمیل حاصل عملیات «Create new client id» است که در ابتدای مطلب توضیح داده شد (و این «ایمیل Client ID ایجاد شده در قسمت قبل» در همان تصویری که «دکمهی Add» آن با یک دایرهی قرمز مشخص شده، باید وارد و Add شود. حاصل این Add کردن در لیست User management نمایش داده میشود).
"در ادامه به گزینهی User management آن وارد شده و به ایمیل Client ID ایجاد شده در قسمت قبل، دسترسی خواندن و آنالیز را اعطاء کنید"
ایمیل رو دستی توی این قسمت وارد میکنید یا وقتی وارد این قسمت میشیم ایمیل باید وجود داشته باشه؟
- روش دوم بررسی علت وقوع internal server error نصب ELMAH هست. این افزونه علت واقعی استثنای رخ داده را به همراه stack trace کامل، برای شما ذخیره میکند.
نصاب سریع آن برای ASP.NET MVC
مقالات مرتبط با آن در سایت
- روش سوم آن، مراجعه به لاگهای ویندوز است: Computer management -> Event viewer
نصاب سریع آن برای ASP.NET MVC
مقالات مرتبط با آن در سایت
- روش سوم آن، مراجعه به لاگهای ویندوز است: Computer management -> Event viewer
نظرات مطالب
EF Code First #2
- به هر قسمتی که فکر میکنید این مورد همزمانی ورود یا ویرایش اطلاعات امکان رخ دادن دارد، بله. بهتر است اضافه شود.
- تا زمانیکه خطایی نگرفتید، هیچ تنظیمی را تغییر ندهید.
برای یافتن schema، با استفاده از management studio به سرور متصل شده و یک جدول ساده را درست کنید. بعد مشاهده کنید که ابتدای نام جدول، به چه صورتی شروع شده. مثلا user1.table1 است؟ یا مورد دیگری.
- تا زمانیکه خطایی نگرفتید، هیچ تنظیمی را تغییر ندهید.
برای یافتن schema، با استفاده از management studio به سرور متصل شده و یک جدول ساده را درست کنید. بعد مشاهده کنید که ابتدای نام جدول، به چه صورتی شروع شده. مثلا user1.table1 است؟ یا مورد دیگری.
خواهش میکنم.
بله، بسته به سناریو میشود از پایگاه دادههای سبکتر نیز استفاده کرد.
LocalDB متاسفانه محدودیتهای زیادی دارد، مثلا در XP ساپورت نمیشود، فقط توسط Sql server 2012 management studio در دسترس هست که برای محصولات عمومی مناسب نیست. البته محل استفاده خاص خودش را دارد.
باز هم همه چیز به نحوه و محل استفاده بستگی دارد.
پاسخ به بازخوردهای پروژهها
خطا هنگام باز شدن کلاینت در ویندوز 8.1
- آیا در کنار فایل اجرایی برنامه، فایلی به نام ErrorsLog.Log تشکیل میشود؟ اگر بله، چه خطایی در آن گزارش شدهاست.
- اگر فایل ErrorsLog.Log تشکیل نشدهاست، مراجعه کنید به این مسیر جهت مشاهدهی خطای لاگ شده در event viewer ویندوز:
- اگر فایل ErrorsLog.Log تشکیل نشدهاست، مراجعه کنید به این مسیر جهت مشاهدهی خطای لاگ شده در event viewer ویندوز:
Computer management -> event viewer -> windows logs -> application
بازخوردهای دوره
بررسی قسمتهای مختلف قالب پروژه WPF Framework تهیه شده
فقط سه مورد (DbEntityValidationException, DbUpdateException, DbUpdateConcurrencyException) از استثناهای ویژه EF Code first در متد ApplyAllChanges بررسی شدند به همراه خطاهای اعتبارسنجی. مابقی استثناها در صورت رخ دادن به لایههای بالاتر منتشر خواهند شد (چون catch نشدند).
همچنین کدهای تکراری نحوه نمایش فقط این سه مورد ویژه و بررسی خطاهای اعتبارسنجی، ضرورتی به تکرار یا بررسی در کل برنامه را ندارد. نیازی نیست در کل برنامه if/else نوشت که بررسی شود آیا خطای اعتبارسنجی هست یا خیر، زمانیکه میشود آنرا به صورت مرکزی و پاکیزه، مدیریت کرد و مدیریت اینها هم حالت خاص دیگری ندارد (باید لاگ شوند و باید به اطلاع کاربر رسانده شوند که هر دو مورد در اینجا خودکار است). حداکثر این است که از نحوه نمایش آن راضی نیستید. کار سورس باز است. تغییرش بدید. این روش و این صفحه دیالوگ مطابق سلیقه من طراحی شده.
به علاوه در لایههای بالاتر نیز نیازی به بررسی سایر استثناها نیست چون این موارد در فایل App.xaml.cs در بالاترین سطح ممکن دریافت و لاگ میشوند؛ همچنین به کاربر هم نمایش داده خواهند شد (در متدهای appDispatcherUnhandledException و currentDomainUnhandledException).
البته این برنامه دسکتاپ است که یک چنین اجازهای رو میده. در برنامههای وب این موارد توسط ELMAH لاگ خواهند شد و به کاربر پیغام کلی خطایی رخ داده نمایش داده میشود.
همچنین کدهای تکراری نحوه نمایش فقط این سه مورد ویژه و بررسی خطاهای اعتبارسنجی، ضرورتی به تکرار یا بررسی در کل برنامه را ندارد. نیازی نیست در کل برنامه if/else نوشت که بررسی شود آیا خطای اعتبارسنجی هست یا خیر، زمانیکه میشود آنرا به صورت مرکزی و پاکیزه، مدیریت کرد و مدیریت اینها هم حالت خاص دیگری ندارد (باید لاگ شوند و باید به اطلاع کاربر رسانده شوند که هر دو مورد در اینجا خودکار است). حداکثر این است که از نحوه نمایش آن راضی نیستید. کار سورس باز است. تغییرش بدید. این روش و این صفحه دیالوگ مطابق سلیقه من طراحی شده.
به علاوه در لایههای بالاتر نیز نیازی به بررسی سایر استثناها نیست چون این موارد در فایل App.xaml.cs در بالاترین سطح ممکن دریافت و لاگ میشوند؛ همچنین به کاربر هم نمایش داده خواهند شد (در متدهای appDispatcherUnhandledException و currentDomainUnhandledException).
البته این برنامه دسکتاپ است که یک چنین اجازهای رو میده. در برنامههای وب این موارد توسط ELMAH لاگ خواهند شد و به کاربر پیغام کلی خطایی رخ داده نمایش داده میشود.