اشتراکها
C# 7.1 به همراه به روز رسانی سوم VS 2017 ارائه شدهاست و اگر در ابتدای کار سعی کنید برای مثال یکی از ویژگیهای جدید C# 7.1، مانند static async Task Main را توسط آن آزمایش کنید، خطای کامپایل برنامه را دریافت میکنید. علت اینجا است که این نگارش خاص حتما نیاز به تنظیمات ویژهای را جهت فعالسازی دارد.
فعالسازی کامپایلر C# 7.1 در VS 2017
ابتدا مسیر Visual Studio -> Build tab -> Advanced را طی کنید:
پس از کلیک بر روی دکمهی Advanced، نیاز است C# 7.1 را انتخاب نمائید:
سؤال: چرا چنین مشکلی با نگارشهای پیشین زبان سیشارپ در ویژوال استودیو وجود نداشت؟
تابحال زبان سیشارپ نگارش minor نداشتهاست. همانطور که در تصویر فوق ملاحظه میکنید، گزینهی پیشفرض زبان مورد استفاده بر روی C# latest major version قرار دارد. این گزینه به معنای انتخاب نگارش 7.0، در این لیست است و نه 7.1. در اینجا major به نگارش 7.0 اشاره میکند و یا نگارشهای 8.0، 9.0 و پس از آن (در صورت ارائه و نصب به روز رسانیها). به همین جهت است که نمیتوان برای مثال static async Task Main را به صورت پیش فرض و با اعمال آخرین به روز رسانیها کامپایل کرد. برای رفع این مشکل یا میتوان برای مثال C# 7.1 را مستقیما انتخاب کرد و یا میتوان «C# latest minor version» را انتخاب کرد که این مورد گزینهی بهتری است نسبت به حالت C# latest major version و دقیقا به C# 7.1 و یا نگارشهای پس از آن اشاره میکند.
انتخاب زبان در پروژههای NET Core.
روش فوق با تمام نگارشهای NET. کار میکند. اما با توجه به اینکه یک چنین گزینههایی برای مثال در VSCode وجود ندارند و یا برنامههای NET Core. را میتوان صرفا از طریق خط فرمان، ایجاد، کامپایل و اجرا کرد، در این نوع پروژهها برای انتخاب زبان باید به صورت ذیل عمل نمود:
در اینجا گزینهی LangVersion را یا میتوان به 7.1 تنظیم کرد و یا بهتر است مقدار آنرا مساوی latest قرار داد تا همواره به آخرین کامپایلر نصب شدهی توسط SDK اشاره کند.
فعالسازی کامپایلر C# 7.1 در VS 2017
ابتدا مسیر Visual Studio -> Build tab -> Advanced را طی کنید:
پس از کلیک بر روی دکمهی Advanced، نیاز است C# 7.1 را انتخاب نمائید:
سؤال: چرا چنین مشکلی با نگارشهای پیشین زبان سیشارپ در ویژوال استودیو وجود نداشت؟
تابحال زبان سیشارپ نگارش minor نداشتهاست. همانطور که در تصویر فوق ملاحظه میکنید، گزینهی پیشفرض زبان مورد استفاده بر روی C# latest major version قرار دارد. این گزینه به معنای انتخاب نگارش 7.0، در این لیست است و نه 7.1. در اینجا major به نگارش 7.0 اشاره میکند و یا نگارشهای 8.0، 9.0 و پس از آن (در صورت ارائه و نصب به روز رسانیها). به همین جهت است که نمیتوان برای مثال static async Task Main را به صورت پیش فرض و با اعمال آخرین به روز رسانیها کامپایل کرد. برای رفع این مشکل یا میتوان برای مثال C# 7.1 را مستقیما انتخاب کرد و یا میتوان «C# latest minor version» را انتخاب کرد که این مورد گزینهی بهتری است نسبت به حالت C# latest major version و دقیقا به C# 7.1 و یا نگارشهای پس از آن اشاره میکند.
انتخاب زبان در پروژههای NET Core.
روش فوق با تمام نگارشهای NET. کار میکند. اما با توجه به اینکه یک چنین گزینههایی برای مثال در VSCode وجود ندارند و یا برنامههای NET Core. را میتوان صرفا از طریق خط فرمان، ایجاد، کامپایل و اجرا کرد، در این نوع پروژهها برای انتخاب زبان باید به صورت ذیل عمل نمود:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> <PropertyGroup> <LangVersion>latest</LangVersion> <!-- <LangVersion>7.1</LangVersion> --> </PropertyGroup> </Project>
اشتراکها
لیست تغییرات جدید ASP.NET Core 5.0
عناوین برخی از امکانات و بهبود ها
- MVC model binding improvements, including support for C# 9 record types
- Blazor Server & Blazor WebAssembly support and improvements
- Built-in OpenAPI and Swagger UI support for Web APIs
- SignalR Hub filters and parallel Hub invocations
- Azure AD authentication with MIcrosoft.Identity.Web
- Auto browser refresh with dotnet watch
- HTTP/2 and gRPC performance improvements
اشتراکها
NET 8 Preview 7. منتشر شد
.NET 8 Preview 7 is now available. We’re already at the final preview release for .NET 8 and will now shift to release candidates. Almost all new features for the release are in their final shape. System.Text.Json and codegen have the biggest changes in this build. You’ll want to take a look at those. Now is great time to pick up and test .NET 8 if you haven’t yet.
اشتراکها
دات نت 5.0.1 منتشر شد.
The .NET 5.0.1 and .NET SDK 5.0.101 releases are available for download. The latest 5.0 release is always listed at .NET 5.0 Releases .
- Accessibility improvements in narration, high contrast and focus control areas
- .NET Framework support for .NET Standard 2.0 and compiler features
- More secure SHA-2 support in ASP.NET and System.Messaging
- Configuration builders
- ASP.NET Execution step feature
- ASP.NET HttpCookie parsing
- Enhancements in Visual Tree for WPF applications
- Performance and reliability improvements
41- :checked
برای تگهای radio و checkbox استفاده میشود و آنهایی را انتخاب میکند که گزینهی آنها انتخاب شده است یا شامل ویژگی checked میباشند.
<style> :checked { width: 50px; height: 50px; } </style> <input type="checkbox" checked="checked"/> <input type="checkbox"/> <input type="radio" name="test"/> <input type="radio" name="test" checked="checked"/> <input type="radio" name="test"/>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :checked | 3 |
42- :indeterminate
در HTML نمیتوان وضعیت indeterminate را برای checkbox ایجاد نمود. اما با جاوا اسکریپت میتوان این وضعیت را ایجاد کرد. هر checkbox میتواند دارای سه وضعیت انتخاب شده، انتخاب نشده و نامعلوم (indeterminate) باشد. این Selector تگهای checkbox ی را انتخاب مینماید که وضعیت نامعلوم دارند.
<style> :indeterminate { width: 50px; height: 50px; } </style> <input type="checkbox" id="chk1"/> <input type="checkbox" id="chk2" checked="checked"/> <input type="checkbox" id="chk3"/> <script> document.getElementById("chk1").indeterminate=true; </script>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
No | No | No | No | No | :indeterminate | 4 |
43- :default
برای تگهای radio و checkbox، آنهایی را انتخاب میکند که در زمان بارگزاری فرم و بصورت پیش فرض انتخاب شدهاند. برای دکمهی submit ایی نیز استفاده میشود که در حال حاضر در فرم فعال میباشد. پشتیبانی از این Selector در مرورگرها متفاوت میباشد؛ بنابراین در چند مرورگر کارآیی آن را بررسی کنید.
<style> :default { width: 50px; height: 50px; background: lime; } </style> <form> <input type="checkbox" checked="checked" /> <input type="checkbox" /> <input type="radio" name="radio1" /> <input type="radio" name="radio1" checked="checked" /> <input type="radio" name="radio1" /> <input type="submit" value="Default" /> <input type="submit" value="Submit 2" /> </form>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
No | No | No | No | No | :default | 4 |
44- :root
المنت ریشهی یک صفحه را انتخاب مینماید. معمولا تگ html به عنوان المنت ریشه انتخاب میشود.
<style> :root { background: khaki; } </style>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :root | 3 |
45- :after
جهت درج محتوا بعد از تگ استفاده میشود.
<style> form:after { content: "[ * : Required]"; color: red; } input+span:after { content: ' * '; color: red; } </style> <form> <div><input type="text" /><span></span></div> <div><input type="password" /><span></span></div> <div><input type="email" /><span></span></div> </form>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.1 | 7.0 | 9.0 | 3.5 | 4.0 | :after | 2 |
46- :before
جهت درج محتوا قبل از تگ استفاده میشود.
<style> form:before { content: "[ * : Required]"; color: red; } input + span:before { content: ' * '; color: red; } </style> <form> <div><input type="text" /><span></span></div> <div><input type="password" /><span></span></div> <div><input type="email" /><span></span></div> </form>
در مثال فوق قبل از تمامی spanهای قرار گرفته در کنار تگهای input، یک کاراکتر * را به رنگ قرمز نمایش میدهد. قبل از فرم نیز رشتهی [ * : Required] را به رنگ قرمز نمایش میدهد.
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.1 | 7.0 | 9.0 | 3.5 | 4.0 | :before | 2 |
47- ::selection
محتوایی را انتخاب میکند که در حال حاضر در صفحه انتخاب یا Select شدهاست.
<style> ::selection { background: navy; color: orange; } </style> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna. Nunc viverra imperdiet enim. Fusce est. </p>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.1 | 9.6 | 9.0 | 2.0 -moz- | 4.0 | ::selection | در CSS 3 معرفی و سپس حذف شد ولی امکان بازگشت مجدد وجود دارد |
48- :not(S1,S2)
تگ هایی را انتخاب میکند که شامل Selectorهای S1 یا S2 یا ... یا Sn نباشند.
<style> :not([readonly]) { background: yellow; } </style> <input type="text"/> <input type="text" readonly="readonly"/> <input type="text"/> <input type="text" readonly="readonly" />
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
3.2 | 9.6 | 9.0 | 3.5 | 4.0 | :not(S1,S2) | 3 |
49- :matches(S1,S2)
تگ هایی را انتخاب میکند که شامل Selectorهای S1 و/یا S2 و/یا ... و/یا Sn باشند.
<style> :matches([readonly]) { background: yellow; } </style> <input type="text" /> <input type="text" readonly="readonly" /> <input type="text" /> <input type="text" readonly="readonly" />
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
No | No | No | No | No | :matches(S1,S2) | 4 |
50- :has(S1,S2)
تگ هایی را انتخاب میکند که در ارتباط خاصی با Selector های S1 و/یا S2 و/یا ... و/یا Sn میباشند.
<style> :has(>span) { color: red; } :has(+div) { color: blue; } </style> <div> <p> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas <span>porttitor</span> congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna. Nunc viverra imperdiet enim. Fusce est. </p> <h1>Header 1</h1> <div> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna. Nunc viverra imperdiet enim. Fusce est. </div>
پشتیبانی در مرورگرها:
|
|
|
|
| Selector | نسخه CSS |
No | No | No | No | No | :has(S1,S2) | 4 |