اشتراک‌ها
Entity Framework 7 Preview 5 منتشر شد

Entity Framework 7 (EF7) Preview 5 has shipped with support for Table-per-Concrete type (TPC) mapping. This blog post will focus on TPC. There are several other enhancements included in Preview 5, such as:

Read the full list of EF7 Preview 5 enhancements. 

Entity Framework 7 Preview 5 منتشر شد
اشتراک‌ها
DataMasker پروژه‌ای برای درهم سازی خروجی اطلاعات Sql Server
A free data masking and/or anonymizer library for Sql Server written in .NET If you've ever needed to pull down databases from a live environment to stage or even dev you'll need to think about masking any personal information. There are options out there paid and free, however the free ones I've found do not provide genuine data and the paid options are too pricey when it's only a few tables.
DataMasker پروژه‌ای برای درهم سازی خروجی اطلاعات Sql Server
اشتراک‌ها
محدودیت های انواع داده جداول memory-optimized در SQL 2016
محدودیت‌های SQL Server 2016 در جداول memory-optimized  بسیار کمتر شده است ولی همچنان موارد زیر در مورد نوع داده‌های قابل استفاده در این نوع جداول وجود دارد که قابل ذکر است:
  • bit
  • All integer types: tinyint, smallint, int, bigint
  • All money types: money, smallmoney
  • All floating types: float, real
  • date/time types: datetime, smalldatetime, datetime2, date, time
  • numeric and decimal types
  • String types: char(n), varchar(n), nchar(n), nvarchar(n), sysname, varchar(MAX), nvarchar(MAX)
  • Binary types: binary(n), varbinary(n), varbinary(MAX)
  • Uniqueidentifier
توجه فرمایید که انواع داده text, ntext ،image  پشتیبانی نمی‌شوند و  داده‌های XML و CLR در جداول memory-optimized  قابل استفاده نیستند.
محدودیت های انواع داده جداول memory-optimized در SQL 2016
نظرات مطالب
کار با Docker بر روی ویندوز - قسمت ششم - کار با بانک‌های اطلاعاتی درون Containerها
سلام؛ یک برنامه ساده restful api دارم که وقتی اجرا میشه کاربر باید بتونه فیلدهایی رو پر کنه و ذخیره بشه. و بتونه مجدد اون‌ها رو ببینه.
یعنی منظورم اینه که با دیتابیس در تعامله. این برنامه به صورت asp.net mvc هست (دات کور) نیست و بر اساس توضیحات مایکروسافت برای ساخت ایمیجش باید آدرس ایمیج ویندوز سرور رو در Dockerfile قرار بدم که حدود ۳ گیگ و نیم هست. حالا سوالم این هست این ایمیج ویندوز سرور با این حجم٬ خودش sql server داره دیگه؟ یعنی برنامه من بعد از ایمیج شدن وقتی داخل یک container بالا میاد٬ چطور باید به دیتابیس کانکت بشه؟  با آموزش شما متوجه شدم چطور یک باید دیتابیس در یک container دیگه بالا آورد اما در مورد برنامه خودم نمیتونم درک کنم چطور باید کار کنه. نمیشه هم برنامم هم دیتابیسش در یک container‌باشند و کسی که ایمیج برنامم رو بالا میاره بدون نیاز به کار خاصی برنامه رو بتونه صحیح ببینه و کار کنه؟
نظرات مطالب
پیاده سازی JSON Web Token با ASP.NET Web API 2.x
- اگر فکر می‌کنید که 2 بار چک کردن به ازای هر درخواست زیاد هست، احتمالا با ASP.NET Identity کار نکردید! در ASP.NET Identity اگر بررسی اعتبار کاربر را به ازای هر درخواست رسیده فعال کنید (بجای مقدار پیش‌فرض چند دقیقه‌ای آن، این مقدار را صفر کنید تا به ازای هر درخواست انجام شود)، همین یک مورد 5 کوئری را شامل می‌شود. برای نمونه در ASP.NET Core 2.X این بررسی‌ها شامل 5 کوئری به جداول AspNetUser, AspNetUserClaims, AspNetUserRoles, AspNetRoles, AspNetRoleClaims هستند.
- 2 بار بررسی بانک اطلاعاتی برای بانک‌های اطلاعاتی امروزی هیچ سرباری ندارد و ضمن اینکه خودشان مباحث کش کردن اطلاعات ویژه‌ای را هم برای کوئری‌های پر استفاده دارند؛ مانند buffer cache در SQL Server که تا حد مصرف حافظه‌ی کل سرور هم می‌تواند پیش رود.
- استفاده از متغیرهای استاتیک و حافظه‌ی سرور برای کش کردن، مقیاس پذیر نیست. در این موارد روش توصیه شده، استفاده از بانک اطلاعاتی Key/Value فوق سریع Redis هست. فقط مشکل تمام کش‌ها، هماهنگ سازی اطلاعات آن‌ها با بانک اطلاعاتی اصلی است که باید مدنظر باشند.
نظرات مطالب
بررسی فرمت کوکی‌های ASP.NET Identity
ببینید ، فرض کنید من پروژه آقای نصیری که در اینجا هست رو اجرا می‌کنم ( آخرین نسخه که موارد بالا رو هم داره ) ، و با نام کاربری و رمز عبوری که در seed قرار دادن وارد میشم. خب تا بدین جای کار مشکلی وجود نداره ، حالا من به صورت فیزیکی و توسط sql server تنها یوزری که وجود داره و من باهاش لاگین کردم رو حذف می‌کنم. ولی وقتی دوباره صفحه رو رفرش می‌کنم و به صفحاتی که نیاز به مجوز دارن می‌رم ، اصلا اتفاقی رخ نمیده و انگار واقعا اون کاربر وجود داره در صورتی که وقتی روی لینک Hello admin@example.com!  کلیک می‌کنم ، خطای زیر رخ میده : 

