افزونه Settings Sync برای ذخیره و بازیابی تنظیمات سفارشی کاربر در ویژوال استدیو کد (vs code)
این افزونه اطلاعات تنظیمات سفارشی شما در ویژوال استدیو کد که در برخی موارد میتواند اطلاعات امنیتی باشد مانند اطلاعات ورود به sql server برای افزونه mssql را در یک فایل secret gist ذخیره میکند و تنها کافیست در گیت هاب حساب کاربری داشته باشید و یک توکن معتبر برای ساخت این فایل gist را بسازید و در اختیار این افزونه قرار دهید.
«انجام تنظیمات مسیریابی پیش فرض پروژه جدید توسط Angular CLI» را در قسمت دوم این سری بررسی کردیم. در ادامه با قابلیتهای بیشتری از امکانات تنظیمات مسیریابی موجود در Angular CLI، آشنا خواهیم شد.
یک مثال: در ادامه یک پروژهی جدید مبتنی بر Angular CLI را به همراه تنظیمات ابتدایی مسیریابی آن ایجاد میکنیم:
همانطور که در قسمت دوم نیز ذکر شد، پرچم routing در اینجا، سبب ایجاد فایل app-routing.module.ts نیز خواهد گردید:
و تنظیمات مرتبط با آن به صورت خودکار به قسمت imports فایل app.module.ts اضافه میشوند و آمادهی استفاده هستند.
همچنین اگر به فایل src\app\app.component.html مراجعه کنیم، router-outlet نیز به آن افزوده شدهاست و مدیریت نمایش مسیریابیها در این قسمت انجام خواهد شد.
در ادامهی این مثال، دو کامپوننت جدید را به نامهای dashboard و customer ایجاد میکنیم:
هدف این است که مسیریابیهایی را جهت کار و نمایش این کامپوننتها ایجاد کنیم. به همین جهت به فایل src\app\app-routing.module.ts مراجعه کرده و تغییرات ذیل را اعمال کنید:
در اینجا ابتدا کامپوننتهای جدید، import شده و سپس یک مسیریابی پیش فرض به کامپوننت dashboard و دو مسیریابی جدید دیگر به کامپوننتهای dashboard و customer ایجاد شدهاند.
البته باید دقت داشت که چون پیشتر با اجرای دستورات ng g c، این کامپوننتها به صورت خودکار به تعاریف فایل app.module.ts اضافه شدهاند، امکان استفادهی از آنها در اینجا میسر است:
پس از تعریف مسیریابیها، به فایل src\app\app.component.html مراجعه کرده و لینکهایی را به این مسیریابیهای جدید ایجاد میکنیم:
اکنون اگر دستور کامپایل و گشودن برنامه را در مرورگر پیش فرض سیستم صادر کنیم:
یک چنین تصویری حاصل خواهد شد:
با توجه به تنظیمات مسیریابی پیش فرض انجام شده، ابتدا مسیر http://localhost:4200/dashboard بارگذاری شدهاست.
ایجاد ماژولهای جدید به همراه تنظیمات مسیریابی آنها
در قسمت قبل با نحوهی ایجاد ماژولهای جدید توسط Angular CLI آشنا شدیم:
این فرمان، فایل admin.module.ts را تولید میکند. در اینجا میتوان پرچم مسیریابی را نیز ذکر کرد (برای اینکار یک پنجرهی خط فرمان دیگر را باز کنید و اجازه دهید تا پنجرهی خط فرمان ng serve -o باز باقی بماند و مدام مشغول بررسی تغییرات و کامپایل پشت صحنهی کار باشد):
در این حالت دو فایل admin.module.ts و همچنین admin-routing.module.ts تولید میشوند.
سپس داخل این ماژول یک کامپوننت جدید را به نام admin ایجاد میکنیم:
در اینجا چون این کامپوننت، هم نام پوشهی admin است، داخل همان پوشه ایجاد خواهد شد.
برای مثال اگر نیاز به ایجاد کامپوننت دیگری به نام emails داخل این پوشه بود، باید به نحو ذیل عمل کرد:
در این حالت پوشهی جدید email داخل پوشهی admin ایجاد شده و فایلهای کامپوننت جدید email به آن اضافه میشوند. همچنین اگر دقت کنید، اینبار سطر update آخری، فایل admin.module.ts را به روز رسانی کردهاست و در قسمت declarations آن، دو کامپوننت ایجاد شده را تعریف کردهاست:
تا اینجا ماژول جدید admin را ایجاد کردهایم؛ اما برنامهی اصلی از آن اطلاعی ندارد. به همین جهت به فایل src\app\app.module.ts مراجعه کرده و این ماژول جدید را به آن معرفی میکنیم:
ابتدا کلاس این ماژول import شده و سپس آنرا پیش از AppRoutingModule تعریف میکنیم.
در ادامه برای تعریف مسیریابیهای این ماژول جدید، به فایل src\app\admin\admin-routing.module.ts آن مراجعه کرده و ثابت routes آنرا مقدار دهی میکنیم:
در اینجا مسیریابی admin، دارای فرزند email نیز میباشد و پیش فرض آن نیز به email تنظیم شدهاست.
سپس به فایل app\admin\admin.component.html نیز مراجعه کرده و router-outlet آنرا به آن اضافه میکنیم:
تا اینجا هرچند لینک جدیدی را به ناحیهی ادمین تعریف نکردهایم، اما مسیریابی تعریف شدهی آن کار میکند:
یک نکته: امکان تولید route guards نیز توسط Angular CLI برای محافظت از مسیریابی خاصی وجود دارد. برای این منظور میتوان دستور ذیل را صادر کرد:
که سبب تولید فایل auth.guard.ts میشود.
یک مثال: در ادامه یک پروژهی جدید مبتنی بر Angular CLI را به همراه تنظیمات ابتدایی مسیریابی آن ایجاد میکنیم:
> ng new angular-routing --routing
و تنظیمات مرتبط با آن به صورت خودکار به قسمت imports فایل app.module.ts اضافه میشوند و آمادهی استفاده هستند.
همچنین اگر به فایل src\app\app.component.html مراجعه کنیم، router-outlet نیز به آن افزوده شدهاست و مدیریت نمایش مسیریابیها در این قسمت انجام خواهد شد.
در ادامهی این مثال، دو کامپوننت جدید را به نامهای dashboard و customer ایجاد میکنیم:
>ng g c dashboard >ng g c customer
هدف این است که مسیریابیهایی را جهت کار و نمایش این کامپوننتها ایجاد کنیم. به همین جهت به فایل src\app\app-routing.module.ts مراجعه کرده و تغییرات ذیل را اعمال کنید:
import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { DashboardComponent } from './dashboard/dashboard.component'; import { CustomerComponent } from './customer/customer.component'; const routes: Routes = [ { path: '', pathMatch: 'full', redirectTo: 'dashboard' }, { path: 'dashboard', component: DashboardComponent }, { path: 'customer', component: CustomerComponent } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { }
البته باید دقت داشت که چون پیشتر با اجرای دستورات ng g c، این کامپوننتها به صورت خودکار به تعاریف فایل app.module.ts اضافه شدهاند، امکان استفادهی از آنها در اینجا میسر است:
@NgModule({ declarations: [ AppComponent, DashboardComponent, CustomerComponent ],
پس از تعریف مسیریابیها، به فایل src\app\app.component.html مراجعه کرده و لینکهایی را به این مسیریابیهای جدید ایجاد میکنیم:
<h1> {{title}} </h1> <nav> <ul> <li><a href="" [routerLink]="['/dashboard']">Dashboard</a></li> <li><a href="" [routerLink]="['/customer']">Customer</a></li> </ul> </nav> <router-outlet></router-outlet>
اکنون اگر دستور کامپایل و گشودن برنامه را در مرورگر پیش فرض سیستم صادر کنیم:
> ng serve -o
با توجه به تنظیمات مسیریابی پیش فرض انجام شده، ابتدا مسیر http://localhost:4200/dashboard بارگذاری شدهاست.
ایجاد ماژولهای جدید به همراه تنظیمات مسیریابی آنها
در قسمت قبل با نحوهی ایجاد ماژولهای جدید توسط Angular CLI آشنا شدیم:
> ng g module admin
> ng g m admin --routing
سپس داخل این ماژول یک کامپوننت جدید را به نام admin ایجاد میکنیم:
> ng g c admin
برای مثال اگر نیاز به ایجاد کامپوننت دیگری به نام emails داخل این پوشه بود، باید به نحو ذیل عمل کرد:
> ng g c admin/email installing component create src\app\admin\email\email.component.css create src\app\admin\email\email.component.html create src\app\admin\email\email.component.spec.ts create src\app\admin\email\email.component.ts update src\app\admin\admin.module.ts
@NgModule({ imports: [ CommonModule, AdminRoutingModule ], declarations: [AdminComponent, EmailComponent] }) export class AdminModule { }
تا اینجا ماژول جدید admin را ایجاد کردهایم؛ اما برنامهی اصلی از آن اطلاعی ندارد. به همین جهت به فایل src\app\app.module.ts مراجعه کرده و این ماژول جدید را به آن معرفی میکنیم:
import { AdminModule } from './admin/admin.module'; @NgModule({ imports: [ BrowserModule, FormsModule, HttpModule, AdminModule, AppRoutingModule ],
در ادامه برای تعریف مسیریابیهای این ماژول جدید، به فایل src\app\admin\admin-routing.module.ts آن مراجعه کرده و ثابت routes آنرا مقدار دهی میکنیم:
import { AdminComponent } from './admin.component'; import { EmailComponent } from './email/email.component'; const routes: Routes = [ { path: 'admin', component: AdminComponent, children:[ { path:'', component:EmailComponent }, { path:'email', component:EmailComponent } ] } ];
سپس به فایل app\admin\admin.component.html نیز مراجعه کرده و router-outlet آنرا به آن اضافه میکنیم:
<p> admin works! </p> <router-outlet></router-outlet>
یک نکته: امکان تولید route guards نیز توسط Angular CLI برای محافظت از مسیریابی خاصی وجود دارد. برای این منظور میتوان دستور ذیل را صادر کرد:
>ng g guard auth
نظرات اشتراکها
گپ و گفتی با مهندسان طراح دات نت در مورد آینده این فریم ورک
پاسخها رسمی نیستند .
This article dives into the mock questions I would ask, along with responses that are my personal best guess to the answers. Could my answers not reflect actual opinions shared by the team at Microsoft? Sure, but I'm hoping folks from the .NET team can jump in to correct me if I am way off base.
اشتراکها
مجموعه نکاتی از VS Code
این فریمورک برای تولید فایلهای MSI با امکانات مختلف به زبان C# کاربرد دارد.
static public void Main(string[] args) { var project = new Project("MyProduct", new Dir(@"%ProgramFiles%\My Company\My Product", new File(@"Files\Docs\Manual.txt"), new File(@"Files\Bin\MyApp.exe"))); project.GUID = new Guid("6f330b47-2577-43ad-9095-1861ba25889b"); Compiler.BuildMsi(project); }
Generally speaking, I don't worry much about tweaking my LINQ queries when working with Entity Framework (this is also true when I'm working with SQL directly, by the way). I'm always telling my clients that if they want to speed up their data access they should look at their database design and, especially, how they're using indexes.
Where does a developer's responsibility begin and end when it comes to managing the success of a product? This question has been nagging me for the better part of a year now, and I hope that expressing my thoughts will help cement my thoughts on that particular issue. I've been fortunate enough to work in many environments with varying levels of product responsibility.
با تشکر لطفا تنظیمات smtp مربوطه رو هم قرار بدید
سایت سازنده تنظیمات رو در وب کانفیگ قرار داده بود، برای جیمیل من تنظیمات زیر رو مینویسم ولی خطای
timed out میده
لطفا راهنمایی بفرمایید با تشکر
سایت سازنده تنظیمات رو در وب کانفیگ قرار داده بود، برای جیمیل من تنظیمات زیر رو مینویسم ولی خطای
timed out میده
<system.net> <mailSettings> <smtp > <network host="smtp.gmail.com" userName="My Gmail Email" password="my Password" enableSsl="true" port="465" defaultCredentials="true"/> </smtp> </mailSettings> </system.net>
راهنماهای پروژهها
رمزنگاری و رمزگشایی اطلاعات توسط الگوریتم RSA
یکی از نیازهای امنیتی پروژههای نرم افزاری رمزنگاری و رمزگشایی اطلاعات است. برای این منظور شما میتوانید از دو متد الحاقی زیر استفاده کنید.
رمزنگاری با متد Encrypt:
رمزگشایی با متد Decrypt:
دو متد فوق به نوع داده String الحاق شده اند و پیاده سازی آنها در کلاس SecurityExtensions موجود است. جهت انتخاب کلید میتوانید از ترکیب شناسه کاربری فرد، تاریخ و زمان ایجاد رکورد به همراه یک کلید خصوصی استفاده کنید. در این روش رمزگشایی اطلاعات بدون داشتن کلید امنیتی میسر نخواهد بود.
string secret = "My Secret"; string encoded = secret.Encrypt("mykey");
string secret = "My Secret"; string decoded = encoded.Decrypt("mykey");
React Folder Structure in 5 Steps [2024]
Organizing large React applications into folders and files is a topic that often sparks strong opinions. I found it challenging to write about this, as there isn't a definitive "correct" approach. However, I frequently get asked how I structure my React projects, from small to large, and I'm happy to share my approach.