- We added support to change installation locations.
- You can Save All your pending changes before you start your update.
- The update dialog provides you even more details about your update during installation.
- C# 7.3 is included in Visual Studio version 15.7.
- We improved solution load time for C# and VB projects.
- We made numerous updates to F# and its tools, with a focus on performance.
- We reduced the time to enable IntelliSense for large .NET Core projects by 25%.
- We made Quick Info improvements and new .NET refactorings like convert
for
-to-foreach
and make private fieldsreadonly
. - We added the ability to publish ASP.NET Core applications to App Service Linux without containers.
- Live Unit Testing works with embedded pdbs and supports projects that use reference assemblies.
- The Test Explorer has more responsive icons during test runs.
- C++ developers can use CodeLens for unit testing.
- We added new rules enforcing items from the C++ Core Guidelines.
- Debugging large solutions with /Debug:fastlink PDBs is more robust.
- CMake integration supports CMake 3.11 and static analysis.
- Python projects support type hints in IntelliSense, and a Run MyPy command has been added to look for typing errors in your code.
- Conda environments are supported in Python projects.
- We added a next version of our Python debugger based on the popular open source pydevd debugger.
- TypeScript 2.8 is included in Visual Studio version 15.7.
- We improved Kestrel HTTPs support during debugging.
- We added support for JavaScript debugging with Microsoft Edge.
- The Debugger supports VSTS and GitHub Authentication for Source Link.
- IntelliTrace’s step-back debugging feature is supported for debugging .NET Core projects.
- We added IntelliTrace support for taking snapshots on exceptions.
- We removed the blocking modal dialog from branch checkouts in Git when a solution or project reload is not required.
- There is an option to choose between OpenSSL and SChannel in Git.
- You can create and associate Azure Key Vaults from within the Visual Studio IDE.
- Visual Studio Tools for Xamarin can automatically install missing Android API levels required by Xamarin.Android projects.
- The Xamarin.Forms XAML editor provides IntelliSense and quick fixes for conditional XAML.
- We added support for Azure, UWP, and additional project types in Visual Studio Build Tools.
- You can create build servers without installing all of Visual Studio.
- The Windows 10 April 2018 Update SDK - Build 17134 is the default required SDK for the Universal Windows Platform development workload.
- We added support for Visual State Management for all UWP apps and more.
- We enabled automatic updates for sideloaded APPX packages.
- You have new tools for migrating to NuGet PackageReference.
- We added support for NuGet package signatures.
- We added Service Fabric Tooling for the 6.2 Service Fabric release.
- We updated Entity Framework Tools to work with the EF 6.2 runtime and to improve reverse engineering of existing databases.
تایپوگرافی مقدماتی بوت استرپ 4
شیوهنامههای همراه با بوت استرپ، رفتار و تنظیمات پیشفرض مرورگر را بازنویسی میکنند. این بازنویسی با فایل node_modules\bootstrap\scss\_reboot.scss شروع میشود. اگر مجموعهی بوت استرپ را توسط روش معرفی شدهی در مطلب «روشهای مختلف دریافت و نصب بوت استرپ 4» دریافت کرده باشید، کدهای کامل SASS آن، در پوشهی scss این مجموعه، موجود هستند که یکی از آنها فایل reboot است. کار آن نرمال سازی شیوهنامهها، به نحوی است که در مرورگرها مختلف و همچنین وسایل نمایشی متفاوت، یکسان به نظر برسند:
- برای مثال در این فایل از روش اندازه گیری rem استفاده شدهاست تا مدیریت اندازههای آن در سکوهای کاری مختلف قابل کنترل شود.
- در اینجا از margin-top به طور کامل صرفنظر شدهاست، تا بتوان اندازهگیری فواصل بین عناصر را بهتر محاسبه کرد. بوت استرپ 4 تنها یک margin را در پایین تمام عناصر صفحه، تنظیم میکند. بنابراین آگاهی از وجود این پیشفرض، تنظیم فواصل بین عناصر را نیز سادهتر میکند.
- در این فایل در همهجا از خاصیت inherit استفاده شدهاست تا امکان بازنویسی شیوهنامههای آن توسط custom styles ما سادهتر شود.
- پیشفرض دیگری که در این نگارش از بوت استرپ تنظیم شدهاست، border-box میباشد. به این ترتیب اندازه گیری عرض عناصر سادهتر میشوند. برای مثال اگر عرض یک div را مساوی 200px قرار دهید، یک padding پیشفرض نیز برای آن درنظر گرفته شدهاست و padding سفارشی تنظیم شدهی برای آن بیاثر خواهد بود.
- در این نگارش، فونت پیشفرض صفحه، به فونت پیشفرض سیستم تنظیم شدهاست و نه فونت از پیش تعیین شدهی خاصی. از این جهت که این قلمهای سیستمی، دارای ویژگیهای خاصی هستند که آنها را برای سکوهای کاری مختلف، منحصربفرد میکنند.
مثال: نمایش تاثیر بوت استرپ 4 بر روی تایپوگرافی پیشفرض مرورگر
<body> <div class="container"> <section class="content" id="mission"> <h1>Our Commitment <small>to you</small></h1> <p>Wisdom Pet Medicine strives to blend the best in traditional and <em>alternative medicine</em> in the <strong>diagnosis and treatment</strong> of companion animals including dogs, cats, birds, reptiles, rodents, and fish. We apply the wisdom garnered in the <mark>centuries old tradition</mark> of veterinary medicine, to find the safest treatments and cures.</p> <p>We strive to be your pet's medical <del>staff</del> experts from youth through the senior years. <small>We build preventative health care plans for each and every one of our patients, based on breed, age, and sex, so that your pet receives the most appropriate care at crucial milestones.</small> We want to give your pet a long and healthy life.</p> </section> <section class="content" id="services"> <h2>Exotic Pets</h2> <p>We offer <strong>specialized</strong> care for <em>reptiles, rodents, birds,</em> and other exotic pets.</p> <h3>Grooming</h3> <p>Our therapeutic <span>grooming</span> treatments help battle fleas, allergic dermatitis, and other challenging skin conditions.</p> <h4>General Health</h4> <p>Wellness and senior exams, ultrasound, x-ray, and dental cleanings are just a few of our general health services.</p> <h5>Nutrition</h5> <p>Let our nutrition experts review your pet's diet and prescribe a custom nutrition plan for optimum health and disease prevention.</p> <h6>Pest Control</h6> <p>We offer the latest advances in safe and effective prevention and treatment of fleas, ticks, worms, heart worm, and other parasites.</p> <h2>Vaccinations</h2> <p>Our veterinarians are experienced in modern vaccination protocols that prevent many of the deadliest diseases in pets.</p> </section> </div> </body>
با اعمال بوت استرپ
بدون اعمال بوت استرپ
در اینجا دو تصویر راملاحظه میکنید؛ یکی با اعمال bootstrap.min.css به صفحهاست و دیگری با حذف آن از صفحه. به این ترتیب مشاهده میکنید که صرفا اعمال بوت استرپ به یک صفحهی متداول، کیفیت نمایش آنرا با بازنویسی شیوهنامهی پیشفرض مرورگر، به نحو قابل ملاحظهای بهبود بخشیدهاست و آنرا زیباتر کردهاست.
در اینجا تنها المان بوت استرپی که به صفحه اضافه شدهاست و جزو استانداردهای HTML نیست، یک div با کلاس container است:
<body> <div class="container">
در این مثال تاثیر بوت استرپ را بر روی شیوهنامههای پیشفرض خصوصا h1 تا h6، مشاهده میکنید.
روش دیگر تعریف headings در اینجا، استفاده از کلاسهایی با نامهای مشابه است:
<div class="h1">Test div class H1</div>
<div class="display-1">Test div class display-1</div>
همچنین اگر نیاز به بزرگتر نمایش دادن متن قسمت ابتدایی صفحه وجود داشت، میتوان از کلاس Lead استفاده کرد:
<p class="lead">Testing a lead class</p>
کلاسهای کمکی کار با متون در بوت استرپ 4
بوت استرپ 4 به همراه تعدادی کلاس کمکی کار با متون است که نیازهای متداول تایپوگرافی را برآورده میکنند:
1) کلاسهای کمکی محل قرارگیری متون
- کلاس text-justify کار کشیدن و متناسب کردن یک پاراگراف را با گوشههای سمت چپ و راست صفحه انجام میدهد.
- کلاس text-nowrap از شکسته شدن متن به چندین سطر جلوگیری میکند. برای مثال میتواند برای نمایش کدها مناسب باشد.
- کلاس متغیر text-xx-pos برای تعیین محل قرارگیری متن کاربرد دارد:
در اینجا ذکر xx اختیاری است و میتواند sm، برای اندازههای صفحهی بیشتر از 576px و یا md، برای اندازههای صفحهی بیشتر از 768px و یا lg، برای اندازههای صفحهی بیشتر از 992px و یا xl، برای اندازههای صفحهی بیشتر از 1200px باشد. این اندازههای یاد شده را در ادامه بیشتر مشاهده خواهید کرد.
همچنین pos میتواند left ،center و یا right باشد.
برای مثال کلاس text-sm-center به این معنا است که متن مدنظر در break-point ایی به نام sm، یعنی با اندازهی صفحهی بیشتر از 576px، در وسط صفحه نمایش داده خواهد شد.
2) کلاسهای نمایش upper-case و lower-case حروف
- کلاس text-lowercase کار نمایش lower-case کل یک پاراگراف اعمالی را انجام میدهد.
- کلاس text-uppercase کار نمایش upper-case کل یک پاراگراف اعمالی را انجام میدهد.
- کلاس text-capitalize، اولین حرف هر واژه را به صورت بزرگ نمایش میدهد.
3) کلاسهای شیوهی نمایش متون
کلاس font-weight-bold، کلاس font-weight-normal و کلاس font-italic نمایش ضخیم، عادی و یا italic متن را سبب میشوند.
مثال: بررسی تاثیر کلاسهای کمکی کار با متون در بوت استرپ 4
<body> <div class="container"> <section class="content" id="mission"> <h1 class="text-center text-sm-right text-md-left text-uppercase">Our Commitment</h1> <p class="lead text-justify">Wisdom Pet Medicine strives to blend the best in traditional and <em>alternative medicine</em> in the <strong>diagnosis and treatment</strong> of companion animals including dogs, cats, birds, reptiles, rodents, and fish. We apply the wisdom garnered in the <mark>centuries old tradition</mark> of veterinary medicine, to find the safest treatments and cures.</p> <p class="text-nowrap text-capitalize">We strive to be your pet's medical <del>staff</del> experts from youth through the senior years. <small>We build preventative health care plans for each and every one of our patients, based on breed, age, and sex, so that your pet receives the most appropriate care at crucial milestones.</small> We want to give your pet a long and healthy life.</p> </section> <section class="content" id="services"> <div class="display-4">Exotic Pets</div> <p>We <span class="font-weight-bold">offer</span> <strong class="font-weight-normal">specialized</strong> care for <em>reptiles, rodents, birds,</em> and other exotic pets.</p> <h3 class="text-left text-md-center text-sm-right">Grooming</h3> <p>Our therapeutic <span>grooming</span> treatments help battle fleas, allergic dermatitis, and other challenging skin conditions.</p> <h4>General Health</h4> <p>Wellness and senior exams, ultrasound, x-ray, and dental cleanings are just a few of our general health services.</p> <h5>Nutrition</h5> <p>Let our nutrition experts review your pet's diet and prescribe a custom nutrition plan for optimum health and disease prevention.</p> <h6>Pest Control</h6> <p>We offer the latest advances in safe and effective prevention and treatment of fleas, ticks, worms, heart worm, and other parasites.</p> <h2>Vaccinations</h2> <p>Our veterinarians are experienced in modern vaccination protocols that prevent many of the deadliest diseases in pets.</p> </section> </div> </body>
در اینجا اگر کلاس text-right را به heading اضافه کنیم:
<h1 class="text-right">Our Commitment <small>to you</small></h1>
و یا میتوان این کلاسها را با هم ترکیب کرد:
<h1 class="text-center text-sm-right">Our Commitment <small>to you</small></h1>
- متن h1 در حالت عادی در وسط صفحه نمایش داده شود.
- اما متن مدنظر در break-point ایی به نام sm، یعنی با اندازهی صفحهی بیشتر از 576px، در سمت راست صفحه نمایش داده خواهد شد.
این اعداد توسط افزونهی ViewPort نمایش داده شدهاند.
همچنین تاثیر text-justify را نیز به اولین پاراگراف
<p class="lead text-justify">
و یا اگر text-nowrap را به پاراگرافی اعمال کنیم:
<p class="text-nowrap">
سبب نمایش یک سطری آن خواهد شد که در اینجا با پدید آمدن یک اسکرول بار افقی، قابل ملاحظهاست.
کلاسهای کمکی کار با لیستها و نقل قولها در بوت استرپ 4
بوت استرپ 4 به همراه کلاسهایی کمکی برای کار با لیستها و نقل قولها است؛ مانند:
- کلاس list-unstyled سبب حذف bullets از یک لیست میشود.
- برای ایجاد لیستهای Inline میتوان از کلاس list-inline بر روی المان UL و سپس list-inline-item بر روی هر LI آن، کمک گرفت.
<body> <div class="container"> <section class="content" id="services"> <h2>Exotic Pets</h2> <p>We offer <strong>specialized</strong> care for <em>reptiles, rodents, birds,</em> and other exotic pets.</p> <ul class="list-unstyled"> <li>Grooming</li> <li>General Health</li> <li>Nutrition</li> <li>Pest Control</li> <li>Vaccinations</li> </ul> <ul class="list-inline"> <li class="list-inline-item">Grooming</li> <li class="list-inline-item">General Health</li> <li class="list-inline-item">Nutrition</li> <li class="list-inline-item">Pest Control</li> <li class="list-inline-item">Vaccinations</li> </ul> </section> </div> </body>
در حالت لیست inline، آیتمهای لیست از چپ به راست در یک سطر نمایش داده میشوند. برای مثال میتواند برای نمایش breadcrumbs در یک سایت مناسب باشد.
همچنین برای نمایش نقل قولها میتوان از کلاس blockquote و برای نمایش بهتر امضای آن از کلاس blockquote-footer استفاده کرد:
<body> <div class="container"> <section class="content" id="testimonials"> <h2>Testimonials</h2> <blockquote> During the summer, our rabbit, Tonto, began to have severe redness and itching on his belly and feet. I'm very thankful to the veterinarians and staff at Wisdom for the excellent care Tonto received, and for nipping his allergies in the bud, so to speak. Jane </blockquote> <blockquote class="blockquote text-right"> When Samantha, our Siamese cat, began sleeping all the time and urinating excessively, we brought her to see the specialists at Wisdom. Now, two years later, Samantha is still free from any complications of diabetes, and her blood sugar regularly tests normal. <div class="blockquote-footer"> The McPhersons </div> </blockquote> </section> </div> </body>
در اینجا دو blockquote را مشاهده میکنید. مورد اول بدون کلاس blockquote است و دومی به همراه این کلاس و یک footer تعریف شدهاست. همچنین میتوان کلاسهایی مانند text-right را نیز به blockquote اضافه کرد.
البته در نگارش 4، حاشیهی خاکستری blockquote که در نگارش سوم آن وجود داشت، حذف شدهاست.
کار با رنگها در بوت استرپ 4
بوت استرپ، به همراه تعدادی کلاس مخصوص رنگها است که از آن در همه جا استفاده میکند؛ مانند رنگهای دکمهها، پس زمینهها و متون.
1) کلاسهای تعیین رنگ متون:
برای مثال در اینجا بجای Color میتوان یکی از ثوابت ذیل آنرا قید کرد؛ مانند text-primary و یا text-danger
این کلاسها برای تعیین رنگ متون و همچنین لینکها کاربرد دارند.
2) کلاسهای تعیین رنگ پس زمینه:
در اینجا برای نمونه بجای Color میتوان یکی از ثوابت ذیل آنرا قید کرد؛ مانند bg-primary و یا bg-danger
مثال: اعمال رنگهای زمینهای بوت استرپ
<body> <div class="container"> <section class="content" id="services"> <h2 class="text-danger">Our Mission</h2> <p class="bg-danger text-white">Wisdom Pet Medicine strives to blend the best in traditional and alternative medicine in the diagnosis and treatment of companion animals including dogs, cats, birds, reptiles, rodents, and fish. We apply the wisdom garnered in the centuries old tradition of veterinary medicine, to find the safest treatments and cures.</p> <ul> <li><a class="text-warning" href="#">Grooming</a></li> <li><a href="#">General Health</a></li> <li><a href="#">Nutrition</a></li> <li><a href="#">Pest Control</a></li> <li><a href="#">Vaccinations</a></li> </ul> </section> <section class="content" id="testimonials"> <h2>Testimonials</h2> <blockquote class="blockquote bg-faded text-info"> During the summer, our rabbit, Tonto, began to have severe redness and itching on his belly and feet. I'm very thankful to the veterinarians and staff at Wisdom for the excellent care Tonto received, and for nipping his allergies in the bud, so to speak. <div class="blockquote-footer"> Jane </div> </blockquote> </section> </div> </body>
در اینجا مثالهایی را از اعمال کلاسهای رنگهای بوت استرپ مشاهده میکنید. همچنین امکان ترکیب آنها مانند مثال زیر نیز وجود دارد:
<p class="bg-danger text-white">
کدهای کامل این قسمت را از اینجا میتوانید دریافت کنید: Bootstrap4_02.zip
کامپوننت WPF Designer
نگاهی به مشخصات SQL Server 2019
SQL Server 2019 is designed to solve challenges of the modern data professional including:
- Store enterprise data in a data lake and offer SQL and Spark query capability overall data
- Reduce the need for Extract, Transform, and Load (ETL) applications by eliminating data movement
- Integrate and secure machine learning applications with scalable performance
- Reduce the need for application and query changes to gain a boost in performance
- Increase confidential computing of data through hardware enclaves
- Increase application and database uptime and availability through features like ADR (Advanced Database Recovery)
- Extend the power of the T-SQL language in a secure and robust fashion
- Run applications and deploy databases across multiple operating systems and platforms with compatibility
- Reduce the risk of upgrades while using new SQL capabilities when you are ready though inbuilt database compatibility levels
اگر برنامههای ASP.NET Core را اجرا کرده باشید، عموما در ابتدای آن یک پیام محافظت نشده بودن کلیدهای سیستم DataProtection را لاگ میکند. برای رفع این مشکل میتوان این مراحل را طی کرد:
الف) نیاز به یک مجوز SSL داریم که دارای private key هم باشد.
برای این منظور سه دستور زیر را صادر کنید تا یک فایل pfx مناسب سیستم DataProtection تولید شود:
"C:\Program Files\Git\usr\bin\openssl.exe" genrsa -out private.key 2048 "C:\Program Files\Git\usr\bin\openssl.exe" req -new -x509 -key private.key -out publickey.cer -days 1398 "C:\Program Files\Git\usr\bin\openssl.exe" pkcs12 -export -out idp.pfx -inkey private.key -in publickey.cer
ب) خواندن فایل pfx در برنامه
روش خواندن فایلهای pfx به صورت زیر است:
private static X509Certificate2 loadCertificateFromFile(string filePath, string password) { // NOTE: // You should check out the identity of your application pool and make sure // that the `Load user profile` option is turned on, otherwise the crypto susbsystem won't work. // For decryption the certificate must be in the certificate store. It's a limitation of how EncryptedXml works. using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser)) { store.Open(OpenFlags.ReadWrite); store.Add(new X509Certificate2(filePath, password, X509KeyStorageFlags.Exportable)); } return new X509Certificate2( filePath, password, keyStorageFlags: X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable); }
ج) معرفی مجوز تولید شده به سیستم
دراینجا آخرین مرحله، ذکر متد ProtectKeysWithCertificate به همراه مجوزی است که تولید کردیم:
services .AddDataProtection() .SetDefaultKeyLifetime(...) .SetApplicationName(...) .ProtectKeysWithCertificate(loadCertificateFromFile("path ...", "123"));
For decades, passwords have been the common backbone (headache) of authentication and are well known to lack in security while being frustrating and difficult to use. As we continue to see daily data breaches, the reality of moving away from weak static credentials and killing the password is upon us. Join this session to learn how FIDO2 and WebAuthn open authentication standards, in conjunction with YubiKeys, are solving the elimination of passwords at scale. Hear how organizations like Microsoft have implemented these standards for a true passwordless experience and find out how your organization can follow suit. You'll gain a greater understanding of how to achieve a modern and flexible security architecture through the use of FIDO open standards and hardware authenticators.