- و فقط در نگارشهای SQL Server 2014 Enterprise, Developer, and Evaluation editions پشتیبانی میشود. برای مثال نگارش Standard این قابلیت را ندارد.
- هنگام نصب هم باید گزینهی «Database Engine Services -> install support for In-Memory OLTP engine» انتخاب شده باشد.
مقدمه:
شروع را با نصب ویژوال استودیوی نسخه رایگان 2013 برای وب و یا نسخهی 2013 آغاز میکنیم. برای راهنمایی استفاده ازDropbox, GitHub, Linkedin, Instagram, buffer salesforce STEAM, Stack Exchange, Tripit, twitch, Twitter, Yahoo و بیشتر اینجا کلیک کنید.توجه:
برای استفاده از Google OAuth 2 و دیباگ به صورت لوکال بدون اخطار SSL، شما میبایستی نسخهی ویژوال استودیو 2013 آپدیت 3 و یا بالاتر را نصب کرده باشید.ساخت اولین پروژه:
ویژوال استودیو را اجرا نماید. در سمت چپ بر روی آیکن Web کلیک کنید تا آیتم ASP.NET Web Application در دات نت 4.5.1 نمایش داده شود. یک نام را برای پروژه انتخاب نموده و OK را انتخاب نماید.در دیالوگ بعدی آیتم MVC را انتخاب و اطمینان داشته باشید Individual User Accounts که با انتخاب Change Authentication به صورت دیالوگ برای شما نمایش داده میشود، انتخاب گردیده و در نهایت بر روی OK کلیک کنید.
فعال نمودن حساب کاربری گوگل و اعمال تنظیمات اولیه:
در این بخش در صورتیکه حساب کاربری گوگل ندارید، وارد سایت گوگل شده و یک حساب کاربری را ایجاد نماید. در غیر اینصورت اینجا کلیک کنید تا وارد بخش Google Developers Console شوید.در بخش منو بر روی ایجاد پروژه کلیک کنید تا پروژهای جدید ایجاد گردد.
در دیالوگ باز شده نام پروژه خودتان را وارد کنید و دکمهی Create را زده تا عملیات ایجاد پروژه انجام شود. در صورتیکه با موفقیت پیش رفته باشید، این صفحه برای شما بارگزاری میگردد.
فعال سازی Google+API
در سمت چپ تصویر بالا آیتمی با نام APIs & auth خواهید دید که بعد از کلیک بر روی آن، زیر مجموعهای برای این آیتم فعال میگردد که میبایستی بر روی APIs کلیک و در این قسمت به جستجوی آیتمی با نام Google+ API پرداخته و در نهایت این آیتم را برای پروژه فعال سازید.
ایجاد یک Client ID :
در بخش Credentials بر روی دکمهی Create new Client ID کلیک نماید.
در دیالوگ باز شده از شما درخواست میشود تا نوع اپلیکشن را انتخاب کنید که در اینجا میبایستی آیتم اول (Web application ) را برای گام بعدی انتخاب کنید و با کلیک بر روی Configure consent screen به صفحهی Consent screen هدایت خواهید شد. فیلدهای مربوطه را به درستی پر کنید (این بخش به عنوان توضیحات مجوز ورود بین سایت شما و گوگل است).
در نهایت بعد از کلیک بر روی Save به صفحهی Client ID بازگشت داده خواهید شد که در این صفحه با این دیالوگ برخورد خواهید کرد.
پروژهی MVC خودتان را اجرا و لینک و پورت مربوطه را کپی کنید ( http://localhost:5063 ).
در Authorized JavaScript Origins لینک را کپی نماید و در بخش Authorized redirect URls لینک را مجدد کپی نماید. با این تفاوت که بعد از پورت signin-google را هم قرار دهید. ( http://localhost:5063/signin-google )
حال بر روی دکمهی Create Client ID کلیک کنید.
پیکربندی فایل Startup.Auth :
فایل web.config را که در ریشهی پروژه قرار دارد باز کنید. در داخل تگ appSettings کد زیر را کپی کنید. توجه شود بجای دو مقدار value، مقداری را که گوگل برای شما ثبت کرده است، وارد کنید.
<appSettings> <!--Google--> <add key="GoogleClientId" value="555533955993-fgk9d4a9999ehvfpqrukjl7r0a4r5tus.apps.googleusercontent.com" /> <add key="GoogleClientSecretId" value="QGEF4zY4GEwQNXe8ETwnVHfz" /> </appSettings>
فایل Startup.Auth را باز کنید و دو پراپرتی و یک سازندهی بدون ورودی را تعریف نماید. توضیحات بیشتر به صورت کامنت در کد زیر قرار گرفته است.
//فضا نامهای استفاده شده در این کلاس using System; using System.Configuration; using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.Owin; using Microsoft.Owin; using Microsoft.Owin.Security.Cookies; using Microsoft.Owin.Security.Google; using Owin; using Login.Models; //فضا نام جاری پروژه namespace Login { /// <summary> /// در ریشه سایت فایلی با نام استارت آپ که کلاسی هم نام این کلاس با یک تابع و یک ورودی از نوع اینترفیس تعریف شده است ///که این دو کلاس به صورت پارشال مهروموم شده اند /// </summary> public partial class Startup { /// <summary> /// این پراپرتی مقدار کلایت ای دی رو از وب دات کانفیگ در سازنده بدون ورودی در خودش ذخیره میکند /// </summary> public string GoogleClientId { get; set; } /// <summary> /// این پراپرتی مقدار کلایت سیکرت ای دی رو از وب دات کانفیگ در سازنده بدون ورودی در خودش ذخیره میکند /// </summary> public string GoogleClientSecretId { get; set; } /// <summary> /// سازنده بدون ورودی /// به ازای هر بار نمونه سازی از کلاس، سازندههای بدون ورودی کلاس هر بار اجرا خواهند شد، توجه شود که میتوان از /// سازندههای استاتیک هم استفاده کرد، این سازنده فقط یک بار، در صورتی که از کلاس نمونه سازی شود ایجاد میگردد /// </summary> public Startup() { //Get Client ID from Web.Config GoogleClientId = ConfigurationManager.AppSettings["GoogleClientId"]; //Get Client Secret ID from Web.Config GoogleClientSecretId = ConfigurationManager.AppSettings["GoogleClientSecretId"]; } ///// <summary> ///// سازنده استاتیک کلاس ///// </summary> //static Startup() //{ //در صورتی که از این سازنده استفاده شود میبایست پراپرتیهای تعریف شده در سطح کلاس به صورت استاتیک تعریف گردد تا //بتوان در این سازنده سطح دسترسی گرفت // GoogleClientId = ConfigurationManager.AppSettings["GoogleClientId"]; // GoogleClientSecretId = ConfigurationManager.AppSettings["GoogleClientSecretId"]; //} // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864 public void ConfigureAuth(IAppBuilder app) { // Configure the db context, user manager and signin manager to use a single instance per request app.CreatePerOwinContext(ApplicationDbContext.Create); app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create); // Enable the application to use a cookie to store information for the signed in user // and to use a cookie to temporarily store information about a user logging in with a third party login provider // Configure the sign in cookie app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { // Enables the application to validate the security stamp when the user logs in. // This is a security feature which is used when you change a password or add an external login to your account. OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) } }); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process. app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); // Enables the application to remember the second login verification factor such as phone or email. // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from. // This is similar to the RememberMe option when you log in. app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); //Initialize UseGoogleAuthentication app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() { ClientId = GoogleClientId, ClientSecret = GoogleClientSecretId }); } } }
حال پروژه را اجرا کرده و به صفحهی ورود کاربر رجوع نمائید. همانگونه که در تصوبر زیر مشاهده میکنید، دکمهای با مقدار نمایشی گوگل در سمت راست، در بخش Use another service to log in اضافه شده است که بعد از کلیک بر روی آن، به صفحهی هویت سنجی گوگل ریداریکت میشوید.
در اینجا از کاربر سوال پرسیده میشود که آیا به سایت پذیرنده اجازه داده شود که اطلاعات و ایمیل شما ارسال گردند که بعد از انتخاب دکمهی Accept، لاگین انجام گرفته و اطلاعات ارسال میگردد.
توجه: رمز عبور شما به هیچ عنوان برای سایت پذیرنده ارسال نمیگردد.
لاگین با موفقیت انجام شد.
در مطلب بعدی سایر سایتهای اجتماعی قرار خواهند گرفت.
کتابخانه Hangfire
An easy way to perform background job processing in your .NET and .NET Core applications. No Windows Service or separate process required. CPU and I/O intensive, long-running and short-running jobs are supported. Backed by Redis, SQL Server, SQL Azure and MSMQ.
PM> Install-Package Hangfire
After installation, update your existing OWIN Startup file with the following lines of code. If you do not have this class in your project or don't know what is it, please read the Quick start guide to learn about how to install Hangfire.
public void Configuration(IAppBuilder app)
{
GlobalConfiguration.Configuration.UseSqlServerStorage("<connection string or its name>");
app.UseHangfireServer();
app.UseHangfireDashboard();
}
رفتار ایندکسهای یکتا در SQL Server
- وقتی روی یک ستون متنی NVARCHAR ایندکس یکتا میگذارید، مقادیر یکسان با حروف بزرگ و کوچک برای SQL یکسان هستند و امکان ثبت را به شما نمیدهد؛ یعنی a=A
- همینطور SQL بین دو مقدار که فقط با فاصله در انتها متفاوت باشند فرقی قائل نمیشود؛ یعنی ' a'='a'
Microsoft's release notes highlights for Preview 3 include:
- Visual Studio now offers .NET Framework 4.7.2 development tools to supported platforms with 4.7.2 runtime included.
- We improved performance during project unload/reload and branch switching.
- With added support for Azure Functions, you now have a new target host in the Configure Continuous Delivery to Azure dialog.
- Git and TFS status now updates properly for external file changes in .NET Core projects.
- We added new productivity features, such as code cleanup, invert-if refactoring, Go to Enclosing Block, Multi-Caret support, and new keyboard profiles.
- C++ enhancements include Template IntelliSense, convert macro to constexpr lightbulbs, and experimental in-editor code analysis squiggles.
- You can now use cross-language debugging with Python 3.7.0rc1.
- Performance Profiling now offers the ability to pause/resume data collection and adds a new .NET Object Allocation Tracking tool.
- We included improvements for Android incremental builds in the Xamarinsupport for Xcode 9.4.
داتنت ۷ ریلیز شد!
.NET 7 brings your apps increased performance and new features for C# 11/F# 7, .NET MAUI, ASP.NET Core/Blazor, Web APIs, WinForms, WPF and more. With .NET 7, you can also easily containerize your .NET 7 projects, set up CI/CD workflows in GitHub actions, and achieve cloud-native observability.
Thanks to the open-source .NET community for your numerous contributions that helped shape this .NET 7 release. 28k contributions made by over 8900 contributors throughout the .NET 7 release!
.NET remains one of the fastest, most loved, and trusted platforms with an expansive .NET package ecosystem that includes over 330,000 packages.
ReadyRoll محصول جدید شرکت Red-Gate
Develop and deploy databases in Visual Studio with migration scripts.
Want to work on databases in Visual Studio alongside your application? Feeling the pain of managing and deploying database changes manually? Then ReadyRoll's the tool for you.
It generates numerically ordered SQL migration scripts that sit inside your project and take your schema from one version to the next.
You can add them to version control, use them to build and release, and automate database and application deployments, all in one process.