‫۱۲ سال و ۲ ماه قبل، جمعه ۲۰ مرداد ۱۳۹۱، ساعت ۱۴:۰۰
EF 5 به بعد بر مبنای دات نت 4 و نیم است.
ویندوز 8 دات نت 4 و نیم سر خود است.
از دیدگاه تیم BCL، دات نت 4 و نیم یک به روز رسانی درجای دات نت 4 است و صد در صد با آن سازگاری دارد.
دات نت 4 و نیم فقط بر روی ویندوزهای ویستا سرویس پک 2 به بعد قابل نصب است (روی XP یا ویندوز سرور 2003 نصب نمی‌شود).

‫۱۲ سال و ۲ ماه قبل، جمعه ۲۰ مرداد ۱۳۹۱، ساعت ۱۳:۰۷
در View مورد نظر یک section تعریف کنید به نحو زیر (که در آن می‌شود متغیرها را تعریف کرد):
@Section scriptVariables {
    <script type="text/javascript">
        var variableA = '@MyVarA';
    </script>
}
سپس در فایل layout سایت، پیش از الحاق اسکریپت اصلی آن‌را فراخوانی کنید:
<head>
    <meta charset="utf-8" />
    @RenderSection("scriptVariables", false)

    <script src="@Url.Content("~/Scripts/custom.js")" type="text/javascript"></script>
</head>

‫۱۲ سال و ۲ ماه قبل، جمعه ۲۰ مرداد ۱۳۹۱، ساعت ۰۲:۰۱
- اگر به هر دلیلی مجبور هستید که از دات نت 2 استفاده کنید، NHibernate می‌تونه پیشنهاد خوبی باشه و نسخه مخصوص دات نت 2 هم دارد (به آرشیو قدیمی آن سایت مراجعه کنید). (پایه زبان فعلی جاوا از خیلی از جهات شبیه به دات نت 2 است)
- مایکروسافت کلا توسعه پروایدر ADO.NET مخصوص اوراکل را رسما متوقف کرده و خود اوراکل الان داره این کار رو ادامه می‌ده. خلاصه از پروایدر مایکروسافت برای کار با اوراکل استفاده نکنید.