UserId not found.

به عبارتی کاربر وجود خارجی نداره ولی مجوز رفتن به تمامی بخش هایی که مجوز نیاز دارن رو داره. برای این مشکل باید چیکار کرد ؟ الان من validateInterval رو در پروزه آقای نصیری هم 0 کردم ولی باز کاربری که حذف شده داره تو صفحاتی که نیاز به مجوز دارن حرکت میکنه
نظرات مطالب
انجام کارهای زمانبندی شده در برنامه‌های ASP.NET توسط DNT Scheduler
- «پیش آمدن همزمانی در اجرای وظایف»
خاصیت Order را برای وظایفی که قرار است در یک زمان مشخص اجرا شوند، مقدار دهی کنید. 1و 2 و 3 و الی آخر.
- «حتی می‌توان از Scheduler خود ویندوز و یا Jon‌های SQL Server هم بهره برد».
بله. به شرطی‌که سرور در اختیار شما باشد و دسترسی کافی برای انجام اینکار را داشته باشید. البته در این حالت خاص، مدیریت آن یکپارچه با یک برنامه‌ی وب نیست.
در سرورهای اشتراکی روش ارائه شده در این مطلب بدون نیاز به سطح دسترسی خاصی کار می‌کند. ضمنا برای ASP.NET نوشته شده است و این قابلیت را دارد که به شما اعلام کند مثلا تا 30 ثانیه دیگر برنامه از سرور unload می‌شود؛ توسط خاصیت IsShuttingDown. همچنین حق تقدم ترد آن طوری تنظیم شده که سبب اختلال در عملیات و عملکرد متداول سایت نشود.
- «آیا توصیه شده برای استفاده در پروژه‌های بزرگ هست؟»
یک به اشتراک گذاری بود از قسمتی از کدهای زیر ساخت سایت جاری که هم اکنون مورد استفاده است (مقدمه بحث).
نظرات مطالب
نحوه اضافه کردن Auto-Complete به جستجوی لوسین در ASP.NET MVC و Web forms
- لوسین مستقل است از بانک اطلاعاتی. همچنین یکبار باید این ایندکس را تهیه کنید. اگر تعداد رکوردهای شما بالا است، فقط همان بار اول است که کار تهیه زمانبر خواهد بود. برای دفعات بعد در حد اضافه کردن چند سند لوسین به آن یا به روز رسانی و حذف است و کار دیگری ندارد.
- پس از تهیه ایندکس، جستجوی لوسین کاری به بانک اطلاعاتی شما ندارد. بر روی ایندکس خودش انجام می‌شود و نیازی به جستجوی مجدد در بانک اطلاعاتی شما نیست. یک سیستم مستقل است.
این روش متداول کار با لوسین است و حالت دیگری هم ندارد. این مستقل بودن هم یک مزیت است. برای مثال SQL Server CE یا خیلی از بانک‌های اطلاعاتی دیگر Full Text Search توکار ندارند. اینجا لوسین خوب جواب می‌ده.
ضمن اینکه من در یک دمو استفاده از لوسین برای ایندکس کردن کل اطلاعات ویکی‌پدیا رو دیدم. تهیه ایندکس آن یک روز کار برده بوده (با توجه به حجم اطلاعات بالای ویکی پدیا)، اما جستجوی آن فوق العاده سریع و با کیفیت بود. این ویدیو رو در اینجا می‌تونید مشاهده کنید:
نظرات مطالب
اعمال صفحه بندی به کمک OFFSET و FETCH در SQL Server 2012
سلام  
من منظور سئوال شما رو،بدرستی متوجه نشدم، به هرحال اگر بخواهید با کد نویسی سمت سرور، Script خود را Generate نمایید، اینکار، بستگی به نگرش کدنویسی تان و Interface ی که در اختیار کاربر قرار می‌دهید، دارد.
اگر بخواهید در SQL Server اینکار را انجام دهید، با استفاده از Case ، در قسمت Order By می‌توانید اینکار را انجام دهید. به عنوان مثال:
DECLARE @Varsort varchar(50)
DECLARE @Varsort1 varchar(50)

