- Team Explorer - Changes: panel not sizing to the Team Explorer window.
- Visual Studio 2017 SQL Server Object Explorer server list not persisting .
- intellisense problems with linux-x64 mode.
- Index was out of range. Must be non-negative and less than the size of the collection.Parameter name: index.
- Visual Studio 2017 UNDO does not work/stops working (reported AGAIN!!!!).
- Intellisense not working for files created under WSL.
- Intellisense error: C++11 static constexpr member initialization causes "member may not be initialized".
- VS doesn't restore windows position when switching in/out of debug.
- Third party toolbox items are reloaded every time VS2019 Preview 2.2 is started.
- 'Set as StartUp Project' crashes the IDE after updating to VS2019 Preview Release 3.
- Visual Studio 2019 building Visual Studio 2017 C++ projects fail.
- Fixed Toolbox refresh issue.
- Toolbox controls are making vssettings file too big.
- SSDT: Fix for Login failed errors when performing a New Data comparison function .
- SSDT: Fix for Source is Unavailable error when performing Schema Compare .
- SSDT: Fix for Schema Compare Generate Script does not generate script .
- SSDT: Fix to improve performance of loading solutions with multiple projects.
- SSDT: Fix for SQL files not always being deleted when performing a Schema Compare between a database and a project and a delete table is executed subsequently.
- SSDT: Accessibility fixes to improve narration capabilities.
- SSDT: Replaced older sqlncli driver with new Microsoft ODBC Driver for SQL Server.
ایجاد ویژگیهای اعتبارسنجی سفارشی در ASP.NET Core 3.1 به همراه اعتبارسنجی سمت کلاینت آنها
using FluentValidation; public class CustomerValidator: AbstractValidator<Customer> { public CustomerValidator() { RuleFor(x => x.Surname).NotEmpty(); RuleFor(x => x.Forename).NotEmpty().WithMessage("Please specify a first name"); RuleFor(x => x.Discount).NotEqual(0).When(x => x.HasDiscount); RuleFor(x => x.Address).Length(20, 250); RuleFor(x => x.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode"); } private bool BeAValidPostcode(string postcode) { // custom postcode validating logic goes here } } var customer = new Customer(); var validator = new CustomerValidator(); ValidationResult results = validator.Validate(customer); bool success = results.IsValid; IList<ValidationFailure> failures = results.Errors;
بنچمارک gRPC در زبان های مختلف
One repo to finally have a clear, objective gRPC benchmark with code for everyone to verify and improve.
OS: Fedora release 38 (Thirty Eight) x86_64
Host: Z790 UD AX
Kernel: 6.3.6-200.fc38.x86_64
CPU: 13th Gen Intel i9-13900KF (32) @ 5.500GHz
GPU: NVIDIA GeForce RTX 4090
Memory: 64119MiB
| java_vertx_grpc | 201739 | 4.93 ms | 5.57 ms | 6.60 ms | 10.70 ms | 96.63% | 109.0 MiB |
| dotnet_grpc | 189382 | 4.97 ms | 5.74 ms | 6.58 ms | 50.39 ms | 99.59% | 239.78 MiB |
| rust_thruster_st | 189079 | 5.26 ms | 5.70 ms | 5.97 ms | 6.76 ms | 94.39% | 17.51 MiB |
| rust_thruster_mt | 186403 | 5.34 ms | 2.33 ms | 2.75 ms | 137.25 ms | 93.78% | 19.33 MiB |
| rust_tonic_st | 181329 | 5.49 ms | 5.96 ms | 6.21 ms | 6.59 ms | 94.35% | 18.31 MiB |
| rust_grpcio | 177021 | 5.63 ms | 6.27 ms | 6.48 ms | 7.01 ms | 77.65% | 229.43 MiB |
| cpp_grpc_mt | 175054 | 5.69 ms | 6.59 ms | 6.88 ms | 7.52 ms | 76.31% | 20.13 MiB |
| cpp_grpc_st | 174633 | 5.70 ms | 6.45 ms | 6.69 ms | 7.30 ms | 76.07% | 9.99 MiB |
| cpp_asio_grpc | 170664 | 5.84 ms | 6.65 ms | 6.94 ms | 7.55 ms | 77.04% | 20.75 MiB |
| rust_tonic_mt | 161976 | 6.15 ms | 2.65 ms | 2.92 ms | 175.00 ms | 88.21% | 21.83 MiB |
اجازه بدهید قبل از هر چیزی به دو مفهوم اصلی در IIS بپردزیم :
1. Worker Process
2. Application Pool
پروسههای کارگر w3wp.exe وظیفهی اجرای برنامههای asp.net را در IIS ، به عهده دارند. این پروسهها مسئولیت پردازش تمامی درخواست و پاسخها از/به کلاینت را دارند. هر کاری که باید در asp.net انجام بشود، توسط اینها صورت میگیرد. به بیان سادهتر این پروسهها قلب برنامههای ASP.Net بر روی IIS هستند .
Application Pool:این پولها در واقع ظرفی یا در برگیرنده ای برای پروسههای کارگر به حساب میآیند. این پولها پروسههای کارگر را از هم جدا و دسته بندی میکنند تا قابلیت اعتماد، امنیت و در دسترس بودن بدهند. موقعی که یک پروسه یا حتی یک پول دچار مشکل میشود، این اطمینان داده میشود که تاثیری بر دیگر پولها یا پروسههای کارگر، ندارد. یعنی موقعی که یک web application دچار مشکل شود، هیچ تاثیری بر اجرای web applicationهای دیگر ندارد. به یک application pool با چند پروسه کارگر web garden میگویند.
اصلا این WWW Service چه کاری انجام میدهد و به چه دردی میخورد؟
- HTTP administration and configuration
- Performance monitoring
- Process management
HTTP Administration and Configuration
در نسخههای جدیدتر IIS چکاری بر عهده WWW Service است؟
WAS در قسمت سوم این مقاله توضیح داده خواهد شد.
بررسی status code دریافتی از سرور
pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); pm.test("Status code is 200", function () { pm.expect(pm.response.code).to.equal(200); }); pm.test("Request is successful", function () { pm.response.to.be.succes; }); // Status code is in the 2XX range pm.test("Request results in a client error", function () { pm.response.to.be.clientError; }); // Status code is in the 4XX range pm.test("Request results in a Not Found error", function () { pm.response.to.be.notFound; }); // 404 pm.test("Status code is 200 or 204", function () { pm.expect([200, 204]).to.include(pm.response.code); });
بررسی هدرهای دریافتی از سرور
pm.test("Response has Content-Type header", function () { pm.response.to.have.header("Content-Type"); }); pm.test("Response has Content-Type header with application/json; charset = utf - 8 as value", function () { pm.response.to.have.header( 'Content-Type', 'application/json; charset=utf-8'); });
بررسی بدنهی درخواست
pm.test("Response has a non-empty body", function () { pm.expect(pm.response.text()).not.empty; }); pm.test("Response has a non-empty body", function () { pm.expect(pm.response.json()).not.empty; }); pm.test("Response has a non-empty body", function () { pm.response.to.have.body(); }); pm.test("Response has a non-empty body", function () { pm.response.to.have.jsonBody(); });
بررسی خواص اشیاء دریافتی از سرور
var updatedAuthor = pm.response.json(); pm.test("Author properties have been updated", function () { pm.expect(updatedAuthor.firstName).to.equal("Vahid"); pm.expect(updatedAuthor.lastName).to.equal("N"); });
Why Serilog? It is easy to set up, has a clean API, and is portable between recent .NET platforms. The big difference between Serilog and the other frameworks is that it is designed to do structured logging out of the box. Another thing I really like about Serilog is that it can be configured via the appsetting.json
file alongside configuring through code. Changing logging configuration without touching the codebase is really helpful, especially in the production environment.
AutoMapper 8.1.0 منتشر شد
AutoMapper 8.1 adds a major new feature - attribute-based maps. Attribute maps let you easily declare maps on destination types when you have straightforward scenarios. Instead of:
public class OrderProfile { public OrderProfile() { CreateMap<Order, OrderIndexModel>(); CreateMap<Order, OrderEditModel>(); CreateMap<Order, OrderCreateModel>(); } }
You can declare your type maps directly on the destination types themselves with AutoMapAttribute:
[AutoMap(typeof(Order))] public class OrderIndexModel { // members } [AutoMap(typeof(Order))] public class OrderEditModel { // members } [AutoMap(typeof(Order))] public class OrderCreateModel { // members }
Those of you who worked with ASP.NET web forms will recollect that certain server controls such as DropDownList have a property called AutoPostBack. This property when set to true automatically submits the form to the server whenever the selection changes and raises some server side event. In modern web development people prefer to use Ajax over AutoPostBack but at times AutoPostBack is what you might need. To that end this article shows how AutoPostBack can be implemented in ASP.NET Core applications.
- This update contains fixes for issues that were fixed after the release of SQL Server 2016 SP1.
- The latest 2016 SP1 update is CU2 - 4013106
- You may have been directed here from a previous SP1 Cumulative Update Knowledge Base (KB) article (See SQL Server 2016 SP1 build versions)
- This Cumulative Update includes all fixes from all previous SP1 Cumulative Updates, therefore it can be installed to resolve issues fixed in any previous SP1 CU
کتاب رایگان NancyFX Succinctly
In NancyFX Succinctly, you'll learn what NancyFX is all about, where it came from, and what it can do for you as a .NET developer. Author Peter Shaw will explain why NancyFX is more than just another web framework, and teach you some of the many tricks that make it as easy as possible for you to create stunning web-enabled applications on the .NET platform.