‫۱۲ سال و ۲ ماه قبل، جمعه ۲۰ مرداد ۱۳۹۱، ساعت ۰۰:۴۱
IQueryable فقط یک expression است. هنوز اجرا نشده. (expose آن از طریق وب سرویس اشتباه است و به مشکلات serialization برخواهید خورد.)
زمانیکه ToList، First و امثال آن روی این عبارت فراخوانی شود تبدیل به SQL شده و سپس بر روی بانک اطلاعاتی اجرا می‌شود. به این deferred execution یا اجرای به تعویق افتاده گفته می‌شود.
اگر این عبارت را در اختیار لایه‌های دیگر قرار دهید، یعنی انتهای کار را بازگذاشته‌اید و حد و حدود سیستم شما مشخص نیست. شما اگر IQueryable بازگشت دهید، در لایه‌ای دیگر می‌شود یک join روی آن نوشت و اطلاعات چندین جدول دیگر را استخراج کرد؛ درحالیکه نام متد شما GetUsers بوده. بنابراین بهتر است به صورت صریح اطلاعات را به شکل List بازگشت دهید، تا انتهای کار باز نمانده و طراحی شما نشتی نداشته باشد.
‫۱۲ سال و ۲ ماه قبل، جمعه ۲۰ مرداد ۱۳۹۱، ساعت ۰۰:۲۸
من توصیه می‌کنم که ADO.NET رو به شکل خام آن فراموش کنید. این نوع روش‌ها هرچند پایه و اساس تمام ORMهای نوشته شده هستند، اما فقط ابتدای کار را به شما نشان می‌دهند. واقعیت این است که سوئیچ کردن بین بانک‌های اطلاعاتی مختلف نیاز به تولید SQL قابل فهم برای آن موتور خاص را نیز دارد. اینجا است که ORMها در وقت شما صرفه جویی می‌کنند. شما کوئری LINQ می‌نویسید اما در پشت صحنه بر اساس پروایدر مورد استفاده، این کوئری LINQ به معادل SQL قابل فهم برای بانک اطلاعاتی مورد نظر ترجمه می‌شود. خیلی از توابع هستند که در بانک‌های اطلاعاتی مختلف تفاوت می‌کنند و این SQL ایی که مورد بحث است ... در عمل آنچنان استاندارد نیست. توابع تاریخ در SQLite با SQL Server فرق می‌کند. نوع‌های داده‌ای این‌ها عموما تطابق ندارد و مسایل دیگر. ORMها می‌توانند این مسایل را به خوبی مدیریت کنند بدون اینکه شما آنچنان درگیر این جزئیات شوید.
‫۱۲ سال و ۲ ماه قبل، پنجشنبه ۱۹ مرداد ۱۳۹۱، ساعت ۲۳:۰۹
امکانات Data Annotation‌ها کار تیم EF یا به عبارتی طراحان اصلی دات نت است. بنابراین کمی زیاده روی است که عنوان کنیم غیراصولی هستند. شما در NHibernate چندین و چند روش تعریف نگاشت‌ها و روابط را دارید. از فایل‌های XML تا Data Annotation‌ها تا Fluent NH تا Mapping by code اخیر آن و غیره. تمام این‌ها هست برای برآوردن سلایق مختلف.
در EF Code first هم به همین ترتیب. شما حق انتخاب دارید. به شخصه از ترکیب هر دو حالت Data Annotation‌ها و Fluent API استفاده می‌کنم.
ViewModel فقط بحث مدیریت صحیح ارتباط با کلاینت است (نمایش اطلاعات View) و برعکس (دریافت اطلاعات از کاربر). بنابراین اگر از ViewModel استفاده می‌کنید، نیاز است از Data Annotation‌ها استفاده کنید تا اعتبار سنجی سمت کاربر (که به صورت خودکار توسط MVC اعمال و مدیریت می‌شود) کار کند.
‫۱۲ سال و ۲ ماه قبل، پنجشنبه ۱۹ مرداد ۱۳۹۱، ساعت ۲۲:۱۷
البته من با VB.NET کار نمی‌کنم ولی بیشتر سلیقه‌ای است. معمار ارشد CLR آقای Anders Hejlsberg (ایشون فقط خالق سی شارپ یا پیشتر دلفی نیست؛ یکی از معماران ارشد CLR هم هست)، یکی از تلاش‌هاش هماهنگ کردن تمام زبان‌های رسمی دات نتی و یکپارچگی و سازگاری بین آن‌ها است. خلاصه هرکاری با یکی بتونی انجام بدی با بقیه هم می‌شود.
به علاوه در دلفی دات نت، syntax تعریف lambda expressions خیلی شبیه به VB.NET است.

‫۱۲ سال و ۲ ماه قبل، پنجشنبه ۱۹ مرداد ۱۳۹۱، ساعت ۲۲:۰۴
بله. مشکلی نداره. در EF Code first از Data Annotation‌ها حداقل به سه منظور استفاده میشه:
الف) کنترل ساختار دیتابیس تشکیل شده. مثلا طول فیلد رشته‌ای چقدر باشد.
ب) اعتبار سنجی سمت سرور. اگر فیلدی رو required تعریف کردید، هم به صورت not null در سمت بانک اطلاعاتی تشکیل خواهد شد و هم پیش از ثبت، توسط EF به صورت خودکار اعتبار سنجی می‌شود.
ج) تعریف روابط بین جداول. مثلا می‌شود توسط آن‌ها کلید خارجی را تعریف کرد و مواردی از این دست.

ViewModel هم باید Data Annotation مختص به خودش را داشته باشد. حداقل روی اعتبار سنجی سمت کلاینت می‌تونه تاثیرگذار باشه چون به صورت خودکار توسط MVC اعمال می‌شود.
‫۱۲ سال و ۲ ماه قبل، پنجشنبه ۱۹ مرداد ۱۳۹۱، ساعت ۱۷:۵۵
منظور از آن مطلب این بود که از ابزاری که در اختیار دارید درست استفاده کنید. اگر قرار است دو یا چند جستجو را انجام دهید، اینکارها بله باید با IQueryable داخل یک متد انجام شود، اما خروجی متد فقط باید لیست حاصل باشد؛ نه IQueryable ایی که انتهای آن باز است و سبب نشتی لایه سرویس شما در لایه‌های دیگر خواهد شد.