SET  @Varsort=''
SET  @Varsort1='BusinessEntityID'

SELECT BusinessEntityID, FirstName, LastName
FROM Testoffset
ORDER BY case when  @Varsort='Firstname'then  Firstname End ASC,
         case when  @Varsort1= 'BusinessEntityID'then  BusinessEntityID End ASC
OFFSET 3 ROWS
FETCH First 3 ROWS only
امیدوارم پاسخ تان را گرفته باشید.
نظرات مطالب
EF Code First #1
در مورد کانکشن استرینگ، ایجاد بانک اطلاعاتی و غیره در قسمت‌های بعدی بیشتر توضیح داده شده. اگر تعاریف رشته اتصالی شما به این نحو باشد:
<connectionStrings>
    <clear/>
    <add
       name="ProductContext"
       connectionString="Data Source=(local);Initial Catalog=testdb2012;Integrated Security = true"
       providerName="System.Data.SqlClient"
      />
</connectionStrings>
به این معنا است که کلاس Context شما به نحو زیر تعریف شده است:
public class ProductContext : DbContext
بنابراین جزو قرار دادهای توکار EF Code first است که name ذکر شده در قسمت تعریف رشته اتصالی در فایل کانفیگ، با نام کلاس مشتق شده از DbContext یکی باشد.
با این تعاریف باید برنامه کار کند (البته بر اساس نام کلاس‌های برنامه شما).
ضمنا login failed به این معنا است که رشته اتصالی اشتباه تعریف شده است. رشته فوق به یک بانک اطلاعاتی sql server و به وهله پیش فرض آن اشاره می‌کند و از نوع windows authentication است. این موارد را باید بر اساس تنظیمات سیستم خودتون تغییر بدید.