Criteria | GUIDs | Seq. GUIDs | BIGINT | INT |
Storage | 16 bytes | 16 bytes | 8 bytes | 4 bytes |
Insert/Update performance | Slowest | Comparable but the index keys are larger in size. For wider tables, this would be slower than Integer values. | Faster than sequential GUIDs | Fastest |
Hotspot contention | Very rare | Yes | Yes | Highest, due to smaller size of RIDs |
Fragmentation/Page Splits | High | Minimal | Minimal | Minimal |
JOIN Performance/SORT operations | Least performance (Rank 4 = Least performance) | Better than random GUIDs due lesser fragmentation (Rank: 3) | High performance (Rank: 2) | High Performance (Rank: 1) |
Logical reads | Rank 4=Highest | Rank 3 | Rank 2 | Rank 1=Least |
Merging data across servers | Beneficial | Beneficial | Difficult | Difficult |
Uniqueness | Rare chance of duplicates | Globally unique. Virtually no chance of collisions | Limited by range of BIGINT | Limited by range of INT |
اشتراکها
درک نقطه بحرانی CSS
The web is slow, yet there are a few simple strategies to make websites faster. One of them is inlining critical CSS into the of your pages, yet how exactly do you do it if your site contains hundreds of pages, or even worse, hundreds of different templates? You can’t do it manually. Dean Hume explains an easy way to get it done
نظرات مطالب
مروری بر کدهای کلاس SqlHelper
این سربار اینقدر نیست که اهمیتی داشته باشد. فقط قرار است یک کوئری LINQ به معادل SQL آن ترجمه شود. خیلی سریع است. همچنین امکان تهیه Compiled linq queries هم وجود دارد (^).
ضمن اینکه مثلا NHibernate قابلیتی دارد به نام second level cache که اساسا برای پروژههای وب طراحی شده. قابلیت کش در سطح کوئری یا اطلاعات پرکاربرد و عمومی سایت را به صورت خودکار دارد. در موردش قبلا مطلب نوشتم : (^). سطح اول کش آن هم پیاده سازی حرفهای همین باز نگه داشتن کانکشنی است که در کد SqlHelper بالا نویسنده موفق به پیاده سازی آن نشده، به علاوه کاهش رفت و آمدها به سرور: (^)
به علاوه NHibernate یک قابلیت دیگر هم دارد به نام ToFuture که میتونه چندین کوئری رو در طی یک رفت و برگشت برای شما انجام بده (^).
و ... خیلی از best practices دیگر هم در آن لحاظ شده. خلاصه اینکه تواناییهای بسیار ارزندهای رو با عدم استفاده از ORMs از دست خواهید داد. منجمله همان بحث کوئریهای پارامتری که عموما از نوشتن آن طفره میروند اما اینجا به صورت خودکار برای شما انجام میشود.
ضمن اینکه مثلا NHibernate قابلیتی دارد به نام second level cache که اساسا برای پروژههای وب طراحی شده. قابلیت کش در سطح کوئری یا اطلاعات پرکاربرد و عمومی سایت را به صورت خودکار دارد. در موردش قبلا مطلب نوشتم : (^). سطح اول کش آن هم پیاده سازی حرفهای همین باز نگه داشتن کانکشنی است که در کد SqlHelper بالا نویسنده موفق به پیاده سازی آن نشده، به علاوه کاهش رفت و آمدها به سرور: (^)
به علاوه NHibernate یک قابلیت دیگر هم دارد به نام ToFuture که میتونه چندین کوئری رو در طی یک رفت و برگشت برای شما انجام بده (^).
و ... خیلی از best practices دیگر هم در آن لحاظ شده. خلاصه اینکه تواناییهای بسیار ارزندهای رو با عدم استفاده از ORMs از دست خواهید داد. منجمله همان بحث کوئریهای پارامتری که عموما از نوشتن آن طفره میروند اما اینجا به صورت خودکار برای شما انجام میشود.
شیرپوینت قابلیت استفاده از دستورات LINQ را برای دسترسی به لیستهای خود میدهد . این قابلیت جایگزین خوبی برای استفاده سنتی از CAML queries می باشد. (Collaborative Application Markup Language (CAML برای تعریف کوئریها درون لیست دادهها استفاده میشود و بر مبنای XML میباشد بیشتر
برای این منظور میتوان از دستور زیر استفاده کرد تا Sharepoint Foundation برای شما کلاسی بسازد تا بتوانید به تمام اعضای لیست دادههای Sharepoint دسترسی داشته باشید
لازم است بدانید که برای ساخت این کلاس از LINQ Provider Code Generator خود شیرپوینت به نام SPMETAL.EXE که در پوشه bin در زیر مجموعه 14 قرار دارد استفاده میشود .
spmetal.exe /web:http://DOMAIN/code:c:\EntityModuleSharePoint.cs /user:DOMAIN\USERNAME/password:********** /namespace:EntityModuleSharePoint
توجه داشته باشید که پسوند فایلی که نوشته اید مشخص میکند که دستورات بر مبنای چه زبانی ساخته شوند (قسمت قرمز رنگ بعد از سوییچ code ) مثلا با تغیر پسوند به VB فایل ایجاد شده با دستورات vb قابل استفاده است
برای مشاهده یک مثال از این مورد ، به اینجا مراجعه نمایید
اشتراکها
سری آموزشی Roslyn
اشتراکها
ویدیوهای Microsoft Connect(); 2018
Today, we’re announcing .NET Core 3.0 Release Candidate 1. Just like with Preview 9, we’ve focused on polishing .NET Core 3.0 for a final release. We are now getting very, very close. We intend to release the final version on September 23 at .NET Conf.
Here’s what’s new in this release:
- Azure Active Directory authentication with Microsoft.Identity.Web
- CSS isolation for Blazor components
- Lazy loading in Blazor WebAssembly
- Updated Blazor WebAssembly globalization support
- New InputRadio Blazor component
- Set UI focus in Blazor apps
- Influencing the HTML head in Blazor apps
- IAsyncDisposable for Blazor components
- Control Blazor component instantiation
- Protected browser storage
- Model binding and validation with C# 9 record types
- Improvements to DynamicRouteValueTransformer
- Auto refresh with dotnet watch
- Console Logger Formatter
- JSON Console Logger
اشتراکها