اشتراک‌ها
3.Visual Studio 2017 15.8 منتشر شد

These are the customer-reported issues addressed in 15.8.3:

3.Visual Studio 2017 15.8 منتشر شد
اشتراک‌ها
NET Framework 4.7. منتشر شد

The .NET Framework 4.7 includes improvements in several areas:

  1. High DPI support for Windows Forms applications on Windows 10
  2. Touch support for WPF applications on Windows 10
  3. Enhanced cryptography support
  4. Performance and reliability improvements 
NET Framework 4.7. منتشر شد
نظرات مطالب
احراز هویت و اعتبارسنجی کاربران در برنامه‌های Angular - قسمت دوم - سرویس اعتبارسنجی
با تغییر کلاس سرویس AppConfigService به شکل زیر :

import { HttpClient } from "@angular/common/http";
import { Injectable } from "@angular/core";

@Injectable()
export class AppConfigService {

    private config: IAppConfig;

    constructor(private http: HttpClient) { }

    loadClientConfig(): Promise<any> {
        return this.http.get<IAppConfig>("assets/client-config.json")
            .toPromise()
            .then(config => {
                this.config = config;
                console.log("Config", this.config);
            })
            .catch(err => {
                return Promise.reject(err);
            });
    }

    get configuration(): IAppConfig {
        if (!this.config) {
            throw new Error("Attempted to access configuration property before configuration data was loaded.");
        }
        return this.config;
    }
}

export interface IAppConfig {
    apiEndpoint: string;
    loginPath: string;
    logoutPath: string;
    refreshTokenPath: string;
    accessTokenObjectKey: string;
    refreshTokenObjectKey: string;
    adminRoleName: string;
}

و تغییر ماژول CoreModule به شکل زیر :

import { NgModule, Optional, SkipSelf, APP_INITIALIZER } from "@angular/core";
import { CommonModule } from "@angular/common";
import { RouterModule } from "@angular/router";
import { HTTP_INTERCEPTORS } from "@angular/common/http";

// import RxJs needed operators only once
import "./services/rxjs-operators";

import { HeaderComponent } from "./component/header/header.component";
import { AuthGuard } from "./services/auth.guard";
import { AuthInterceptor } from "./services/auth.interceptor";
import { AuthService } from "./services/auth.service";
import { AppConfigService } from "./services/app-config.service";
import { BrowserStorageService } from "./services/browser-storage.service";


@NgModule({
    imports: [CommonModule, RouterModule],
    exports: [
        // components that are used in app.component.ts will be listed here.
        HeaderComponent
    ],
    declarations: [
        // components that are used in app.component.ts will be listed here.
        HeaderComponent
    ],
    providers: [
        // global singleton services of the whole app will be listed here.
        BrowserStorageService,
        AppConfigService,
        AuthService,
        AuthGuard,
        {
            provide: HTTP_INTERCEPTORS,
            useClass: AuthInterceptor,
            multi: true
        },
        {
            provide: APP_INITIALIZER,
            useFactory: (config: AppConfigService) => () => config.loadClientConfig(),
            deps: [AppConfigService ],
            multi: true
        }
    ]
})
export class CoreModule {
    constructor( @Optional() @SkipSelf() core: CoreModule) {
        if (core) {
            throw new Error("CoreModule should be imported ONLY in AppModule.");
        }
    }
}
با خطای زیر مواجه شدم لطفا راهنمایی بفرمائید :

Error: Provider parse errors:
Cannot instantiate cyclic dependency! ApplicationRef ("[ERROR ->]"): in NgModule AppModule in ./AppModule@-1:-1 
نظرات مطالب
امکان استفاده از کتابخانه‌های native در Blazor WASM 6x
برای اجرا شدن دستور زیر:
* خط به خط کد‌های زیر را، در cmd و پشت سر هم اجرا کنید
(نکته): باید پایتون را از قبل نصب داشته باشید (آموزش نصب پایتون)
# Get the emsdk repo
git clone https://github.com/emscripten-core/emsdk.git

# Enter that directory
cd emsdk

# Download and install the latest SDK tools.
emsdk install latest

# Make the "latest" SDK "active" for the current user. (writes .emscripten file)
emsdk activate latest

# Activate PATH and other environment variables in the current terminal
emsdk_env.bat
حالا اگر cmd شما در همچین مسیری قرار دارد:
C:\Users\{your pc name}\emsdk
میتوانید دستوری که در متن مقاله ذکر شده را اجرا کنید (البته با اندکی تغییر):
emcc C:\Users\{your pc name}\sqlite\sqlite3.c -shared -o D:\e_sqlite3.o
فایل کامپایل شده e_sqlite3.o رو در پروژه خود کپی کنید و طبق مقاله پیش بروید  و این فایل نیتو را به پروژه رفرنس بدهید.
اکنون اگر دستور dotnet bulid را در ترمینال بزنید،  احتمالا با همچین هشداری مواجه خواهید شد:
warning : @(NativeFileReference) is not empty, but the native references won't be linked in, because neither $(WasmBuildNative), nor $(RunAOTCompilation) are 'true'. NativeFileReference=Data\e_sqlite3.o [D:\project\Yourproject\Yourproject.csproj] 1 Warning(s)
در صورت مشاهده همچین هشداری و حل این مشکل (اضافه نشدن فایل نیتیو به برنامه) ابتدا 
<RunAOTCompilation>true</RunAOTCompilation>
را به قسمت بالای فایل csproj خود و در قسمت 
<PropertyGroup>
اضافه کنید و سپس دستور زیر را اجرا کنید:
dotnet workload install wasm-tools
اشتراک‌ها
پروژه های Open Source در زمینه e-commerce با ASP.NET Core

 Top 3 Open Source ASP.NET Core based e-commerce web applications


nopCommerce
 SimplCommerce
grandnode ( Powered By nopCommerce) :It’s an open source, free, cross-platform e-commerce software based on ASP.NET Core 2.2 and MongoDB — NoSQL database. You can run it on Linux, Windows, and MacOS easily. GrandNode also supports Docker, so you are able to install it just in seconds with Docker. 

پروژه های Open Source در زمینه e-commerce با ASP.NET Core