SQL Server Management Studio 18.6 منتشر شد
301, MovedPermanently
https://cloudblogs.microsoft.com/sqlserver/2020/07/22/sql-server-management-studio-18-6-is-now-generally-available/ icon

The 18.6 release is the  second  major release of SSMS in 2020  and packs  several high  impact   changes , including a fix for  crashes in database diagram s.  Key fixes include:    

  • Save to XEL file error fix.  
  • B acpac  file  import  error fix.  
  • Database diagrams crash fix.  
  • Addressed sources o f three common application hangs.  
SQL Server Management Studio 18.6 منتشر شد
مدیریت مباحث همزمانی مرتبط با یک Rich Domain Model با استفاده از EFCore و الگوی Aggregate
301, MovedPermanently
https://www.kamilgrzybek.com/design/handling-concurrency-aggregate-pattern-and-ef-core/ icon

In summary, the most important issues here are:

  • The Aggregate’s main task is to protect invariants (business rules, the boundary of immediate consistency)
  • In a multi-threaded environment, when multiple threads are running simultaneously on the same Aggregate, a business rule may be broken
  • A way to solve concurrency conflicts is to use Pessimistic or Optimistic concurrency techniques
  • Pessimistic Concurrency involves the use of a database transaction and a locking mechanism. In this way, requests are processed one after the other, so basically concurrency is lost and it can lead to deadlocks.
  • Optimistic Concurrency technique is based on versioning database records and checking whether the previously loaded version has not been changed by another thread.
  • Entity Framework Core supports Optimistic Concurrency. Pessimistic Concurrency is not supported
  • The Aggregate must always be treated and versioned as a single unit
  • Domain events are an indicator, that state was changed so Aggregate version should be changed as well 
public class AggregateRootBase : Entity, IAggregateRoot
{
    private int _versionId;

    public void IncreaseVersion()
    {
        _versionId++;
    }
}
internal sealed class OrderEntityTypeConfiguration : IEntityTypeConfiguration<Order>
{
    public void Configure(EntityTypeBuilder<Order> builder)
    {
        builder.Property("_versionId").HasColumnName("VersionId").IsConcurrencyToken();
 
        //...
    }
}
var order = await _ordersContext.Orders.FindAsync(orderId);
order.AddOrderLine(request.ProductCode); 
var domainEvents = DomainEventsHelper.GetAllDomainEvents(order);
if (domainEvents.Any())
{
    order.IncreaseVersion();
}
await _ordersContext.SaveChangesAsync();


مدیریت مباحث همزمانی مرتبط با یک Rich Domain Model با استفاده از EFCore و الگوی Aggregate
نگارش April 2020 برنامه‌ی Azure Data Studio منتشر شد
301, MovedPermanently
https://cloudblogs.microsoft.com/sqlserver/2020/04/28/the-april-2020-release-of-azure-data-studio-is-now-available/ icon

The April release of the Azure Data Studio. Included in this release is:

- Added a new Welcome page.
- Added new markdown toolbar for Notebooks.
- Announcing KQL Magic support in Notebooks.
- Charting in SQL Notebooks can now be saved.
- Announcing improvements to Azure Data Studio dashboards.
- Support for Always Encrypted.
- Bug fixes.
 

نگارش April 2020 برنامه‌ی Azure Data Studio منتشر شد